diff --git a/.circleci/config.yml b/.circleci/config.yml index b957decfc..40011d7e3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -40,11 +40,11 @@ workflows: services/ipfs/.* run-build-ipfs true services/s3sync/.* run-build-s3 true h5ai-nginx run-build-repository true - src/monitor/.* run-build-monitor true - src/server/.* run-build-server true - services/core/.* run-build-core true - services/verification/.* run-build-verification true - services/validation/.* run-build-validation true + src/.* run-build-server true + packages/.* run-build-server true + environments/.* run-build-server true + scripts/.* run-build-server true + package.json run-build-server true ui/.* run-build-ui true # Compare against the last build of the branch not the default "main" branch base-revision: << pipeline.git.base_revision >> diff --git a/.circleci/continue_config.yml b/.circleci/continue_config.yml index ef06672de..34b7b5fd1 100644 --- a/.circleci/continue_config.yml +++ b/.circleci/continue_config.yml @@ -13,24 +13,12 @@ parameters: run-build-repository: type: boolean default: false - run-build-monitor: - type: boolean - default: false run-build-ui: type: boolean default: false run-build-server: type: boolean default: false - run-build-core: - type: boolean - default: false - run-build-verification: - type: boolean - default: false - run-build-validation: - type: boolean - default: false ################ ### ALIASES #### @@ -43,26 +31,9 @@ aliases: run-build: type: boolean default: false - # Workaround: Since we can't set run-build parameter with a logic or: [run-build-server, run-build-core, run-build-verification, run-build-validation] under workflows.jobs, add three more parameters only for the server build, and OR them here. If any of one-two-three (core-verification-validation respectively) change, a server build is triggered. Other builds uneffected since default is false. - run-build-one: - type: boolean - default: false - run-build-two: - type: boolean - default: false - run-build-three: - type: boolean - default: false steps: - when: - condition: - or: - [ - << parameters.run-build >>, - << parameters.run-build-one >>, - << parameters.run-build-two >>, - << parameters.run-build-three >>, - ] + condition: << parameters.run-build >> steps: - checkout - run: @@ -124,29 +95,31 @@ workflows: - or: [ << pipeline.parameters.run-build-ipfs >>, - << pipeline.parameters.run-build-monitor >>, << pipeline.parameters.run-build-repository >>, << pipeline.parameters.run-build-s3 >>, << pipeline.parameters.run-build-server >>, - << pipeline.parameters.run-build-core >>, - << pipeline.parameters.run-build-verification >>, - << pipeline.parameters.run-build-validation >>, << pipeline.parameters.run-build-ui >>, ] jobs: + - tests-node-v16 + - npm-publish: + filters: + branches: + only: + - master + requires: + - tests-node-v16 - build-push-ipfs: run-build: << pipeline.parameters.run-build-ipfs >> + # Always build monitor if there's a change in the server - build-push-monitor: - run-build: << pipeline.parameters.run-build-monitor >> + run-build: << pipeline.parameters.run-build-server >> - build-push-repository: run-build: << pipeline.parameters.run-build-repository >> - build-push-s3: run-build: << pipeline.parameters.run-build-s3 >> - build-push-server: run-build: << pipeline.parameters.run-build-server >> - run-build-one: << pipeline.parameters.run-build-core >> - run-build-two: << pipeline.parameters.run-build-verification >> - run-build-three: << pipeline.parameters.run-build-validation >> - build-push-ui: run-build: << pipeline.parameters.run-build-ui >> - deploy: @@ -157,35 +130,30 @@ workflows: - build-push-s3 - build-push-server - build-push-ui - - monitor-e2e-rinkeby: - requires: - - deploy - monitor-e2e-goerli: requires: - deploy - monitor-e2e-sepolia: requires: - deploy - - verification-e2e-rinkeby: - requires: - - deploy - verification-e2e-goerli: requires: - deploy - verification-e2e-sepolia: requires: - deploy - # Always run - node-build: + + # Tests workflow for not staging or master + tests: + when: + and: + - not: + equal: [ master, << pipeline.git.branch >> ] + - not: + equal: [ staging, << pipeline.git.branch >> ] jobs: - - node-v16 - - npm-publish: - filters: - branches: - only: - - master - requires: - - node-v16 + - tests-node-v16 + # Has to run always. Can't regex filter on add-chain-{chainId} branch names see: https://stackoverflow.com/questions/55839004/circleci-regex-filtering-match-within-string test-new-chain: jobs: @@ -235,7 +203,7 @@ jobs: no_output_timeout: 30m command: | ./scripts/deploy.sh - node-v16: + tests-node-v16: docker: - image: cimg/node:16.15 working_directory: ~/source-verify @@ -250,13 +218,19 @@ jobs: - checkout - run: name: install dependencies - command: npx lerna bootstrap + command: npm install && npx lerna bootstrap + - run: + name: install puppeteer dependencies + command: sudo apt-get update && sudo apt-get -y install xvfb gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget - run: name: lint command: npm run lint - run: name: tsc and test command: npx lerna run build && npx lerna run test --stream + - run: + name: coverage + command: npm run cov:send test-new-chain: docker: - image: cimg/node:16.15 @@ -265,18 +239,13 @@ jobs: - checkout - run: name: install dependencies - command: npx lerna bootstrap + command: npm install && npx lerna bootstrap - run: name: build command: npx lerna run build - run: name: test new chain PR command: ./scripts/test_new_chain_support.sh - monitor-e2e-rinkeby: - <<: *monitor-e2e-base - environment: - CHAIN_ID: 4 - CHAIN_NAME: rinkeby monitor-e2e-goerli: <<: *monitor-e2e-base environment: @@ -287,11 +256,6 @@ jobs: environment: CHAIN_ID: '11155111' CHAIN_NAME: sepolia - verification-e2e-rinkeby: - <<: *verification-e2e-base - environment: - CHAIN_ID: 4 - CHAIN_NAME: rinkeby verification-e2e-goerli: <<: *verification-e2e-base environment: @@ -310,7 +274,7 @@ jobs: - checkout - run: name: install dependencies - command: npx lerna bootstrap + command: npm install && npx lerna bootstrap - run: name: build everything command: npx lerna run build diff --git a/.circleci/new_branch.yml b/.circleci/new_branch.yml index 98687cc48..fcb1fc7d9 100644 --- a/.circleci/new_branch.yml +++ b/.circleci/new_branch.yml @@ -26,13 +26,20 @@ jobs: - checkout - run: name: install dependencies - command: npx lerna bootstrap + command: npm install && npx lerna bootstrap + - run: + name: install puppeteer dependencies + command: sudo apt-get update && sudo apt-get -y install xvfb gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget + - run: name: lint command: npm run lint - run: name: tsc and test command: npx lerna run build && npx lerna run test --stream + - run: + name: coverage + command: npx lerna run cov:send test-new-chain: docker: - image: cimg/node:16.15 @@ -41,10 +48,10 @@ jobs: - checkout - run: name: install dependencies - command: npx lerna bootstrap + command: npm install && npx lerna bootstrap - run: name: build command: npx lerna run build - run: name: test new chain PR - command: ./scripts/test_new_chain_support.sh \ No newline at end of file + command: ./scripts/test_new_chain_support.sh diff --git a/.circleci/nightly.yml b/.circleci/nightly.yml index e57c5726b..e13123085 100644 --- a/.circleci/nightly.yml +++ b/.circleci/nightly.yml @@ -38,20 +38,18 @@ aliases: workflows: e2e-tests: jobs: - - monitor-e2e-rinkeby - monitor-e2e-goerli - monitor-e2e-sepolia - - verification-e2e-rinkeby - verification-e2e-goerli - verification-e2e-sepolia + s3-backup-check: + jobs: - check-s3-backup + etherscan-instances: + jobs: + - check-etherscan-instances jobs: - monitor-e2e-rinkeby: - <<: *monitor-e2e-base - environment: - CHAIN_ID: 4 - CHAIN_NAME: rinkeby monitor-e2e-goerli: <<: *monitor-e2e-base environment: @@ -62,11 +60,6 @@ jobs: environment: CHAIN_ID: '11155111' CHAIN_NAME: sepolia - verification-e2e-rinkeby: - <<: *verification-e2e-base - environment: - CHAIN_ID: 4 - CHAIN_NAME: rinkeby verification-e2e-goerli: <<: *verification-e2e-base environment: @@ -89,3 +82,18 @@ jobs: command: node --experimental-fetch ./scripts/check-s3-backup.mjs docker: - image: cimg/node:16.15 + check-etherscan-instances: + working_directory: ~/source-verify + steps: + - checkout + - run: + name: install dependencies + command: npm install && npx lerna bootstrap + - run: + name: build + command: npx lerna run build + - run: + name: test + command: npx mocha test/etherscan/etherscanInstances.js --exit + docker: + - image: cimg/node:16.15 \ No newline at end of file diff --git a/.circleci/test-chains-regularly.yml b/.circleci/test-chains-regularly.yml index a886a5faa..f3181a08b 100644 --- a/.circleci/test-chains-regularly.yml +++ b/.circleci/test-chains-regularly.yml @@ -18,7 +18,7 @@ jobs: - checkout - run: name: install dependencies - command: npx lerna bootstrap + command: npm install && npx lerna bootstrap - run: name: build and test command: npx lerna run build && npx lerna run test:chains diff --git a/.github/PULL_REQUEST_TEMPLATE/release.md b/.github/PULL_REQUEST_TEMPLATE/release.md new file mode 100644 index 000000000..542bcbfbd --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/release.md @@ -0,0 +1,25 @@ +# Release + +## Changes + + + +- New supported chains: + - X Chain (43) + - Chainname (chainId) + + + +- Fix: ... +- + ... + +## Checklist + + + +- [ ] I have bumped the versions of the packages under `packages/`, if necessary + - [ ] `lib-sourcify` + - [ ] `bytecode-utils` + - [ ] `contract-call-decoder` +- [ ] All tests are passing diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 000000000..328949693 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,20 @@ + + +# Add New Chain + +Thanks for your pull request to add a new support in Sourcify. + +If you haven't done so, please follow the instructions on [how to request chain support](https://docs.sourcify.dev/docs/chain-support/) in docs. + +Please check the following items before submitting your pull request. + +## Checklist + +- [ ] The branch is named as `add-chain-`. +- [ ] I haven't modified the [chains.json](../../src/chains.json) file directly. +- [ ] In [sourcify-chains.ts](../../src/sourcify-chains.ts) file + - [ ] I've set `supported: true`. + - [ ] I've set `monitored: false`. + - [ ] I haven't added an `rpc` field but the one in [chains.json](../../src/chains.json) is used (if not, please explain why). +- [ ] I've added a test in [chain-tests.js](../../test/chains/chains-test.js) file. +- [ ] `test-new-chain` test in Circle CI is passing. diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 9c4c728fa..28aa1cf12 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,6 +1,7 @@ name: Publish a docker image on: + workflow_dispatch: push: branches: - master @@ -28,7 +29,7 @@ jobs: - uses: docker/metadata-action@v3 id: meta_sourcify with: - images: ghcr.io/ambrosus/sourcify + images: ghcr.io/Eshanchik/sourcify - uses: docker/build-push-action@v2 with: diff --git a/.gitignore b/.gitignore index 4d50376ec..5d1b669b2 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,5 @@ metacoin-source-verify/ logs **/too_big.txt chain-tests-report/ +coverage +!src/server/controllers/repository diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 000000000..5edcff036 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v16 \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json index c0688ab8b..e7bbc894e 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -13,15 +13,13 @@ "preLaunchTask": "npm: build:lerna", "outFiles": [ "${workspaceFolder}/dist/**/*.js", - "${workspaceFolder}/services/core/build/**/*.js", - "${workspaceFolder}/services/validation/build/**/*.js", - "${workspaceFolder}/services/verification/build/**/*.js" + "${workspaceFolder}/packages/**/build/**/*.js" ], "env": { - "DEBUG": "express:*" // Debug all express modules * + // "DEBUG": "express:*" // Debug all express modules * }, "smartStep": true, - "console": "integratedTerminal", + "console": "integratedTerminal", "outputCapture": "std", }, { @@ -32,12 +30,10 @@ "envFile": "${workspaceFolder}/environments/.env", "outFiles": [ "${workspaceFolder}/dist/**/*.js", - "${workspaceFolder}/services/core/build/**/*.js", - "${workspaceFolder}/services/validation/build/**/*.js", - "${workspaceFolder}/services/verification/build/**/*.js" + "${workspaceFolder}/packages/**/build/**/*.js" ], "env": { - "DEBUG": "express:*" // Debug all express modules * + // "DEBUG": "express:*" // Debug all express modules * }, "smartStep": true, "console": "integratedTerminal", @@ -60,12 +56,10 @@ "preLaunchTask": "npm: build:lerna", "outFiles": [ "${workspaceFolder}/dist/**/*.js", - "${workspaceFolder}/services/core/build/**/*.js", - "${workspaceFolder}/services/validation/build/**/*.js", - "${workspaceFolder}/services/verification/build/**/*.js" + "${workspaceFolder}/packages/**/build/**/*.js" ], "smartStep": true, - "console": "integratedTerminal", + "console": "integratedTerminal", "outputCapture": "std" }, { @@ -76,137 +70,94 @@ "envFile": "${workspaceFolder}/environments/.env", "outFiles": [ "${workspaceFolder}/dist/**/*.js", - "${workspaceFolder}/services/core/build/**/*.js", - "${workspaceFolder}/services/validation/build/**/*.js", - "${workspaceFolder}/services/verification/build/**/*.js" + "${workspaceFolder}/packages/**/build/**/*.js" ], "smartStep": true, - "console": "integratedTerminal", + "console": "integratedTerminal", "outputCapture": "std" }, { - "console": "integratedTerminal", - "internalConsoleOptions": "neverOpen", - "name": "CLI", - "program": "${workspaceFolder}/dist/cli/sourcify.js", - "request": "launch", - "restart": true, - "preLaunchTask": "tsc: build - tsconfig.json", "type": "node", - "args": [ - "-c", - "1", - "-a", - "0xfff0f5801a9e13426c306455A3BcC5EF3e9BC979", - "-f", - "test/testcontracts/ERC20Standard/ERC20Standard.sol", - "test/testcontracts/ERC20Standard/metadata.json" - ] - }, - { - "internalConsoleOptions": "openOnSessionStart", - "name": "Mocha - All", - "program": "${workspaceFolder}/node_modules/.bin/mocha", "request": "launch", + "name": "Mocha - All", + "program": "${workspaceFolder}/node_modules/.bin/lerna", + "env": { + "TESTING": "true", + }, "args": [ - "--no-timeout", - "--colors" + "run", + "test", + "--stream" ], "outFiles": [ "${workspaceFolder}/dist/**/*.js", - "${workspaceFolder}/services/core/build/**/*.js", - "${workspaceFolder}/services/validation/build/**/*.js", - "${workspaceFolder}/services/verification/build/**/*.js" + "${workspaceFolder}/packages/**/build/**/*.js" ], "smartStep": true, - "envFile": "${workspaceFolder}/environments/.env", - "env": { - "TESTING": "true", - }, "skipFiles": [ "/**", "node_modules/**" ], - "type": "pwa-node", - "console": "integratedTerminal", - }, - { - "type": "node", - "request": "launch", - "name": "Mocha - File", - "program": "${workspaceRoot}/node_modules/.bin/mocha", - "args": [ - "--timeout", - "999999", - "--colors", - "${file}" - ], - "outFiles": [ - "${workspaceFolder}/dist/**/*.js", - "${workspaceFolder}/services/core/build/**/*.js", - "${workspaceFolder}/services/validation/build/**/*.js", - "${workspaceFolder}/services/verification/build/**/*.js" - ], - "smartStep": true, "console": "integratedTerminal", - "internalConsoleOptions": "neverOpen" }, { "type": "node", "request": "launch", - "name": "Mocha - Monitor", + "name": "Mocha - Server", "program": "${workspaceRoot}/node_modules/.bin/mocha", "env": { + // "DEBUG": "express:*", // Debug all express modules * "TESTING": "true", }, "args": [ - "${workspaceFolder}/test/monitor.js", - "--no-timeout" + "${workspaceFolder}/test/server.js", + "--no-timeout", + // Run a single test when debugging + // "--grep=v0.6.12", + "--exit", ], "outFiles": [ "${workspaceFolder}/dist/**/*.js", - "${workspaceFolder}/services/core/build/**/*.js", - "${workspaceFolder}/services/validation/build/**/*.js", - "${workspaceFolder}/services/verification/build/**/*.js" + "${workspaceFolder}/packages/**/build/**/*.js", ], "smartStep": true, "console": "integratedTerminal", - "internalConsoleOptions": "neverOpen" + // "internalConsoleOptions": "neverOpen" }, { "type": "node", "request": "launch", - "name": "Mocha - Validation", - "program": "${workspaceRoot}/services/validation/node_modules/.bin/mocha", + "name": "Mocha - Etherscan", + "program": "${workspaceRoot}/node_modules/.bin/mocha", "env": { + // "DEBUG": "express:*", // Debug all express modules * "TESTING": "true", }, "args": [ - "${workspaceFolder}/services/validation/test/", - "--exit" + "${workspaceFolder}/test/etherscan.js", + "--no-timeout", + // Run a single test when debugging + // "--grep=v0.6.12", + "--exit", ], "outFiles": [ "${workspaceFolder}/dist/**/*.js", - "${workspaceFolder}/services/core/build/**/*.js", - "${workspaceFolder}/services/validation/build/**/*.js", - "${workspaceFolder}/services/verification/build/**/*.js" + "${workspaceFolder}/packages/**/build/**/*.js", ], "smartStep": true, "console": "integratedTerminal", - "cwd": "${workspaceFolder}/services/validation", - "internalConsoleOptions": "neverOpen" + // "internalConsoleOptions": "neverOpen" }, { "type": "node", "request": "launch", - "name": "Mocha - Server", + "name": "Mocha - Etherscan Instances", "program": "${workspaceRoot}/node_modules/.bin/mocha", "env": { - "DEBUG": "express:*", // Debug all express modules * "TESTING": "true", }, "args": [ - "${workspaceFolder}/test/server.js", + "${workspaceFolder}/test/etherscan/etherscanInstances.js", "--no-timeout", // Run a single test when debugging // "--grep=v0.6.12", @@ -214,9 +165,7 @@ ], "outFiles": [ "${workspaceFolder}/dist/**/*.js", - "${workspaceFolder}/services/core/build/**/*.js", - "${workspaceFolder}/services/validation/build/**/*.js", - "${workspaceFolder}/services/verification/build/**/*.js" + "${workspaceFolder}/packages/**/build/**/*.js", ], "smartStep": true, "console": "integratedTerminal", @@ -225,71 +174,61 @@ { "type": "node", "request": "launch", - "name": "Mocha - Chains", - "program": "${workspaceRoot}/node_modules/.bin/mocha", + "name": "Mocha - lib-sourcify", + "cwd": "${workspaceFolder}/packages/lib-sourcify", + "program": "./node_modules/.bin/mocha", "env": { + // "DEBUG": "express:*", // Debug all express modules * "TESTING": "true", - // "NEW_CHAIN_ID": "11155111" }, "args": [ - "${workspaceFolder}/test/chains/chain-tests.js", + "-r", + "ts-node/register", + "./test/**/*.spec.ts", "--no-timeout", // Run a single test when debugging - // "--grep=Optimism", + // "--grep=v0.6.12", "--exit", ], - "outFiles": [ - "${workspaceFolder}/dist/**/*.js", - "${workspaceFolder}/services/core/build/**/*.js", - "${workspaceFolder}/services/validation/build/**/*.js", - "${workspaceFolder}/services/verification/build/**/*.js" - ], + "sourceMaps": true, "smartStep": true, "console": "integratedTerminal", - "internalConsoleOptions": "neverOpen" + // "internalConsoleOptions": "neverOpen" }, { "type": "node", "request": "launch", - "name": "Mocha - Source Fetcher", - "program": "${workspaceRoot}/node_modules/.bin/mocha", + "name": "Mocha - Contract Call Decoder", + "cwd": "${workspaceFolder}/packages/contract-call-decoder", + "program": "./node_modules/ava/cli.js", "env": { "TESTING": "true", }, "args": [ - "${workspaceFolder}/test/sourceFetcher.js", - "--no-timeout", - // Run a single test when debugging - // "--grep=fallback", - "--exit", ], "outFiles": [ - "${workspaceFolder}/dist/**/*.js", - "${workspaceFolder}/services/core/build/**/*.js", - "${workspaceFolder}/services/validation/build/**/*.js", - "${workspaceFolder}/services/verification/build/**/*.js" + "./**/*.js", + "${workspaceFolder}/packages/contract-call-decoder/build/**/*.js" ], "smartStep": true, "console": "integratedTerminal", - "internalConsoleOptions": "neverOpen" + // "internalConsoleOptions": "neverOpen" }, { "type": "node", "request": "launch", - "name": "Mocha - Injector", + "name": "Mocha - Monitor", "program": "${workspaceRoot}/node_modules/.bin/mocha", "env": { "TESTING": "true", }, "args": [ - "${workspaceFolder}/test/injector.js", + "${workspaceFolder}/test/monitor.js", "--no-timeout" ], "outFiles": [ "${workspaceFolder}/dist/**/*.js", - "${workspaceFolder}/services/core/build/**/*.js", - "${workspaceFolder}/services/validation/build/**/*.js", - "${workspaceFolder}/services/verification/build/**/*.js" + "${workspaceFolder}/packages/**/build/**/*.js", ], "smartStep": true, "console": "integratedTerminal", @@ -298,222 +237,49 @@ { "type": "node", "request": "launch", - "name": "Validation service (single file)", - "skipFiles": [ - "/**" - ], - "program": "${workspaceFolder}/services/validation/build/index.js", - "preLaunchTask": "tsc: build - services/validation/tsconfig.json", - "outFiles": [ - "${workspaceFolder}/services/validation/build/**/*.js" - ], - "smartStep": true, - "args": [ - "services/validation/test/files/single/1_Storage.sol", - "services/validation/test/files/single/metadata.json" - ] - }, - { - "type": "node", - "request": "launch", - "name": "Validation service (single file - missing)", - "skipFiles": [ - "/**" - ], - "program": "${workspaceFolder}/services/validation/build/index.js", - "preLaunchTask": "tsc: build - services/validation/tsconfig.json", - "smartStep": true, - "outFiles": [ - "${workspaceFolder}/services/validation/build/**/*.js" - ], - "args": [ - "services/validation/test/files/single/metadata.json" - ] - }, - { - "type": "node", - "request": "launch", - "name": "Validation service (truffle project - zip)", - "skipFiles": [ - "/**" - ], - "program": "${workspaceFolder}/services/validation/build/index.js", - "preLaunchTask": "tsc: build - services/validation/tsconfig.json", - "smartStep": true, - "outFiles": [ - "${workspaceFolder}/services/validation/build/**/*.js" - ], - "args": [ - "services/validation/test/files/truffle-example.zip" - ] - }, - { - "type": "node", - "request": "launch", - "name": "Validation service (truffle project - zip - missing source)", - "skipFiles": [ - "/**" - ], - "program": "${workspaceFolder}/services/validation/build/index.js", - "preLaunchTask": "tsc: build - services/validation/tsconfig.json", - "smartStep": true, - "outFiles": [ - "${workspaceFolder}/services/validation/build/**/*.js" - ], - "args": [ - "services/validation/test/files/truffle-example-missing-source.zip" - ] - }, - { - "type": "node", - "request": "launch", - "name": "Validation service (truffle project - directory)", - "skipFiles": [ - "/**" - ], - "program": "${workspaceFolder}/services/validation/build/index.js", - "preLaunchTask": "tsc: build - services/validation/tsconfig.json", - "smartStep": true, - "outFiles": [ - "${workspaceFolder}/services/validation/build/**/*.js" - ], + "name": "Mocha - Chains", + "program": "${workspaceRoot}/node_modules/.bin/mocha", + "env": { + "TESTING": "true", + // "NEW_CHAIN_ID": "11155111" + }, "args": [ - "services/validation/test/files/truffle-example" - ] - }, - { - "type": "node", - "request": "launch", - "name": "Validation service (truffle project - directory - missing source)", - "skipFiles": [ - "/**" + "${workspaceFolder}/test/chains/chain-tests.js", + "--no-timeout", + // Run a single test when debugging + // "--grep=Optimism", + "--exit", ], - "program": "${workspaceFolder}/services/validation/build/index.js", - "preLaunchTask": "tsc: build - services/validation/tsconfig.json", - "smartStep": true, "outFiles": [ - "${workspaceFolder}/services/validation/build/**/*.js" - ], - "args": [ - "services/validation/test/files/truffle-example-missing-source" - ] - }, - { - "type": "node", - "request": "launch", - "name": "Validation service (multiple files)", - "skipFiles": [ - "/**" + "${workspaceFolder}/dist/**/*.js", + "${workspaceFolder}/packages/**/build/**/*.js" ], - "program": "${workspaceFolder}/services/validation/build/index.js", - "preLaunchTask": "tsc: build - services/validation/tsconfig.json", "smartStep": true, - "outFiles": [ - "${workspaceFolder}/services/validation/build/**/*.js" - ], - "args": [ - "services/validation/test/files/multiple/Escrow.sol", - "services/validation/test/files/multiple/Main.sol", - "services/validation/test/files/multiple/Owned.sol", - "services/validation/test/files/multiple/provableAPI_0.6.sol", - "services/validation/test/files/multiple/Savings.sol", - "services/validation/test/files/multiple/metadata.json" - ] + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen" }, { "type": "node", "request": "launch", - "name": "Validation service (multiple files, but missing)", - "skipFiles": [ - "/**" - ], - "program": "${workspaceFolder}/services/validation/build/index.js", - "preLaunchTask": "tsc: build - services/validation/tsconfig.json", - "smartStep": true, - "outFiles": [ - "${workspaceFolder}/services/validation/build/**/*.js" - ], + "name": "Mocha - Source Fetcher", + "program": "${workspaceRoot}/node_modules/.bin/mocha", + "env": { + "TESTING": "true", + }, "args": [ - "services/validation/test/files/multiple/Main.sol", - "services/validation/test/files/multiple/provableAPI_0.6.sol", - "services/validation/test/files/multiple/Savings.sol", - "services/validation/test/files/multiple/metadata.json" - ] - }, - { - "type": "node", - "request": "launch", - "name": "Validation service (single file, altered code)", - "skipFiles": [ - "/**" + "${workspaceFolder}/test/sourceFetcher.js", + "--no-timeout", + // Run a single test when debugging + // "--grep=fallback", + "--exit", ], - "program": "${workspaceFolder}/services/validation/build/index.js", - "preLaunchTask": "tsc: build - services/validation/tsconfig.json", - "smartStep": true, "outFiles": [ - "${workspaceFolder}/services/validation/build/**/*.js" - ], - "args": [ - "services/validation/test/files/single-invalid" - ] - }, - { - "type": "node", - "request": "launch", - "name": "Validation service (single file, prepare json)", - "skipFiles": [ - "/**" + "${workspaceFolder}/dist/**/*.js", + "${workspaceFolder}/packages/**/build/**/*.js" ], - "program": "${workspaceFolder}/services/validation/build/index.js", - "preLaunchTask": "tsc: build - services/validation/tsconfig.json", "smartStep": true, - "outFiles": [ - "${workspaceFolder}/services/validation/build/**/*.js" - ], - "args": [ - "--prepare-json", - "browser/1_Storage.sol:Storage", - "services/validation/test/files/single" - ] + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen" }, - // { - // "type": "node", - // "request": "launch", - // "name": "Validation service (standard-json file input)", - // "skipFiles": [ - // "/**" - // ], - // "program": "${workspaceFolder}/services/validation/build/index.js", - // "preLaunchTask": "tsc: build - services/validation/tsconfig.json", - // "outFiles": [ - // "${workspaceFolder}/services/validation/build/**/*.js" - // ], - // "args": [ - // "services/validation/test/expected-output/single.json" - // ] - // }, - { - "type": "node", - "request": "launch", - "name": "Verification service (single file)", - "skipFiles": [ - "/**" - ], - "program": "${workspaceFolder}/services/verification/build/index.js", - "preLaunchTask": "tsc: build - services/verification/tsconfig.json", - "smartStep": true, - "outFiles": [ - "${workspaceFolder}/services/verification/build/**/*.js" - ], - "args": [ - "-c", - "1", - "-a", - "0xfff0f5801a9e13426c306455A3BcC5EF3e9BC979", - "-f", - "services/validation/test/ERC20Standard.sol", - "services/validation/test/metadata.json" - ] - } ] } \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 0153902e7..1db9c5eea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,14 @@ -FROM node:16-alpine +FROM node:latest WORKDIR /etc/sourcify COPY . . -COPY configs/chains/* services/core/src/ +COPY configs/chains/* src/ COPY configs/.env environments/.env -RUN npx lerna bootstrap && npx lerna run build +RUN npm install + +RUN npx lerna bootstrap + +RUN npx lerna run build diff --git a/LICENSE b/LICENSE index 8b23445f4..e1fd273f0 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019 +Copyright (c) 2023 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 0165e1986..23e4f1b70 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,8 @@   sourcify logo

-  + +[![codecov](https://codecov.io/gh/ethereum/sourcify/branch/staging/graph/badge.svg?token=eN6XDAwWfV&flag=server)](https://codecov.io/gh/ethereum/sourcify) Sourcify ([sourcify.dev](https://sourcify.dev)) is a Solidity source code and [metadata](https://docs.sourcify.dev/docs/metadata/) verification tool. diff --git a/Sourcify.postman_collection.json b/Sourcify.postman_collection.json deleted file mode 100644 index 1bd3c2f4e..000000000 --- a/Sourcify.postman_collection.json +++ /dev/null @@ -1,1143 +0,0 @@ -{ - "info": { - "_postman_id": "1ccf8bed-6f1c-468f-842e-e1edf1346003", - "name": "Sourcify", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" - }, - "item": [ - { - "name": "Server", - "item": [ - { - "name": "Verification API 1", - "item": [ - { - "name": "check-by-addresses", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{host}}/check-by-addresses?addresses=0x0000A906D248Cc99FB8CB296C8Ad8C6Df05431c9,0x0A67477639a71bf98528280D3724f465A1814740,0x0A67477639a71bf98528280D3724f465A1814741,0x0a06cc1Ce1105d90ce01752813449A029906aD7b&chainIds=1,3,4,5,42", - "host": [ - "{{host}}" - ], - "path": [ - "check-by-addresses" - ], - "query": [ - { - "key": "addresses", - "value": "0x0000A906D248Cc99FB8CB296C8Ad8C6Df05431c9,0x0A67477639a71bf98528280D3724f465A1814740,0x0A67477639a71bf98528280D3724f465A1814741,0x0a06cc1Ce1105d90ce01752813449A029906aD7b" - }, - { - "key": "chainIds", - "value": "1,3,4,5,42" - } - ] - } - }, - "response": [] - }, - { - "name": "verify", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "address", - "value": "0x656d0062eC89c940213E3F3170EA8b2add1c0143", - "type": "text" - }, - { - "key": "chain", - "value": "100", - "type": "text" - }, - { - "key": "files", - "type": "file", - "src": [ - "test/testcontracts/1_Storage/1_Storage.sol", - "test/testcontracts/1_Storage/metadata.json" - ] - } - ] - }, - "url": { - "raw": "{{host}}", - "host": [ - "{{host}}" - ] - } - }, - "response": [] - }, - { - "name": "verify - missing - fetch", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "address", - "value": "0x656d0062eC89c940213E3F3170EA8b2add1c0143", - "type": "text" - }, - { - "key": "chain", - "value": "100", - "type": "text" - }, - { - "key": "files", - "type": "file", - "src": "test/testcontracts/1_Storage/metadata.json" - } - ] - }, - "url": { - "raw": "{{host}}", - "host": [ - "{{host}}" - ] - } - }, - "response": [ - { - "name": "verify - missing - fetch", - "originalRequest": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "address", - "value": "0x656d0062eC89c940213E3F3170EA8b2add1c0143", - "type": "text" - }, - { - "key": "chain", - "value": "100", - "type": "text" - }, - { - "key": "files", - "type": "file", - "src": "test/testcontracts/1_Storage/metadata.json" - } - ] - }, - "url": { - "raw": "{{host}}", - "host": [ - "{{host}}" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "88" - }, - { - "key": "ETag", - "value": "W/\"58-J/J2ShSm6vDzcetM7QhLTil+co8\"" - }, - { - "key": "Set-Cookie", - "value": "sourcify_vid=s%3A1MUnH1uhcDyJytHrXoYrnU3pnYpHwg4k.ESJevK%2BKUpvwiC9MxqT%2FJTXaU%2BGKSIv3yYqJlJ4W6MA; Path=/; Expires=Wed, 20 Jan 2021 23:50:51 GMT; HttpOnly" - }, - { - "key": "Date", - "value": "Wed, 20 Jan 2021 11:50:51 GMT" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"result\": [\n {\n \"address\": \"0x656d0062eC89c940213E3F3170EA8b2add1c0143\",\n \"status\": \"perfect\"\n }\n ]\n}" - } - ] - } - ], - "event": [ - { - "listen": "prerequest", - "script": { - "type": "text/javascript", - "exec": [ - "" - ] - } - }, - { - "listen": "test", - "script": { - "type": "text/javascript", - "exec": [ - "" - ] - } - } - ] - }, - { - "name": "Verification API 2", - "item": [ - { - "name": "Add input files - success", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "files", - "type": "file", - "src": [ - "test/testcontracts/1_Storage/1_Storage.sol", - "test/testcontracts/1_Storage/metadata.json" - ] - } - ] - }, - "url": { - "raw": "{{host}}/input-files", - "host": [ - "{{host}}" - ], - "path": [ - "input-files" - ] - } - }, - "response": [ - { - "name": "Add input files - success", - "originalRequest": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "files", - "type": "file", - "src": [ - "test/testcontracts/1_Storage/1_Storage.sol", - "test/testcontracts/1_Storage/metadata.json" - ] - } - ] - }, - "url": { - "raw": "{{host}}/input-files", - "host": [ - "{{host}}" - ], - "path": [ - "input-files" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "287" - }, - { - "key": "ETag", - "value": "W/\"11f-g6j9TfRz4+JLOVlzsIMF7fjowkQ\"" - }, - { - "key": "Set-Cookie", - "value": "sourcify_vid=s%3Ai8fGEBmscCNl4g5Lr-55tEiTPRIFJZI3.i%2Bg%2B9doxHuunTqq5V6nPPsnkc5GIc8RUpuzVm2wFGqo; Path=/; Expires=Wed, 13 Jan 2021 05:40:19 GMT; HttpOnly" - }, - { - "key": "Date", - "value": "Tue, 12 Jan 2021 17:40:19 GMT" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"contracts\": [\n {\n \"verificationId\": \"0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe\",\n \"compiledPath\": \"browser/1_Storage.sol\",\n \"name\": \"Storage\",\n \"compilerVersion\": \"0.6.6+commit.6c089d02\",\n \"files\": {\n \"found\": [\n \"browser/1_Storage.sol\"\n ],\n \"missing\": []\n },\n \"status\": \"error\"\n }\n ],\n \"unused\": []\n}" - } - ] - }, - { - "name": "Add input files - source only", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "files", - "type": "file", - "src": "test/testcontracts/1_Storage/1_Storage.sol" - } - ] - }, - "url": { - "raw": "{{host}}/input-files", - "host": [ - "{{host}}" - ], - "path": [ - "input-files" - ] - } - }, - "response": [] - }, - { - "name": "Add input files - metadata only", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "files", - "type": "file", - "src": "test/testcontracts/1_Storage/metadata.json" - } - ] - }, - "url": { - "raw": "{{host}}/input-files", - "host": [ - "{{host}}" - ], - "path": [ - "input-files" - ] - } - }, - "response": [] - }, - { - "name": "Add input files - under wrong property", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "foo", - "type": "file", - "src": [ - "test/testcontracts/1_Storage/1_Storage.sol", - "test/testcontracts/1_Storage/metadata.json" - ] - } - ], - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{host}}/input-files", - "host": [ - "{{host}}" - ], - "path": [ - "input-files" - ] - } - }, - "response": [ - { - "name": "Add input files - under wrong property", - "originalRequest": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "foo", - "type": "file", - "src": [ - "test/testcontracts/1_Storage/1_Storage.sol", - "test/testcontracts/1_Storage/metadata.json" - ] - } - ], - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{host}}/input-files", - "host": [ - "{{host}}" - ], - "path": [ - "input-files" - ] - } - }, - "status": "Bad Request", - "code": 400, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "121" - }, - { - "key": "ETag", - "value": "W/\"79-9Pl/9IcyFnuW3N/TtnrOPa2mtiI\"" - }, - { - "key": "Set-Cookie", - "value": "sourcify_vid=s%3Ai8fGEBmscCNl4g5Lr-55tEiTPRIFJZI3.i%2Bg%2B9doxHuunTqq5V6nPPsnkc5GIc8RUpuzVm2wFGqo; Path=/; Expires=Wed, 13 Jan 2021 05:40:02 GMT; HttpOnly" - }, - { - "key": "Date", - "value": "Tue, 12 Jan 2021 17:40:02 GMT" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"message\": \"Validation Error: files\",\n \"errors\": [\n {\n \"field\": \"files\",\n \"message\": \"There should be files in the field\"\n }\n ]\n}" - } - ] - }, - { - "name": "Add input files - limit exceeded", - "event": [ - { - "listen": "prerequest", - "script": { - "exec": [ - "" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "files", - "type": "file", - "src": "test/sources/too_big.txt" - } - ], - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{host}}/input-files", - "host": [ - "{{host}}" - ], - "path": [ - "input-files" - ] - }, - "description": "Be sure that a large enough file exists in your working directory under `test/sources/too_big.txt`." - }, - "response": [ - { - "name": "Add input files - limit exceeded", - "originalRequest": { - "method": "POST", - "header": [], - "body": { - "mode": "formdata", - "formdata": [ - { - "key": "files", - "type": "file", - "src": "test/sources/too_big.txt" - } - ], - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{host}}/input-files", - "host": [ - "{{host}}" - ], - "path": [ - "input-files" - ] - } - }, - "status": "Payload Too Large", - "code": 413, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "83" - }, - { - "key": "ETag", - "value": "W/\"53-drvEjmV76+06di6ugalMhxKurUg\"" - }, - { - "key": "Set-Cookie", - "value": "sourcify_vid=s%3ArrXhReeKS3eFvZpiy4H2DRrDkNx4WCKA.IGXMS8eeq3xUA9rj6%2Bh0MkOJxSTbVcO5FxizXeHIvQk; Path=/; Expires=Wed, 13 Jan 2021 03:45:02 GMT; HttpOnly" - }, - { - "key": "Date", - "value": "Tue, 12 Jan 2021 15:45:02 GMT" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"error\": \"Too much session memory used. Delete some files or restart the session.\"\n}" - } - ] - }, - { - "name": "Verify validated contracts - sending an updated previously received object", - "event": [ - { - "listen": "prerequest", - "script": { - "exec": [ - "" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"contracts\": [\n {\n \"address\": \"0x656d0062eC89c940213E3F3170EA8b2add1c0143\",\n \"chainId\": \"100\",\n \"compiledPath\": \"browser/1_Storage.sol\",\n \"name\": \"Storage\",\n \"compilerVersion\": \"0.6.6+commit.6c089d02\",\n \"files\": {\n \"found\": [\n \"browser/1_Storage.sol\"\n ],\n \"missing\": []\n },\n \"verificationId\": \"0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe\",\n \"status\": \"error\"\n }\n ],\n \"unused\": []\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{host}}/verify-validated", - "host": [ - "{{host}}" - ], - "path": [ - "verify-validated" - ] - } - }, - "response": [ - { - "name": "Verify validated contracts - timestamp indicates the contract has already been verified", - "originalRequest": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"contracts\": [\n {\n \"address\": \"0x656d0062eC89c940213E3F3170EA8b2add1c0143\",\n \"chainId\": \"100\",\n \"compiledPath\": \"browser/1_Storage.sol\",\n \"name\": \"Storage\",\n \"compilerVersion\": \"0.6.6+commit.6c089d02\",\n \"files\": {\n \"found\": [\n \"browser/1_Storage.sol\"\n ],\n \"missing\": []\n },\n \"verificationId\": \"0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe\",\n \"status\": \"error\"\n }\n ],\n \"unused\": []\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{host}}/verify-validated", - "host": [ - "{{host}}" - ], - "path": [ - "verify-validated" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "408" - }, - { - "key": "ETag", - "value": "W/\"198-9VloxskbFwLWQol6jAR4WZGqD5c\"" - }, - { - "key": "Set-Cookie", - "value": "sourcify_vid=s%3ArrXhReeKS3eFvZpiy4H2DRrDkNx4WCKA.IGXMS8eeq3xUA9rj6%2Bh0MkOJxSTbVcO5FxizXeHIvQk; Path=/; Expires=Wed, 13 Jan 2021 03:47:52 GMT; HttpOnly" - }, - { - "key": "Date", - "value": "Tue, 12 Jan 2021 15:47:52 GMT" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"contracts\": [\n {\n \"verificationId\": \"0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe\",\n \"compiledPath\": \"browser/1_Storage.sol\",\n \"name\": \"Storage\",\n \"compilerVersion\": \"0.6.6+commit.6c089d02\",\n \"address\": \"0x656d0062eC89c940213E3F3170EA8b2add1c0143\",\n \"chainId\": \"100\",\n \"files\": {\n \"found\": [\n \"browser/1_Storage.sol\"\n ],\n \"missing\": []\n },\n \"status\": \"perfect\",\n \"storageTimestamp\": \"2021-01-12T15:41:56.502Z\"\n }\n ],\n \"unused\": []\n}" - }, - { - "name": "Verify validated contracts - no pending contracts", - "originalRequest": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"contracts\": [\n {\n \"address\": \"0x656d0062eC89c940213E3F3170EA8b2add1c0143\",\n \"chainId\": \"100\",\n \"compiledPath\": \"browser/1_Storage.sol\",\n \"name\": \"Storage\",\n \"compilerVersion\": \"0.6.6+commit.6c089d02\",\n \"files\": {\n \"found\": [\n \"browser/1_Storage.sol\"\n ],\n \"missing\": []\n },\n \"verificationId\": \"0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe\",\n \"status\": \"error\"\n }\n ],\n \"unused\": []\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{host}}/verify-validated", - "host": [ - "{{host}}" - ], - "path": [ - "verify-validated" - ] - } - }, - "status": "Bad Request", - "code": 400, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "53" - }, - { - "key": "ETag", - "value": "W/\"35-C1PLshiV2v4d8cihT1ADwOqiWu8\"" - }, - { - "key": "Set-Cookie", - "value": "sourcify_vid=s%3AIPLSfpM1nXFH5HzRLCxiDBDF8S7DN3BL.rInlSM2GiOhHRm8EVf6%2FN1ykqgoMW0u2YBA7Hgqa9Zw; Path=/; Expires=Thu, 07 Jan 2021 21:38:57 GMT; HttpOnly" - }, - { - "key": "Date", - "value": "Thu, 07 Jan 2021 09:38:57 GMT" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"error\": \"There are currently no pending contracts.\"\n}" - }, - { - "name": "Verify validated contracts - perfect match", - "originalRequest": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"contracts\": [\n {\n \"address\": \"0x656d0062eC89c940213E3F3170EA8b2add1c0143\",\n \"chainId\": \"100\",\n \"compiledPath\": \"browser/1_Storage.sol\",\n \"name\": \"Storage\",\n \"compilerVersion\": \"0.6.6+commit.6c089d02\",\n \"files\": {\n \"found\": [\n \"browser/1_Storage.sol\"\n ],\n \"missing\": []\n },\n \"verificationId\": \"0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe\",\n \"status\": \"error\"\n }\n ],\n \"unused\": []\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{host}}/verify-validated", - "host": [ - "{{host}}" - ], - "path": [ - "verify-validated" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "362" - }, - { - "key": "ETag", - "value": "W/\"16a-c5JVmIjf98P3pRQ6N75RG//EK8Q\"" - }, - { - "key": "Set-Cookie", - "value": "sourcify_vid=s%3AY72SfocDgz-kMzhjVWAiW4H0QjTMYdd1.n56BahjKffoLe6jRXu7xBoGiTEb2qdbTpOfPalfqSG0; Path=/; Expires=Fri, 08 Jan 2021 21:06:09 GMT; HttpOnly" - }, - { - "key": "Date", - "value": "Fri, 08 Jan 2021 09:06:09 GMT" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"contracts\": [\n {\n \"verificationId\": \"0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe\",\n \"compiledPath\": \"browser/1_Storage.sol\",\n \"name\": \"Storage\",\n \"compilerVersion\": \"0.6.6+commit.6c089d02\",\n \"address\": \"0x656d0062eC89c940213E3F3170EA8b2add1c0143\",\n \"chainId\": \"100\",\n \"files\": {\n \"found\": [\n \"browser/1_Storage.sol\"\n ],\n \"missing\": []\n },\n \"status\": \"perfect\"\n }\n ],\n \"unused\": []\n}" - } - ] - }, - { - "name": "Verify validated contracts - sending a minimum required object", - "event": [ - { - "listen": "prerequest", - "script": { - "exec": [ - "" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"contracts\": [\n {\n \"address\": \"0x656d0062eC89c940213E3F3170EA8b2add1c0143\",\n \"chainId\": \"100\",\n \"compilerVersion\": \"0.6.6+commit.6c089d02\",\n \"verificationId\": \"0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe\"\n }\n ]\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{host}}/verify-validated", - "host": [ - "{{host}}" - ], - "path": [ - "verify-validated" - ] - } - }, - "response": [ - { - "name": "Verify validated contracts - sending a minimum required object", - "originalRequest": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"contracts\": [\n {\n \"address\": \"0x656d0062eC89c940213E3F3170EA8b2add1c0143\",\n \"chainId\": \"100\",\n \"compilerVersion\": \"0.6.6+commit.6c089d02\",\n \"verificationId\": \"0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe\"\n }\n ]\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{host}}/verify-validated", - "host": [ - "{{host}}" - ], - "path": [ - "verify-validated" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "362" - }, - { - "key": "ETag", - "value": "W/\"16a-c5JVmIjf98P3pRQ6N75RG//EK8Q\"" - }, - { - "key": "Set-Cookie", - "value": "sourcify_vid=s%3AN5vxbIbh-WH2Kn0G4HAl-RSCJZ0fVAVp.vcISnogjFLgYcuZV8SwCnfI7WD46zVSzBYctSLR9g8o; Path=/; Expires=Fri, 08 Jan 2021 21:26:12 GMT; HttpOnly" - }, - { - "key": "Date", - "value": "Fri, 08 Jan 2021 09:26:12 GMT" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"contracts\": [\n {\n \"verificationId\": \"0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe\",\n \"compiledPath\": \"browser/1_Storage.sol\",\n \"name\": \"Storage\",\n \"compilerVersion\": \"0.6.6+commit.6c089d02\",\n \"address\": \"0x656d0062eC89c940213E3F3170EA8b2add1c0143\",\n \"chainId\": \"100\",\n \"files\": {\n \"found\": [\n \"browser/1_Storage.sol\"\n ],\n \"missing\": []\n },\n \"status\": \"perfect\"\n }\n ],\n \"unused\": []\n}" - } - ] - }, - { - "name": "Restart session", - "request": { - "method": "POST", - "header": [], - "url": { - "raw": "{{host}}/restart-session", - "host": [ - "{{host}}" - ], - "path": [ - "restart-session" - ] - } - }, - "response": [ - { - "name": "Restart session", - "originalRequest": { - "method": "POST", - "header": [], - "url": { - "raw": "{{host}}/restart-session", - "host": [ - "{{host}}" - ], - "path": [ - "restart-session" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "html", - "header": [ - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Content-Type", - "value": "text/html; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "30" - }, - { - "key": "ETag", - "value": "W/\"1e-5baQulxfW2hoUqBadpVkJw0XQGo\"" - }, - { - "key": "Date", - "value": "Tue, 12 Jan 2021 17:40:40 GMT" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "Session successfully restarted" - } - ] - }, - { - "name": "Get session data", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{host}}/session-data", - "host": [ - "{{host}}" - ], - "path": [ - "session-data" - ] - } - }, - "response": [ - { - "name": "Get session data", - "originalRequest": { - "method": "GET", - "header": [], - "url": { - "raw": "{{host}}/session-data", - "host": [ - "{{host}}" - ], - "path": [ - "session-data" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "287" - }, - { - "key": "ETag", - "value": "W/\"11f-g6j9TfRz4+JLOVlzsIMF7fjowkQ\"" - }, - { - "key": "Set-Cookie", - "value": "sourcify_vid=s%3AWLIDNCfu5-qhHy-k9GKHZnaE7t9PSZY6.empt4QqQV4BWfUJO0P4lOdu97W0gV5Ab%2BS40ME%2FE4SU; Path=/; Expires=Wed, 13 Jan 2021 05:41:09 GMT; HttpOnly" - }, - { - "key": "Date", - "value": "Tue, 12 Jan 2021 17:41:09 GMT" - }, - { - "key": "Connection", - "value": "keep-alive" - } - ], - "cookie": [], - "body": "{\n \"contracts\": [\n {\n \"verificationId\": \"0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe\",\n \"compiledPath\": \"browser/1_Storage.sol\",\n \"name\": \"Storage\",\n \"compilerVersion\": \"0.6.6+commit.6c089d02\",\n \"files\": {\n \"found\": [\n \"browser/1_Storage.sol\"\n ],\n \"missing\": []\n },\n \"status\": \"error\"\n }\n ],\n \"unused\": []\n}" - } - ] - } - ] - }, - { - "name": "health", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{host}}/health", - "host": [ - "{{host}}" - ], - "path": [ - "health" - ] - }, - "description": "Check server health status" - }, - "response": [] - }, - { - "name": "getTreeByChainAndAddress", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{host}}/files/tree/:chain/:address", - "host": [ - "{{host}}" - ], - "path": [ - "files", - "tree", - ":chain", - ":address" - ], - "variable": [ - { - "key": "chain", - "value": "5" - }, - { - "key": "address", - "value": "0x1fE5d745beABA808AAdF52057Dd7AAA47b42cFD0" - } - ] - } - }, - "response": [] - }, - { - "name": "getByChainAndAddress", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{host}}/files/:chain/:address", - "host": [ - "{{host}}" - ], - "path": [ - "files", - ":chain", - ":address" - ], - "variable": [ - { - "key": "chain", - "value": "5" - }, - { - "key": "address", - "value": "0x1fE5d745beABA808AAdF52057Dd7AAA47b42cFD0" - } - ] - } - }, - "response": [] - } - ] - } - ] -} \ No newline at end of file diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 000000000..69cb76019 --- /dev/null +++ b/codecov.yml @@ -0,0 +1 @@ +comment: false diff --git a/configs/chains/chains.json b/configs/chains/chains.json index 96e01e8ac..b95cb258d 100644 --- a/configs/chains/chains.json +++ b/configs/chains/chains.json @@ -1,8362 +1,18923 @@ [ - { - "name": "Ethereum Mainnet", - "chain": "ETH", - "icon": "ethereum", - "rpc": [ - "https://mainnet.infura.io/v3/${INFURA_API_KEY}", - "wss://mainnet.infura.io/ws/v3/${INFURA_API_KEY}", - "https://api.mycryptoapi.com/eth", - "https://cloudflare-eth.com" - ], - "faucets": [], - "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, - "infoURL": "https://ethereum.org", - "shortName": "eth", - "chainId": 1, - "networkId": 1, - "slip44": 60, - "ens": { "registry": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" }, - "explorers": [ - { - "name": "etherscan", - "url": "https://etherscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Expanse Network", - "chain": "EXP", - "rpc": ["https://node.expanse.tech"], - "faucets": [], - "nativeCurrency": { - "name": "Expanse Network Ether", - "symbol": "EXP", - "decimals": 18 - }, - "infoURL": "https://expanse.tech", - "shortName": "exp", - "chainId": 2, - "networkId": 1, - "slip44": 40 - }, - { - "name": "Ropsten", - "title": "Ethereum Testnet Ropsten", - "chain": "ETH", - "network": "testnet", - "rpc": [ - "https://ropsten.infura.io/v3/${INFURA_API_KEY}", - "wss://ropsten.infura.io/ws/v3/${INFURA_API_KEY}" - ], - "faucets": [ - "http://fauceth.komputing.org?chain=3&address=${ADDRESS}", - "https://faucet.ropsten.be?${ADDRESS}" - ], - "nativeCurrency": { - "name": "Ropsten Ether", - "symbol": "ROP", - "decimals": 18 + { + "name": "Ethereum Mainnet", + "chain": "ETH", + "icon": "ethereum", + "rpc": [ + "https://mainnet.infura.io/v3/${INFURA_API_KEY}", + "wss://mainnet.infura.io/ws/v3/${INFURA_API_KEY}", + "https://api.mycryptoapi.com/eth", + "https://cloudflare-eth.com", + "https://ethereum.publicnode.com" + ], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://ethereum.org", + "shortName": "eth", + "chainId": 1, + "networkId": 1, + "slip44": 60, + "ens": { "registry": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" }, + "explorers": [ + { + "name": "etherscan", + "url": "https://etherscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Expanse Network", + "chain": "EXP", + "rpc": ["https://node.expanse.tech"], + "faucets": [], + "nativeCurrency": { + "name": "Expanse Network Ether", + "symbol": "EXP", + "decimals": 18 + }, + "infoURL": "https://expanse.tech", + "shortName": "exp", + "chainId": 2, + "networkId": 1, + "slip44": 40 + }, + { + "name": "Ropsten", + "title": "Ethereum Testnet Ropsten", + "chain": "ETH", + "rpc": [ + "https://ropsten.infura.io/v3/${INFURA_API_KEY}", + "wss://ropsten.infura.io/ws/v3/${INFURA_API_KEY}" + ], + "faucets": [ + "http://fauceth.komputing.org?chain=3&address=${ADDRESS}", + "https://faucet.ropsten.be?${ADDRESS}" + ], + "nativeCurrency": { + "name": "Ropsten Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://github.com/ethereum/ropsten", + "shortName": "rop", + "chainId": 3, + "networkId": 3, + "ens": { "registry": "0x112234455c3a32fd11230c42e7bccd4a84e02010" }, + "explorers": [ + { + "name": "etherscan", + "url": "https://ropsten.etherscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Rinkeby", + "title": "Ethereum Testnet Rinkeby", + "chain": "ETH", + "rpc": [ + "https://rinkeby.infura.io/v3/${INFURA_API_KEY}", + "wss://rinkeby.infura.io/ws/v3/${INFURA_API_KEY}" + ], + "faucets": [ + "http://fauceth.komputing.org?chain=4&address=${ADDRESS}", + "https://faucet.rinkeby.io" + ], + "nativeCurrency": { + "name": "Rinkeby Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://www.rinkeby.io", + "shortName": "rin", + "chainId": 4, + "networkId": 4, + "ens": { "registry": "0xe7410170f87102df0055eb195163a03b7f2bff4a" }, + "explorers": [ + { + "name": "etherscan-rinkeby", + "url": "https://rinkeby.etherscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Goerli", + "title": "Ethereum Testnet Goerli", + "chain": "ETH", + "rpc": [ + "https://goerli.infura.io/v3/${INFURA_API_KEY}", + "wss://goerli.infura.io/v3/${INFURA_API_KEY}", + "https://rpc.goerli.mudit.blog/", + "https://ethereum-goerli.publicnode.com" + ], + "faucets": [ + "http://fauceth.komputing.org?chain=5&address=${ADDRESS}", + "https://goerli-faucet.slock.it?address=${ADDRESS}", + "https://faucet.goerli.mudit.blog" + ], + "nativeCurrency": { + "name": "Goerli Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://goerli.net/#about", + "shortName": "gor", + "chainId": 5, + "networkId": 5, + "ens": { "registry": "0x112234455c3a32fd11230c42e7bccd4a84e02010" }, + "explorers": [ + { + "name": "etherscan-goerli", + "url": "https://goerli.etherscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ethereum Classic Testnet Kotti", + "chain": "ETC", + "rpc": ["https://www.ethercluster.com/kotti"], + "faucets": [], + "nativeCurrency": { + "name": "Kotti Ether", + "symbol": "KOT", + "decimals": 18 + }, + "infoURL": "https://explorer.jade.builders/?network=kotti", + "shortName": "kot", + "chainId": 6, + "networkId": 6 + }, + { + "name": "ThaiChain", + "chain": "TCH", + "rpc": ["https://rpc.dome.cloud", "https://rpc.thaichain.org"], + "faucets": [], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "nativeCurrency": { + "name": "ThaiChain Ether", + "symbol": "TCH", + "decimals": 18 + }, + "infoURL": "https://thaichain.io", + "shortName": "tch", + "chainId": 7, + "networkId": 7, + "explorers": [ + { + "name": "Thaichain Explorer", + "url": "https://exp.thaichain.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ubiq", + "chain": "UBQ", + "rpc": ["https://rpc.octano.dev", "https://pyrus2.ubiqscan.io"], + "faucets": [], + "nativeCurrency": { "name": "Ubiq Ether", "symbol": "UBQ", "decimals": 18 }, + "infoURL": "https://ubiqsmart.com", + "shortName": "ubq", + "chainId": 8, + "networkId": 8, + "slip44": 108, + "explorers": [ + { + "name": "ubiqscan", + "url": "https://ubiqscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ubiq Network Testnet", + "chain": "UBQ", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Ubiq Testnet Ether", + "symbol": "TUBQ", + "decimals": 18 + }, + "infoURL": "https://ethersocial.org", + "shortName": "tubq", + "chainId": 9, + "networkId": 2 + }, + { + "name": "Optimism", + "chain": "ETH", + "rpc": ["https://mainnet.optimism.io/"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://optimism.io", + "shortName": "oeth", + "chainId": 10, + "networkId": 10, + "explorers": [ + { + "name": "etherscan", + "url": "https://optimistic.etherscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Metadium Mainnet", + "chain": "META", + "rpc": ["https://api.metadium.com/prod"], + "faucets": [], + "nativeCurrency": { + "name": "Metadium Mainnet Ether", + "symbol": "META", + "decimals": 18 + }, + "infoURL": "https://metadium.com", + "shortName": "meta", + "chainId": 11, + "networkId": 11, + "slip44": 916 + }, + { + "name": "Metadium Testnet", + "chain": "META", + "rpc": ["https://api.metadium.com/dev"], + "faucets": [], + "nativeCurrency": { + "name": "Metadium Testnet Ether", + "symbol": "KAL", + "decimals": 18 + }, + "infoURL": "https://metadium.com", + "shortName": "kal", + "chainId": 12, + "networkId": 12 + }, + { + "name": "Diode Testnet Staging", + "chain": "DIODE", + "rpc": ["https://staging.diode.io:8443/", "wss://staging.diode.io:8443/ws"], + "faucets": [], + "nativeCurrency": { + "name": "Staging Diodes", + "symbol": "sDIODE", + "decimals": 18 + }, + "infoURL": "https://diode.io/staging", + "shortName": "dstg", + "chainId": 13, + "networkId": 13 + }, + { + "name": "Flare Mainnet", + "chain": "FLR", + "icon": "flare", + "rpc": ["https://flare-api.flare.network/ext/C/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Flare", "symbol": "FLR", "decimals": 18 }, + "infoURL": "https://flare.xyz", + "shortName": "flr", + "chainId": 14, + "networkId": 14, + "explorers": [ + { + "name": "blockscout", + "url": "https://flare-explorer.flare.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Diode Prenet", + "chain": "DIODE", + "rpc": ["https://prenet.diode.io:8443/", "wss://prenet.diode.io:8443/ws"], + "faucets": [], + "nativeCurrency": { "name": "Diodes", "symbol": "DIODE", "decimals": 18 }, + "infoURL": "https://diode.io/prenet", + "shortName": "diode", + "chainId": 15, + "networkId": 15 + }, + { + "name": "Flare Testnet Coston", + "chain": "FLR", + "icon": "coston", + "rpc": ["https://coston-api.flare.network/ext/bc/C/rpc"], + "faucets": [ + "https://faucet.towolabs.com", + "https://fauceth.komputing.org?chain=16&address=${ADDRESS}" + ], + "nativeCurrency": { + "name": "Coston Flare", + "symbol": "CFLR", + "decimals": 18 + }, + "infoURL": "https://flare.xyz", + "shortName": "cflr", + "chainId": 16, + "networkId": 16, + "explorers": [ + { + "name": "blockscout", + "url": "https://coston-explorer.flare.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "ThaiChain 2.0 ThaiFi", + "chain": "TCH", + "rpc": ["https://rpc.thaifi.com"], + "faucets": [], + "nativeCurrency": { + "name": "Thaifi Ether", + "symbol": "TFI", + "decimals": 18 + }, + "infoURL": "https://exp.thaifi.com", + "shortName": "tfi", + "chainId": 17, + "networkId": 17 + }, + { + "name": "ThunderCore Testnet", + "chain": "TST", + "rpc": ["https://testnet-rpc.thundercore.com"], + "faucets": ["https://faucet-testnet.thundercore.com"], + "nativeCurrency": { + "name": "ThunderCore Testnet Token", + "symbol": "TST", + "decimals": 18 + }, + "infoURL": "https://thundercore.com", + "shortName": "TST", + "chainId": 18, + "networkId": 18, + "explorers": [ + { + "name": "thundercore-blockscout-testnet", + "url": "https://explorer-testnet.thundercore.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Songbird Canary-Network", + "chain": "SGB", + "icon": "songbird", + "rpc": [ + "https://songbird-api.flare.network/ext/C/rpc", + "https://sgb.ftso.com.au/ext/bc/C/rpc", + "https://sgb.lightft.so/rpc", + "https://sgb-rpc.ftso.eu" + ], + "faucets": [], + "nativeCurrency": { "name": "Songbird", "symbol": "SGB", "decimals": 18 }, + "infoURL": "https://flare.xyz", + "shortName": "sgb", + "chainId": 19, + "networkId": 19, + "explorers": [ + { + "name": "blockscout", + "url": "https://songbird-explorer.flare.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Elastos Smart Chain", + "chain": "ETH", + "rpc": ["https://api.elastos.io/eth"], + "faucets": ["https://faucet.elastos.org/"], + "nativeCurrency": { "name": "Elastos", "symbol": "ELA", "decimals": 18 }, + "infoURL": "https://www.elastos.org/", + "shortName": "esc", + "chainId": 20, + "networkId": 20, + "explorers": [ + { + "name": "elastos esc explorer", + "url": "https://esc.elastos.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Elastos Smart Chain Testnet", + "chain": "ETH", + "rpc": ["https://api-testnet.elastos.io/eth"], + "faucets": ["https://esc-faucet.elastos.io/"], + "nativeCurrency": { "name": "Elastos", "symbol": "tELA", "decimals": 18 }, + "infoURL": "https://www.elastos.org/", + "shortName": "esct", + "chainId": 21, + "networkId": 21, + "explorers": [ + { + "name": "elastos esc explorer", + "url": "https://esc-testnet.elastos.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "ELA-DID-Sidechain Mainnet", + "chain": "ETH", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Elastos", "symbol": "ELA", "decimals": 18 }, + "infoURL": "https://www.elastos.org/", + "shortName": "eladid", + "chainId": 22, + "networkId": 22 + }, + { + "name": "ELA-DID-Sidechain Testnet", + "chain": "ETH", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Elastos", "symbol": "tELA", "decimals": 18 }, + "infoURL": "https://elaeth.io/", + "shortName": "eladidt", + "chainId": 23, + "networkId": 23 + }, + { + "name": "KardiaChain Mainnet", + "chain": "KAI", + "icon": "kardiachain", + "rpc": ["https://rpc.kardiachain.io"], + "faucets": [], + "nativeCurrency": { + "name": "KardiaChain", + "symbol": "KAI", + "decimals": 18 + }, + "infoURL": "https://kardiachain.io", + "shortName": "kardiachain", + "chainId": 24, + "networkId": 0, + "redFlags": ["reusedChainId"] + }, + { + "name": "Cronos Mainnet Beta", + "chain": "CRO", + "rpc": ["https://evm.cronos.org", "https://cronos-evm.publicnode.com"], + "features": [{ "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "Cronos", "symbol": "CRO", "decimals": 18 }, + "infoURL": "https://cronos.org/", + "shortName": "cro", + "chainId": 25, + "networkId": 25, + "explorers": [ + { + "name": "Cronos Explorer", + "url": "https://cronoscan.com", + "standard": "none" + } + ] + }, + { + "name": "Genesis L1 testnet", + "chain": "genesis", + "rpc": ["https://testrpc.genesisl1.org"], + "faucets": [], + "nativeCurrency": { + "name": "L1 testcoin", + "symbol": "L1test", + "decimals": 18 + }, + "infoURL": "https://www.genesisl1.com", + "shortName": "L1test", + "chainId": 26, + "networkId": 26, + "explorers": [ + { + "name": "Genesis L1 testnet explorer", + "url": "https://testnet.genesisl1.org", + "standard": "none" + } + ] + }, + { + "name": "ShibaChain", + "chain": "SHIB", + "rpc": ["https://rpc.shibchain.org"], + "faucets": [], + "nativeCurrency": { + "name": "SHIBA INU COIN", + "symbol": "SHIB", + "decimals": 18 + }, + "infoURL": "https://shibchain.org", + "shortName": "shib", + "chainId": 27, + "networkId": 27, + "explorers": [ + { + "name": "Shiba Explorer", + "url": "https://exp.shibchain.org", + "standard": "none" + } + ] + }, + { + "name": "Boba Network Rinkeby Testnet", + "chain": "ETH", + "rpc": ["https://rinkeby.boba.network/"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://boba.network", + "shortName": "BobaRinkeby", + "chainId": 28, + "networkId": 28, + "explorers": [ + { + "name": "Blockscout", + "url": "https://blockexplorer.rinkeby.boba.network", + "standard": "none" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-4", + "bridges": [{ "url": "https://gateway.rinkeby.boba.network" }] + } + }, + { + "name": "Genesis L1", + "chain": "genesis", + "rpc": ["https://rpc.genesisl1.org"], + "faucets": [], + "nativeCurrency": { "name": "L1 coin", "symbol": "L1", "decimals": 18 }, + "infoURL": "https://www.genesisl1.com", + "shortName": "L1", + "chainId": 29, + "networkId": 29, + "explorers": [ + { + "name": "Genesis L1 blockchain explorer", + "url": "https://explorer.genesisl1.org", + "standard": "none" + } + ] + }, + { + "name": "RSK Mainnet", + "chain": "RSK", + "rpc": ["https://public-node.rsk.co", "https://mycrypto.rsk.co"], + "faucets": ["https://faucet.rsk.co/"], + "nativeCurrency": { + "name": "Smart Bitcoin", + "symbol": "RBTC", + "decimals": 18 + }, + "infoURL": "https://rsk.co", + "shortName": "rsk", + "chainId": 30, + "networkId": 30, + "slip44": 137, + "explorers": [ + { + "name": "RSK Explorer", + "url": "https://explorer.rsk.co", + "standard": "EIP3091" + } + ] + }, + { + "name": "RSK Testnet", + "chain": "RSK", + "rpc": [ + "https://public-node.testnet.rsk.co", + "https://mycrypto.testnet.rsk.co" + ], + "faucets": ["https://faucet.rsk.co/"], + "nativeCurrency": { + "name": "Testnet Smart Bitcoin", + "symbol": "tRBTC", + "decimals": 18 + }, + "infoURL": "https://rsk.co", + "shortName": "trsk", + "chainId": 31, + "networkId": 31, + "explorers": [ + { + "name": "RSK Testnet Explorer", + "url": "https://explorer.testnet.rsk.co", + "standard": "EIP3091" + } + ] + }, + { + "name": "GoodData Testnet", + "chain": "GooD", + "rpc": ["https://test2.goodata.io"], + "faucets": [], + "nativeCurrency": { + "name": "GoodData Testnet Ether", + "symbol": "GooD", + "decimals": 18 + }, + "infoURL": "https://www.goodata.org", + "shortName": "GooDT", + "chainId": 32, + "networkId": 32 + }, + { + "name": "GoodData Mainnet", + "chain": "GooD", + "rpc": ["https://rpc.goodata.io"], + "faucets": [], + "nativeCurrency": { + "name": "GoodData Mainnet Ether", + "symbol": "GooD", + "decimals": 18 + }, + "infoURL": "https://www.goodata.org", + "shortName": "GooD", + "chainId": 33, + "networkId": 33 + }, + { + "name": "Dithereum Testnet", + "chain": "DTH", + "icon": "dithereum", + "rpc": ["https://node-testnet.dithereum.io"], + "faucets": ["https://faucet.dithereum.org"], + "nativeCurrency": { "name": "Dither", "symbol": "DTH", "decimals": 18 }, + "infoURL": "https://dithereum.org", + "shortName": "dth", + "chainId": 34, + "networkId": 34 + }, + { + "name": "TBWG Chain", + "chain": "TBWG", + "rpc": ["https://rpc.tbwg.io"], + "faucets": [], + "nativeCurrency": { "name": "TBWG Ether", "symbol": "TBG", "decimals": 18 }, + "infoURL": "https://tbwg.io", + "shortName": "tbwg", + "chainId": 35, + "networkId": 35 + }, + { + "name": "Dxchain Mainnet", + "chain": "Dxchain", + "icon": "dx", + "rpc": ["https://mainnet.dxchain.com"], + "faucets": [], + "nativeCurrency": { "name": "Dxchain", "symbol": "DX", "decimals": 18 }, + "infoURL": "https://www.dxchain.com/", + "shortName": "dx", + "chainId": 36, + "networkId": 36, + "explorers": [ + { "name": "dxscan", "url": "https://dxscan.io", "standard": "EIP3091" } + ] + }, + { + "name": "SeedCoin-Network", + "chain": "SeedCoin-Network", + "rpc": ["https://node.seedcoin.network"], + "faucets": [], + "nativeCurrency": { "name": "SeedCoin", "symbol": "SEED", "decimals": 18 }, + "infoURL": "https://www.seedcoin.network/", + "shortName": "SEED", + "icon": "seedcoin", + "chainId": 37, + "networkId": 37 + }, + { + "name": "Valorbit", + "chain": "VAL", + "rpc": ["https://rpc.valorbit.com/v2"], + "faucets": [], + "nativeCurrency": { "name": "Valorbit", "symbol": "VAL", "decimals": 18 }, + "infoURL": "https://valorbit.com", + "shortName": "val", + "chainId": 38, + "networkId": 38, + "slip44": 538 + }, + { + "name": "Unicorn Ultra Testnet", + "chain": "u2u", + "rpc": ["https://rpc-testnet.uniultra.xyz"], + "faucets": ["https://faucet.uniultra.xyz"], + "nativeCurrency": { + "name": "Unicorn Ultra", + "symbol": "U2U", + "decimals": 18 + }, + "infoURL": "https://uniultra.xyz", + "shortName": "u2u", + "chainId": 39, + "networkId": 39, + "icon": "u2u", + "explorers": [ + { + "icon": "u2u", + "name": "U2U Explorer", + "url": "https://testnet.uniultra.xyz", + "standard": "EIP3091" + } + ] + }, + { + "name": "Telos EVM Mainnet", + "chain": "TLOS", + "rpc": ["https://mainnet.telos.net/evm"], + "faucets": [], + "nativeCurrency": { "name": "Telos", "symbol": "TLOS", "decimals": 18 }, + "infoURL": "https://telos.net", + "shortName": "TelosEVM", + "chainId": 40, + "networkId": 40, + "explorers": [ + { + "name": "teloscan", + "url": "https://teloscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Telos EVM Testnet", + "chain": "TLOS", + "rpc": ["https://testnet.telos.net/evm"], + "faucets": ["https://app.telos.net/testnet/developers"], + "nativeCurrency": { "name": "Telos", "symbol": "TLOS", "decimals": 18 }, + "infoURL": "https://telos.net", + "shortName": "TelosEVMTestnet", + "chainId": 41, + "networkId": 41, + "explorers": [ + { + "name": "teloscan", + "url": "https://testnet.teloscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "LUKSO Mainnet", + "chain": "LUKSO", + "icon": "lukso", + "rpc": [ + "https://rpc.mainnet.lukso.network", + "wss://ws-rpc.mainnet.lukso.network" + ], + "faucets": [], + "nativeCurrency": { "name": "LUKSO", "symbol": "LYX", "decimals": 18 }, + "explorers": [ + { + "name": "Blockscout", + "url": "https://explorer.execution.mainnet.lukso.network", + "standard": "EIP3091" + } + ], + "infoURL": "https://lukso.network", + "shortName": "lukso", + "chainId": 42, + "networkId": 42, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "redFlags": ["reusedChainId"] + }, + { + "name": "Darwinia Pangolin Testnet", + "chain": "pangolin", + "rpc": ["https://pangolin-rpc.darwinia.network"], + "faucets": [ + "https://docs.crab.network/dvm/wallets/dvm-metamask#apply-for-the-test-token" + ], + "nativeCurrency": { + "name": "Pangolin Network Native Token", + "symbol": "PRING", + "decimals": 18 + }, + "infoURL": "https://darwinia.network/", + "shortName": "pangolin", + "chainId": 43, + "networkId": 43, + "explorers": [ + { + "name": "subscan", + "url": "https://pangolin.subscan.io", + "standard": "none" + } + ] + }, + { + "name": "Darwinia Crab Network", + "chain": "crab", + "rpc": ["https://crab-rpc.darwinia.network"], + "faucets": [], + "nativeCurrency": { + "name": "Crab Network Native Token", + "symbol": "CRAB", + "decimals": 18 + }, + "infoURL": "https://crab.network/", + "shortName": "crab", + "chainId": 44, + "networkId": 44, + "explorers": [ + { + "name": "subscan", + "url": "https://crab.subscan.io", + "standard": "none" + } + ] + }, + { + "name": "Darwinia Pangoro Testnet", + "chain": "pangoro", + "rpc": ["https://pangoro-rpc.darwinia.network"], + "faucets": [], + "nativeCurrency": { + "name": "Pangoro Network Native Token", + "symbol": "ORING", + "decimals": 18 + }, + "infoURL": "https://darwinia.network/", + "shortName": "pangoro", + "chainId": 45, + "networkId": 45, + "explorers": [ + { + "name": "subscan", + "url": "https://pangoro.subscan.io", + "standard": "none" + } + ] + }, + { + "name": "Darwinia Network", + "chain": "darwinia", + "rpc": ["https://rpc.darwinia.network"], + "faucets": [], + "nativeCurrency": { + "name": "Darwinia Network Native Token", + "symbol": "RING", + "decimals": 18 + }, + "infoURL": "https://darwinia.network/", + "shortName": "darwinia", + "chainId": 46, + "networkId": 46, + "explorers": [ + { + "name": "subscan", + "url": "https://darwinia.subscan.io", + "standard": "none" + } + ] + }, + { + "name": "Acria IntelliChain", + "chain": "AIC", + "rpc": ["https://aic.acria.ai"], + "faucets": [], + "nativeCurrency": { "name": "ACRIA", "symbol": "ACRIA", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://acria.ai", + "shortName": "aic", + "chainId": 47, + "networkId": 47, + "explorers": [ + { + "name": "Acria IntelliChain-Explorer", + "url": "https://explorer.acria.ai", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ennothem Mainnet Proterozoic", + "chain": "ETMP", + "rpc": ["https://rpc.etm.network"], + "faucets": [], + "nativeCurrency": { "name": "Ennothem", "symbol": "ETMP", "decimals": 18 }, + "infoURL": "https://etm.network", + "shortName": "etmp", + "chainId": 48, + "networkId": 48, + "icon": "etmp", + "explorers": [ + { + "name": "etmpscan", + "url": "https://etmscan.network", + "icon": "etmp", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ennothem Testnet Pioneer", + "chain": "ETMP", + "rpc": ["https://rpc.pioneer.etm.network"], + "faucets": [], + "nativeCurrency": { "name": "Ennothem", "symbol": "ETMP", "decimals": 18 }, + "infoURL": "https://etm.network", + "shortName": "etmpTest", + "chainId": 49, + "networkId": 49, + "icon": "etmp", + "explorers": [ + { + "name": "etmp", + "url": "https://pioneer.etmscan.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "XinFin XDC Network", + "chain": "XDC", + "rpc": [ + "https://erpc.xinfin.network", + "https://rpc.xinfin.network", + "https://rpc1.xinfin.network", + "https://rpc-xdc.icecreamswap.com" + ], + "faucets": [], + "nativeCurrency": { "name": "XinFin", "symbol": "XDC", "decimals": 18 }, + "infoURL": "https://xinfin.org", + "shortName": "xdc", + "chainId": 50, + "networkId": 50, + "icon": "xdc", + "explorers": [ + { + "name": "xdcscan", + "url": "https://xdcscan.io", + "icon": "blocksscan", + "standard": "EIP3091" }, - "infoURL": "https://github.com/ethereum/ropsten", - "shortName": "rop", - "chainId": 3, - "networkId": 3, - "ens": { "registry": "0x112234455c3a32fd11230c42e7bccd4a84e02010" }, - "explorers": [ - { - "name": "etherscan", - "url": "https://ropsten.etherscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Rinkeby", - "title": "Ethereum Testnet Rinkeby", - "chain": "ETH", - "network": "testnet", - "rpc": [ - "https://rinkeby.infura.io/v3/${INFURA_API_KEY}", - "wss://rinkeby.infura.io/ws/v3/${INFURA_API_KEY}" - ], - "faucets": [ - "http://fauceth.komputing.org?chain=4&address=${ADDRESS}", - "https://faucet.rinkeby.io" - ], - "nativeCurrency": { - "name": "Rinkeby Ether", - "symbol": "RIN", - "decimals": 18 + { + "name": "blocksscan", + "url": "https://xdc.blocksscan.io", + "icon": "blocksscan", + "standard": "EIP3091" + } + ] + }, + { + "name": "XDC Apothem Network", + "chain": "XDC", + "rpc": ["https://rpc.apothem.network", "https://erpc.apothem.network"], + "faucets": ["https://faucet.apothem.network"], + "nativeCurrency": { "name": "XinFin", "symbol": "TXDC", "decimals": 18 }, + "infoURL": "https://xinfin.org", + "shortName": "txdc", + "chainId": 51, + "networkId": 51, + "icon": "xdc", + "explorers": [ + { + "name": "xdcscan", + "url": "https://apothem.xinfinscan.com", + "icon": "blocksscan", + "standard": "EIP3091" }, - "infoURL": "https://www.rinkeby.io", - "shortName": "rin", - "chainId": 4, - "networkId": 4, - "ens": { "registry": "0xe7410170f87102df0055eb195163a03b7f2bff4a" }, - "explorers": [ - { - "name": "etherscan-rinkeby", - "url": "https://rinkeby.etherscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Görli", - "title": "Ethereum Testnet Görli", - "chain": "ETH", - "network": "testnet", - "rpc": [ - "https://goerli.infura.io/v3/${INFURA_API_KEY}", - "wss://goerli.infura.io/v3/${INFURA_API_KEY}", - "https://rpc.goerli.mudit.blog/" - ], - "faucets": [ - "http://fauceth.komputing.org?chain=5&address=${ADDRESS}", - "https://goerli-faucet.slock.it?address=${ADDRESS}", - "https://faucet.goerli.mudit.blog" - ], - "nativeCurrency": { - "name": "Görli Ether", - "symbol": "GOR", - "decimals": 18 + { + "name": "blocksscan", + "url": "https://apothem.blocksscan.io", + "icon": "blocksscan", + "standard": "EIP3091" + } + ] + }, + { + "name": "CoinEx Smart Chain Mainnet", + "chain": "CSC", + "rpc": ["https://rpc.coinex.net"], + "faucets": [], + "nativeCurrency": { + "name": "CoinEx Chain Native Token", + "symbol": "cet", + "decimals": 18 + }, + "infoURL": "https://www.coinex.org/", + "shortName": "cet", + "chainId": 52, + "networkId": 52, + "explorers": [ + { + "name": "coinexscan", + "url": "https://www.coinex.net", + "standard": "none" + } + ] + }, + { + "name": "CoinEx Smart Chain Testnet", + "chain": "CSC", + "rpc": ["https://testnet-rpc.coinex.net/"], + "faucets": [], + "nativeCurrency": { + "name": "CoinEx Chain Test Native Token", + "symbol": "cett", + "decimals": 18 + }, + "infoURL": "https://www.coinex.org/", + "shortName": "tcet", + "chainId": 53, + "networkId": 53, + "explorers": [ + { + "name": "coinexscan", + "url": "https://testnet.coinex.net", + "standard": "none" + } + ] + }, + { + "name": "Openpiece Mainnet", + "chain": "OPENPIECE", + "icon": "openpiece", + "rpc": ["https://mainnet.openpiece.io"], + "faucets": [], + "nativeCurrency": { "name": "Belly", "symbol": "BELLY", "decimals": 18 }, + "infoURL": "https://cryptopiece.online", + "shortName": "OP", + "chainId": 54, + "networkId": 54, + "explorers": [ + { + "name": "Belly Scan", + "url": "https://bellyscan.com", + "standard": "none" + } + ] + }, + { + "name": "Zyx Mainnet", + "chain": "ZYX", + "rpc": [ + "https://rpc-1.zyx.network/", + "https://rpc-2.zyx.network/", + "https://rpc-3.zyx.network/", + "https://rpc-4.zyx.network/", + "https://rpc-5.zyx.network/", + "https://rpc-6.zyx.network/" + ], + "faucets": [], + "nativeCurrency": { "name": "Zyx", "symbol": "ZYX", "decimals": 18 }, + "infoURL": "https://zyx.network/", + "shortName": "ZYX", + "chainId": 55, + "networkId": 55, + "explorers": [ + { "name": "zyxscan", "url": "https://zyxscan.com", "standard": "none" } + ] + }, + { + "name": "Binance Smart Chain Mainnet", + "chain": "BSC", + "rpc": [ + "https://bsc-dataseed1.binance.org", + "https://bsc-dataseed2.binance.org", + "https://bsc-dataseed3.binance.org", + "https://bsc-dataseed4.binance.org", + "https://bsc-dataseed1.defibit.io", + "https://bsc-dataseed2.defibit.io", + "https://bsc-dataseed3.defibit.io", + "https://bsc-dataseed4.defibit.io", + "https://bsc-dataseed1.ninicoin.io", + "https://bsc-dataseed2.ninicoin.io", + "https://bsc-dataseed3.ninicoin.io", + "https://bsc-dataseed4.ninicoin.io", + "https://bsc.publicnode.com", + "wss://bsc-ws-node.nariox.org" + ], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], + "nativeCurrency": { + "name": "Binance Chain Native Token", + "symbol": "BNB", + "decimals": 18 + }, + "infoURL": "https://www.binance.org", + "shortName": "bnb", + "chainId": 56, + "networkId": 56, + "slip44": 714, + "explorers": [ + { "name": "bscscan", "url": "https://bscscan.com", "standard": "EIP3091" } + ] + }, + { + "name": "Syscoin Mainnet", + "chain": "SYS", + "rpc": [ + "https://rpc.syscoin.org", + "https://rpc.ankr.com/syscoin/${ANKR_API_KEY}", + "https://syscoin.public-rpc.com", + "wss://rpc.syscoin.org/wss" + ], + "faucets": ["https://faucet.syscoin.org"], + "nativeCurrency": { "name": "Syscoin", "symbol": "SYS", "decimals": 18 }, + "infoURL": "https://www.syscoin.org", + "shortName": "sys", + "chainId": 57, + "networkId": 57, + "explorers": [ + { + "name": "Syscoin Block Explorer", + "url": "https://explorer.syscoin.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ontology Mainnet", + "chain": "Ontology", + "icon": "ontology", + "rpc": [ + "http://dappnode1.ont.io:20339", + "http://dappnode2.ont.io:20339", + "http://dappnode3.ont.io:20339", + "http://dappnode4.ont.io:20339", + "https://dappnode1.ont.io:10339", + "https://dappnode2.ont.io:10339", + "https://dappnode3.ont.io:10339", + "https://dappnode4.ont.io:10339" + ], + "faucets": [], + "nativeCurrency": { "name": "ONG", "symbol": "ONG", "decimals": 18 }, + "infoURL": "https://ont.io/", + "shortName": "OntologyMainnet", + "chainId": 58, + "networkId": 58, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.ont.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "EOS EVM Legacy", + "chain": "EOS", + "rpc": ["https://api.eosargentina.io"], + "faucets": [], + "nativeCurrency": { "name": "EOS", "symbol": "EOS", "decimals": 18 }, + "infoURL": "https://eosargentina.io", + "shortName": "eos-legacy", + "chainId": 59, + "networkId": 59, + "explorers": [], + "status": "deprecated" + }, + { + "name": "GoChain", + "chain": "GO", + "rpc": ["https://rpc.gochain.io"], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], + "nativeCurrency": { + "name": "GoChain Ether", + "symbol": "GO", + "decimals": 18 + }, + "infoURL": "https://gochain.io", + "shortName": "go", + "chainId": 60, + "networkId": 60, + "slip44": 6060, + "explorers": [ + { + "name": "GoChain Explorer", + "url": "https://explorer.gochain.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ethereum Classic Mainnet", + "chain": "ETC", + "rpc": ["https://www.ethercluster.com/etc"], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/?"], + "nativeCurrency": { + "name": "Ethereum Classic Ether", + "symbol": "ETC", + "decimals": 18 + }, + "infoURL": "https://ethereumclassic.org", + "shortName": "etc", + "chainId": 61, + "networkId": 1, + "slip44": 61, + "explorers": [ + { + "name": "blockscout", + "url": "https://blockscout.com/etc/mainnet", + "standard": "none" + } + ] + }, + { + "name": "Ethereum Classic Testnet Morden", + "chain": "ETC", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Ethereum Classic Testnet Ether", + "symbol": "TETC", + "decimals": 18 + }, + "infoURL": "https://ethereumclassic.org", + "shortName": "tetc", + "chainId": 62, + "networkId": 2 + }, + { + "name": "Ethereum Classic Testnet Mordor", + "chain": "ETC", + "rpc": ["https://www.ethercluster.com/mordor"], + "faucets": [], + "nativeCurrency": { + "name": "Mordor Classic Testnet Ether", + "symbol": "METC", + "decimals": 18 + }, + "infoURL": "https://github.com/eth-classic/mordor/", + "shortName": "metc", + "chainId": 63, + "networkId": 7 + }, + { + "name": "Ellaism", + "chain": "ELLA", + "rpc": ["https://jsonrpc.ellaism.org"], + "faucets": [], + "nativeCurrency": { + "name": "Ellaism Ether", + "symbol": "ELLA", + "decimals": 18 + }, + "infoURL": "https://ellaism.org", + "shortName": "ellaism", + "chainId": 64, + "networkId": 64, + "slip44": 163 + }, + { + "name": "OKExChain Testnet", + "chain": "okexchain", + "rpc": ["https://exchaintestrpc.okex.org"], + "faucets": ["https://www.okex.com/drawdex"], + "nativeCurrency": { + "name": "OKExChain Global Utility Token in testnet", + "symbol": "OKT", + "decimals": 18 + }, + "infoURL": "https://www.okex.com/okexchain", + "shortName": "tokt", + "chainId": 65, + "networkId": 65, + "explorers": [ + { + "name": "OKLink", + "url": "https://www.oklink.com/okexchain-test", + "standard": "EIP3091" + } + ] + }, + { + "name": "OKXChain Mainnet", + "chain": "okxchain", + "rpc": [ + "https://exchainrpc.okex.org", + "https://okc-mainnet.gateway.pokt.network/v1/lb/6275309bea1b320039c893ff" + ], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/?"], + "nativeCurrency": { + "name": "OKXChain Global Utility Token", + "symbol": "OKT", + "decimals": 18 + }, + "infoURL": "https://www.okex.com/okc", + "shortName": "okt", + "chainId": 66, + "networkId": 66, + "explorers": [ + { + "name": "OKLink", + "url": "https://www.oklink.com/en/okc", + "standard": "EIP3091" + } + ] + }, + { + "name": "DBChain Testnet", + "chain": "DBM", + "rpc": ["http://test-rpc.dbmbp.com"], + "faucets": [], + "nativeCurrency": { + "name": "DBChain Testnet", + "symbol": "DBM", + "decimals": 18 + }, + "infoURL": "http://test.dbmbp.com", + "shortName": "dbm", + "chainId": 67, + "networkId": 67 + }, + { + "name": "SoterOne Mainnet", + "chain": "SOTER", + "rpc": ["https://rpc.soter.one"], + "faucets": [], + "nativeCurrency": { + "name": "SoterOne Mainnet Ether", + "symbol": "SOTER", + "decimals": 18 + }, + "infoURL": "https://www.soterone.com", + "shortName": "SO1", + "chainId": 68, + "networkId": 68 + }, + { + "name": "Optimism Kovan", + "title": "Optimism Testnet Kovan", + "chain": "ETH", + "rpc": ["https://kovan.optimism.io/"], + "faucets": ["http://fauceth.komputing.org?chain=69&address=${ADDRESS}"], + "nativeCurrency": { + "name": "Kovan Ether", + "symbol": "ETH", + "decimals": 18 + }, + "explorers": [ + { + "name": "etherscan", + "url": "https://kovan-optimistic.etherscan.io", + "standard": "EIP3091" + } + ], + "infoURL": "https://optimism.io", + "shortName": "okov", + "chainId": 69, + "networkId": 69 + }, + { + "name": "Hoo Smart Chain", + "chain": "HSC", + "rpc": [ + "https://http-mainnet.hoosmartchain.com", + "https://http-mainnet2.hoosmartchain.com", + "wss://ws-mainnet.hoosmartchain.com", + "wss://ws-mainnet2.hoosmartchain.com" + ], + "faucets": [], + "nativeCurrency": { + "name": "Hoo Smart Chain Native Token", + "symbol": "HOO", + "decimals": 18 + }, + "infoURL": "https://www.hoosmartchain.com", + "shortName": "hsc", + "chainId": 70, + "networkId": 70, + "slip44": 1170, + "explorers": [ + { + "name": "hooscan", + "url": "https://www.hooscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Conflux eSpace (Testnet)", + "chain": "Conflux", + "rpc": ["https://evmtestnet.confluxrpc.com"], + "faucets": ["https://faucet.confluxnetwork.org"], + "nativeCurrency": { "name": "CFX", "symbol": "CFX", "decimals": 18 }, + "infoURL": "https://confluxnetwork.org", + "shortName": "cfxtest", + "chainId": 71, + "networkId": 71, + "icon": "conflux", + "explorers": [ + { + "name": "Conflux Scan", + "url": "https://evmtestnet.confluxscan.net", + "standard": "none" + } + ] + }, + { + "name": "DxChain Testnet", + "chain": "DxChain", + "rpc": ["https://testnet-http.dxchain.com"], + "faucets": ["https://faucet.dxscan.io"], + "nativeCurrency": { + "name": "DxChain Testnet", + "symbol": "DX", + "decimals": 18 + }, + "infoURL": "https://testnet.dxscan.io/", + "shortName": "dxc", + "chainId": 72, + "networkId": 72 + }, + { + "name": "FNCY", + "chain": "FNCY", + "rpc": ["https://fncy-seed1.fncy.world"], + "faucets": ["https://faucet-testnet.fncy.world"], + "nativeCurrency": { "name": "FNCY", "symbol": "FNCY", "decimals": 18 }, + "infoURL": "https://fncyscan.fncy.world", + "shortName": "FNCY", + "chainId": 73, + "networkId": 73, + "icon": "fncy", + "explorers": [ + { + "name": "fncy scan", + "url": "https://fncyscan.fncy.world", + "icon": "fncy", + "standard": "EIP3091" + } + ] + }, + { + "name": "IDChain Mainnet", + "chain": "IDChain", + "rpc": ["https://idchain.one/rpc/", "wss://idchain.one/ws/"], + "faucets": [], + "nativeCurrency": { "name": "EIDI", "symbol": "EIDI", "decimals": 18 }, + "infoURL": "https://idchain.one/begin/", + "shortName": "idchain", + "chainId": 74, + "networkId": 74, + "icon": "idchain", + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.idchain.one", + "standard": "EIP3091" + } + ] + }, + { + "name": "Decimal Smart Chain Mainnet", + "chain": "DSC", + "rpc": ["https://node.decimalchain.com/web3"], + "faucets": [], + "nativeCurrency": { "name": "Decimal", "symbol": "DEL", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://decimalchain.com", + "shortName": "DSC", + "chainId": 75, + "networkId": 75, + "icon": "dsc", + "explorers": [ + { + "name": "DSC Explorer Mainnet", + "url": "https://explorer.decimalchain.com", + "icon": "dsc", + "standard": "EIP3091" + } + ] + }, + { + "name": "Mix", + "chain": "MIX", + "rpc": ["https://rpc2.mix-blockchain.org:8647"], + "faucets": [], + "nativeCurrency": { "name": "Mix Ether", "symbol": "MIX", "decimals": 18 }, + "infoURL": "https://mix-blockchain.org", + "shortName": "mix", + "chainId": 76, + "networkId": 76, + "slip44": 76 + }, + { + "name": "POA Network Sokol", + "chain": "POA", + "rpc": [ + "https://sokol.poa.network", + "wss://sokol.poa.network/wss", + "ws://sokol.poa.network:8546" + ], + "faucets": ["https://faucet.poa.network"], + "nativeCurrency": { + "name": "POA Sokol Ether", + "symbol": "SPOA", + "decimals": 18 + }, + "infoURL": "https://poa.network", + "shortName": "spoa", + "chainId": 77, + "networkId": 77, + "explorers": [ + { + "name": "blockscout", + "url": "https://blockscout.com/poa/sokol", + "standard": "none" + } + ] + }, + { + "name": "PrimusChain mainnet", + "chain": "PC", + "rpc": ["https://ethnode.primusmoney.com/mainnet"], + "faucets": [], + "nativeCurrency": { + "name": "Primus Ether", + "symbol": "PETH", + "decimals": 18 + }, + "infoURL": "https://primusmoney.com", + "shortName": "primuschain", + "chainId": 78, + "networkId": 78 + }, + { + "name": "Zenith Mainnet", + "chain": "Zenith", + "rpc": [ + "https://dataserver-us-1.zenithchain.co/", + "https://dataserver-asia-3.zenithchain.co/", + "https://dataserver-asia-4.zenithchain.co/", + "https://dataserver-asia-2.zenithchain.co/", + "https://dataserver-asia-5.zenithchain.co/", + "https://dataserver-asia-6.zenithchain.co/", + "https://dataserver-asia-7.zenithchain.co/" + ], + "faucets": [], + "nativeCurrency": { "name": "ZENITH", "symbol": "ZENITH", "decimals": 18 }, + "infoURL": "https://www.zenithchain.co/", + "chainId": 79, + "networkId": 79, + "shortName": "zenith", + "explorers": [ + { + "name": "zenith scan", + "url": "https://scan.zenithchain.co", + "standard": "EIP3091" + } + ] + }, + { + "name": "GeneChain", + "chain": "GeneChain", + "rpc": ["https://rpc.genechain.io"], + "faucets": [], + "nativeCurrency": { "name": "RNA", "symbol": "RNA", "decimals": 18 }, + "infoURL": "https://scan.genechain.io/", + "shortName": "GeneChain", + "chainId": 80, + "networkId": 80, + "explorers": [ + { + "name": "GeneChain Scan", + "url": "https://scan.genechain.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Zenith Testnet (Vilnius)", + "chain": "Zenith", + "rpc": ["https://vilnius.zenithchain.co/http"], + "faucets": ["https://faucet.zenithchain.co/"], + "nativeCurrency": { "name": "Vilnius", "symbol": "VIL", "decimals": 18 }, + "infoURL": "https://www.zenithchain.co/", + "chainId": 81, + "networkId": 81, + "shortName": "VIL", + "explorers": [ + { + "name": "vilnius scan", + "url": "https://vilnius.scan.zenithchain.co", + "standard": "EIP3091" + } + ] + }, + { + "name": "Meter Mainnet", + "chain": "METER", + "rpc": ["https://rpc.meter.io"], + "faucets": ["https://faucet.meter.io"], + "nativeCurrency": { "name": "Meter", "symbol": "MTR", "decimals": 18 }, + "infoURL": "https://www.meter.io", + "shortName": "Meter", + "chainId": 82, + "networkId": 82, + "explorers": [ + { + "name": "Meter Mainnet Scan", + "url": "https://scan.meter.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Meter Testnet", + "chain": "METER Testnet", + "rpc": ["https://rpctest.meter.io"], + "faucets": ["https://faucet-warringstakes.meter.io"], + "nativeCurrency": { "name": "Meter", "symbol": "MTR", "decimals": 18 }, + "infoURL": "https://www.meter.io", + "shortName": "MeterTest", + "chainId": 83, + "networkId": 83, + "explorers": [ + { + "name": "Meter Testnet Scan", + "url": "https://scan-warringstakes.meter.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Linqto Devnet", + "chain": "LNQ", + "rpc": ["https://linqto-dev.com"], + "faucets": [], + "nativeCurrency": { "name": "XRP", "symbol": "XRP", "decimals": 18 }, + "infoURL": "https://linqto.com", + "shortName": "linqto-devnet", + "chainId": 84, + "networkId": 84, + "explorers": [ + { + "name": "Linqto Devnet Explorer", + "url": "https://explorer.linqto-dev.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "GateChain Testnet", + "chainId": 85, + "shortName": "gttest", + "chain": "GTTEST", + "networkId": 85, + "nativeCurrency": { "name": "GateToken", "symbol": "GT", "decimals": 18 }, + "rpc": ["https://testnet.gatenode.cc"], + "faucets": ["https://www.gatescan.org/testnet/faucet"], + "explorers": [ + { + "name": "GateScan", + "url": "https://www.gatescan.org/testnet", + "standard": "EIP3091" + } + ], + "infoURL": "https://www.gatechain.io" + }, + { + "name": "GateChain Mainnet", + "chainId": 86, + "shortName": "gt", + "chain": "GT", + "networkId": 86, + "nativeCurrency": { "name": "GateToken", "symbol": "GT", "decimals": 18 }, + "rpc": ["https://evm.gatenode.cc"], + "faucets": ["https://www.gatescan.org/faucet"], + "explorers": [ + { + "name": "GateScan", + "url": "https://www.gatescan.org", + "standard": "EIP3091" + } + ], + "infoURL": "https://www.gatechain.io" + }, + { + "name": "Nova Network", + "chain": "NNW", + "icon": "novanetwork", + "rpc": [ + "https://connect.novanetwork.io", + "https://0x57.redjackstudio.com", + "https://rpc.novanetwork.io:9070" + ], + "faucets": [], + "nativeCurrency": { "name": "Supernova", "symbol": "SNT", "decimals": 18 }, + "infoURL": "https://novanetwork.io", + "shortName": "nnw", + "chainId": 87, + "networkId": 87, + "explorers": [ + { + "name": "novanetwork", + "url": "https://explorer.novanetwork.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "TomoChain", + "chain": "TOMO", + "rpc": ["https://rpc.tomochain.com"], + "faucets": [], + "nativeCurrency": { "name": "TomoChain", "symbol": "TOMO", "decimals": 18 }, + "infoURL": "https://tomochain.com", + "shortName": "tomo", + "chainId": 88, + "networkId": 88, + "slip44": 889 + }, + { + "name": "TomoChain Testnet", + "chain": "TOMO", + "rpc": ["https://rpc.testnet.tomochain.com"], + "faucets": [], + "nativeCurrency": { "name": "TomoChain", "symbol": "TOMO", "decimals": 18 }, + "infoURL": "https://tomochain.com", + "shortName": "tomot", + "chainId": 89, + "networkId": 89, + "slip44": 889 + }, + { + "name": "Garizon Stage0", + "chain": "GAR", + "icon": "garizon", + "rpc": ["https://s0.garizon.net/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, + "infoURL": "https://garizon.com", + "shortName": "gar-s0", + "chainId": 90, + "networkId": 90, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.garizon.com", + "icon": "garizon", + "standard": "EIP3091" + } + ] + }, + { + "name": "Garizon Stage1", + "chain": "GAR", + "icon": "garizon", + "rpc": ["https://s1.garizon.net/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, + "infoURL": "https://garizon.com", + "shortName": "gar-s1", + "chainId": 91, + "networkId": 91, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.garizon.com", + "icon": "garizon", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-90", "type": "shard" } + }, + { + "name": "Garizon Stage2", + "chain": "GAR", + "icon": "garizon", + "rpc": ["https://s2.garizon.net/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, + "infoURL": "https://garizon.com", + "shortName": "gar-s2", + "chainId": 92, + "networkId": 92, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.garizon.com", + "icon": "garizon", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-90", "type": "shard" } + }, + { + "name": "Garizon Stage3", + "chain": "GAR", + "icon": "garizon", + "rpc": ["https://s3.garizon.net/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, + "infoURL": "https://garizon.com", + "shortName": "gar-s3", + "chainId": 93, + "networkId": 93, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.garizon.com", + "icon": "garizon", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-90", "type": "shard" } + }, + { + "name": "SwissDLT", + "chain": "SDLT", + "rpc": ["https://rpc.swissdlt.ch"], + "faucets": [], + "nativeCurrency": { "name": "BCTS", "symbol": "BCTS", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://bcts.ch", + "shortName": "sdlt", + "chainId": 94, + "networkId": 94, + "icon": "bcts", + "explorers": [ + { + "name": "SwissDLT Explorer", + "url": "https://explorer.swissdlt.ch", + "icon": "bcts", + "standard": "EIP3091" + } + ] + }, + { + "name": "CamDL Mainnet", + "chain": "CADL", + "rpc": ["https://rpc1.camdl.gov.kh/"], + "faucets": ["https://faucet.camdl.gov.kh/"], + "nativeCurrency": { "name": "CADL", "symbol": "CADL", "decimals": 18 }, + "features": [{ "name": "EIP155" }], + "infoURL": "https://camdl.gov.kh/", + "shortName": "camdl", + "chainId": 95, + "networkId": 95, + "redFlags": ["reusedChainId"], + "icon": "camdl", + "explorers": [ + { + "name": "CamDL Block Explorer", + "url": "https://explorer.camdl.gov.kh", + "standard": "EIP3091" + } + ], + "status": "active" + }, + { + "name": "Bitkub Chain", + "chain": "BKC", + "icon": "bkc", + "rpc": ["https://rpc.bitkubchain.io", "wss://wss.bitkubchain.io"], + "faucets": [], + "nativeCurrency": { + "name": "Bitkub Coin", + "symbol": "KUB", + "decimals": 18 + }, + "infoURL": "https://www.bitkubchain.com/", + "shortName": "bkc", + "chainId": 96, + "networkId": 96, + "explorers": [ + { + "name": "Bitkub Chain Explorer", + "url": "https://bkcscan.com", + "standard": "none", + "icon": "bkc" + } + ], + "redFlags": ["reusedChainId"] + }, + { + "name": "Binance Smart Chain Testnet", + "chain": "BSC", + "rpc": [ + "https://data-seed-prebsc-1-s1.binance.org:8545", + "https://data-seed-prebsc-2-s1.binance.org:8545", + "https://data-seed-prebsc-1-s2.binance.org:8545", + "https://data-seed-prebsc-2-s2.binance.org:8545", + "https://data-seed-prebsc-1-s3.binance.org:8545", + "https://data-seed-prebsc-2-s3.binance.org:8545", + "https://bsc-testnet.publicnode.com" + ], + "faucets": ["https://testnet.binance.org/faucet-smart"], + "nativeCurrency": { + "name": "Binance Chain Native Token", + "symbol": "tBNB", + "decimals": 18 + }, + "infoURL": "https://testnet.binance.org/", + "shortName": "bnbt", + "chainId": 97, + "networkId": 97, + "explorers": [ + { + "name": "bscscan-testnet", + "url": "https://testnet.bscscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Six Protocol", + "chain": "SIXNET", + "icon": "six", + "rpc": ["https://sixnet-rpc-evm.sixprotocol.net"], + "faucets": [], + "nativeCurrency": { + "name": "SIX evm token", + "symbol": "SIX", + "decimals": 18 + }, + "infoURL": "https://six.network/", + "shortName": "six", + "chainId": 98, + "networkId": 98, + "explorers": [ + { + "name": "SIX Scan", + "url": "https://sixscan.io/sixnet", + "standard": "none", + "icon": "six" + } + ] + }, + { + "name": "POA Network Core", + "chain": "POA", + "rpc": ["https://core.poa.network"], + "faucets": [], + "nativeCurrency": { + "name": "POA Network Core Ether", + "symbol": "POA", + "decimals": 18 + }, + "infoURL": "https://poa.network", + "shortName": "poa", + "chainId": 99, + "networkId": 99, + "slip44": 178, + "explorers": [ + { + "name": "blockscout", + "url": "https://blockscout.com/poa/core", + "standard": "none" + } + ] + }, + { + "name": "Gnosis", + "chain": "GNO", + "icon": "gnosis", + "rpc": [ + "https://rpc.gnosischain.com", + "https://rpc.gnosis.gateway.fm", + "https://rpc.ankr.com/gnosis", + "https://gnosischain-rpc.gateway.pokt.network", + "https://gnosis-mainnet.public.blastapi.io", + "https://gnosis.api.onfinality.io/public", + "https://gnosis.blockpi.network/v1/rpc/public", + "https://web3endpoints.com/gnosischain-mainnet", + "wss://rpc.gnosischain.com/wss" + ], + "faucets": [ + "https://gnosisfaucet.com", + "https://stakely.io/faucet/gnosis-chain-xdai", + "https://faucet.prussia.dev/xdai" + ], + "nativeCurrency": { "name": "xDAI", "symbol": "XDAI", "decimals": 18 }, + "infoURL": "https://docs.gnosischain.com", + "shortName": "gno", + "chainId": 100, + "networkId": 100, + "slip44": 700, + "explorers": [ + { + "name": "gnosisscan", + "url": "https://gnosisscan.io", + "standard": "EIP3091" }, - "infoURL": "https://goerli.net/#about", - "shortName": "gor", - "chainId": 5, - "networkId": 5, - "ens": { "registry": "0x112234455c3a32fd11230c42e7bccd4a84e02010" }, - "explorers": [ - { - "name": "etherscan-goerli", - "url": "https://goerli.etherscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Ethereum Classic Testnet Kotti", - "chain": "ETC", - "rpc": ["https://www.ethercluster.com/kotti"], - "faucets": [], - "nativeCurrency": { - "name": "Kotti Ether", - "symbol": "KOT", - "decimals": 18 + { + "name": "blockscout", + "url": "https://blockscout.com/xdai/mainnet", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "EtherInc", + "chain": "ETI", + "rpc": ["https://api.einc.io/jsonrpc/mainnet"], + "faucets": [], + "nativeCurrency": { + "name": "EtherInc Ether", + "symbol": "ETI", + "decimals": 18 + }, + "infoURL": "https://einc.io", + "shortName": "eti", + "chainId": 101, + "networkId": 1, + "slip44": 464 + }, + { + "name": "Web3Games Testnet", + "chain": "Web3Games", + "icon": "web3games", + "rpc": [ + "https://testnet-rpc-0.web3games.org/evm", + "https://testnet-rpc-1.web3games.org/evm", + "https://testnet-rpc-2.web3games.org/evm" + ], + "faucets": [], + "nativeCurrency": { "name": "Web3Games", "symbol": "W3G", "decimals": 18 }, + "infoURL": "https://web3games.org/", + "shortName": "tw3g", + "chainId": 102, + "networkId": 102 + }, + { + "name": "Kaiba Lightning Chain Testnet", + "chain": "tKLC", + "rpc": ["https://klc.live/"], + "faucets": [], + "nativeCurrency": { + "name": "Kaiba Testnet Token", + "symbol": "tKAIBA", + "decimals": 18 + }, + "infoURL": "https://kaibadefi.com", + "shortName": "tklc", + "chainId": 104, + "networkId": 104, + "icon": "kaiba", + "explorers": [ + { + "name": "kaibascan", + "url": "https://kaibascan.io", + "icon": "kaibascan", + "standard": "EIP3091" + } + ] + }, + { + "name": "Web3Games Devnet", + "chain": "Web3Games", + "icon": "web3games", + "rpc": ["https://devnet.web3games.org/evm"], + "faucets": [], + "nativeCurrency": { "name": "Web3Games", "symbol": "W3G", "decimals": 18 }, + "infoURL": "https://web3games.org/", + "shortName": "dw3g", + "chainId": 105, + "networkId": 105, + "explorers": [ + { + "name": "Web3Games Explorer", + "url": "https://explorer-devnet.web3games.org", + "standard": "none" + } + ] + }, + { + "name": "Velas EVM Mainnet", + "chain": "Velas", + "icon": "velas", + "rpc": [ + "https://evmexplorer.velas.com/rpc", + "https://explorer.velas.com/rpc" + ], + "faucets": [], + "nativeCurrency": { "name": "Velas", "symbol": "VLX", "decimals": 18 }, + "infoURL": "https://velas.com", + "shortName": "vlx", + "chainId": 106, + "networkId": 106, + "explorers": [ + { + "name": "Velas Explorer", + "url": "https://evmexplorer.velas.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Nebula Testnet", + "chain": "NTN", + "icon": "nebulatestnet", + "rpc": ["https://testnet.rpc.novanetwork.io"], + "faucets": ["https://faucet.novanetwork.io"], + "nativeCurrency": { "name": "Nebula X", "symbol": "NBX", "decimals": 18 }, + "infoURL": "https://novanetwork.io", + "shortName": "ntn", + "chainId": 107, + "networkId": 107, + "explorers": [ + { + "name": "nebulatestnet", + "url": "https://explorer.novanetwork.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "ThunderCore Mainnet", + "chain": "TT", + "rpc": [ + "https://mainnet-rpc.thundercore.com", + "https://mainnet-rpc.thundertoken.net", + "https://mainnet-rpc.thundercore.io" + ], + "faucets": ["https://faucet.thundercore.com"], + "nativeCurrency": { + "name": "ThunderCore Token", + "symbol": "TT", + "decimals": 18 + }, + "infoURL": "https://thundercore.com", + "shortName": "TT", + "chainId": 108, + "networkId": 108, + "slip44": 1001, + "explorers": [ + { + "name": "thundercore-viewblock", + "url": "https://viewblock.io/thundercore", + "standard": "EIP3091" + } + ] + }, + { + "name": "Proton Testnet", + "chain": "XPR", + "rpc": ["https://protontestnet.greymass.com/"], + "faucets": [], + "nativeCurrency": { "name": "Proton", "symbol": "XPR", "decimals": 4 }, + "infoURL": "https://protonchain.com", + "shortName": "xpr", + "chainId": 110, + "networkId": 110 + }, + { + "name": "EtherLite Chain", + "chain": "ETL", + "rpc": ["https://rpc.etherlite.org"], + "faucets": ["https://etherlite.org/faucets"], + "nativeCurrency": { "name": "EtherLite", "symbol": "ETL", "decimals": 18 }, + "infoURL": "https://etherlite.org", + "shortName": "ETL", + "chainId": 111, + "networkId": 111, + "icon": "etherlite" + }, + { + "name": "Coinbit Mainnet", + "chain": "Coinbit", + "rpc": ["https://coinbit-rpc-mainnet.chain.sbcrypto.app"], + "faucets": [], + "nativeCurrency": { "name": "Gas IDR", "symbol": "GIDR", "decimals": 18 }, + "infoURL": "https://crypto.stockbit.com/", + "shortName": "coinbit", + "chainId": 112, + "networkId": 112, + "icon": "coinbit", + "explorers": [ + { + "name": "blockscout", + "url": "https://coinbit-explorer.chain.sbcrypto.app", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "Dehvo", + "chain": "Dehvo", + "rpc": [ + "https://connect.dehvo.com", + "https://rpc.dehvo.com", + "https://rpc1.dehvo.com", + "https://rpc2.dehvo.com" + ], + "faucets": ["https://buy.dehvo.com"], + "nativeCurrency": { "name": "Dehvo", "symbol": "Deh", "decimals": 18 }, + "infoURL": "https://dehvo.com", + "shortName": "deh", + "chainId": 113, + "networkId": 113, + "slip44": 714, + "explorers": [ + { + "name": "Dehvo Explorer", + "url": "https://explorer.dehvo.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Flare Testnet Coston2", + "chain": "FLR", + "icon": "coston2", + "rpc": ["https://coston2-api.flare.network/ext/bc/C/rpc"], + "faucets": ["https://coston2-faucet.towolabs.com"], + "nativeCurrency": { + "name": "Coston2 Flare", + "symbol": "C2FLR", + "decimals": 18 + }, + "infoURL": "https://flare.xyz", + "shortName": "c2flr", + "chainId": 114, + "networkId": 114, + "explorers": [ + { + "name": "blockscout", + "url": "https://coston2-explorer.flare.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "DeBank Testnet", + "chain": "DeBank", + "rpc": [], + "faucets": [], + "icon": "debank", + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://debank.com", + "shortName": "debank-testnet", + "chainId": 115, + "networkId": 115, + "explorers": [] + }, + { + "name": "DeBank Mainnet", + "chain": "DeBank", + "rpc": [], + "faucets": [], + "icon": "debank", + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://debank.com", + "shortName": "debank-mainnet", + "chainId": 116, + "networkId": 116, + "explorers": [] + }, + { + "name": "Uptick Mainnet", + "chain": "Uptick", + "rpc": ["https://json-rpc.uptick.network"], + "faucets": [], + "nativeCurrency": { "name": "Uptick", "symbol": "UPTICK", "decimals": 18 }, + "infoURL": "https://www.uptick.network", + "shortName": "auptick", + "chainId": 117, + "networkId": 117, + "icon": "uptick", + "explorers": [ + { + "name": "Uptick Explorer", + "url": "https://evm-explorer.uptick.network", + "icon": "uptick", + "standard": "none" + } + ] + }, + { + "name": "Arcology Testnet", + "chain": "Arcology", + "icon": "acolicon", + "rpc": ["https://testnet.arcology.network/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "Arcology Coin", + "symbol": "Acol", + "decimals": 18 + }, + "infoURL": "https://arcology.network/", + "shortName": "arcology", + "chainId": 118, + "networkId": 118, + "explorers": [ + { + "name": "arcology", + "url": "https://testnet.arcology.network/explorer", + "standard": "none" + } + ] + }, + { + "name": "ENULS Mainnet", + "chain": "ENULS", + "rpc": ["https://evmapi.nuls.io", "https://evmapi2.nuls.io"], + "faucets": [], + "nativeCurrency": { "name": "NULS", "symbol": "NULS", "decimals": 18 }, + "infoURL": "https://nuls.io", + "shortName": "enuls", + "chainId": 119, + "networkId": 119, + "icon": "enuls", + "explorers": [ + { + "name": "enulsscan", + "url": "https://evmscan.nuls.io", + "icon": "enuls", + "standard": "EIP3091" + } + ] + }, + { + "name": "ENULS Testnet", + "chain": "ENULS", + "rpc": ["https://beta.evmapi.nuls.io", "https://beta.evmapi2.nuls.io"], + "faucets": ["http://faucet.nuls.io"], + "nativeCurrency": { "name": "NULS", "symbol": "NULS", "decimals": 18 }, + "infoURL": "https://nuls.io", + "shortName": "enulst", + "chainId": 120, + "networkId": 120, + "icon": "enuls", + "explorers": [ + { + "name": "enulsscan", + "url": "https://beta.evmscan.nuls.io", + "icon": "enuls", + "standard": "EIP3091" + } + ] + }, + { + "name": "Realchain Mainnet", + "chain": "REAL", + "rpc": [ + "https://rcl-dataseed1.rclsidechain.com", + "https://rcl-dataseed2.rclsidechain.com", + "https://rcl-dataseed3.rclsidechain.com", + "https://rcl-dataseed4.rclsidechain.com", + "wss://rcl-dataseed1.rclsidechain.com/v1/", + "wss://rcl-dataseed2.rclsidechain.com/v1/", + "wss://rcl-dataseed3.rclsidechain.com/v1/", + "wss://rcl-dataseed4.rclsidechain.com/v1/" + ], + "faucets": ["https://faucet.rclsidechain.com"], + "nativeCurrency": { "name": "Realchain", "symbol": "REAL", "decimals": 18 }, + "infoURL": "https://www.rclsidechain.com/", + "shortName": "REAL", + "chainId": 121, + "networkId": 121, + "slip44": 714, + "explorers": [ + { + "name": "realscan", + "url": "https://rclscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Fuse Mainnet", + "chain": "FUSE", + "rpc": ["https://rpc.fuse.io"], + "faucets": [], + "nativeCurrency": { "name": "Fuse", "symbol": "FUSE", "decimals": 18 }, + "infoURL": "https://fuse.io/", + "shortName": "fuse", + "chainId": 122, + "networkId": 122 + }, + { + "name": "Fuse Sparknet", + "chain": "fuse", + "rpc": ["https://rpc.fusespark.io"], + "faucets": ["https://get.fusespark.io"], + "nativeCurrency": { "name": "Spark", "symbol": "SPARK", "decimals": 18 }, + "infoURL": "https://docs.fuse.io/general/fuse-network-blockchain/fuse-testnet", + "shortName": "spark", + "chainId": 123, + "networkId": 123 + }, + { + "name": "Decentralized Web Mainnet", + "shortName": "dwu", + "chain": "DWU", + "chainId": 124, + "networkId": 124, + "rpc": ["https://decentralized-web.tech/dw_rpc.php"], + "faucets": [], + "infoURL": "https://decentralized-web.tech/dw_chain.php", + "nativeCurrency": { + "name": "Decentralized Web Utility", + "symbol": "DWU", + "decimals": 18 + } + }, + { + "name": "OYchain Testnet", + "chain": "OYchain", + "rpc": ["https://rpc.testnet.oychain.io"], + "faucets": ["https://faucet.oychain.io"], + "nativeCurrency": { + "name": "OYchain Token", + "symbol": "OY", + "decimals": 18 + }, + "infoURL": "https://www.oychain.io", + "shortName": "OYchainTestnet", + "chainId": 125, + "networkId": 125, + "slip44": 125, + "explorers": [ + { + "name": "OYchain Testnet Explorer", + "url": "https://explorer.testnet.oychain.io", + "standard": "none" + } + ] + }, + { + "name": "OYchain Mainnet", + "chain": "OYchain", + "icon": "oychain", + "rpc": ["https://rpc.mainnet.oychain.io"], + "faucets": [], + "nativeCurrency": { + "name": "OYchain Token", + "symbol": "OY", + "decimals": 18 + }, + "infoURL": "https://www.oychain.io", + "shortName": "OYchainMainnet", + "chainId": 126, + "networkId": 126, + "slip44": 126, + "explorers": [ + { + "name": "OYchain Mainnet Explorer", + "url": "https://explorer.oychain.io", + "standard": "none" + } + ] + }, + { + "name": "Factory 127 Mainnet", + "chain": "FETH", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Factory 127 Token", + "symbol": "FETH", + "decimals": 18 + }, + "infoURL": "https://www.factory127.com", + "shortName": "feth", + "chainId": 127, + "networkId": 127, + "slip44": 127 + }, + { + "name": "Huobi ECO Chain Mainnet", + "chain": "Heco", + "rpc": [ + "https://http-mainnet.hecochain.com", + "wss://ws-mainnet.hecochain.com" + ], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], + "nativeCurrency": { + "name": "Huobi ECO Chain Native Token", + "symbol": "HT", + "decimals": 18 + }, + "infoURL": "https://www.hecochain.com", + "shortName": "heco", + "chainId": 128, + "networkId": 128, + "slip44": 1010, + "explorers": [ + { + "name": "hecoinfo", + "url": "https://hecoinfo.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "iExec Sidechain", + "chain": "Bellecour", + "icon": "rlc", + "rpc": ["https://bellecour.iex.ec"], + "faucets": [], + "nativeCurrency": { "name": "xRLC", "symbol": "xRLC", "decimals": 18 }, + "infoURL": "https://iex.ec", + "shortName": "rlc", + "chainId": 134, + "networkId": 134, + "explorers": [ + { + "name": "blockscout", + "url": "https://blockscout.bellecour.iex.ec", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "Alyx Chain Testnet", + "chain": "Alyx Chain Testnet", + "rpc": ["https://testnet-rpc.alyxchain.com"], + "faucets": ["https://faucet.alyxchain.com"], + "nativeCurrency": { + "name": "Alyx Testnet Native Token", + "symbol": "ALYX", + "decimals": 18 + }, + "infoURL": "https://www.alyxchain.com", + "shortName": "AlyxTestnet", + "chainId": 135, + "networkId": 135, + "explorers": [ + { + "name": "alyx testnet scan", + "url": "https://testnet.alyxscan.com", + "standard": "EIP3091" + } + ], + "icon": "alyx" + }, + { + "name": "Deamchain Mainnet", + "chain": "Deamchain", + "icon": "deam", + "rpc": ["https://mainnet.deamchain.com"], + "faucets": [], + "nativeCurrency": { + "name": "Deamchain Native Token", + "symbol": "DEAM", + "decimals": 18 + }, + "infoURL": "https://deamchain.com", + "shortName": "deam", + "chainId": 136, + "networkId": 136, + "explorers": [ + { + "name": "Deamchain Block Explorer", + "url": "https://scan.deamchain.com", + "standard": "EIP3091", + "icon": "deam" + } + ] + }, + { + "name": "Polygon Mainnet", + "chain": "Polygon", + "icon": "polygon", + "rpc": [ + "https://polygon-rpc.com/", + "https://rpc-mainnet.matic.network", + "https://matic-mainnet.chainstacklabs.com", + "https://rpc-mainnet.maticvigil.com", + "https://rpc-mainnet.matic.quiknode.pro", + "https://matic-mainnet-full-rpc.bwarelabs.com", + "https://polygon-bor.publicnode.com" + ], + "faucets": [], + "nativeCurrency": { "name": "MATIC", "symbol": "MATIC", "decimals": 18 }, + "infoURL": "https://polygon.technology/", + "shortName": "matic", + "chainId": 137, + "networkId": 137, + "slip44": 966, + "explorers": [ + { + "name": "polygonscan", + "url": "https://polygonscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Defi Oracle Meta Mainnet", + "chain": "dfiometa", + "icon": "defioraclemeta", + "rpc": [ + "https://rpc.public-0138.defi-oracle.io", + "wss://rpc.public-0138.defi-oracle.io" + ], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://defi-oracle.io/", + "shortName": "dfio-meta-main", + "chainId": 138, + "networkId": 1, + "slip44": 60, + "ens": { "registry": "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85" }, + "explorers": [ + { + "name": "Quorum Explorer", + "url": "https://public-0138.defi-oracle.io", + "standard": "none" + } + ] + }, + { + "name": "WoopChain Mainnet", + "chain": "WOOP", + "icon": "woopchain", + "rpc": ["https://rpc.woop.ai/rpc"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "WoopCoin", "symbol": "WOOC", "decimals": 18 }, + "infoURL": "https://wikiwoop.com", + "shortName": "woop", + "chainId": 139, + "networkId": 139, + "explorers": [ + { + "name": "wikiwoop", + "url": "https://explorer.wikiwoop.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Openpiece Testnet", + "chain": "OPENPIECE", + "icon": "openpiece", + "rpc": ["https://testnet.openpiece.io"], + "faucets": [], + "nativeCurrency": { "name": "Belly", "symbol": "BELLY", "decimals": 18 }, + "infoURL": "https://cryptopiece.online", + "shortName": "OPtest", + "chainId": 141, + "networkId": 141, + "explorers": [ + { + "name": "Belly Scan", + "url": "https://testnet.bellyscan.com", + "standard": "none" + } + ] + }, + { + "name": "DAX CHAIN", + "chain": "DAX", + "rpc": ["https://rpc.prodax.io"], + "faucets": [], + "nativeCurrency": { "name": "Prodax", "symbol": "DAX", "decimals": 18 }, + "infoURL": "https://prodax.io/", + "shortName": "dax", + "chainId": 142, + "networkId": 142 + }, + { + "name": "PHI Network v2", + "chain": "PHI", + "rpc": ["https://connect.phi.network"], + "faucets": [], + "nativeCurrency": { "name": "PHI", "symbol": "Φ", "decimals": 18 }, + "infoURL": "https://phi.network", + "shortName": "PHI", + "chainId": 144, + "networkId": 144, + "icon": "phi", + "explorers": [ + { + "name": "Phiscan", + "url": "https://phiscan.com", + "icon": "phi", + "standard": "none" + } + ] + }, + { + "name": "Six Protocol Testnet", + "chain": "FIVENET", + "icon": "six", + "rpc": ["https://rpc-evm.fivenet.sixprotocol.net"], + "faucets": ["https://faucet.sixprotocol.net"], + "nativeCurrency": { + "name": "SIX testnet evm token", + "symbol": "tSIX", + "decimals": 18 + }, + "infoURL": "https://six.network/", + "shortName": "sixt", + "chainId": 150, + "networkId": 150, + "explorers": [ + { + "name": "SIX Scan fivenet", + "url": "https://sixscan.io/fivenet", + "standard": "none", + "icon": "six" + } + ] + }, + { + "name": "Tenet Testnet", + "title": "Tenet Testnet", + "chain": "TENET", + "icon": "tenet", + "rpc": ["https://rpc.testnet.tenet.org"], + "faucets": ["https://faucet.testnet.tenet.org"], + "nativeCurrency": { "name": "TENET", "symbol": "TENET", "decimals": 18 }, + "infoURL": "https://tenet.org/", + "shortName": "tenet-testnet", + "chainId": 155, + "networkId": 155, + "explorers": [ + { + "name": "TenetScan Testnet", + "url": "https://testnet.tenetscan.io", + "icon": "tenet", + "standard": "EIP3091" + } + ] + }, + { + "name": "OEBlock Testnet", + "chain": "OEBt", + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "rpc": ["https://testnet-rpc.oeblock.com"], + "faucets": [], + "nativeCurrency": { "name": "OEBlock", "symbol": "OEB", "decimals": 18 }, + "infoURL": "https://www.oeblock.com/", + "shortName": "obe", + "chainId": 156, + "networkId": 156, + "icon": "oescan", + "explorers": [ + { + "name": "OEScan explorer", + "url": "https://testnet.oescan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Armonia Eva Chain Mainnet", + "chain": "Eva", + "rpc": ["https://evascan.io/api/eth-rpc/"], + "faucets": [], + "nativeCurrency": { + "name": "Armonia Multichain Native Token", + "symbol": "AMAX", + "decimals": 18 + }, + "infoURL": "https://amax.network", + "shortName": "eva", + "chainId": 160, + "networkId": 160, + "status": "incubating" + }, + { + "name": "Armonia Eva Chain Testnet", + "chain": "Wall-e", + "rpc": ["https://testnet.evascan.io/api/eth-rpc/"], + "faucets": [], + "nativeCurrency": { + "name": "Armonia Multichain Native Token", + "symbol": "AMAX", + "decimals": 18 + }, + "infoURL": "https://amax.network", + "shortName": "wall-e", + "chainId": 161, + "networkId": 161, + "explorers": [ + { + "name": "blockscout - evascan", + "url": "https://testnet.evascan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Lightstreams Testnet", + "chain": "PHT", + "rpc": ["https://node.sirius.lightstreams.io"], + "faucets": ["https://discuss.lightstreams.network/t/request-test-tokens"], + "nativeCurrency": { + "name": "Lightstreams PHT", + "symbol": "PHT", + "decimals": 18 + }, + "infoURL": "https://explorer.sirius.lightstreams.io", + "shortName": "tpht", + "chainId": 162, + "networkId": 162 + }, + { + "name": "Lightstreams Mainnet", + "chain": "PHT", + "rpc": ["https://node.mainnet.lightstreams.io"], + "faucets": [], + "nativeCurrency": { + "name": "Lightstreams PHT", + "symbol": "PHT", + "decimals": 18 + }, + "infoURL": "https://explorer.lightstreams.io", + "shortName": "pht", + "chainId": 163, + "networkId": 163 + }, + { + "name": "Omni Testnet 1", + "chain": "Omni", + "rpc": ["https://testnet-1.omni.network"], + "features": [{ "name": "EIP155" }], + "faucets": [], + "nativeCurrency": { "name": "Omni", "symbol": "OMNI", "decimals": 18 }, + "infoURL": "https://docs.omni.network/", + "shortName": "omni_testnet", + "chainId": 165, + "networkId": 165, + "explorers": [ + { + "name": "Omni Explorer", + "url": "https://testnet-1.explorer.omni.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Atoshi Testnet", + "chain": "ATOSHI", + "icon": "atoshi", + "rpc": ["https://node.atoshi.io/"], + "faucets": [], + "nativeCurrency": { "name": "ATOSHI", "symbol": "ATOS", "decimals": 18 }, + "infoURL": "https://atoshi.org", + "shortName": "atoshi", + "chainId": 167, + "networkId": 167, + "explorers": [ + { + "name": "atoshiscan", + "url": "https://scan.atoverse.info", + "standard": "EIP3091" + } + ] + }, + { + "name": "AIOZ Network", + "chain": "AIOZ", + "icon": "aioz", + "rpc": ["https://eth-dataseed.aioz.network"], + "faucets": [], + "nativeCurrency": { "name": "AIOZ", "symbol": "AIOZ", "decimals": 18 }, + "infoURL": "https://aioz.network", + "shortName": "aioz", + "chainId": 168, + "networkId": 168, + "slip44": 60, + "explorers": [ + { + "name": "AIOZ Network Explorer", + "url": "https://explorer.aioz.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "HOO Smart Chain Testnet", + "chain": "ETH", + "rpc": ["https://http-testnet.hoosmartchain.com"], + "faucets": ["https://faucet-testnet.hscscan.com/"], + "nativeCurrency": { "name": "HOO", "symbol": "HOO", "decimals": 18 }, + "infoURL": "https://www.hoosmartchain.com", + "shortName": "hoosmartchain", + "chainId": 170, + "networkId": 170 + }, + { + "name": "Latam-Blockchain Resil Testnet", + "chain": "Resil", + "rpc": [ + "https://rpc.latam-blockchain.com", + "wss://ws.latam-blockchain.com" + ], + "faucets": ["https://faucet.latam-blockchain.com"], + "nativeCurrency": { + "name": "Latam-Blockchain Resil Test Native Token", + "symbol": "usd", + "decimals": 18 + }, + "infoURL": "https://latam-blockchain.com", + "shortName": "resil", + "chainId": 172, + "networkId": 172 + }, + { + "name": "AME Chain Mainnet", + "chain": "AME", + "rpc": ["https://node1.amechain.io/"], + "faucets": [], + "nativeCurrency": { "name": "AME", "symbol": "AME", "decimals": 18 }, + "infoURL": "https://amechain.io/", + "shortName": "ame", + "chainId": 180, + "networkId": 180, + "explorers": [ + { "name": "AME Scan", "url": "https://amescan.io", "standard": "EIP3091" } + ] + }, + { + "name": "Seele Mainnet", + "chain": "Seele", + "rpc": ["https://rpc.seelen.pro/"], + "faucets": [], + "nativeCurrency": { "name": "Seele", "symbol": "Seele", "decimals": 18 }, + "infoURL": "https://seelen.pro/", + "shortName": "Seele", + "chainId": 186, + "networkId": 186, + "explorers": [ + { + "name": "seeleview", + "url": "https://seeleview.net", + "standard": "none" + } + ] + }, + { + "name": "BMC Mainnet", + "chain": "BMC", + "rpc": ["https://mainnet.bmcchain.com/"], + "faucets": [], + "nativeCurrency": { "name": "BTM", "symbol": "BTM", "decimals": 18 }, + "infoURL": "https://bmc.bytom.io/", + "shortName": "BMC", + "chainId": 188, + "networkId": 188, + "explorers": [ + { + "name": "Blockmeta", + "url": "https://bmc.blockmeta.com", + "standard": "none" + } + ] + }, + { + "name": "BMC Testnet", + "chain": "BMC", + "rpc": ["https://testnet.bmcchain.com"], + "faucets": [], + "nativeCurrency": { "name": "BTM", "symbol": "BTM", "decimals": 18 }, + "infoURL": "https://bmc.bytom.io/", + "shortName": "BMCT", + "chainId": 189, + "networkId": 189, + "explorers": [ + { + "name": "Blockmeta", + "url": "https://bmctestnet.blockmeta.com", + "standard": "none" + } + ] + }, + { + "name": "Crypto Emergency", + "chain": "CEM", + "rpc": ["https://cemchain.com"], + "faucets": [], + "nativeCurrency": { + "name": "Crypto Emergency", + "symbol": "CEM", + "decimals": 18 + }, + "infoURL": "https://cemblockchain.com/", + "shortName": "cem", + "chainId": 193, + "networkId": 193, + "explorers": [ + { "name": "cemscan", "url": "https://cemscan.com", "standard": "EIP3091" } + ] + }, + { + "name": "OKBChain Testnet", + "chain": "okbchain", + "rpc": ["https://okbtestrpc.okbchain.org"], + "faucets": ["https://www.oklink.com/okbc-test"], + "nativeCurrency": { + "name": "OKBChain Global Utility Token in testnet", + "symbol": "OKB", + "decimals": 18 + }, + "features": [], + "infoURL": "https://www.okx.com/okbc/docs/dev/quick-start/introduction/introduction-to-okbchain", + "shortName": "tokb", + "chainId": 195, + "networkId": 195, + "explorers": [ + { + "name": "OKLink", + "url": "https://www.oklink.com/okbc-test", + "standard": "EIP3091" + } + ], + "status": "active" + }, + { + "name": "OKBChain Mainnet", + "chain": "okbchain", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "OKBChain Global Utility Token", + "symbol": "OKB", + "decimals": 18 + }, + "features": [], + "infoURL": "https://www.okex.com/okc", + "shortName": "okb", + "chainId": 196, + "networkId": 196, + "explorers": [], + "status": "incubating" + }, + { + "name": "Neutrinos TestNet", + "chain": "NEUTR", + "rpc": ["https://testnet-rpc.neutrinoschain.com"], + "faucets": ["https://neutrinoschain.com/faucet"], + "nativeCurrency": { + "name": "Neutrinos", + "symbol": "NEUTR", + "decimals": 18 + }, + "infoURL": "https://docs.neutrinoschain.com", + "shortName": "NEUTR", + "chainId": 197, + "networkId": 197, + "explorers": [ + { + "name": "blockscout", + "url": "https://testnet.neutrinoschain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "BitTorrent Chain Mainnet", + "chain": "BTTC", + "rpc": ["https://rpc.bittorrentchain.io/"], + "faucets": [], + "nativeCurrency": { "name": "BitTorrent", "symbol": "BTT", "decimals": 18 }, + "infoURL": "https:/bt.io", + "shortName": "BTT", + "chainId": 199, + "networkId": 199, + "explorers": [ + { + "name": "BitTorrent Chain Explorer", + "url": "https://bttcscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Arbitrum on xDai", + "chain": "AOX", + "rpc": ["https://arbitrum.xdaichain.com/"], + "faucets": [], + "nativeCurrency": { "name": "xDAI", "symbol": "xDAI", "decimals": 18 }, + "infoURL": "https://xdaichain.com", + "shortName": "aox", + "chainId": 200, + "networkId": 200, + "explorers": [ + { + "name": "blockscout", + "url": "https://blockscout.com/xdai/arbitrum", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-100", "type": "L2" } + }, + { + "name": "MOAC testnet", + "chain": "MOAC", + "rpc": ["https://gateway.moac.io/testnet"], + "faucets": [], + "nativeCurrency": { "name": "MOAC", "symbol": "mc", "decimals": 18 }, + "infoURL": "https://moac.io", + "shortName": "moactest", + "chainId": 201, + "networkId": 201, + "explorers": [ + { + "name": "moac testnet explorer", + "url": "https://testnet.moac.io", + "standard": "none" + } + ] + }, + { + "name": "Structx Mainnet", + "chain": "utx", + "rpc": ["https://mainnet.structx.io"], + "faucets": [], + "nativeCurrency": { "name": "Notes", "symbol": "utx", "decimals": 18 }, + "infoURL": "https://structx.io", + "shortName": "utx", + "chainId": 208, + "networkId": 208 + }, + { + "name": "Freight Trust Network", + "chain": "EDI", + "rpc": [ + "http://13.57.207.168:3435", + "https://app.freighttrust.net/ftn/${API_KEY}" + ], + "faucets": ["http://faucet.freight.sh"], + "nativeCurrency": { + "name": "Freight Trust Native", + "symbol": "0xF", + "decimals": 18 + }, + "infoURL": "https://freighttrust.com", + "shortName": "EDI", + "chainId": 211, + "networkId": 0 + }, + { + "name": "MAP Makalu", + "title": "MAP Testnet Makalu", + "chain": "MAP", + "rpc": ["https://testnet-rpc.maplabs.io"], + "faucets": ["https://faucet.maplabs.io"], + "nativeCurrency": { "name": "Makalu MAP", "symbol": "MAP", "decimals": 18 }, + "infoURL": "https://maplabs.io", + "shortName": "makalu", + "chainId": 212, + "networkId": 212, + "explorers": [ + { + "name": "mapscan", + "url": "https://testnet.mapscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "SiriusNet V2", + "chain": "SIN2", + "faucets": [], + "rpc": ["https://rpc2.siriusnet.io"], + "icon": "siriusnet", + "nativeCurrency": { "name": "MCD", "symbol": "MCD", "decimals": 18 }, + "infoURL": "https://siriusnet.io", + "shortName": "SIN2", + "chainId": 217, + "networkId": 217, + "explorers": [ + { + "name": "siriusnet explorer", + "url": "https://scan.siriusnet.io", + "standard": "none" + } + ] + }, + { + "name": "SoterOne Mainnet old", + "chain": "SOTER", + "rpc": ["https://rpc.soter.one"], + "faucets": [], + "nativeCurrency": { + "name": "SoterOne Mainnet Ether", + "symbol": "SOTER", + "decimals": 18 + }, + "infoURL": "https://www.soterone.com", + "shortName": "SO1-old", + "chainId": 218, + "networkId": 218, + "status": "deprecated" + }, + { + "name": "Permission", + "chain": "ASK", + "rpc": ["https://blockchain-api-mainnet.permission.io/rpc"], + "faucets": [], + "nativeCurrency": { "name": "ASK", "symbol": "ASK", "decimals": 18 }, + "infoURL": "https://permission.io/", + "shortName": "ASK", + "chainId": 222, + "networkId": 2221, + "slip44": 2221, + "status": "deprecated" + }, + { + "name": "LACHAIN Mainnet", + "chain": "LA", + "icon": "lachain", + "rpc": ["https://rpc-mainnet.lachain.io"], + "faucets": [], + "nativeCurrency": { "name": "LA", "symbol": "LA", "decimals": 18 }, + "infoURL": "https://lachain.io", + "shortName": "LA", + "chainId": 225, + "networkId": 225, + "explorers": [ + { + "name": "blockscout", + "url": "https://scan.lachain.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "LACHAIN Testnet", + "chain": "TLA", + "icon": "lachain", + "rpc": ["https://rpc-testnet.lachain.io"], + "faucets": [], + "nativeCurrency": { "name": "TLA", "symbol": "TLA", "decimals": 18 }, + "infoURL": "https://lachain.io", + "shortName": "TLA", + "chainId": 226, + "networkId": 226, + "explorers": [ + { + "name": "blockscout", + "url": "https://scan-test.lachain.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "SwapDEX", + "chain": "SDX", + "rpc": ["https://rpc.swapdex.network", "wss://ss.swapdex.network"], + "faucets": [], + "nativeCurrency": { "name": "SwapDEX", "symbol": "SDX", "decimals": 18 }, + "infoURL": "https://swapdex.network/", + "shortName": "SDX", + "chainId": 230, + "networkId": 230, + "explorers": [ + { + "name": "SwapDEX", + "url": "https://evm.swapdex.network", + "standard": "none" + } + ] + }, + { + "name": "Deamchain Testnet", + "chain": "Deamchain", + "icon": "deam", + "rpc": ["https://testnet.deamchain.com"], + "faucets": ["https://faucet.deamchain.com"], + "nativeCurrency": { + "name": "Deamchain Native Token", + "symbol": "DEAM", + "decimals": 18 + }, + "infoURL": "https://deamchain.com", + "shortName": "deamtest", + "chainId": 236, + "networkId": 236, + "explorers": [ + { + "name": "Deamchain Testnet Explorer", + "url": "https://testnet-scan.deamchain.com", + "standard": "EIP3091", + "icon": "deam" + } + ] + }, + { + "name": "Energy Web Chain", + "chain": "Energy Web Chain", + "rpc": ["https://rpc.energyweb.org", "wss://rpc.energyweb.org/ws"], + "faucets": [ + "https://faucet.carbonswap.exchange", + "https://free-online-app.com/faucet-for-eth-evm-chains/" + ], + "nativeCurrency": { + "name": "Energy Web Token", + "symbol": "EWT", + "decimals": 18 + }, + "infoURL": "https://energyweb.org", + "shortName": "ewt", + "chainId": 246, + "networkId": 246, + "slip44": 246, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.energyweb.org", + "standard": "none" + } + ] + }, + { + "name": "Oasys Mainnet", + "chain": "Oasys", + "icon": "oasys", + "rpc": ["https://rpc.mainnet.oasys.games"], + "faucets": [], + "nativeCurrency": { "name": "OAS", "symbol": "OAS", "decimals": 18 }, + "infoURL": "https://oasys.games", + "shortName": "OAS", + "chainId": 248, + "networkId": 248, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.oasys.games", + "standard": "EIP3091" + } + ] + }, + { + "name": "Fantom Opera", + "chain": "FTM", + "rpc": ["https://rpc.ftm.tools", "https://fantom.publicnode.com"], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], + "nativeCurrency": { "name": "Fantom", "symbol": "FTM", "decimals": 18 }, + "infoURL": "https://fantom.foundation", + "shortName": "ftm", + "chainId": 250, + "networkId": 250, + "icon": "fantom", + "explorers": [ + { + "name": "ftmscan", + "url": "https://ftmscan.com", + "icon": "ftmscan", + "standard": "EIP3091" + } + ] + }, + { + "name": "Huobi ECO Chain Testnet", + "chain": "Heco", + "rpc": [ + "https://http-testnet.hecochain.com", + "wss://ws-testnet.hecochain.com" + ], + "faucets": ["https://scan-testnet.hecochain.com/faucet"], + "nativeCurrency": { + "name": "Huobi ECO Chain Test Native Token", + "symbol": "htt", + "decimals": 18 + }, + "infoURL": "https://testnet.hecoinfo.com", + "shortName": "hecot", + "chainId": 256, + "networkId": 256 + }, + { + "name": "Setheum", + "chain": "Setheum", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Setheum", "symbol": "SETM", "decimals": 18 }, + "infoURL": "https://setheum.xyz", + "shortName": "setm", + "chainId": 258, + "networkId": 258 + }, + { + "name": "Neonlink Mainnet", + "chain": "Neonlink", + "rpc": ["https://mainnet.neonlink.io"], + "faucets": [], + "nativeCurrency": { + "name": "Neonlink Native Token", + "symbol": "NEON", + "decimals": 18 + }, + "infoURL": "https://neonlink.io", + "shortName": "neon", + "chainId": 259, + "networkId": 259, + "icon": "neonlink", + "explorers": [ + { + "name": "Neon Blockchain Explorer", + "url": "https://scan.neonlink.io", + "standard": "EIP3091", + "icon": "neonlink" + } + ] + }, + { + "name": "SUR Blockchain Network", + "chain": "SUR", + "rpc": ["https://sur.nilin.org"], + "faucets": [], + "nativeCurrency": { "name": "Suren", "symbol": "SRN", "decimals": 18 }, + "infoURL": "https://surnet.org", + "shortName": "SUR", + "chainId": 262, + "networkId": 1, + "icon": "SUR", + "explorers": [ + { + "name": "Surnet Explorer", + "url": "https://explorer.surnet.org", + "icon": "SUR", + "standard": "EIP3091" + } + ] + }, + { + "name": "High Performance Blockchain", + "chain": "HPB", + "rpc": ["https://hpbnode.com", "wss://ws.hpbnode.com"], + "faucets": ["https://myhpbwallet.com/"], + "nativeCurrency": { + "name": "High Performance Blockchain Ether", + "symbol": "HPB", + "decimals": 18 + }, + "infoURL": "https://hpb.io", + "shortName": "hpb", + "chainId": 269, + "networkId": 269, + "slip44": 269, + "explorers": [ + { "name": "hscan", "url": "https://hscan.org", "standard": "EIP3091" } + ] + }, + { + "name": "LaChain", + "chain": "LaChain", + "icon": "LaChain", + "rpc": [ + "https://rpc1.mainnet.lachain.network", + "https://rpc2.mainnet.lachain.network", + "https://lachain.rpc-nodes.cedalio.dev" + ], + "faucets": [], + "nativeCurrency": { "name": "LaCoin", "symbol": "LAC", "decimals": 18 }, + "features": [{ "name": "EIP155" }], + "infoURL": "", + "shortName": "lachain", + "chainId": 274, + "networkId": 274, + "explorers": [ + { + "name": "LaChain Explorer", + "url": "https://explorer.lachain.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "zkSync Era Testnet", + "chain": "ETH", + "rpc": ["https://testnet.era.zksync.dev"], + "faucets": ["https://goerli.portal.zksync.io/faucet"], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://era.zksync.io/docs/", + "shortName": "zksync-goerli", + "chainId": 280, + "networkId": 280, + "icon": "zksync-era", + "explorers": [ + { + "name": "zkSync Era Block Explorer", + "url": "https://goerli.explorer.zksync.io", + "icon": "zksync-era", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://goerli.portal.zksync.io/bridge" }] + } + }, + { + "name": "Boba Network", + "chain": "ETH", + "rpc": ["https://mainnet.boba.network/"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://boba.network", + "shortName": "Boba", + "chainId": 288, + "networkId": 288, + "explorers": [ + { "name": "Bobascan", "url": "https://bobascan.com", "standard": "none" }, + { + "name": "Blockscout", + "url": "https://blockexplorer.boba.network", + "standard": "none" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://gateway.boba.network" }] + } + }, + { + "name": "Hedera Mainnet", + "chain": "Hedera", + "icon": "hedera", + "rpc": ["https://mainnet.hashio.io/api"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "hbar", "symbol": "HBAR", "decimals": 18 }, + "infoURL": "https://hedera.com", + "shortName": "hedera-mainnet", + "chainId": 295, + "networkId": 295, + "slip44": 3030, + "explorers": [ + { + "name": "HashScan", + "url": "https://hashscan.io/mainnet/dashboard", + "standard": "none" }, - "infoURL": "https://explorer.jade.builders/?network=kotti", - "shortName": "kot", - "chainId": 6, - "networkId": 6 - }, - { - "name": "ThaiChain", - "chain": "TCH", - "rpc": ["https://rpc.dome.cloud"], - "faucets": [], - "nativeCurrency": { - "name": "ThaiChain Ether", - "symbol": "TCH", - "decimals": 18 + { + "name": "Arkhia Explorer", + "url": "https://explorer.arkhia.io", + "standard": "none" }, - "infoURL": "https://thaichain.io", - "shortName": "tch", - "chainId": 7, - "networkId": 7 - }, - { - "name": "Ubiq", - "chain": "UBQ", - "rpc": ["https://rpc.octano.dev", "https://pyrus2.ubiqscan.io"], - "faucets": [], - "nativeCurrency": { "name": "Ubiq Ether", "symbol": "UBQ", "decimals": 18 }, - "infoURL": "https://ubiqsmart.com", - "shortName": "ubq", - "chainId": 8, - "networkId": 8, - "slip44": 108, - "explorers": [ - { - "name": "ubiqscan", - "url": "https://ubiqscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Ubiq Network Testnet", - "chain": "UBQ", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Ubiq Testnet Ether", - "symbol": "TUBQ", - "decimals": 18 + { + "name": "DragonGlass", + "url": "https://app.dragonglass.me", + "standard": "none" }, - "infoURL": "https://ethersocial.org", - "shortName": "tubq", - "chainId": 9, - "networkId": 2 - }, - { - "name": "Optimism", - "chain": "ETH", - "rpc": ["https://mainnet.optimism.io/"], - "faucets": [], - "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, - "infoURL": "https://optimism.io", - "shortName": "oeth", - "chainId": 10, - "networkId": 10, - "explorers": [ - { - "name": "etherscan", - "url": "https://optimistic.etherscan.io", - "standard": "none" - } - ] - }, - { - "name": "Metadium Mainnet", - "chain": "META", - "rpc": ["https://api.metadium.com/prod"], - "faucets": [], - "nativeCurrency": { - "name": "Metadium Mainnet Ether", - "symbol": "META", - "decimals": 18 + { + "name": "Hedera Explorer", + "url": "https://hederaexplorer.io", + "standard": "none" }, - "infoURL": "https://metadium.com", - "shortName": "meta", - "chainId": 11, - "networkId": 11, - "slip44": 916 - }, - { - "name": "Metadium Testnet", - "chain": "META", - "rpc": ["https://api.metadium.com/dev"], - "faucets": [], - "nativeCurrency": { - "name": "Metadium Testnet Ether", - "symbol": "KAL", - "decimals": 18 + { + "name": "Ledger Works Explore", + "url": "https://explore.lworks.io", + "standard": "none" + } + ] + }, + { + "name": "Hedera Testnet", + "chain": "Hedera", + "icon": "hedera", + "rpc": ["https://testnet.hashio.io/api"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": ["https://portal.hedera.com"], + "nativeCurrency": { "name": "hbar", "symbol": "HBAR", "decimals": 18 }, + "infoURL": "https://hedera.com", + "shortName": "hedera-testnet", + "chainId": 296, + "networkId": 296, + "slip44": 3030, + "explorers": [ + { + "name": "HashScan", + "url": "https://hashscan.io/testnet/dashboard", + "standard": "none" }, - "infoURL": "https://metadium.com", - "shortName": "kal", - "chainId": 12, - "networkId": 12 - }, - { - "name": "Diode Testnet Staging", - "chain": "DIODE", - "rpc": ["https://staging.diode.io:8443/", "wss://staging.diode.io:8443/ws"], - "faucets": [], - "nativeCurrency": { - "name": "Staging Diodes", - "symbol": "sDIODE", - "decimals": 18 + { + "name": "Arkhia Explorer", + "url": "https://explorer.arkhia.io", + "standard": "none" }, - "infoURL": "https://diode.io/staging", - "shortName": "dstg", - "chainId": 13, - "networkId": 13 - }, - { - "name": "Flare Mainnet", - "chain": "FLR", - "icon": "flare", - "rpc": [], - "faucets": [], - "nativeCurrency": { "name": "Spark", "symbol": "FLR", "decimals": 18 }, - "infoURL": "https://flare.xyz", - "shortName": "flr", - "chainId": 14, - "networkId": 14 - }, - { - "name": "Diode Prenet", - "chain": "DIODE", - "rpc": ["https://prenet.diode.io:8443/", "wss://prenet.diode.io:8443/ws"], - "faucets": [], - "nativeCurrency": { "name": "Diodes", "symbol": "DIODE", "decimals": 18 }, - "infoURL": "https://diode.io/prenet", - "shortName": "diode", - "chainId": 15, - "networkId": 15 - }, - { - "name": "Flare Testnet Coston", - "chain": "FLR", - "rpc": ["https://coston-api.flare.network/ext/bc/C/rpc"], - "faucets": [ - "https://faucet.towolabs.com", - "https://fauceth.komputing.org?chain=16&address=${ADDRESS}" - ], - "nativeCurrency": { - "name": "Coston Spark", - "symbol": "CFLR", - "decimals": 18 + { + "name": "DragonGlass", + "url": "https://app.dragonglass.me", + "standard": "none" }, - "infoURL": "https://flare.xyz", - "shortName": "cflr", - "chainId": 16, - "networkId": 16, - "explorers": [ - { - "name": "blockscout", - "url": "https://coston-explorer.flare.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "ThaiChain 2.0 ThaiFi", - "chain": "TCH", - "rpc": ["https://rpc.thaifi.com"], - "faucets": [], - "nativeCurrency": { - "name": "Thaifi Ether", - "symbol": "TFI", - "decimals": 18 + { + "name": "Hedera Explorer", + "url": "https://hederaexplorer.io", + "standard": "none" }, - "infoURL": "https://exp.thaifi.com", - "shortName": "tfi", - "chainId": 17, - "networkId": 17 - }, - { - "name": "ThunderCore Testnet", - "chain": "TST", - "rpc": ["https://testnet-rpc.thundercore.com"], - "faucets": ["https://faucet-testnet.thundercore.com"], - "nativeCurrency": { - "name": "ThunderCore Testnet Token", - "symbol": "TST", - "decimals": 18 + { + "name": "Ledger Works Explore", + "url": "https://explore.lworks.io", + "standard": "none" + } + ] + }, + { + "name": "Hedera Previewnet", + "chain": "Hedera", + "icon": "hedera", + "rpc": ["https://previewnet.hashio.io/api"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": ["https://portal.hedera.com"], + "nativeCurrency": { "name": "hbar", "symbol": "HBAR", "decimals": 18 }, + "infoURL": "https://hedera.com", + "shortName": "hedera-previewnet", + "chainId": 297, + "networkId": 297, + "slip44": 3030, + "explorers": [ + { + "name": "HashScan", + "url": "https://hashscan.io/previewnet/dashboard", + "standard": "none" + } + ] + }, + { + "name": "Hedera Localnet", + "chain": "Hedera", + "icon": "hedera", + "rpc": [], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "hbar", "symbol": "HBAR", "decimals": 18 }, + "infoURL": "https://hedera.com", + "shortName": "hedera-localnet", + "chainId": 298, + "networkId": 298, + "slip44": 3030, + "explorers": [] + }, + { + "name": "(deprecated) Optimism on GC", + "chain": "OGC", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "xDAI", "symbol": "xDAI", "decimals": 18 }, + "shortName": "ogc", + "chainId": 300, + "networkId": 300, + "infoURL": "https://docs.gnosischain.com", + "explorers": [], + "status": "deprecated" + }, + { + "name": "Bobaopera", + "chain": "Bobaopera", + "rpc": [ + "https://bobaopera.boba.network", + "wss://wss.bobaopera.boba.network", + "https://replica.bobaopera.boba.network", + "wss://replica-wss.bobaopera.boba.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "Bobaopera", + "chainId": 301, + "networkId": 301, + "explorers": [ + { + "name": "Bobaopera block explorer", + "url": "https://blockexplorer.bobaopera.boba.network", + "standard": "none" + } + ] + }, + { + "name": "Neurochain Testnet", + "chain": "NCN", + "rpc": ["https://nc-rpc-test1.neurochain.io"], + "faucets": [], + "nativeCurrency": { + "name": "Neurochain", + "symbol": "tNCN", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://www.neurochain.ai", + "shortName": "ncnt", + "chainId": 303, + "networkId": 303, + "explorers": [ + { + "name": "neuroscan", + "url": "https://testnet.ncnscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Omax Mainnet", + "chain": "OMAX Chain", + "rpc": ["https://mainapi.omaxray.com"], + "faucets": ["https://faucet.omaxray.com/"], + "nativeCurrency": { "name": "OMAX COIN", "symbol": "OMAX", "decimals": 18 }, + "infoURL": "https://www.omaxcoin.com/", + "shortName": "omax", + "chainId": 311, + "networkId": 311, + "icon": "omaxchain", + "explorers": [ + { + "name": "Omax Chain Explorer", + "url": "https://omaxray.com", + "icon": "omaxray", + "standard": "EIP3091" + } + ] + }, + { + "name": "Neurochain Mainnet", + "chain": "NCN", + "rpc": [ + "https://nc-rpc-prd1.neurochain.io", + "https://nc-rpc-prd2.neurochain.io" + ], + "faucets": [], + "nativeCurrency": { "name": "Neurochain", "symbol": "NCN", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://www.neurochain.ai", + "shortName": "ncn", + "chainId": 313, + "networkId": 313, + "explorers": [ + { + "name": "neuroscan", + "url": "https://ncnscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Filecoin - Mainnet", + "chain": "FIL", + "icon": "filecoin", + "rpc": [ + "https://api.node.glif.io/", + "https://rpc.ankr.com/filecoin", + "https://filecoin-mainnet.chainstacklabs.com/rpc/v1" + ], + "faucets": [], + "nativeCurrency": { "name": "filecoin", "symbol": "FIL", "decimals": 18 }, + "infoURL": "https://filecoin.io", + "shortName": "filecoin", + "chainId": 314, + "networkId": 314, + "slip44": 461, + "explorers": [ + { "name": "Filfox", "url": "https://filfox.info/en", "standard": "none" }, + { "name": "Beryx", "url": "https://beryx.zondax.ch", "standard": "none" }, + { + "name": "Glif Explorer", + "url": "https://explorer.glif.io", + "standard": "EIP3091" }, - "infoURL": "https://thundercore.com", - "shortName": "TST", - "chainId": 18, - "networkId": 18, - "explorers": [ - { - "name": "thundercore-blockscout-testnet", - "url": "https://explorer-testnet.thundercore.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Songbird Canary-Network", - "chain": "SGB", - "icon": "songbird", - "rpc": [ - "https://songbird.towolabs.com/rpc", - "https://sgb.ftso.com.au/ext/bc/C/rpc", - "https://sgb.lightft.so/rpc", - "https://sgb-rpc.ftso.eu" - ], - "faucets": [], - "nativeCurrency": { "name": "Songbird", "symbol": "SGB", "decimals": 18 }, - "infoURL": "https://flare.xyz", - "shortName": "sgb", - "chainId": 19, - "networkId": 19, - "explorers": [ - { - "name": "blockscout", - "url": "https://songbird-explorer.flare.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "Elastos Smart Chain", - "chain": "ETH", - "rpc": ["https://api.elastos.io/eth"], - "faucets": ["https://faucet.elastos.org/"], - "nativeCurrency": { "name": "Elastos", "symbol": "ELA", "decimals": 18 }, - "infoURL": "https://www.elastos.org/", - "shortName": "elaeth", - "chainId": 20, - "networkId": 20, - "explorers": [ - { - "name": "elastos eth explorer", - "url": "https://eth.elastos.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "ELA-ETH-Sidechain Testnet", - "chain": "ETH", - "rpc": ["https://rpc.elaeth.io"], - "faucets": ["https://faucet.elaeth.io/"], - "nativeCurrency": { "name": "Elastos", "symbol": "tELA", "decimals": 18 }, - "infoURL": "https://elaeth.io/", - "shortName": "elaetht", - "chainId": 21, - "networkId": 21 - }, - { - "name": "ELA-DID-Sidechain Mainnet", - "chain": "ETH", - "rpc": [], - "faucets": [], - "nativeCurrency": { "name": "Elastos", "symbol": "ELA", "decimals": 18 }, - "infoURL": "https://www.elastos.org/", - "shortName": "eladid", - "chainId": 22, - "networkId": 22 - }, - { - "name": "ELA-DID-Sidechain Testnet", - "chain": "ETH", - "rpc": [], - "faucets": [], - "nativeCurrency": { "name": "Elastos", "symbol": "tELA", "decimals": 18 }, - "infoURL": "https://elaeth.io/", - "shortName": "eladidt", - "chainId": 23, - "networkId": 23 - }, - { - "name": "Dithereum Mainnet", - "chain": "DTH", - "icon": "dithereum", - "rpc": ["https://node-mainnet.dithereum.io"], - "faucets": ["https://faucet.dithereum.org"], - "nativeCurrency": { "name": "Dither", "symbol": "DTH", "decimals": 18 }, - "infoURL": "https://dithereum.org", - "shortName": "dthmainnet", - "chainId": 24, - "networkId": 24 - }, - { - "name": "Cronos Mainnet Beta", - "chain": "CRO", - "rpc": ["https://evm.cronos.org"], - "faucets": [], - "nativeCurrency": { "name": "Cronos", "symbol": "CRO", "decimals": 18 }, - "infoURL": "https://cronos.org/", - "shortName": "cro", - "chainId": 25, - "networkId": 25, - "explorers": [ - { - "name": "Cronos Explorer", - "url": "https://cronos.org/explorer", - "standard": "none" - } - ] - }, - { - "name": "Genesis L1 testnet", - "chain": "genesis", - "rpc": ["https://testrpc.genesisl1.org"], - "faucets": [], - "nativeCurrency": { - "name": "L1 testcoin", - "symbol": "L1test", - "decimals": 18 + { + "name": "Dev.storage", + "url": "https://dev.storage", + "standard": "none" }, - "infoURL": "https://www.genesisl1.com", - "shortName": "L1test", - "chainId": 26, - "networkId": 26, - "explorers": [ - { - "name": "Genesis L1 testnet explorer", - "url": "https://testnet.genesisl1.org", - "standard": "none" - } - ] - }, - { - "name": "ShibaChain", - "chain": "SHIB", - "rpc": ["https://rpc.shibachain.net"], - "faucets": [], - "nativeCurrency": { - "name": "SHIBA INU COIN", - "symbol": "SHIB", - "decimals": 18 + { "name": "Filscan", "url": "https://filscan.io", "standard": "none" }, + { + "name": "Filscout", + "url": "https://filscout.io/en", + "standard": "none" + } + ] + }, + { + "name": "KCC Mainnet", + "chain": "KCC", + "rpc": [ + "https://rpc-mainnet.kcc.network", + "https://kcc.mytokenpocket.vip", + "https://public-rpc.blockpi.io/http/kcc" + ], + "faucets": [ + "https://faucet.kcc.io/", + "https://free-online-app.com/faucet-for-eth-evm-chains/" + ], + "nativeCurrency": { + "name": "KuCoin Token", + "symbol": "KCS", + "decimals": 18 + }, + "infoURL": "https://kcc.io", + "shortName": "kcs", + "chainId": 321, + "networkId": 321, + "slip44": 641, + "explorers": [ + { + "name": "KCC Explorer", + "url": "https://explorer.kcc.io/en", + "standard": "EIP3091" + } + ] + }, + { + "name": "KCC Testnet", + "chain": "KCC", + "rpc": ["https://rpc-testnet.kcc.network"], + "faucets": ["https://faucet-testnet.kcc.network"], + "nativeCurrency": { + "name": "KuCoin Testnet Token", + "symbol": "tKCS", + "decimals": 18 + }, + "infoURL": "https://scan-testnet.kcc.network", + "shortName": "kcst", + "chainId": 322, + "networkId": 322, + "explorers": [ + { + "name": "kcc-scan-testnet", + "url": "https://scan-testnet.kcc.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "zkSync Era Mainnet", + "chain": "ETH", + "rpc": ["https://mainnet.era.zksync.io"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://zksync.io/", + "shortName": "zksync", + "chainId": 324, + "networkId": 324, + "icon": "zksync-era", + "explorers": [ + { + "name": "zkSync Era Block Explorer", + "url": "https://explorer.zksync.io", + "icon": "zksync-era", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://bridge.zksync.io/" }] + } + }, + { + "name": "Web3Q Mainnet", + "chain": "Web3Q", + "rpc": ["https://mainnet.web3q.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "Web3Q", "symbol": "W3Q", "decimals": 18 }, + "infoURL": "https://web3q.io/home.w3q/", + "shortName": "w3q", + "chainId": 333, + "networkId": 333, + "explorers": [ + { + "name": "w3q-mainnet", + "url": "https://explorer.mainnet.web3q.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "DFK Chain Test", + "chain": "DFK", + "icon": "dfk", + "rpc": ["https://subnets.avax.network/defi-kingdoms/dfk-chain-testnet/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Jewel", "symbol": "JEWEL", "decimals": 18 }, + "infoURL": "https://defikingdoms.com", + "shortName": "DFKTEST", + "chainId": 335, + "networkId": 335, + "explorers": [ + { + "name": "ethernal", + "url": "https://explorer-test.dfkchain.com", + "icon": "ethereum", + "standard": "none" + } + ] + }, + { + "name": "Shiden", + "chain": "SDN", + "rpc": [ + "https://shiden.api.onfinality.io/public", + "https://shiden-rpc.dwellir.com", + "https://shiden.public.blastapi.io", + "wss://shiden.api.onfinality.io/public-ws", + "wss://shiden.public.blastapi.io", + "wss://shiden-rpc.dwellir.com" + ], + "faucets": [], + "nativeCurrency": { "name": "Shiden", "symbol": "SDN", "decimals": 18 }, + "infoURL": "https://shiden.astar.network/", + "shortName": "sdn", + "chainId": 336, + "networkId": 336, + "icon": "shiden", + "explorers": [ + { + "name": "subscan", + "url": "https://shiden.subscan.io", + "standard": "none", + "icon": "subscan" + } + ] + }, + { + "name": "Cronos Testnet", + "chain": "CRO", + "rpc": ["https://evm-t3.cronos.org"], + "faucets": ["https://cronos.org/faucet"], + "nativeCurrency": { + "name": "Cronos Test Coin", + "symbol": "TCRO", + "decimals": 18 + }, + "infoURL": "https://cronos.org", + "shortName": "tcro", + "chainId": 338, + "networkId": 338, + "explorers": [ + { + "name": "Cronos Testnet Explorer", + "url": "https://explorer.cronos.org/testnet", + "standard": "none" + } + ] + }, + { + "name": "Theta Mainnet", + "chain": "Theta", + "rpc": ["https://eth-rpc-api.thetatoken.org/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "Theta Fuel", + "symbol": "TFUEL", + "decimals": 18 + }, + "infoURL": "https://www.thetatoken.org/", + "shortName": "theta-mainnet", + "chainId": 361, + "networkId": 361, + "explorers": [ + { + "name": "Theta Mainnet Explorer", + "url": "https://explorer.thetatoken.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Theta Sapphire Testnet", + "chain": "Theta", + "rpc": ["https://eth-rpc-api-sapphire.thetatoken.org/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "Theta Fuel", + "symbol": "TFUEL", + "decimals": 18 + }, + "infoURL": "https://www.thetatoken.org/", + "shortName": "theta-sapphire", + "chainId": 363, + "networkId": 363, + "explorers": [ + { + "name": "Theta Sapphire Testnet Explorer", + "url": "https://guardian-testnet-sapphire-explorer.thetatoken.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Theta Amber Testnet", + "chain": "Theta", + "rpc": ["https://eth-rpc-api-amber.thetatoken.org/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "Theta Fuel", + "symbol": "TFUEL", + "decimals": 18 + }, + "infoURL": "https://www.thetatoken.org/", + "shortName": "theta-amber", + "chainId": 364, + "networkId": 364, + "explorers": [ + { + "name": "Theta Amber Testnet Explorer", + "url": "https://guardian-testnet-amber-explorer.thetatoken.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Theta Testnet", + "chain": "Theta", + "rpc": ["https://eth-rpc-api-testnet.thetatoken.org/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "Theta Fuel", + "symbol": "TFUEL", + "decimals": 18 + }, + "infoURL": "https://www.thetatoken.org/", + "shortName": "theta-testnet", + "chainId": 365, + "networkId": 365, + "explorers": [ + { + "name": "Theta Testnet Explorer", + "url": "https://testnet-explorer.thetatoken.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "PulseChain", + "shortName": "pls", + "chain": "PLS", + "chainId": 369, + "networkId": 369, + "infoURL": "https://pulsechain.com/", + "rpc": ["https://rpc.pulsechain.com/", "wss://rpc.pulsechain.com/"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "ens": { "registry": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" }, + "status": "incubating", + "nativeCurrency": { "name": "Pulse", "symbol": "PLS", "decimals": 18 } + }, + { + "name": "Consta Testnet", + "chain": "tCNT", + "rpc": ["https://rpc-testnet.theconsta.com"], + "faucets": [], + "nativeCurrency": { "name": "tCNT", "symbol": "tCNT", "decimals": 18 }, + "infoURL": "http://theconsta.com", + "shortName": "tCNT", + "chainId": 371, + "networkId": 371, + "icon": "constachain", + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer-testnet.theconsta.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Lisinski", + "chain": "CRO", + "rpc": ["https://rpc-bitfalls1.lisinski.online"], + "faucets": ["https://pipa.lisinski.online"], + "nativeCurrency": { + "name": "Lisinski Ether", + "symbol": "LISINS", + "decimals": 18 + }, + "infoURL": "https://lisinski.online", + "shortName": "lisinski", + "chainId": 385, + "networkId": 385 + }, + { + "name": "HyperonChain TestNet", + "chain": "HPN", + "icon": "hyperonchain", + "rpc": ["https://testnet-rpc.hyperonchain.com"], + "faucets": ["https://faucet.hyperonchain.com"], + "nativeCurrency": { + "name": "HyperonChain", + "symbol": "HPN", + "decimals": 18 + }, + "infoURL": "https://docs.hyperonchain.com", + "shortName": "hpn", + "chainId": 400, + "networkId": 400, + "explorers": [ + { + "name": "blockscout", + "url": "https://testnet.hyperonchain.com", + "icon": "hyperonchain", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ozone Chain Testnet", + "chain": "OZONE", + "rpc": ["https://node1.testnet.ozonechain.io"], + "faucets": [], + "nativeCurrency": { "name": "OZONE", "symbol": "OZO", "decimals": 18 }, + "infoURL": "https://ozonechain.io", + "shortName": "ozo_tst", + "chainId": 401, + "networkId": 401, + "icon": "ozonechain", + "explorers": [ + { + "name": "OZONE Scan", + "url": "https://testnet.ozonescan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "SX Network Mainnet", + "chain": "SX", + "icon": "SX", + "rpc": ["https://rpc.sx.technology"], + "faucets": [], + "nativeCurrency": { "name": "SX Network", "symbol": "SX", "decimals": 18 }, + "infoURL": "https://www.sx.technology", + "shortName": "SX", + "chainId": 416, + "networkId": 416, + "explorers": [ + { + "name": "SX Network Explorer", + "url": "https://explorer.sx.technology", + "standard": "EIP3091" + } + ] + }, + { + "name": "LaTestnet", + "chain": "LaTestnet", + "icon": "LaChain", + "rpc": [ + "https://rpc.testnet.lachain.network", + "https://lachain-testnet.rpc-nodes.cedalio.dev" + ], + "faucets": ["https://faucet.lachain.network"], + "nativeCurrency": { + "name": "Test LaCoin", + "symbol": "TLA", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }], + "infoURL": "", + "shortName": "latestnet", + "chainId": 418, + "networkId": 418, + "explorers": [ + { + "name": "LaTestnet Explorer", + "url": "https://testexplorer.lachain.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Optimism Goerli Testnet", + "chain": "ETH", + "rpc": ["https://goerli.optimism.io/"], + "faucets": [], + "nativeCurrency": { + "name": "Goerli Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://optimism.io", + "shortName": "ogor", + "chainId": 420, + "networkId": 420 + }, + { + "name": "Zeeth Chain", + "chain": "ZeethChain", + "rpc": ["https://rpc.zeeth.io"], + "faucets": [], + "nativeCurrency": { + "name": "Zeeth Token", + "symbol": "ZTH", + "decimals": 18 + }, + "infoURL": "", + "shortName": "zeeth", + "chainId": 427, + "networkId": 427, + "explorers": [ + { + "name": "Zeeth Explorer", + "url": "https://explorer.zeeth.io", + "standard": "none" + } + ] + }, + { + "name": "Frenchain Testnet", + "chain": "tfren", + "rpc": ["https://rpc-01tn.frenchain.app"], + "faucets": [], + "nativeCurrency": { "name": "tFREN", "symbol": "FtREN", "decimals": 18 }, + "infoURL": "https://frenchain.app", + "shortName": "tFREN", + "chainId": 444, + "networkId": 444, + "icon": "fren", + "explorers": [ + { + "name": "blockscout", + "url": "https://testnet.frenscan.io", + "icon": "fren", + "standard": "EIP3091" + } + ] + }, + { + "name": "ARZIO Chain", + "chain": "ARZIO", + "icon": "arzio", + "rpc": ["https://chain-rpc.arzio.co"], + "faucets": [], + "nativeCurrency": { "name": "ARZIO", "symbol": "AZO", "decimals": 18 }, + "infoURL": "https://chain.arzio.co", + "shortName": "arzio", + "chainId": 456, + "networkId": 456, + "explorers": [ + { + "name": "ARZIO Scan", + "url": "https://scan.arzio.co", + "standard": "EIP3091" + } + ] + }, + { + "name": "Rupaya", + "chain": "RUPX", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Rupaya", "symbol": "RUPX", "decimals": 18 }, + "infoURL": "https://www.rupx.io", + "shortName": "rupx", + "chainId": 499, + "networkId": 499, + "slip44": 499 + }, + { + "name": "Camino C-Chain", + "chain": "CAM", + "rpc": ["https://api.camino.network/ext/bc/C/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Camino", "symbol": "CAM", "decimals": 18 }, + "infoURL": "https://camino.network/", + "shortName": "Camino", + "chainId": 500, + "networkId": 1000, + "icon": "camino", + "explorers": [ + { + "name": "blockexplorer", + "url": "https://suite.camino.network/explorer", + "standard": "none" + } + ] + }, + { + "name": "Columbus Test Network", + "chain": "CAM", + "rpc": ["https://columbus.camino.network/ext/bc/C/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Camino", "symbol": "CAM", "decimals": 18 }, + "infoURL": "https://camino.network/", + "shortName": "Columbus", + "chainId": 501, + "networkId": 1001, + "icon": "camino", + "explorers": [ + { + "name": "blockexplorer", + "url": "https://suite.camino.network/explorer", + "standard": "none" + } + ] + }, + { + "name": "Double-A Chain Mainnet", + "chain": "AAC", + "rpc": ["https://rpc.acuteangle.com"], + "faucets": [], + "nativeCurrency": { + "name": "Acuteangle Native Token", + "symbol": "AAC", + "decimals": 18 + }, + "infoURL": "https://www.acuteangle.com/", + "shortName": "aac", + "chainId": 512, + "networkId": 512, + "slip44": 1512, + "explorers": [ + { + "name": "aacscan", + "url": "https://scan.acuteangle.com", + "standard": "EIP3091" + } + ], + "icon": "aac" + }, + { + "name": "Double-A Chain Testnet", + "chain": "AAC", + "icon": "aac", + "rpc": ["https://rpc-testnet.acuteangle.com"], + "faucets": ["https://scan-testnet.acuteangle.com/faucet"], + "nativeCurrency": { + "name": "Acuteangle Native Token", + "symbol": "AAC", + "decimals": 18 + }, + "infoURL": "https://www.acuteangle.com/", + "shortName": "aact", + "chainId": 513, + "networkId": 513, + "explorers": [ + { + "name": "aacscan-testnet", + "url": "https://scan-testnet.acuteangle.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Gear Zero Network Mainnet", + "chain": "GearZero", + "rpc": ["https://gzn.linksme.info"], + "faucets": [], + "nativeCurrency": { + "name": "Gear Zero Network Native Token", + "symbol": "GZN", + "decimals": 18 + }, + "infoURL": "https://token.gearzero.ca/mainnet", + "shortName": "gz-mainnet", + "chainId": 516, + "networkId": 516, + "slip44": 516, + "explorers": [] + }, + { + "name": "XT Smart Chain Mainnet", + "chain": "XSC", + "icon": "xsc", + "rpc": [ + "https://datarpc1.xsc.pub", + "https://datarpc2.xsc.pub", + "https://datarpc3.xsc.pub" + ], + "faucets": ["https://xsc.pub/faucet"], + "nativeCurrency": { + "name": "XT Smart Chain Native Token", + "symbol": "XT", + "decimals": 18 + }, + "infoURL": "https://xsc.pub/", + "shortName": "xt", + "chainId": 520, + "networkId": 1024, + "explorers": [ + { "name": "xscscan", "url": "https://xscscan.pub", "standard": "EIP3091" } + ] + }, + { + "name": "Firechain Mainnet", + "chain": "FIRE", + "icon": "firechain", + "rpc": ["https://mainnet.rpc1.thefirechain.com"], + "faucets": [], + "nativeCurrency": { "name": "Firechain", "symbol": "FIRE", "decimals": 18 }, + "infoURL": "https://thefirechain.com", + "shortName": "fire", + "chainId": 529, + "networkId": 529, + "explorers": [], + "status": "incubating" + }, + { + "name": "F(x)Core Mainnet Network", + "chain": "Fxcore", + "rpc": ["https://fx-json-web3.functionx.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "Function X", "symbol": "FX", "decimals": 18 }, + "infoURL": "https://functionx.io/", + "shortName": "FxCore", + "chainId": 530, + "networkId": 530, + "icon": "fxcore", + "explorers": [ + { + "name": "FunctionX Explorer", + "url": "https://fx-evm.functionx.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Candle", + "chain": "Candle", + "rpc": ["https://candle-rpc.com/", "https://rpc.cndlchain.com"], + "faucets": [], + "nativeCurrency": { "name": "CANDLE", "symbol": "CNDL", "decimals": 18 }, + "infoURL": "https://candlelabs.org/", + "shortName": "CNDL", + "chainId": 534, + "networkId": 534, + "slip44": 674, + "explorers": [ + { + "name": "candleexplorer", + "url": "https://candleexplorer.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Vela1 Chain Mainnet", + "chain": "VELA1", + "rpc": ["https://rpc.velaverse.io"], + "faucets": [], + "nativeCurrency": { + "name": "CLASS COIN", + "symbol": "CLASS", + "decimals": 18 + }, + "infoURL": "https://velaverse.io", + "shortName": "CLASS", + "chainId": 555, + "networkId": 555, + "explorers": [ + { + "name": "Vela1 Chain Mainnet Explorer", + "url": "https://exp.velaverse.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Tao Network", + "chain": "TAO", + "rpc": [ + "https://rpc.testnet.tao.network", + "http://rpc.testnet.tao.network:8545", + "https://rpc.tao.network", + "wss://rpc.tao.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Tao", "symbol": "TAO", "decimals": 18 }, + "infoURL": "https://tao.network", + "shortName": "tao", + "chainId": 558, + "networkId": 558 + }, + { + "name": "Dogechain Testnet", + "chain": "DC", + "icon": "dogechain", + "rpc": ["https://rpc-testnet.dogechain.dog"], + "faucets": ["https://faucet.dogechain.dog"], + "nativeCurrency": { "name": "Dogecoin", "symbol": "DOGE", "decimals": 18 }, + "infoURL": "https://dogechain.dog", + "shortName": "dct", + "chainId": 568, + "networkId": 568, + "explorers": [ + { + "name": "dogechain testnet explorer", + "url": "https://explorer-testnet.dogechain.dog", + "standard": "EIP3091" + } + ] + }, + { + "name": "Rollux Mainnet", + "chain": "SYS", + "rpc": ["https://rpc.rollux.com", "wss://rpc.rollux.com/wss"], + "faucets": ["https://rollux.id/faucetapp"], + "nativeCurrency": { "name": "Syscoin", "symbol": "SYS", "decimals": 18 }, + "infoURL": "https://rollux.com", + "shortName": "sys-rollux", + "chainId": 570, + "networkId": 570, + "explorers": [ + { + "name": "Rollux Explorer", + "url": "https://explorer.rollux.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Metis Stardust Testnet", + "chain": "ETH", + "rpc": ["https://stardust.metis.io/?owner=588"], + "faucets": [], + "nativeCurrency": { "name": "tMetis", "symbol": "METIS", "decimals": 18 }, + "infoURL": "https://www.metis.io", + "shortName": "metis-stardust", + "chainId": 588, + "networkId": 588, + "explorers": [ + { + "name": "blockscout", + "url": "https://stardust-explorer.metis.io", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-4", + "bridges": [{ "url": "https://bridge.metis.io" }] + }, + "status": "deprecated" + }, + { + "name": "Astar", + "chain": "ASTR", + "rpc": ["https://rpc.astar.network:8545"], + "faucets": [], + "nativeCurrency": { "name": "Astar", "symbol": "ASTR", "decimals": 18 }, + "infoURL": "https://astar.network/", + "shortName": "astr", + "chainId": 592, + "networkId": 592, + "icon": "astar", + "explorers": [ + { + "name": "subscan", + "url": "https://astar.subscan.io", + "standard": "none", + "icon": "subscan" + } + ] + }, + { + "name": "Acala Mandala Testnet", + "chain": "mACA", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Acala Mandala Token", + "symbol": "mACA", + "decimals": 18 + }, + "infoURL": "https://acala.network", + "shortName": "maca", + "chainId": 595, + "networkId": 595 + }, + { + "name": "Karura Network Testnet", + "chain": "KAR", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Karura Token", + "symbol": "KAR", + "decimals": 18 + }, + "infoURL": "https://karura.network", + "shortName": "tkar", + "chainId": 596, + "networkId": 596, + "slip44": 596 + }, + { + "name": "Acala Network Testnet", + "chain": "ACA", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Acala Token", + "symbol": "ACA", + "decimals": 18 + }, + "infoURL": "https://acala.network", + "shortName": "taca", + "chainId": 597, + "networkId": 597, + "slip44": 597 + }, + { + "name": "Metis Goerli Testnet", + "chain": "ETH", + "rpc": ["https://goerli.gateway.metisdevops.link"], + "faucets": ["https://goerli.faucet.metisdevops.link"], + "nativeCurrency": { + "name": "Goerli Metis", + "symbol": "METIS", + "decimals": 18 + }, + "infoURL": "https://www.metis.io", + "shortName": "metis-goerli", + "chainId": 599, + "networkId": 599, + "explorers": [ + { + "name": "blockscout", + "url": "https://goerli.explorer.metisdevops.link", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-4", + "bridges": [{ "url": "https://testnet-bridge.metis.io" }] + } + }, + { + "name": "Meshnyan testnet", + "chain": "MeshTestChain", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Meshnyan Testnet Native Token", + "symbol": "MESHT", + "decimals": 18 + }, + "infoURL": "", + "shortName": "mesh-chain-testnet", + "chainId": 600, + "networkId": 600 + }, + { + "name": "Graphlinq Blockchain Mainnet", + "chain": "GLQ Blockchain", + "rpc": ["https://glq-dataseed.graphlinq.io"], + "faucets": [], + "nativeCurrency": { "name": "GLQ", "symbol": "GLQ", "decimals": 18 }, + "infoURL": "https://graphlinq.io", + "shortName": "glq", + "chainId": 614, + "networkId": 614, + "explorers": [ + { + "name": "GLQ Explorer", + "url": "https://explorer.graphlinq.io", + "standard": "none" + } + ] + }, + { + "name": "SX Network Testnet", + "chain": "SX", + "icon": "SX", + "rpc": ["https://rpc.toronto.sx.technology"], + "faucets": ["https://faucet.toronto.sx.technology"], + "nativeCurrency": { "name": "SX Network", "symbol": "SX", "decimals": 18 }, + "infoURL": "https://www.sx.technology", + "shortName": "SX-Testnet", + "chainId": 647, + "networkId": 647, + "explorers": [ + { + "name": "SX Network Toronto Explorer", + "url": "https://explorer.toronto.sx.technology", + "standard": "EIP3091" + } + ] + }, + { + "name": "Endurance Smart Chain Mainnet", + "chain": "ACE", + "rpc": ["https://rpc-endurance.fusionist.io/"], + "faucets": [], + "nativeCurrency": { + "name": "Endurance Chain Native Token", + "symbol": "ACE", + "decimals": 18 + }, + "infoURL": "https://ace.fusionist.io/", + "shortName": "ace", + "chainId": 648, + "networkId": 648, + "explorers": [ + { + "name": "Endurance Scan", + "url": "https://explorer.endurance.fusionist.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Pixie Chain Testnet", + "chain": "PixieChain", + "rpc": [ + "https://http-testnet.chain.pixie.xyz", + "wss://ws-testnet.chain.pixie.xyz" + ], + "faucets": ["https://chain.pixie.xyz/faucet"], + "nativeCurrency": { + "name": "Pixie Chain Testnet Native Token", + "symbol": "PCTT", + "decimals": 18 + }, + "infoURL": "https://scan-testnet.chain.pixie.xyz", + "shortName": "pixie-chain-testnet", + "chainId": 666, + "networkId": 666 + }, + { + "name": "Karura Network", + "chain": "KAR", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Karura Token", + "symbol": "KAR", + "decimals": 18 + }, + "infoURL": "https://karura.network", + "shortName": "kar", + "chainId": 686, + "networkId": 686, + "slip44": 686 + }, + { + "name": "Star Social Testnet", + "chain": "SNS", + "rpc": ["https://avastar.cc/ext/bc/C/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Social", "symbol": "SNS", "decimals": 18 }, + "infoURL": "https://info.avastar.cc", + "shortName": "SNS", + "chainId": 700, + "networkId": 700, + "explorers": [ + { + "name": "starscan", + "url": "https://avastar.info", + "standard": "EIP3091" + } + ] + }, + { + "name": "BlockChain Station Mainnet", + "chain": "BCS", + "rpc": ["https://rpc-mainnet.bcsdev.io", "wss://rpc-ws-mainnet.bcsdev.io"], + "faucets": [], + "nativeCurrency": { "name": "BCS Token", "symbol": "BCS", "decimals": 18 }, + "infoURL": "https://blockchainstation.io", + "shortName": "bcs", + "chainId": 707, + "networkId": 707, + "explorers": [ + { + "name": "BlockChain Station Explorer", + "url": "https://explorer.bcsdev.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "BlockChain Station Testnet", + "chain": "BCS", + "rpc": ["https://rpc-testnet.bcsdev.io", "wss://rpc-ws-testnet.bcsdev.io"], + "faucets": ["https://faucet.bcsdev.io"], + "nativeCurrency": { + "name": "BCS Testnet Token", + "symbol": "tBCS", + "decimals": 18 + }, + "infoURL": "https://blockchainstation.io", + "shortName": "tbcs", + "chainId": 708, + "networkId": 708, + "explorers": [ + { + "name": "BlockChain Station Explorer", + "url": "https://testnet.bcsdev.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Shibarium Beta", + "chain": "Shibarium", + "icon": "shibarium", + "rpc": ["https://puppynet.shibrpc.com"], + "faucets": [], + "nativeCurrency": { "name": "BONE", "symbol": "BONE", "decimals": 18 }, + "infoURL": "https://beta.shibariumtech.com", + "shortName": "shibarium", + "chainId": 719, + "networkId": 719, + "explorers": [ + { + "name": "shibscan", + "url": "https://puppyscan.shib.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Lycan Chain", + "chain": "LYC", + "rpc": ["https://rpc.lycanchain.com/"], + "faucets": [], + "nativeCurrency": { "name": "Lycan", "symbol": "LYC", "decimals": 18 }, + "infoURL": "https://lycanchain.com", + "shortName": "LYC", + "chainId": 721, + "networkId": 721, + "icon": "lycanchain", + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.lycanchain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Canto Testnet", + "chain": "Canto Tesnet", + "rpc": ["https://eth.plexnode.wtf/"], + "faucets": [], + "nativeCurrency": { "name": "Canto", "symbol": "CANTO", "decimals": 18 }, + "infoURL": "https://canto.io", + "shortName": "tcanto", + "chainId": 740, + "networkId": 740, + "explorers": [ + { + "name": "Canto Tesnet Explorer (Neobase)", + "url": "https://testnet-explorer.canto.neobase.one", + "standard": "none" + } + ], + "status": "deprecated" + }, + { + "name": "Vention Smart Chain Testnet", + "chain": "VSCT", + "icon": "ventionTestnet", + "rpc": ["https://node-testnet.vention.network"], + "faucets": ["https://faucet.vention.network"], + "nativeCurrency": { "name": "VNT", "symbol": "VNT", "decimals": 18 }, + "infoURL": "https://testnet.ventionscan.io", + "shortName": "vsct", + "chainId": 741, + "networkId": 741, + "explorers": [ + { + "name": "ventionscan", + "url": "https://testnet.ventionscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "QL1", + "chain": "QOM", + "status": "incubating", + "rpc": ["https://rpc.qom.one"], + "faucets": [], + "nativeCurrency": { + "name": "Shiba Predator", + "symbol": "QOM", + "decimals": 18 + }, + "infoURL": "https://qom.one", + "shortName": "qom", + "chainId": 766, + "networkId": 766, + "icon": "qom", + "explorers": [ + { + "name": "QL1 Mainnet Explorer", + "url": "https://mainnet.qom.one", + "icon": "qom", + "standard": "EIP3091" + } + ] + }, + { + "name": "OpenChain Testnet", + "chain": "OpenChain Testnet", + "rpc": [], + "faucets": ["https://faucet.openchain.info/"], + "nativeCurrency": { + "name": "Openchain Testnet", + "symbol": "TOPC", + "decimals": 18 + }, + "infoURL": "https://testnet.openchain.info/", + "shortName": "opc", + "chainId": 776, + "networkId": 776, + "explorers": [ + { + "name": "OPEN CHAIN TESTNET", + "url": "https://testnet.openchain.info", + "standard": "none" + } + ] + }, + { + "name": "cheapETH", + "chain": "cheapETH", + "rpc": ["https://node.cheapeth.org/rpc"], + "faucets": [], + "nativeCurrency": { "name": "cTH", "symbol": "cTH", "decimals": 18 }, + "infoURL": "https://cheapeth.org/", + "shortName": "cth", + "chainId": 777, + "networkId": 777 + }, + { + "name": "MAAL Sharia Chain", + "chain": "MAAL", + "icon": "maal", + "rpc": [ + "https://node1-mainnet.maalscan.io/", + "https://node2-mainnet.maalscan.io/", + "https://node3-mainnet.maalscan.io/" + ], + "faucets": [], + "nativeCurrency": { "name": "MAAL", "symbol": "MAAL", "decimals": 18 }, + "infoURL": "https://www.maalblockchain.com/", + "shortName": "maal", + "chainId": 786, + "networkId": 786, + "explorers": [ + { + "name": "maalscan", + "url": "https://maalscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Acala Network", + "chain": "ACA", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Acala Token", + "symbol": "ACA", + "decimals": 18 + }, + "infoURL": "https://acala.network", + "shortName": "aca", + "chainId": 787, + "networkId": 787, + "slip44": 787 + }, + { + "name": "Aerochain Testnet", + "chain": "Aerochain", + "rpc": ["https://testnet-rpc.aerochain.id/"], + "faucets": ["https://faucet.aerochain.id/"], + "nativeCurrency": { + "name": "Aerochain Testnet", + "symbol": "TAero", + "decimals": 18 + }, + "infoURL": "https://aerochaincoin.org/", + "shortName": "taero", + "chainId": 788, + "networkId": 788, + "explorers": [ + { + "name": "aeroscan", + "url": "https://testnet.aeroscan.id", + "standard": "EIP3091" + } + ] + }, + { + "name": "Patex", + "chain": "ETH", + "rpc": ["https://rpc.patex.io/"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://patex.io/", + "shortName": "peth", + "chainId": 789, + "networkId": 789 + }, + { + "name": "Lucid Blockchain", + "chain": "Lucid", + "icon": "lucid", + "rpc": ["https://rpc.lucidcoin.io"], + "faucets": ["https://faucet.lucidcoin.io"], + "nativeCurrency": { "name": "LUCID", "symbol": "LUCID", "decimals": 18 }, + "infoURL": "https://lucidcoin.io", + "shortName": "LUCID", + "chainId": 800, + "networkId": 800, + "explorers": [ + { + "name": "Lucid Explorer", + "url": "https://explorer.lucidcoin.io", + "standard": "none" + } + ] + }, + { + "name": "Haic", + "chain": "Haic", + "rpc": ["https://orig.haichain.io/"], + "faucets": [], + "nativeCurrency": { "name": "Haicoin", "symbol": "HAIC", "decimals": 18 }, + "infoURL": "https://www.haichain.io/", + "shortName": "haic", + "chainId": 803, + "networkId": 803 + }, + { + "name": "Portal Fantasy Chain Test", + "chain": "PF", + "icon": "pf", + "rpc": ["https://subnets.avax.network/portal-fantasy/testnet/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "Portal Fantasy Token", + "symbol": "PFT", + "decimals": 18 + }, + "infoURL": "https://portalfantasy.io", + "shortName": "PFTEST", + "chainId": 808, + "networkId": 808, + "explorers": [] + }, + { + "name": "Qitmeer", + "chain": "MEER", + "rpc": [ + "https://evm-dataseed1.meerscan.io", + "https://evm-dataseed2.meerscan.io", + "https://evm-dataseed3.meerscan.io", + "https://evm-dataseed.meerscan.com", + "https://evm-dataseed1.meerscan.com", + "https://evm-dataseed2.meerscan.com" + ], + "faucets": [], + "nativeCurrency": { "name": "Qitmeer", "symbol": "MEER", "decimals": 18 }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "meer", + "chainId": 813, + "networkId": 813, + "slip44": 813, + "icon": "meer", + "explorers": [ + { + "name": "meerscan", + "icon": "meer", + "url": "https://evm.meerscan.com", + "standard": "none" + } + ] + }, + { + "name": "BeOne Chain Mainnet", + "chain": "BOC", + "icon": "beonechain", + "rpc": [ + "https://dataseed1.beonechain.com", + "https://dataseed2.beonechain.com", + "https://dataseed-us1.beonechain.com", + "https://dataseed-us2.beonechain.com", + "https://dataseed-uk1.beonechain.com", + "https://dataseed-uk2.beonechain.com" + ], + "faucets": [], + "nativeCurrency": { + "name": "BeOne Chain Mainnet", + "symbol": "BOC", + "decimals": 18 + }, + "infoURL": "https://beonechain.com", + "shortName": "BOC", + "chainId": 818, + "networkId": 818, + "slip44": 8181, + "explorers": [ + { + "name": "BeOne Chain Mainnet", + "url": "https://beonescan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Callisto Mainnet", + "chain": "CLO", + "rpc": ["https://rpc.callisto.network/"], + "faucets": [], + "nativeCurrency": { "name": "Callisto", "symbol": "CLO", "decimals": 18 }, + "infoURL": "https://callisto.network", + "shortName": "clo", + "chainId": 820, + "networkId": 1, + "slip44": 820 + }, + { + "name": "Callisto Testnet Deprecated", + "chain": "CLO", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Callisto Testnet Ether", + "symbol": "TCLO", + "decimals": 18 + }, + "infoURL": "https://callisto.network", + "shortName": "tclo", + "chainId": 821, + "networkId": 2, + "status": "deprecated" + }, + { + "name": "Taraxa Mainnet", + "chain": "Tara", + "icon": "taraxa", + "rpc": ["https://rpc.mainnet.taraxa.io/"], + "faucets": [], + "nativeCurrency": { "name": "Tara", "symbol": "TARA", "decimals": 18 }, + "infoURL": "https://taraxa.io", + "shortName": "tara", + "chainId": 841, + "networkId": 841, + "explorers": [ + { + "name": "Taraxa Explorer", + "url": "https://explorer.mainnet.taraxa.io", + "standard": "none" + } + ] + }, + { + "name": "Taraxa Testnet", + "chain": "Tara", + "icon": "taraxa", + "rpc": ["https://rpc.testnet.taraxa.io/"], + "faucets": [], + "nativeCurrency": { "name": "Tara", "symbol": "TARA", "decimals": 18 }, + "infoURL": "https://taraxa.io", + "shortName": "taratest", + "chainId": 842, + "networkId": 842, + "explorers": [ + { + "name": "Taraxa Explorer", + "url": "https://explorer.testnet.taraxa.io", + "standard": "none" + } + ] + }, + { + "name": "Zeeth Chain Dev", + "chain": "ZeethChainDev", + "rpc": ["https://rpc.dev.zeeth.io"], + "faucets": [], + "nativeCurrency": { + "name": "Zeeth Token", + "symbol": "ZTH", + "decimals": 18 + }, + "infoURL": "", + "shortName": "zeethdev", + "chainId": 859, + "networkId": 859, + "explorers": [ + { + "name": "Zeeth Explorer Dev", + "url": "https://explorer.dev.zeeth.io", + "standard": "none" + } + ] + }, + { + "name": "Fantasia Chain Mainnet", + "chain": "FSC", + "rpc": [ + "https://mainnet-data1.fantasiachain.com/", + "https://mainnet-data2.fantasiachain.com/", + "https://mainnet-data3.fantasiachain.com/" + ], + "faucets": [], + "nativeCurrency": { "name": "FST", "symbol": "FST", "decimals": 18 }, + "infoURL": "https://fantasia.technology/", + "shortName": "FSCMainnet", + "chainId": 868, + "networkId": 868, + "explorers": [ + { + "name": "FSCScan", + "url": "https://explorer.fantasiachain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bandai Namco Research Verse Mainnet", + "chain": "Bandai Namco Research Verse", + "icon": "bnken", + "rpc": ["https://rpc.main.oasvrs.bnken.net"], + "faucets": [], + "nativeCurrency": { "name": "OAS", "symbol": "OAS", "decimals": 18 }, + "infoURL": "https://www.bandainamco-mirai.com/en/", + "shortName": "BNKEN", + "chainId": 876, + "networkId": 876, + "explorers": [ + { + "name": "Bandai Namco Research Verse Explorer", + "url": "https://explorer.main.oasvrs.bnken.net", + "standard": "EIP3091" + } + ], + "parent": { "type": "L2", "chain": "eip155-248" } + }, + { + "name": "Dexit Network", + "chain": "DXT", + "rpc": ["https://dxt.dexit.network"], + "faucets": ["https://faucet.dexit.network"], + "nativeCurrency": { + "name": "Dexit network", + "symbol": "DXT", + "decimals": 18 + }, + "infoURL": "https://dexit.network", + "shortName": "DXT", + "chainId": 877, + "networkId": 877, + "explorers": [ + { "name": "dxtscan", "url": "https://dxtscan.com", "standard": "EIP3091" } + ] + }, + { + "name": "Ambros Chain Mainnet", + "chain": "ambroschain", + "rpc": ["https://api.ambros.network"], + "faucets": [], + "nativeCurrency": { "name": "AMBROS", "symbol": "AMBROS", "decimals": 18 }, + "infoURL": "https://ambros.network", + "shortName": "ambros", + "chainId": 880, + "networkId": 880, + "explorers": [ + { + "name": "Ambros Chain Explorer", + "url": "https://ambrosscan.com", + "standard": "none" + } + ] + }, + { + "name": "Wanchain", + "chain": "WAN", + "rpc": ["https://gwan-ssl.wandevs.org:56891/"], + "faucets": [], + "nativeCurrency": { "name": "Wancoin", "symbol": "WAN", "decimals": 18 }, + "infoURL": "https://www.wanscan.org", + "shortName": "wan", + "chainId": 888, + "networkId": 888, + "slip44": 5718350 + }, + { + "name": "Garizon Testnet Stage0", + "chain": "GAR", + "icon": "garizon", + "rpc": ["https://s0-testnet.garizon.net/rpc"], + "faucets": ["https://faucet-testnet.garizon.com"], + "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, + "infoURL": "https://garizon.com", + "shortName": "gar-test-s0", + "chainId": 900, + "networkId": 900, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer-testnet.garizon.com", + "icon": "garizon", + "standard": "EIP3091" + } + ] + }, + { + "name": "Garizon Testnet Stage1", + "chain": "GAR", + "icon": "garizon", + "rpc": ["https://s1-testnet.garizon.net/rpc"], + "faucets": ["https://faucet-testnet.garizon.com"], + "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, + "infoURL": "https://garizon.com", + "shortName": "gar-test-s1", + "chainId": 901, + "networkId": 901, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer-testnet.garizon.com", + "icon": "garizon", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-900", "type": "shard" } + }, + { + "name": "Garizon Testnet Stage2", + "chain": "GAR", + "icon": "garizon", + "rpc": ["https://s2-testnet.garizon.net/rpc"], + "faucets": ["https://faucet-testnet.garizon.com"], + "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, + "infoURL": "https://garizon.com", + "shortName": "gar-test-s2", + "chainId": 902, + "networkId": 902, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer-testnet.garizon.com", + "icon": "garizon", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-900", "type": "shard" } + }, + { + "name": "Garizon Testnet Stage3", + "chain": "GAR", + "icon": "garizon", + "rpc": ["https://s3-testnet.garizon.net/rpc"], + "faucets": ["https://faucet-testnet.garizon.com"], + "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, + "infoURL": "https://garizon.com", + "shortName": "gar-test-s3", + "chainId": 903, + "networkId": 903, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer-testnet.garizon.com", + "icon": "garizon", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-900", "type": "shard" } + }, + { + "name": "Portal Fantasy Chain", + "chain": "PF", + "icon": "pf", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Portal Fantasy Token", + "symbol": "PFT", + "decimals": 18 + }, + "infoURL": "https://portalfantasy.io", + "shortName": "PF", + "chainId": 909, + "networkId": 909, + "explorers": [], + "status": "incubating" + }, + { + "name": "DecentraBone Layer1 Testnet", + "chain": "DBONE", + "rpc": ["https://layer1test.decentrabone.com"], + "faucets": [], + "nativeCurrency": { + "name": "DecentraBone", + "symbol": "DBONE", + "decimals": 18 + }, + "infoURL": "https://decentrabone.com", + "shortName": "DBONE", + "chainId": 910, + "networkId": 910 + }, + { + "name": "Rinia Testnet", + "chain": "FIRE", + "icon": "rinia", + "rpc": ["https://rinia.rpc1.thefirechain.com"], + "faucets": ["https://faucet.thefirechain.com"], + "nativeCurrency": { "name": "Firechain", "symbol": "FIRE", "decimals": 18 }, + "infoURL": "https://thefirechain.com", + "shortName": "tfire", + "chainId": 917, + "networkId": 917, + "explorers": [], + "status": "incubating" + }, + { + "name": "PulseChain Testnet", + "shortName": "tpls", + "chain": "tPLS", + "chainId": 940, + "networkId": 940, + "infoURL": "https://pulsechain.com/", + "rpc": [ + "https://rpc.v2.testnet.pulsechain.com/", + "wss://rpc.v2.testnet.pulsechain.com/" + ], + "faucets": ["https://faucet.v2.testnet.pulsechain.com/"], + "status": "deprecated", + "nativeCurrency": { "name": "Test Pulse", "symbol": "tPLS", "decimals": 18 } + }, + { + "name": "PulseChain Testnet v2b", + "shortName": "t2bpls", + "chain": "t2bPLS", + "chainId": 941, + "networkId": 941, + "infoURL": "https://pulsechain.com/", + "rpc": [ + "https://rpc.v2b.testnet.pulsechain.com/", + "wss://rpc.v2b.testnet.pulsechain.com/" + ], + "faucets": ["https://faucet.v2b.testnet.pulsechain.com/"], + "status": "deprecated", + "nativeCurrency": { "name": "Test Pulse", "symbol": "tPLS", "decimals": 18 } + }, + { + "name": "PulseChain Testnet v3", + "shortName": "t3pls", + "chain": "t3PLS", + "chainId": 942, + "networkId": 942, + "infoURL": "https://pulsechain.com/", + "rpc": [ + "https://rpc.v3.testnet.pulsechain.com/", + "wss://rpc.v3.testnet.pulsechain.com/" + ], + "faucets": ["https://faucet.v3.testnet.pulsechain.com/"], + "nativeCurrency": { "name": "Test Pulse", "symbol": "tPLS", "decimals": 18 } + }, + { + "name": "PulseChain Testnet v4", + "shortName": "t4pls", + "chain": "t4PLS", + "chainId": 943, + "networkId": 943, + "icon": "pulsechain", + "infoURL": "https://pulsechain.com", + "rpc": [ + "https://rpc.v4.testnet.pulsechain.com/", + "wss://rpc.v4.testnet.pulsechain.com/" + ], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": ["https://faucet.v4.testnet.pulsechain.com/"], + "ens": { "registry": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" }, + "status": "incubating", + "explorers": [], + "nativeCurrency": { "name": "Test Pulse", "symbol": "tPLS", "decimals": 18 } + }, + { + "name": "muNode Testnet", + "chain": "munode", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://munode.dev/", + "shortName": "munode", + "chainId": 956, + "networkId": 956 + }, + { + "name": "Oort Mainnet", + "chain": "Oort Mainnet", + "rpc": ["https://rpc.oortech.com"], + "faucets": [], + "nativeCurrency": { "name": "Oort", "symbol": "CCN", "decimals": 18 }, + "infoURL": "https://oortech.com", + "shortName": "ccn", + "chainId": 970, + "networkId": 970, + "icon": "ccn" + }, + { + "name": "Oort Huygens", + "chain": "Huygens", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Oort", "symbol": "CCN", "decimals": 18 }, + "infoURL": "https://oortech.com", + "shortName": "Huygens", + "chainId": 971, + "networkId": 971, + "icon": "ccn" + }, + { + "name": "Oort Ascraeus", + "title": "Oort Ascraeus", + "chain": "Ascraeus", + "rpc": ["https://ascraeus-rpc.oortech.com"], + "faucets": [], + "nativeCurrency": { "name": "Oort", "symbol": "CCNA", "decimals": 18 }, + "infoURL": "https://oortech.com", + "shortName": "Ascraeus", + "chainId": 972, + "networkId": 972, + "icon": "ccn" + }, + { + "name": "Nepal Blockchain Network", + "chain": "YETI", + "rpc": [ + "https://api.nepalblockchain.dev", + "https://api.nepalblockchain.network" + ], + "faucets": ["https://faucet.nepalblockchain.network"], + "nativeCurrency": { + "name": "Nepal Blockchain Network Ether", + "symbol": "YETI", + "decimals": 18 + }, + "infoURL": "https://nepalblockchain.network", + "shortName": "yeti", + "chainId": 977, + "networkId": 977 + }, + { + "name": "TOP Mainnet EVM", + "chain": "TOP", + "icon": "top", + "rpc": ["https://ethapi.topnetwork.org"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://www.topnetwork.org/", + "shortName": "top_evm", + "chainId": 980, + "networkId": 0, + "explorers": [ + { + "name": "topscan.dev", + "url": "https://www.topscan.io", + "standard": "none" + } + ] + }, + { + "name": "Memo Smart Chain Mainnet", + "chain": "MEMO", + "rpc": [ + "https://chain.metamemo.one:8501", + "wss://chain.metamemo.one:16801" + ], + "faucets": ["https://faucet.metamemo.one/"], + "nativeCurrency": { "name": "Memo", "symbol": "CMEMO", "decimals": 18 }, + "infoURL": "www.memolabs.org", + "shortName": "memochain", + "chainId": 985, + "networkId": 985, + "icon": "memo", + "explorers": [ + { + "name": "Memo Mainnet Explorer", + "url": "https://scan.metamemo.one:8080", + "icon": "memo", + "standard": "EIP3091" + } + ] + }, + { + "name": "TOP Mainnet", + "chain": "TOP", + "icon": "top", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "TOP", "symbol": "TOP", "decimals": 6 }, + "infoURL": "https://www.topnetwork.org/", + "shortName": "top", + "chainId": 989, + "networkId": 0, + "explorers": [ + { + "name": "topscan.dev", + "url": "https://www.topscan.io", + "standard": "none" + } + ] + }, + { + "name": "5ireChain Thunder", + "chain": "5ireChain", + "rpc": ["https://rpc-testnet.5ire.network"], + "faucets": ["https://explorer.5ire.network/faucet"], + "nativeCurrency": { + "name": "5ire Token", + "symbol": "5ire", + "decimals": 18 + }, + "infoURL": "https://5ire.org", + "shortName": "5ire", + "chainId": 997, + "networkId": 997, + "icon": "5ireChain", + "explorers": [ + { + "name": "5ireChain Explorer", + "url": "https://explorer.5ire.network", + "standard": "none", + "icon": "5ireChain" + } + ] + }, + { + "name": "Lucky Network", + "chain": "LN", + "rpc": [ + "https://rpc.luckynetwork.org", + "wss://ws.lnscan.org", + "https://rpc.lnscan.org" + ], + "faucets": [], + "nativeCurrency": { "name": "Lucky", "symbol": "L99", "decimals": 18 }, + "infoURL": "https://luckynetwork.org", + "shortName": "ln", + "chainId": 998, + "networkId": 998, + "icon": "lucky", + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.luckynetwork.org", + "standard": "none" }, - "infoURL": "https://www.shibachain.net", - "shortName": "shib", - "chainId": 27, - "networkId": 27, - "explorers": [ - { - "name": "Shiba Explorer", - "url": "https://exp.shibachain.net", - "standard": "none" - } - ] - }, - { - "name": "Boba Network Rinkeby Testnet", - "chain": "ETH", - "rpc": ["https://rinkeby.boba.network/"], - "faucets": [], - "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, - "infoURL": "https://boba.network", - "shortName": "Boba Rinkeby", - "chainId": 28, - "networkId": 28, - "explorers": [ - { - "name": "Blockscout", - "url": "https://blockexplorer.rinkeby.boba.network", - "standard": "none" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-4", - "bridges": [{ "url": "https://gateway.rinkeby.boba.network" }] - } - }, - { - "name": "Genesis L1", - "chain": "genesis", - "rpc": ["https://rpc.genesisl1.org"], - "faucets": [], - "nativeCurrency": { "name": "L1 coin", "symbol": "L1", "decimals": 18 }, - "infoURL": "https://www.genesisl1.com", - "shortName": "L1", - "chainId": 29, - "networkId": 29, - "explorers": [ - { - "name": "Genesis L1 blockchain explorer", - "url": "https://explorer.genesisl1.org", - "standard": "none" - } - ] - }, - { - "name": "RSK Mainnet", - "chain": "RSK", - "rpc": ["https://public-node.rsk.co", "https://mycrypto.rsk.co"], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], - "nativeCurrency": { - "name": "RSK Mainnet Ether", - "symbol": "RBTC", - "decimals": 18 - }, - "infoURL": "https://rsk.co", - "shortName": "rsk", - "chainId": 30, - "networkId": 30, - "slip44": 137, - "explorers": [ - { - "name": "blockscout", - "url": "https://explorer.rsk.co", - "standard": "EIP3091" - } - ] - }, - { - "name": "RSK Testnet", - "chain": "RSK", - "rpc": [ - "https://public-node.testnet.rsk.co", - "https://mycrypto.testnet.rsk.co" - ], - "faucets": ["https://faucet.testnet.rsk.co"], - "nativeCurrency": { - "name": "RSK Testnet Ether", - "symbol": "tRBTC", - "decimals": 18 - }, - "infoURL": "https://rsk.co", - "shortName": "trsk", - "chainId": 31, - "networkId": 31 - }, - { - "name": "GoodData Testnet", - "chain": "GooD", - "rpc": ["https://test2.goodata.io"], - "faucets": [], - "nativeCurrency": { - "name": "GoodData Testnet Ether", - "symbol": "GooD", - "decimals": 18 - }, - "infoURL": "https://www.goodata.org", - "shortName": "GooDT", - "chainId": 32, - "networkId": 32 - }, - { - "name": "GoodData Mainnet", - "chain": "GooD", - "rpc": ["https://rpc.goodata.io"], - "faucets": [], - "nativeCurrency": { - "name": "GoodData Mainnet Ether", - "symbol": "GooD", - "decimals": 18 - }, - "infoURL": "https://www.goodata.org", - "shortName": "GooD", - "chainId": 33, - "networkId": 33 - }, - { - "name": "Dithereum Testnet", - "chain": "DTH", - "icon": "dithereum", - "rpc": ["https://node-testnet.dithereum.io"], - "faucets": ["https://faucet.dithereum.org"], - "nativeCurrency": { "name": "Dither", "symbol": "DTH", "decimals": 18 }, - "infoURL": "https://dithereum.org", - "shortName": "dth", - "chainId": 34, - "networkId": 34 - }, - { - "name": "TBWG Chain", - "chain": "TBWG", - "rpc": ["https://rpc.tbwg.io"], - "faucets": [], - "nativeCurrency": { "name": "TBWG Ether", "symbol": "TBG", "decimals": 18 }, - "infoURL": "https://tbwg.io", - "shortName": "tbwg", - "chainId": 35, - "networkId": 35 - }, - { - "name": "Valorbit", - "chain": "VAL", - "rpc": ["https://rpc.valorbit.com/v2"], - "faucets": [], - "nativeCurrency": { "name": "Valorbit", "symbol": "VAL", "decimals": 18 }, - "infoURL": "https://valorbit.com", - "shortName": "val", - "chainId": 38, - "networkId": 38, - "slip44": 538 - }, - { - "name": "Telos EVM Mainnet", - "chain": "TLOS", - "rpc": ["https://mainnet.telos.net/evm"], - "faucets": [], - "nativeCurrency": { "name": "Telos", "symbol": "TLOS", "decimals": 18 }, - "infoURL": "https://telos.net", - "shortName": "Telos EVM", - "chainId": 40, - "networkId": 40, - "explorers": [ - { - "name": "teloscan", - "url": "https://teloscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Telos EVM Testnet", - "chain": "TLOS", - "rpc": ["https://testnet.telos.net/evm"], - "faucets": ["https://app.telos.net/testnet/developers"], - "nativeCurrency": { "name": "Telos", "symbol": "TLOS", "decimals": 18 }, - "infoURL": "https://telos.net", - "shortName": "Telos EVM Testnet", - "chainId": 41, - "networkId": 41 - }, - { - "name": "Kovan", - "title": "Ethereum Testnet Kovan", - "chain": "ETH", - "network": "testnet", - "rpc": [ - "https://kovan.poa.network", - "http://kovan.poa.network:8545", - "https://kovan.infura.io/v3/${INFURA_API_KEY}", - "wss://kovan.infura.io/ws/v3/${INFURA_API_KEY}", - "ws://kovan.poa.network:8546" - ], - "faucets": [ - "http://fauceth.komputing.org?chain=42&address=${ADDRESS}", - "https://faucet.kovan.network", - "https://gitter.im/kovan-testnet/faucet" - ], - "nativeCurrency": { - "name": "Kovan Ether", - "symbol": "KOV", - "decimals": 18 - }, - "explorers": [ - { - "name": "etherscan", - "url": "https://kovan.etherscan.io", - "standard": "EIP3091" - } - ], - "infoURL": "https://kovan-testnet.github.io/website", - "shortName": "kov", - "chainId": 42, - "networkId": 42 - }, - { - "name": "Darwinia Pangolin Testnet", - "chain": "pangolin", - "rpc": ["https://pangolin-rpc.darwinia.network"], - "faucets": [ - "https://docs.crab.network/dvm/wallets/dvm-metamask#apply-for-the-test-token" - ], - "nativeCurrency": { - "name": "Pangolin Network Native Token\u201d", - "symbol": "PRING", - "decimals": 18 - }, - "infoURL": "https://darwinia.network/", - "shortName": "pangolin", - "chainId": 43, - "networkId": 43, - "explorers": [ - { - "name": "subscan", - "url": "https://pangolin.subscan.io", - "standard": "none" - } - ] - }, - { - "name": "Darwinia Crab Network", - "chain": "crab", - "rpc": ["https://crab-rpc.darwinia.network"], - "faucets": [], - "nativeCurrency": { - "name": "Crab Network Native Token", - "symbol": "CRAB", - "decimals": 18 - }, - "infoURL": "https://crab.network/", - "shortName": "crab", - "chainId": 44, - "networkId": 44, - "explorers": [ - { - "name": "subscan", - "url": "https://crab.subscan.io", - "standard": "none" - } - ] - }, - { - "name": "Darwinia Pangoro Testnet", - "chain": "pangoro", - "rpc": ["http://pangoro-rpc.darwinia.network"], - "faucets": [], - "nativeCurrency": { - "name": "Pangoro Network Native Token\u201d", - "symbol": "ORING", - "decimals": 18 - }, - "infoURL": "https://darwinia.network/", - "shortName": "pangoro", - "chainId": 45, - "networkId": 45, - "explorers": [ - { - "name": "subscan", - "url": "https://pangoro.subscan.io", - "standard": "none" - } - ] - }, - { - "name": "XinFin Network Mainnet", - "chain": "XDC", - "rpc": ["https://rpc.xinfin.network"], - "faucets": [], - "nativeCurrency": { "name": "XinFin", "symbol": "XDC", "decimals": 18 }, - "infoURL": "https://xinfin.org", - "shortName": "xdc", - "chainId": 50, - "networkId": 50 - }, - { - "name": "XinFin Apothem Testnet", - "chain": "TXDC", - "rpc": ["https://rpc.apothem.network"], - "faucets": [], - "nativeCurrency": { - "name": "XinFinTest", - "symbol": "TXDC", - "decimals": 18 - }, - "infoURL": "https://xinfin.org", - "shortName": "TXDC", - "chainId": 51, - "networkId": 51 - }, - { - "name": "CoinEx Smart Chain Mainnet", - "chain": "CSC", - "rpc": ["https://rpc.coinex.net"], - "faucets": [], - "nativeCurrency": { - "name": "CoinEx Chain Native Token", - "symbol": "cet", - "decimals": 18 - }, - "infoURL": "https://www.coinex.org/", - "shortName": "cet", - "chainId": 52, - "networkId": 52, - "explorers": [ - { - "name": "coinexscan", - "url": "https://www.coinex.net", - "standard": "none" - } - ] - }, - { - "name": "CoinEx Smart Chain Testnet", - "chain": "CSC", - "rpc": ["https://testnet-rpc.coinex.net/"], - "faucets": [], - "nativeCurrency": { - "name": "CoinEx Chain Test Native Token", - "symbol": "cett", - "decimals": 18 - }, - "infoURL": "https://www.coinex.org/", - "shortName": "tcet", - "chainId": 53, - "networkId": 53, - "explorers": [ - { - "name": "coinexscan", - "url": "https://testnet.coinex.net", - "standard": "none" - } - ] - }, - { - "name": "Openpiece Mainnet", - "chain": "OPENPIECE", - "icon": "openpiece", - "network": "mainnet", - "rpc": ["https://mainnet.openpiece.io"], - "faucets": [], - "nativeCurrency": { "name": "Belly", "symbol": "BELLY", "decimals": 18 }, - "infoURL": "https://cryptopiece.online", - "shortName": "OP", - "chainId": 54, - "networkId": 54, - "explorers": [ - { - "name": "Belly Scan", - "url": "https://bellyscan.com", - "standard": "none" - } - ] - }, - { - "name": "Zyx Mainnet", - "chain": "ZYX", - "rpc": [ - "https://rpc-1.zyx.network/", - "https://rpc-2.zyx.network/", - "https://rpc-3.zyx.network/", - "https://rpc-4.zyx.network/", - "https://rpc-5.zyx.network/", - "https://rpc-6.zyx.network/" - ], - "faucets": [], - "nativeCurrency": { "name": "Zyx", "symbol": "ZYX", "decimals": 18 }, - "infoURL": "https://zyx.network/", - "shortName": "ZYX", - "chainId": 55, - "networkId": 55, - "explorers": [ - { "name": "zyxscan", "url": "https://zyxscan.com", "standard": "none" } - ] - }, - { - "name": "Binance Smart Chain Mainnet", - "chain": "BSC", - "rpc": [ - "https://bsc-dataseed1.binance.org", - "https://bsc-dataseed2.binance.org", - "https://bsc-dataseed3.binance.org", - "https://bsc-dataseed4.binance.org", - "https://bsc-dataseed1.defibit.io", - "https://bsc-dataseed2.defibit.io", - "https://bsc-dataseed3.defibit.io", - "https://bsc-dataseed4.defibit.io", - "https://bsc-dataseed1.ninicoin.io", - "https://bsc-dataseed2.ninicoin.io", - "https://bsc-dataseed3.ninicoin.io", - "https://bsc-dataseed4.ninicoin.io", - "wss://bsc-ws-node.nariox.org" - ], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], - "nativeCurrency": { - "name": "Binance Chain Native Token", - "symbol": "BNB", - "decimals": 18 - }, - "infoURL": "https://www.binance.org", - "shortName": "bnb", - "chainId": 56, - "networkId": 56, - "slip44": 714, - "explorers": [ - { "name": "bscscan", "url": "https://bscscan.com", "standard": "EIP3091" } - ] - }, - { - "name": "Syscoin Mainnet", - "chain": "SYS", - "rpc": ["https://rpc.syscoin.org", "wss://rpc.syscoin.org/wss"], - "faucets": ["https://faucet.syscoin.org"], - "nativeCurrency": { "name": "Syscoin", "symbol": "SYS", "decimals": 18 }, - "infoURL": "https://www.syscoin.org", - "shortName": "sys", - "chainId": 57, - "networkId": 57, - "explorers": [ - { - "name": "Syscoin Block Explorer", - "url": "https://explorer.syscoin.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "Ontology Mainnet", - "chain": "Ontology", - "rpc": [ - "http://dappnode1.ont.io:20339", - "http://dappnode2.ont.io:20339", - "http://dappnode3.ont.io:20339", - "http://dappnode4.ont.io:20339", - "https://dappnode1.ont.io:10339", - "https://dappnode2.ont.io:10339", - "https://dappnode3.ont.io:10339", - "https://dappnode4.ont.io:10339" - ], - "faucets": [], - "nativeCurrency": { "name": "ONG", "symbol": "ONG", "decimals": 18 }, - "infoURL": "https://ont.io/", - "shortName": "Ontology Mainnet", - "chainId": 58, - "networkId": 58, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.ont.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "EOS Mainnet", - "chain": "EOS", - "rpc": ["https://api.eosargentina.io"], - "faucets": [], - "nativeCurrency": { "name": "EOS", "symbol": "EOS", "decimals": 18 }, - "infoURL": "https://eoscommunity.org/", - "shortName": "EOS Mainnet", - "chainId": 59, - "networkId": 59, - "explorers": [ - { - "name": "bloks", - "url": "https://bloks.eosargentina.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "GoChain", - "chain": "GO", - "rpc": ["https://rpc.gochain.io"], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], - "nativeCurrency": { - "name": "GoChain Ether", - "symbol": "GO", - "decimals": 18 - }, - "infoURL": "https://gochain.io", - "shortName": "go", - "chainId": 60, - "networkId": 60, - "slip44": 6060, - "explorers": [ - { - "name": "GoChain Explorer", - "url": "https://explorer.gochain.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Ethereum Classic Mainnet", - "chain": "ETC", - "rpc": ["https://www.ethercluster.com/etc"], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/?"], - "nativeCurrency": { - "name": "Ethereum Classic Ether", - "symbol": "ETC", - "decimals": 18 - }, - "infoURL": "https://ethereumclassic.org", - "shortName": "etc", - "chainId": 61, - "networkId": 1, - "slip44": 61, - "explorers": [ - { - "name": "blockscout", - "url": "https://blockscout.com/etc/mainnet", - "standard": "none" - } - ] - }, - { - "name": "Ethereum Classic Testnet Morden", - "chain": "ETC", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Ethereum Classic Testnet Ether", - "symbol": "TETC", - "decimals": 18 - }, - "infoURL": "https://ethereumclassic.org", - "shortName": "tetc", - "chainId": 62, - "networkId": 2 - }, - { - "name": "Ethereum Classic Testnet Mordor", - "chain": "ETC", - "rpc": ["https://www.ethercluster.com/mordor"], - "faucets": [], - "nativeCurrency": { - "name": "Mordor Classic Testnet Ether", - "symbol": "METC", - "decimals": 18 - }, - "infoURL": "https://github.com/eth-classic/mordor/", - "shortName": "metc", - "chainId": 63, - "networkId": 7 - }, - { - "name": "Ellaism", - "chain": "ELLA", - "rpc": ["https://jsonrpc.ellaism.org"], - "faucets": [], - "nativeCurrency": { - "name": "Ellaism Ether", - "symbol": "ELLA", - "decimals": 18 - }, - "infoURL": "https://ellaism.org", - "shortName": "ella", - "chainId": 64, - "networkId": 64, - "slip44": 163 - }, - { - "name": "OKExChain Testnet", - "chain": "okexchain", - "rpc": ["https://exchaintestrpc.okex.org"], - "faucets": ["https://www.okex.com/drawdex"], - "nativeCurrency": { - "name": "OKExChain Global Utility Token in testnet", - "symbol": "OKT", - "decimals": 18 - }, - "infoURL": "https://www.okex.com/okexchain", - "shortName": "tokt", - "chainId": 65, - "networkId": 65, - "explorers": [ - { - "name": "OKLink", - "url": "https://www.oklink.com/okexchain-test", - "standard": "EIP3091" - } - ] - }, - { - "name": "OKXChain Mainnet", - "chain": "okxchain", - "rpc": [ - "https://exchainrpc.okex.org", - "https://okc-mainnet.gateway.pokt.network/v1/lb/6275309bea1b320039c893ff" - ], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/?"], - "nativeCurrency": { - "name": "OKXChain Global Utility Token", - "symbol": "OKT", - "decimals": 18 - }, - "infoURL": "https://www.okex.com/okc", - "shortName": "okt", - "chainId": 66, - "networkId": 66, - "explorers": [ - { - "name": "OKLink", - "url": "https://www.oklink.com/en/okc", - "standard": "EIP3091" - } - ] - }, - { - "name": "DBChain Testnet", - "chain": "DBM", - "rpc": ["http://test-rpc.dbmbp.com"], - "faucets": [], - "nativeCurrency": { - "name": "DBChain Testnet", - "symbol": "DBM", - "decimals": 18 - }, - "infoURL": "http://test.dbmbp.com", - "shortName": "dbm", - "chainId": 67, - "networkId": 67 - }, - { - "name": "SoterOne Mainnet", - "chain": "SOTER", - "rpc": ["https://rpc.soter.one"], - "faucets": [], - "nativeCurrency": { - "name": "SoterOne Mainnet Ether", - "symbol": "SOTER", - "decimals": 18 - }, - "infoURL": "https://www.soterone.com", - "shortName": "SO1", - "chainId": 68, - "networkId": 68 - }, - { - "name": "Optimism Kovan", - "title": "Optimism Testnet Kovan", - "chain": "ETH", - "rpc": ["https://kovan.optimism.io/"], - "faucets": ["http://fauceth.komputing.org?chain=69&address=${ADDRESS}"], - "nativeCurrency": { - "name": "Kovan Ether", - "symbol": "KOR", - "decimals": 18 - }, - "explorers": [ - { - "name": "etherscan", - "url": "https://kovan-optimistic.etherscan.io", - "standard": "EIP3091" - } - ], - "infoURL": "https://optimism.io", - "shortName": "okov", - "chainId": 69, - "networkId": 69 - }, - { - "name": "Hoo Smart Chain", - "chain": "HSC", - "rpc": [ - "https://http-mainnet.hoosmartchain.com", - "https://http-mainnet2.hoosmartchain.com", - "wss://ws-mainnet.hoosmartchain.com", - "wss://ws-mainnet2.hoosmartchain.com" - ], - "faucets": [], - "nativeCurrency": { - "name": "Hoo Smart Chain Native Token", - "symbol": "HOO", - "decimals": 18 - }, - "infoURL": "https://www.hoosmartchain.com", - "shortName": "hsc", - "chainId": 70, - "networkId": 70, - "slip44": 1170, - "explorers": [ - { - "name": "hooscan", - "url": "https://www.hooscan.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Conflux eSpace (Testnet)", - "chain": "Conflux", - "network": "testnet", - "rpc": ["https://evmtestnet.confluxrpc.com"], - "faucets": ["https://faucet.confluxnetwork.org"], - "nativeCurrency": { "name": "CFX", "symbol": "CFX", "decimals": 18 }, - "infoURL": "https://confluxnetwork.org", - "shortName": "cfxtest", - "chainId": 71, - "networkId": 71, - "icon": "conflux", - "explorers": [ - { - "name": "Conflux Scan", - "url": "https://evmtestnet.confluxscan.net", - "standard": "none" - } - ] - }, - { - "name": "IDChain Mainnet", - "chain": "IDChain", - "network": "mainnet", - "rpc": ["https://idchain.one/rpc/", "wss://idchain.one/ws/"], - "faucets": [], - "nativeCurrency": { "name": "EIDI", "symbol": "EIDI", "decimals": 18 }, - "infoURL": "https://idchain.one/begin/", - "shortName": "idchain", - "chainId": 74, - "networkId": 74, - "icon": "idchain", - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.idchain.one", - "icon": "etherscan", - "standard": "EIP3091" - } - ] - }, - { - "name": "Mix", - "chain": "MIX", - "rpc": ["https://rpc2.mix-blockchain.org:8647"], - "faucets": [], - "nativeCurrency": { "name": "Mix Ether", "symbol": "MIX", "decimals": 18 }, - "infoURL": "https://mix-blockchain.org", - "shortName": "mix", - "chainId": 76, - "networkId": 76, - "slip44": 76 - }, - { - "name": "POA Network Sokol", - "chain": "POA", - "rpc": [ - "https://sokol.poa.network", - "wss://sokol.poa.network/wss", - "ws://sokol.poa.network:8546" - ], - "faucets": ["https://faucet.poa.network"], - "nativeCurrency": { - "name": "POA Sokol Ether", - "symbol": "SPOA", - "decimals": 18 - }, - "infoURL": "https://poa.network", - "shortName": "spoa", - "chainId": 77, - "networkId": 77, - "explorers": [ - { - "name": "blockscout", - "url": "https://blockscout.com/poa/sokol", - "standard": "none" - } - ] - }, - { - "name": "PrimusChain mainnet", - "chain": "PC", - "rpc": ["https://ethnode.primusmoney.com/mainnet"], - "faucets": [], - "nativeCurrency": { - "name": "Primus Ether", - "symbol": "PETH", - "decimals": 18 - }, - "infoURL": "https://primusmoney.com", - "shortName": "primuschain", - "chainId": 78, - "networkId": 78 - }, - { - "name": "Zenith Mainnet", - "chain": "Zenith", - "rpc": [ - "https://dataserver-us-1.zenithchain.co/", - "https://dataserver-asia-3.zenithchain.co/", - "https://dataserver-asia-4.zenithchain.co/", - "https://dataserver-asia-2.zenithchain.co/", - "https://dataserver-asia-5.zenithchain.co/", - "https://dataserver-asia-6.zenithchain.co/", - "https://dataserver-asia-7.zenithchain.co/" - ], - "faucets": [], - "nativeCurrency": { "name": "ZENITH", "symbol": "ZENITH", "decimals": 18 }, - "infoURL": "https://www.zenithchain.co/", - "chainId": 79, - "networkId": 79, - "shortName": "zenith", - "explorers": [ - { - "name": "zenith scan", - "url": "https://scan.zenithchain.co", - "standard": "EIP3091" - } - ] - }, - { - "name": "GeneChain", - "chain": "GeneChain", - "rpc": ["https://rpc.genechain.io"], - "faucets": [], - "nativeCurrency": { "name": "RNA", "symbol": "RNA", "decimals": 18 }, - "infoURL": "https://scan.genechain.io/", - "shortName": "GeneChain", - "chainId": 80, - "networkId": 80, - "explorers": [ - { - "name": "GeneChain Scan", - "url": "https://scan.genechain.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Zenith Testnet (Vilnius)", - "chain": "Zenith", - "rpc": ["https://vilnius.zenithchain.co/http"], - "faucets": ["https://faucet.zenithchain.co/"], - "nativeCurrency": { "name": "Vilnius", "symbol": "VIL", "decimals": 18 }, - "infoURL": "https://www.zenithchain.co/", - "chainId": 81, - "networkId": 81, - "shortName": "VIL", - "explorers": [ - { - "name": "vilnius scan", - "url": "https://vilnius.scan.zenithchain.co", - "standard": "EIP3091" - } - ] - }, - { - "name": "Meter Mainnet", - "chain": "METER", - "rpc": ["https://rpc.meter.io"], - "faucets": ["https://faucet.meter.io"], - "nativeCurrency": { "name": "Meter", "symbol": "MTR", "decimals": 18 }, - "infoURL": "https://www.meter.io", - "shortName": "Meter", - "chainId": 82, - "networkId": 82, - "explorers": [ - { - "name": "Meter Mainnet Scan", - "url": "https://scan.meter.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Meter Testnet", - "chain": "METER Testnet", - "rpc": ["https://rpctest.meter.io"], - "faucets": ["https://faucet-warringstakes.meter.io"], - "nativeCurrency": { "name": "Meter", "symbol": "MTR", "decimals": 18 }, - "infoURL": "https://www.meter.io", - "shortName": "MeterTest", - "chainId": 83, - "networkId": 83, - "explorers": [ - { - "name": "Meter Testnet Scan", - "url": "https://scan-warringstakes.meter.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "GateChain Testnet", - "chainId": 85, - "shortName": "gttest", - "chain": "GTTEST", - "networkId": 85, - "nativeCurrency": { "name": "GateToken", "symbol": "GT", "decimals": 18 }, - "rpc": ["https://testnet.gatenode.cc"], - "faucets": ["https://www.gatescan.org/testnet/faucet"], - "explorers": [ - { - "name": "GateScan", - "url": "https://www.gatescan.org/testnet", - "standard": "EIP3091" - } - ], - "infoURL": "https://www.gatechain.io" - }, - { - "name": "GateChain Mainnet", - "chainId": 86, - "shortName": "gt", - "chain": "GT", - "networkId": 86, - "nativeCurrency": { "name": "GateToken", "symbol": "GT", "decimals": 18 }, - "rpc": ["https://evm.gatenode.cc"], - "faucets": ["https://www.gatescan.org/faucet"], - "explorers": [ - { - "name": "GateScan", - "url": "https://www.gatescan.org", - "standard": "EIP3091" - } - ], - "infoURL": "https://www.gatechain.io" - }, - { - "name": "Nova Network", - "chain": "NNW", - "icon": "novanetwork", - "rpc": [ - "https://connect.novanetwork.io", - "https://0x57.redjackstudio.com", - "https://rpc.novanetwork.io:9070" - ], - "faucets": [], - "nativeCurrency": { "name": "Supernova", "symbol": "SNT", "decimals": 18 }, - "infoURL": "https://novanetwork.io", - "shortName": "nnw", - "chainId": 87, - "networkId": 87, - "explorers": [ - { - "name": "novanetwork", - "url": "https://explorer.novanetwork.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "TomoChain", - "chain": "TOMO", - "rpc": ["https://rpc.tomochain.com"], - "faucets": [], - "nativeCurrency": { "name": "TomoChain", "symbol": "TOMO", "decimals": 18 }, - "infoURL": "https://tomochain.com", - "shortName": "tomo", - "chainId": 88, - "networkId": 88, - "slip44": 889 - }, - { - "name": "TomoChain Testnet", - "chain": "TOMO", - "rpc": ["https://rpc.testnet.tomochain.com"], - "faucets": [], - "nativeCurrency": { "name": "TomoChain", "symbol": "TOMO", "decimals": 18 }, - "infoURL": "https://tomochain.com", - "shortName": "tomot", - "chainId": 89, - "networkId": 89, - "slip44": 889 - }, - { - "name": "Garizon Stage0", - "chain": "GAR", - "network": "mainnet", - "icon": "garizon", - "rpc": ["https://s0.garizon.net/rpc"], - "faucets": [], - "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, - "infoURL": "https://garizon.com", - "shortName": "gar-s0", - "chainId": 90, - "networkId": 90, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.garizon.com", - "icon": "garizon", - "standard": "EIP3091" - } - ] - }, - { - "name": "Garizon Stage1", - "chain": "GAR", - "network": "mainnet", - "icon": "garizon", - "rpc": ["https://s1.garizon.net/rpc"], - "faucets": [], - "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, - "infoURL": "https://garizon.com", - "shortName": "gar-s1", - "chainId": 91, - "networkId": 91, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.garizon.com", - "icon": "garizon", - "standard": "EIP3091" - } - ], - "parent": { "chain": "eip155-90", "type": "shard" } - }, - { - "name": "Garizon Stage2", - "chain": "GAR", - "network": "mainnet", - "icon": "garizon", - "rpc": ["https://s2.garizon.net/rpc"], - "faucets": [], - "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, - "infoURL": "https://garizon.com", - "shortName": "gar-s2", - "chainId": 92, - "networkId": 92, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.garizon.com", - "icon": "garizon", - "standard": "EIP3091" - } - ], - "parent": { "chain": "eip155-90", "type": "shard" } - }, - { - "name": "Garizon Stage3", - "chain": "GAR", - "network": "mainnet", - "icon": "garizon", - "rpc": ["https://s3.garizon.net/rpc"], - "faucets": [], - "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, - "infoURL": "https://garizon.com", - "shortName": "gar-s3", - "chainId": 93, - "networkId": 93, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.garizon.com", - "icon": "garizon", - "standard": "EIP3091" - } - ], - "parent": { "chain": "eip155-90", "type": "shard" } - }, - { - "name": "CryptoKylin Testnet", - "chain": "EOS", - "rpc": ["https://kylin.eosargentina.io"], - "faucets": [], - "nativeCurrency": { "name": "EOS", "symbol": "EOS", "decimals": 18 }, - "infoURL": "https://www.cryptokylin.io/", - "shortName": "Kylin Testnet", - "chainId": 95, - "networkId": 95, - "explorers": [ - { - "name": "eosq", - "url": "https://kylin.eosargentina.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "NEXT Smart Chain", - "chain": "NSC", - "rpc": ["https://rpc.nextsmartchain.com"], - "faucets": ["https://faucet.nextsmartchain.com"], - "nativeCurrency": { "name": "NEXT", "symbol": "NEXT", "decimals": 18 }, - "infoURL": "https://www.nextsmartchain.com/", - "shortName": "nsc", - "chainId": 96, - "networkId": 96, - "explorers": [ - { - "name": "Next Smart Chain Explorer", - "url": "https://explorer.nextsmartchain.com", - "standard": "none" - } - ] - }, - { - "name": "Binance Smart Chain Testnet", - "chain": "BSC", - "rpc": [ - "https://data-seed-prebsc-1-s1.binance.org:8545", - "https://data-seed-prebsc-2-s1.binance.org:8545", - "https://data-seed-prebsc-1-s2.binance.org:8545", - "https://data-seed-prebsc-2-s2.binance.org:8545", - "https://data-seed-prebsc-1-s3.binance.org:8545", - "https://data-seed-prebsc-2-s3.binance.org:8545" - ], - "faucets": ["https://testnet.binance.org/faucet-smart"], - "nativeCurrency": { - "name": "Binance Chain Native Token", - "symbol": "tBNB", - "decimals": 18 - }, - "infoURL": "https://testnet.binance.org/", - "shortName": "bnbt", - "chainId": 97, - "networkId": 97, - "explorers": [ - { - "name": "bscscan-testnet", - "url": "https://testnet.bscscan.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "POA Network Core", - "chain": "POA", - "rpc": [ - "https://core.poanetwork.dev", - "http://core.poanetwork.dev:8545", - "https://core.poa.network", - "ws://core.poanetwork.dev:8546" - ], - "faucets": [], - "nativeCurrency": { - "name": "POA Network Core Ether", - "symbol": "POA", - "decimals": 18 - }, - "infoURL": "https://poa.network", - "shortName": "poa", - "chainId": 99, - "networkId": 99, - "slip44": 178, - "explorers": [ - { - "name": "blockscout", - "url": "https://blockscout.com/poa/core", - "standard": "none" - } - ] - }, - { - "name": "Gnosis", - "chain": "Gnosis", - "icon": "gnosis", - "rpc": [ - "https://rpc.gnosischain.com", - "https://xdai.poanetwork.dev", - "https://dai.poa.network", - "https://rpc.ankr.com/gnosis", - "https://gnosischain-rpc.gateway.pokt.network", - "wss://rpc.gnosischain.com/wss", - "wss://xdai.poanetwork.dev/wss", - "ws://xdai.poanetwork.dev:8546" - ], - "faucets": [ - "https://faucet.gimlu.com/gnosis", - "https://stakely.io/faucet/gnosis-chain-xdai", - "https://faucet.prussia.dev/xdai" - ], - "nativeCurrency": { "name": "xDAI", "symbol": "xDAI", "decimals": 18 }, - "infoURL": "https://developers.gnosischain.com", - "shortName": "gno", - "chainId": 100, - "networkId": 100, - "slip44": 700, - "explorers": [ - { - "name": "blockscout", - "url": "https://blockscout.com/xdai/mainnet", - "icon": "blockscout", - "standard": "EIP3091" - } - ] - }, - { - "name": "EtherInc", - "chain": "ETI", - "rpc": ["https://api.einc.io/jsonrpc/mainnet"], - "faucets": [], - "nativeCurrency": { - "name": "EtherInc Ether", - "symbol": "ETI", - "decimals": 18 - }, - "infoURL": "https://einc.io", - "shortName": "eti", - "chainId": 101, - "networkId": 1, - "slip44": 464 - }, - { - "name": "Web3Games Testnet", - "chain": "Web3Games", - "icon": "web3games", - "rpc": ["https://testnet.web3games.org/evm"], - "faucets": [], - "nativeCurrency": { "name": "Web3Games", "symbol": "W3G", "decimals": 18 }, - "infoURL": "https://web3games.org/", - "shortName": "tw3g", - "chainId": 102, - "networkId": 102 - }, - { - "name": "Web3Games Devnet", - "chain": "Web3Games", - "icon": "web3games", - "rpc": ["https://devnet.web3games.org/evm"], - "faucets": [], - "nativeCurrency": { "name": "Web3Games", "symbol": "W3G", "decimals": 18 }, - "infoURL": "https://web3games.org/", - "shortName": "dw3g", - "chainId": 105, - "networkId": 105, - "explorers": [ - { - "name": "Web3Games Explorer", - "url": "https://explorer-devnet.web3games.org", - "standard": "none" - } - ] - }, - { - "name": "Velas EVM Mainnet", - "chain": "Velas", - "icon": "velas", - "rpc": [ - "https://evmexplorer.velas.com/rpc", - "https://explorer.velas.com/rpc" - ], - "faucets": [], - "nativeCurrency": { "name": "Velas", "symbol": "VLX", "decimals": 18 }, - "infoURL": "https://velas.com", - "shortName": "vlx", - "chainId": 106, - "networkId": 106, - "explorers": [ - { - "name": "Velas Explorer", - "url": "https://evmexplorer.velas.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Nebula Testnet", - "chain": "NTN", - "icon": "nebulatestnet", - "rpc": ["https://testnet.rpc.novanetwork.io:9070"], - "faucets": [], - "nativeCurrency": { "name": "Nebula X", "symbol": "NBX", "decimals": 18 }, - "infoURL": "https://novanetwork.io", - "shortName": "ntn", - "chainId": 107, - "networkId": 107, - "explorers": [ - { - "name": "nebulatestnet", - "url": "https://explorer.novanetwork.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "ThunderCore Mainnet", - "chain": "TT", - "rpc": [ - "https://mainnet-rpc.thundercore.com", - "https://mainnet-rpc.thundertoken.net", - "https://mainnet-rpc.thundercore.io" - ], - "faucets": ["https://faucet.thundercore.com"], - "nativeCurrency": { - "name": "ThunderCore Token", - "symbol": "TT", - "decimals": 18 - }, - "infoURL": "https://thundercore.com", - "shortName": "TT", - "chainId": 108, - "networkId": 108, - "slip44": 1001, - "explorers": [ - { - "name": "thundercore-viewblock", - "url": "https://viewblock.io/thundercore", - "standard": "EIP3091" - } - ] - }, - { - "name": "Proton Testnet", - "chain": "XPR", - "rpc": ["https://protontestnet.greymass.com/"], - "faucets": [], - "nativeCurrency": { "name": "Proton", "symbol": "XPR", "decimals": 4 }, - "infoURL": "https://protonchain.com", - "shortName": "xpr", - "chainId": 110, - "networkId": 110 - }, - { - "name": "EtherLite Chain", - "chain": "ETL", - "rpc": ["https://rpc.etherlite.org"], - "faucets": ["https://etherlite.org/faucets"], - "nativeCurrency": { "name": "EtherLite", "symbol": "ETL", "decimals": 18 }, - "infoURL": "https://etherlite.org", - "shortName": "ETL", - "chainId": 111, - "networkId": 111, - "icon": "etherlite" - }, - { - "name": "Fuse Mainnet", - "chain": "FUSE", - "rpc": ["https://rpc.fuse.io"], - "faucets": [], - "nativeCurrency": { "name": "Fuse", "symbol": "FUSE", "decimals": 18 }, - "infoURL": "https://fuse.io/", - "shortName": "fuse", - "chainId": 122, - "networkId": 122 - }, - { - "name": "Fuse Sparknet", - "chain": "fuse", - "rpc": ["https://rpc.fusespark.io"], - "faucets": ["https://get.fusespark.io"], - "nativeCurrency": { "name": "Spark", "symbol": "SPARK", "decimals": 18 }, - "infoURL": "https://docs.fuse.io/general/fuse-network-blockchain/fuse-testnet", - "shortName": "spark", - "chainId": 123, - "networkId": 123 - }, - { - "name": "Decentralized Web Mainnet", - "shortName": "dwu", - "chain": "DWU", - "chainId": 124, - "networkId": 124, - "rpc": ["https://decentralized-web.tech/dw_rpc.php"], - "faucets": [], - "infoURL": "https://decentralized-web.tech/dw_chain.php", - "nativeCurrency": { - "name": "Decentralized Web Utility", - "symbol": "DWU", - "decimals": 18 - } - }, - { - "name": "OYchain Testnet", - "chain": "OYchain", - "rpc": ["https://rpc.testnet.oychain.io"], - "faucets": ["https://faucet.oychain.io"], - "nativeCurrency": { - "name": "OYchain Token", - "symbol": "OY", - "decimals": 18 - }, - "infoURL": "https://www.oychain.io", - "shortName": "oychain testnet", - "chainId": 125, - "networkId": 125, - "slip44": 125, - "explorers": [ - { - "name": "OYchain Testnet Explorer", - "url": "https://explorer.testnet.oychain.io", - "standard": "none" - } - ] - }, - { - "name": "OYchain Mainnet", - "chain": "OYchain", - "icon": "oychain", - "rpc": ["https://rpc.mainnet.oychain.io"], - "faucets": [], - "nativeCurrency": { - "name": "OYchain Token", - "symbol": "OY", - "decimals": 18 - }, - "infoURL": "https://www.oychain.io", - "shortName": "oychain mainnet", - "chainId": 126, - "networkId": 126, - "slip44": 126, - "explorers": [ - { - "name": "OYchain Mainnet Explorer", - "url": "https://explorer.oychain.io", - "standard": "none" - } - ] - }, - { - "name": "Factory 127 Mainnet", - "chain": "FETH", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Factory 127 Token", - "symbol": "FETH", - "decimals": 18 - }, - "infoURL": "https://www.factory127.com", - "shortName": "feth", - "chainId": 127, - "networkId": 127, - "slip44": 127 - }, - { - "name": "Huobi ECO Chain Mainnet", - "chain": "Heco", - "rpc": [ - "https://http-mainnet.hecochain.com", - "wss://ws-mainnet.hecochain.com" - ], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], - "nativeCurrency": { - "name": "Huobi ECO Chain Native Token", - "symbol": "HT", - "decimals": 18 - }, - "infoURL": "https://www.hecochain.com", - "shortName": "heco", - "chainId": 128, - "networkId": 128, - "slip44": 1010, - "explorers": [ - { - "name": "hecoinfo", - "url": "https://hecoinfo.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Polygon Mainnet", - "chain": "Polygon", - "rpc": [ - "https://polygon-rpc.com/", - "https://rpc-mainnet.matic.network", - "https://matic-mainnet.chainstacklabs.com", - "https://rpc-mainnet.maticvigil.com", - "https://rpc-mainnet.matic.quiknode.pro", - "https://matic-mainnet-full-rpc.bwarelabs.com" - ], - "faucets": [], - "nativeCurrency": { "name": "MATIC", "symbol": "MATIC", "decimals": 18 }, - "infoURL": "https://polygon.technology/", - "shortName": "MATIC", - "chainId": 137, - "networkId": 137, - "slip44": 966, - "explorers": [ - { - "name": "polygonscan", - "url": "https://polygonscan.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Openpiece Testnet", - "chain": "OPENPIECE", - "icon": "openpiece", - "network": "testnet", - "rpc": ["https://testnet.openpiece.io"], - "faucets": [], - "nativeCurrency": { "name": "Belly", "symbol": "BELLY", "decimals": 18 }, - "infoURL": "https://cryptopiece.online", - "shortName": "OPtest", - "chainId": 141, - "networkId": 141, - "explorers": [ - { - "name": "Belly Scan", - "url": "https://testnet.bellyscan.com", - "standard": "none" - } - ] - }, - { - "name": "DAX CHAIN", - "chain": "DAX", - "rpc": ["https://rpc.prodax.io"], - "faucets": [], - "nativeCurrency": { "name": "Prodax", "symbol": "DAX", "decimals": 18 }, - "infoURL": "https://prodax.io/", - "shortName": "dax", - "chainId": 142, - "networkId": 142 - }, - { - "name": "Lightstreams Testnet", - "chain": "PHT", - "rpc": ["https://node.sirius.lightstreams.io"], - "faucets": ["https://discuss.lightstreams.network/t/request-test-tokens"], - "nativeCurrency": { - "name": "Lightstreams PHT", - "symbol": "PHT", - "decimals": 18 - }, - "infoURL": "https://explorer.sirius.lightstreams.io", - "shortName": "tpht", - "chainId": 162, - "networkId": 162 - }, - { - "name": "Lightstreams Mainnet", - "chain": "PHT", - "rpc": ["https://node.mainnet.lightstreams.io"], - "faucets": [], - "nativeCurrency": { - "name": "Lightstreams PHT", - "symbol": "PHT", - "decimals": 18 - }, - "infoURL": "https://explorer.lightstreams.io", - "shortName": "pht", - "chainId": 163, - "networkId": 163 - }, - { - "name": "AIOZ Network", - "chain": "AIOZ", - "network": "mainnet", - "icon": "aioz", - "rpc": ["https://eth-dataseed.aioz.network"], - "faucets": [], - "nativeCurrency": { "name": "AIOZ", "symbol": "AIOZ", "decimals": 18 }, - "infoURL": "https://aioz.network", - "shortName": "aioz", - "chainId": 168, - "networkId": 168, - "slip44": 60, - "explorers": [ - { - "name": "AIOZ Network Explorer", - "url": "https://explorer.aioz.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "HOO Smart Chain Testnet", - "chain": "ETH", - "rpc": ["https://http-testnet.hoosmartchain.com"], - "faucets": ["https://faucet-testnet.hscscan.com/"], - "nativeCurrency": { "name": "HOO", "symbol": "HOO", "decimals": 18 }, - "infoURL": "https://www.hoosmartchain.com", - "shortName": "hoosmartchain", - "chainId": 170, - "networkId": 170 - }, - { - "name": "Latam-Blockchain Resil Testnet", - "chain": "Resil", - "rpc": [ - "https://rpc.latam-blockchain.com", - "wss://ws.latam-blockchain.com" - ], - "faucets": ["https://faucet.latam-blockchain.com"], - "nativeCurrency": { - "name": "Latam-Blockchain Resil Test Native Token", - "symbol": "usd", - "decimals": 18 - }, - "infoURL": "https://latam-blockchain.com", - "shortName": "resil", - "chainId": 172, - "networkId": 172 - }, - { - "name": "AME Chain Mainnet", - "chain": "AME", - "rpc": ["https://node1.amechain.io/"], - "faucets": [], - "nativeCurrency": { "name": "AME", "symbol": "AME", "decimals": 18 }, - "infoURL": "https://amechain.io/", - "shortName": "ame", - "chainId": 180, - "networkId": 180, - "explorers": [ - { "name": "AME Scan", "url": "https://amescan.io", "standard": "EIP3091" } - ] - }, - { - "name": "Seele Mainnet", - "chain": "Seele", - "rpc": ["https://rpc.seelen.pro/"], - "faucets": [], - "nativeCurrency": { "name": "Seele", "symbol": "Seele", "decimals": 18 }, - "infoURL": "https://seelen.pro/", - "shortName": "Seele", - "chainId": 186, - "networkId": 186, - "explorers": [ - { - "name": "seeleview", - "url": "https://seeleview.net", - "standard": "none" - } - ] - }, - { - "name": "BMC Mainnet", - "chain": "BMC", - "rpc": ["https://mainnet.bmcchain.com/"], - "faucets": [], - "nativeCurrency": { "name": "BTM", "symbol": "BTM", "decimals": 18 }, - "infoURL": "https://bmc.bytom.io/", - "shortName": "BMC", - "chainId": 188, - "networkId": 188, - "explorers": [ - { - "name": "Blockmeta", - "url": "https://bmc.blockmeta.com", - "standard": "none" - } - ] - }, - { - "name": "BMC Testnet", - "chain": "BMC", - "rpc": ["https://testnet.bmcchain.com"], - "faucets": [], - "nativeCurrency": { "name": "BTM", "symbol": "BTM", "decimals": 18 }, - "infoURL": "https://bmc.bytom.io/", - "shortName": "BMCT", - "chainId": 189, - "networkId": 189, - "explorers": [ - { - "name": "Blockmeta", - "url": "https://bmctestnet.blockmeta.com", - "standard": "none" - } - ] - }, - { - "name": "Crypto Emergency", - "chain": "CEM", - "rpc": ["https://cemchain.com"], - "faucets": [], - "nativeCurrency": { - "name": "Crypto Emergency", - "symbol": "CEM", - "decimals": 18 - }, - "infoURL": "https://cemblockchain.com/", - "shortName": "cem", - "chainId": 193, - "networkId": 193, - "explorers": [ - { "name": "cemscan", "url": "https://cemscan.com", "standard": "EIP3091" } - ] - }, - { - "name": "BitTorrent Chain Mainnet", - "chain": "BTTC", - "rpc": ["https://rpc.bittorrentchain.io/"], - "faucets": [], - "nativeCurrency": { "name": "BitTorrent", "symbol": "BTT", "decimals": 18 }, - "infoURL": "https://bittorrentchain.io/", - "shortName": "BTT", - "chainId": 199, - "networkId": 199, - "explorers": [ - { - "name": "bttcscan", - "url": "https://scan.bittorrentchain.io", - "standard": "none" - } - ] - }, - { - "name": "Arbitrum on xDai", - "chain": "AOX", - "rpc": ["https://arbitrum.xdaichain.com/"], - "faucets": [], - "nativeCurrency": { "name": "xDAI", "symbol": "xDAI", "decimals": 18 }, - "infoURL": "https://xdaichain.com", - "shortName": "aox", - "chainId": 200, - "networkId": 200, - "explorers": [ - { - "name": "blockscout", - "url": "https://blockscout.com/xdai/arbitrum", - "standard": "EIP3091" - } - ], - "parent": { "chain": "eip155-100", "type": "L2" } - }, - { - "name": "Freight Trust Network", - "chain": "EDI", - "rpc": [ - "http://13.57.207.168:3435", - "https://app.freighttrust.net/ftn/${API_KEY}" - ], - "faucets": ["http://faucet.freight.sh"], - "nativeCurrency": { - "name": "Freight Trust Native", - "symbol": "0xF", - "decimals": 18 - }, - "infoURL": "https://freighttrust.com", - "shortName": "EDI", - "chainId": 211, - "networkId": 0 - }, - { - "name": "SoterOne Mainnet old", - "chain": "SOTER", - "rpc": ["https://rpc.soter.one"], - "faucets": [], - "nativeCurrency": { - "name": "SoterOne Mainnet Ether", - "symbol": "SOTER", - "decimals": 18 - }, - "infoURL": "https://www.soterone.com", - "shortName": "SO1-old", - "chainId": 218, - "networkId": 218, - "status": "deprecated" - }, - { - "name": "Permission", - "chain": "ASK", - "rpc": ["https://blockchain-api-mainnet.permission.io/rpc"], - "faucets": [], - "nativeCurrency": { "name": "ASK", "symbol": "ASK", "decimals": 18 }, - "infoURL": "https://permission.io/", - "shortName": "ASK", - "chainId": 222, - "networkId": 2221, - "slip44": 2221 - }, - { - "name": "LACHAIN Mainnet", - "chain": "LA", - "icon": "lachain", - "rpc": ["https://rpc-mainnet.lachain.io"], - "faucets": [], - "nativeCurrency": { "name": "LA", "symbol": "LA", "decimals": 18 }, - "infoURL": "https://lachain.io", - "shortName": "LA", - "chainId": 225, - "networkId": 225, - "explorers": [ - { - "name": "blockscout", - "url": "https://scan.lachain.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "LACHAIN Testnet", - "chain": "TLA", - "icon": "lachain", - "rpc": ["https://rpc-testnet.lachain.io"], - "faucets": [], - "nativeCurrency": { "name": "TLA", "symbol": "TLA", "decimals": 18 }, - "infoURL": "https://lachain.io", - "shortName": "TLA", - "chainId": 226, - "networkId": 226, - "explorers": [ - { - "name": "blockscout", - "url": "https://scan-test.lachain.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Aitd Testnet", - "chain": "AITD", - "icon": "aitd", - "rpc": ["http://http-testnet.aitd.io"], - "faucets": ["https://aitd-faucet-pre.aitdcoin.com/"], - "nativeCurrency": { - "name": "AITD Testnet", - "symbol": "AITD", - "decimals": 18 - }, - "infoURL": "https://www.aitd.io/", - "shortName": "AITD", - "chainId": 239, - "networkId": 239, - "explorers": [ - { - "name": "AITD Chain Explorer", - "url": "https://aitd-explorer-pre.aitdcoin.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Energy Web Chain", - "chain": "Energy Web Chain", - "rpc": ["https://rpc.energyweb.org", "wss://rpc.energyweb.org/ws"], - "faucets": [ - "https://faucet.carbonswap.exchange", - "https://free-online-app.com/faucet-for-eth-evm-chains/" - ], - "nativeCurrency": { - "name": "Energy Web Token", - "symbol": "EWT", - "decimals": 18 - }, - "infoURL": "https://energyweb.org", - "shortName": "ewt", - "chainId": 246, - "networkId": 246, - "slip44": 246, - "explorers": [ - { - "name": "blockscout", - "url": "https://explorer.energyweb.org", - "standard": "none" - } - ] - }, - { - "name": "Fantom Opera", - "chain": "FTM", - "rpc": ["https://rpc.ftm.tools"], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], - "nativeCurrency": { "name": "Fantom", "symbol": "FTM", "decimals": 18 }, - "infoURL": "https://fantom.foundation", - "shortName": "ftm", - "chainId": 250, - "networkId": 250, - "icon": "fantom", - "explorers": [ - { - "name": "ftmscan", - "url": "https://ftmscan.com", - "icon": "ftmscan", - "standard": "EIP3091" - } - ] - }, - { - "name": "Huobi ECO Chain Testnet", - "chain": "Heco", - "rpc": [ - "https://http-testnet.hecochain.com", - "wss://ws-testnet.hecochain.com" - ], - "faucets": ["https://scan-testnet.hecochain.com/faucet"], - "nativeCurrency": { - "name": "Huobi ECO Chain Test Native Token", - "symbol": "htt", - "decimals": 18 - }, - "infoURL": "https://testnet.hecoinfo.com", - "shortName": "hecot", - "chainId": 256, - "networkId": 256 - }, - { - "name": "Setheum", - "chain": "Setheum", - "rpc": [], - "faucets": [], - "nativeCurrency": { "name": "Setheum", "symbol": "SETM", "decimals": 18 }, - "infoURL": "https://setheum.xyz", - "shortName": "setm", - "chainId": 258, - "networkId": 258 - }, - { - "name": "SUR Blockchain Network", - "chain": "SUR", - "rpc": ["https://sur.nilin.org"], - "faucets": [], - "nativeCurrency": { "name": "Suren", "symbol": "SRN", "decimals": 18 }, - "infoURL": "https://surnet.org", - "shortName": "SUR", - "chainId": 262, - "networkId": 1, - "icon": "SUR", - "explorers": [ - { - "name": "Surnet Explorer", - "url": "https://explorer.surnet.org", - "icon": "SUR", - "standard": "EIP3091" - } - ] - }, - { - "name": "High Performance Blockchain", - "chain": "HPB", - "rpc": ["https://hpbnode.com", "wss://ws.hpbnode.com"], - "faucets": ["https://myhpbwallet.com/"], - "nativeCurrency": { - "name": "High Performance Blockchain Ether", - "symbol": "HPB", - "decimals": 18 - }, - "infoURL": "https://hpb.io", - "shortName": "hpb", - "chainId": 269, - "networkId": 269, - "slip44": 269, - "explorers": [ - { "name": "hscan", "url": "https://hscan.org", "standard": "EIP3091" } - ] - }, - { - "name": "Boba Network", - "chain": "ETH", - "rpc": ["https://mainnet.boba.network/"], - "faucets": [], - "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, - "infoURL": "https://boba.network", - "shortName": "Boba", - "chainId": 288, - "networkId": 288, - "explorers": [ - { - "name": "Blockscout", - "url": "https://blockexplorer.boba.network", - "standard": "none" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-1", - "bridges": [{ "url": "https://gateway.boba.network" }] - } - }, - { - "name": "Optimism on Gnosis Chain", - "chain": "OGC", - "rpc": [ - "https://optimism.gnosischain.com", - "wss://optimism.gnosischain.com/wss" - ], - "faucets": ["https://faucet.gimlu.com/gnosis"], - "nativeCurrency": { "name": "xDAI", "symbol": "xDAI", "decimals": 18 }, - "infoURL": "https://www.xdaichain.com/for-developers/optimism-optimistic-rollups-on-gc", - "shortName": "ogc", - "chainId": 300, - "networkId": 300, - "explorers": [ - { - "name": "blockscout", - "url": "https://blockscout.com/xdai/optimism", - "icon": "blockscout", - "standard": "EIP3091" - } - ] - }, - { - "name": "KCC Mainnet", - "chain": "KCC", - "rpc": [ - "https://rpc-mainnet.kcc.network", - "wss://rpc-ws-mainnet.kcc.network" - ], - "faucets": [], - "nativeCurrency": { - "name": "KuCoin Token", - "symbol": "KCS", - "decimals": 18 - }, - "infoURL": "https://kcc.io", - "shortName": "kcs", - "chainId": 321, - "networkId": 1, - "explorers": [ - { - "name": "KCC Explorer", - "url": "https://explorer.kcc.io/en", - "standard": "EIP3091" - } - ] - }, - { - "name": "KCC Testnet", - "chain": "KCC", - "rpc": [ - "https://rpc-testnet.kcc.network", - "wss://rpc-ws-testnet.kcc.network" - ], - "faucets": ["https://faucet-testnet.kcc.network"], - "nativeCurrency": { - "name": "KuCoin Testnet Token", - "symbol": "tKCS", - "decimals": 18 - }, - "infoURL": "https://scan-testnet.kcc.network", - "shortName": "kcst", - "chainId": 322, - "networkId": 322, - "explorers": [ - { - "name": "kcc-scan", - "url": "https://scan-testnet.kcc.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "Web3Q Mainnet", - "chain": "Web3Q", - "rpc": ["https://mainnet.web3q.io:8545"], - "faucets": [], - "nativeCurrency": { "name": "Web3Q", "symbol": "W3Q", "decimals": 18 }, - "infoURL": "https://web3q.io/home.w3q/", - "shortName": "w3q", - "chainId": 333, - "networkId": 333, - "explorers": [ - { - "name": "w3q-mainnet", - "url": "https://explorer.mainnet.web3q.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "DFK Chain Test", - "chain": "DFK", - "icon": "dfk", - "network": "testnet", - "rpc": ["https://subnets.avax.network/defi-kingdoms/dfk-chain-testnet/rpc"], - "faucets": [], - "nativeCurrency": { "name": "Jewel", "symbol": "JEWEL", "decimals": 18 }, - "infoURL": "https://defikingdoms.com", - "shortName": "DFKTEST", - "chainId": 335, - "networkId": 335, - "explorers": [ - { - "name": "ethernal", - "url": "https://explorer-test.dfkchain.com", - "icon": "ethereum", - "standard": "none" - } - ] - }, - { - "name": "Shiden", - "chain": "SDN", - "rpc": [ - "https://rpc.shiden.astar.network:8545", - "wss://shiden.api.onfinality.io/public-ws" - ], - "faucets": [], - "nativeCurrency": { "name": "Shiden", "symbol": "SDN", "decimals": 18 }, - "infoURL": "https://shiden.astar.network/", - "shortName": "sdn", - "chainId": 336, - "networkId": 336, - "icon": "shiden", - "explorers": [ - { - "name": "subscan", - "url": "https://shiden.subscan.io", - "standard": "none", - "icon": "subscan" - } - ] - }, - { - "name": "Cronos Testnet", - "chain": "CRO", - "rpc": [ - "https://cronos-testnet-3.crypto.org:8545", - "wss://cronos-testnet-3.crypto.org:8546" - ], - "faucets": ["https://cronos.crypto.org/faucet"], - "nativeCurrency": { - "name": "Crypto.org Test Coin", - "symbol": "TCRO", - "decimals": 18 - }, - "infoURL": "https://cronos.crypto.org", - "shortName": "tcro", - "chainId": 338, - "networkId": 338, - "explorers": [ - { - "name": "Cronos Testnet Explorer", - "url": "https://cronos.crypto.org/explorer/testnet3", - "standard": "none" - } - ] - }, - { - "name": "Theta Mainnet", - "chain": "Theta", - "rpc": ["https://eth-rpc-api.thetatoken.org/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Theta Fuel", - "symbol": "TFUEL", - "decimals": 18 - }, - "infoURL": "https://www.thetatoken.org/", - "shortName": "theta-mainnet", - "chainId": 361, - "networkId": 361, - "explorers": [ - { - "name": "Theta Mainnet Explorer", - "url": "https://explorer.thetatoken.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "Theta Sapphire Testnet", - "chain": "Theta", - "rpc": ["https://eth-rpc-api-sapphire.thetatoken.org/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Theta Fuel", - "symbol": "TFUEL", - "decimals": 18 - }, - "infoURL": "https://www.thetatoken.org/", - "shortName": "theta-sapphire", - "chainId": 363, - "networkId": 363, - "explorers": [ - { - "name": "Theta Sapphire Testnet Explorer", - "url": "https://guardian-testnet-sapphire-explorer.thetatoken.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "Theta Amber Testnet", - "chain": "Theta", - "rpc": ["https://eth-rpc-api-amber.thetatoken.org/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Theta Fuel", - "symbol": "TFUEL", - "decimals": 18 - }, - "infoURL": "https://www.thetatoken.org/", - "shortName": "theta-amber", - "chainId": 364, - "networkId": 364, - "explorers": [ - { - "name": "Theta Amber Testnet Explorer", - "url": "https://guardian-testnet-amber-explorer.thetatoken.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "Theta Testnet", - "chain": "Theta", - "rpc": ["https://eth-rpc-api-testnet.thetatoken.org/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Theta Fuel", - "symbol": "TFUEL", - "decimals": 18 - }, - "infoURL": "https://www.thetatoken.org/", - "shortName": "theta-testnet", - "chainId": 365, - "networkId": 365, - "explorers": [ - { - "name": "Theta Testnet Explorer", - "url": "https://testnet-explorer.thetatoken.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "PulseChain Mainnet", - "shortName": "pls", - "chain": "PLS", - "chainId": 369, - "networkId": 369, - "infoURL": "https://pulsechain.com/", - "rpc": [ - "https://rpc.mainnet.pulsechain.com/", - "wss://rpc.mainnet.pulsechain.com/" - ], - "faucets": [], - "nativeCurrency": { "name": "Pulse", "symbol": "PLS", "decimals": 18 } - }, - { - "name": "Lisinski", - "chain": "CRO", - "rpc": ["https://rpc-bitfalls1.lisinski.online"], - "faucets": ["https://pipa.lisinski.online"], - "nativeCurrency": { - "name": "Lisinski Ether", - "symbol": "LISINS", - "decimals": 18 - }, - "infoURL": "https://lisinski.online", - "shortName": "lisinski", - "chainId": 385, - "networkId": 385 - }, - { - "name": "SX Network Mainnet", - "chain": "SX", - "icon": "SX", - "network": "mainnet", - "rpc": ["https://rpc.sx.technology"], - "faucets": [], - "nativeCurrency": { "name": "SX Network", "symbol": "SX", "decimals": 18 }, - "infoURL": "https://www.sx.technology", - "shortName": "SX", - "chainId": 416, - "networkId": 416, - "explorers": [ - { - "name": "SX Network Explorer", - "url": "https://explorer.sx.technology", - "standard": "EIP3091" - } - ] - }, - { - "name": "Optimistic Ethereum Testnet Goerli", - "chain": "ETH", - "rpc": ["https://goerli.optimism.io/"], - "faucets": [], - "nativeCurrency": { - "name": "Görli Ether", - "symbol": "GOR", - "decimals": 18 - }, - "infoURL": "https://optimism.io", - "shortName": "ogor", - "chainId": 420, - "networkId": 420 - }, - { - "name": "Rupaya", - "chain": "RUPX", - "rpc": [], - "faucets": [], - "nativeCurrency": { "name": "Rupaya", "symbol": "RUPX", "decimals": 18 }, - "infoURL": "https://www.rupx.io", - "shortName": "rupx", - "chainId": 499, - "networkId": 499, - "slip44": 499 - }, - { - "name": "Double-A Chain Mainnet", - "chain": "AAC", - "rpc": ["https://rpc.acuteangle.com"], - "faucets": [], - "nativeCurrency": { - "name": "Acuteangle Native Token", - "symbol": "AAC", - "decimals": 18 - }, - "infoURL": "https://www.acuteangle.com/", - "shortName": "aac", - "chainId": 512, - "networkId": 512, - "slip44": 1512, - "explorers": [ - { - "name": "aacscan", - "url": "https://scan.acuteangle.com", - "standard": "EIP3091" - } - ], - "icon": "aac" - }, - { - "name": "Double-A Chain Testnet", - "chain": "AAC", - "icon": "aac", - "rpc": ["https://rpc-testnet.acuteangle.com"], - "faucets": ["https://scan-testnet.acuteangle.com/faucet"], - "nativeCurrency": { - "name": "Acuteangle Native Token", - "symbol": "AAC", - "decimals": 18 - }, - "infoURL": "https://www.acuteangle.com/", - "shortName": "aact", - "chainId": 513, - "networkId": 513, - "explorers": [ - { - "name": "aacscan-testnet", - "url": "https://scan-testnet.acuteangle.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "XT Smart Chain Mainnet", - "chain": "XSC", - "icon": "xsc", - "rpc": [ - "https://datarpc1.xsc.pub", - "https://datarpc2.xsc.pub", - "https://datarpc3.xsc.pub" - ], - "faucets": ["https://xsc.pub/faucet"], - "nativeCurrency": { - "name": "XT Smart Chain Native Token", - "symbol": "XT", - "decimals": 18 - }, - "infoURL": "https://xsc.pub/", - "shortName": "xt", - "chainId": 520, - "networkId": 1024, - "explorers": [ - { "name": "xscscan", "url": "https://xscscan.pub", "standard": "EIP3091" } - ] - }, - { - "name": "Candle", - "chain": "Candle", - "rpc": ["https://candle-rpc.com/", "https://rpc.cndlchain.com"], - "faucets": [], - "nativeCurrency": { "name": "CANDLE", "symbol": "CNDL", "decimals": 18 }, - "infoURL": "https://candlelabs.org/", - "shortName": "CNDL", - "chainId": 534, - "networkId": 534, - "slip44": 674, - "explorers": [ - { - "name": "candleexplorer", - "url": "https://candleexplorer.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Vela1 Chain Mainnet", - "chain": "VELA1", - "rpc": ["https://rpc.velaverse.io"], - "faucets": [], - "nativeCurrency": { - "name": "CLASS COIN", - "symbol": "CLASS", - "decimals": 18 - }, - "infoURL": "https://velaverse.io", - "shortName": "CLASS", - "chainId": 555, - "networkId": 555, - "explorers": [ - { - "name": "Vela1 Chain Mainnet Explorer", - "url": "https://exp.velaverse.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Tao Network", - "chain": "TAO", - "rpc": [ - "https://rpc.testnet.tao.network", - "http://rpc.testnet.tao.network:8545", - "https://rpc.tao.network", - "wss://rpc.tao.network" - ], - "faucets": [], - "nativeCurrency": { "name": "Tao", "symbol": "TAO", "decimals": 18 }, - "infoURL": "https://tao.network", - "shortName": "tao", - "chainId": 558, - "networkId": 558 - }, - { - "name": "Metis Stardust Testnet", - "chain": "ETH", - "rpc": ["https://stardust.metis.io/?owner=588"], - "faucets": [], - "nativeCurrency": { "name": "tMetis", "symbol": "METIS", "decimals": 18 }, - "infoURL": "https://www.metis.io", - "shortName": "metis-stardust", - "chainId": 588, - "networkId": 588, - "explorers": [ - { - "name": "blockscout", - "url": "https://stardust-explorer.metis.io", - "standard": "EIP3091" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-4", - "bridges": [{ "url": "https://bridge.metis.io" }] - } - }, - { - "name": "Astar", - "chain": "ASTR", - "rpc": ["https://rpc.astar.network:8545"], - "faucets": [], - "nativeCurrency": { "name": "Astar", "symbol": "ASTR", "decimals": 18 }, - "infoURL": "https://astar.network/", - "shortName": "astr", - "chainId": 592, - "networkId": 592, - "icon": "astar", - "explorers": [ - { - "name": "subscan", - "url": "https://astar.subscan.io", - "standard": "none", - "icon": "subscan" - } - ] - }, - { - "name": "Acala Mandala Testnet", - "chain": "mACA", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Acala Mandala Token", - "symbol": "mACA", - "decimals": 18 - }, - "infoURL": "https://acala.network", - "shortName": "maca", - "chainId": 595, - "networkId": 595 - }, - { - "name": "Karura Network Testnet", - "chain": "KAR", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Karura Token", - "symbol": "KAR", - "decimals": 18 - }, - "infoURL": "https://karura.network", - "shortName": "tkar", - "chainId": 596, - "networkId": 596, - "slip44": 596 - }, - { - "name": "Acala Network Testnet", - "chain": "ACA", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Acala Token", - "symbol": "ACA", - "decimals": 18 - }, - "infoURL": "https://acala.network", - "shortName": "taca", - "chainId": 597, - "networkId": 597, - "slip44": 597 - }, - { - "name": "Meshnyan testnet", - "chain": "MeshTestChain", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Meshnyan Testnet Native Token", - "symbol": "MESHT", - "decimals": 18 - }, - "infoURL": "", - "shortName": "mesh-chain-testnet", - "chainId": 600, - "networkId": 600 - }, - { - "name": "SX Network Testnet", - "chain": "SX", - "icon": "SX", - "network": "testnet", - "rpc": ["https://rpc.toronto.sx.technology"], - "faucets": ["https://faucet.toronto.sx.technology"], - "nativeCurrency": { "name": "SX Network", "symbol": "SX", "decimals": 18 }, - "infoURL": "https://www.sx.technology", - "shortName": "SX-Testnet", - "chainId": 647, - "networkId": 647, - "explorers": [ - { - "name": "SX Network Toronto Explorer", - "url": "https://explorer.toronto.sx.technology", - "standard": "EIP3091" - } - ] - }, - { - "name": "Pixie Chain Testnet", - "chain": "PixieChain", - "rpc": [ - "https://http-testnet.chain.pixie.xyz", - "wss://ws-testnet.chain.pixie.xyz" - ], - "faucets": ["https://chain.pixie.xyz/faucet"], - "nativeCurrency": { - "name": "Pixie Chain Testnet Native Token", - "symbol": "PCTT", - "decimals": 18 - }, - "infoURL": "https://scan-testnet.chain.pixie.xyz", - "shortName": "pixie-chain-testnet", - "chainId": 666, - "networkId": 666 - }, - { - "name": "Karura Network", - "chain": "KAR", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Karura Token", - "symbol": "KAR", - "decimals": 18 - }, - "infoURL": "https://karura.network", - "shortName": "kar", - "chainId": 686, - "networkId": 686, - "slip44": 686 - }, - { - "name": "Star Social Testnet", - "chain": "SNS", - "rpc": ["https://avastar.cc/ext/bc/C/rpc"], - "faucets": [], - "nativeCurrency": { "name": "Social", "symbol": "SNS", "decimals": 18 }, - "infoURL": "https://info.avastar.cc", - "shortName": "SNS", - "chainId": 700, - "networkId": 700, - "explorers": [ - { - "name": "starscan", - "url": "https://avastar.info", - "standard": "EIP3091" - } - ] - }, - { - "name": "BlockChain Station Mainnet", - "chain": "BCS", - "rpc": ["https://rpc-mainnet.bcsdev.io", "wss://rpc-ws-mainnet.bcsdev.io"], - "faucets": [], - "nativeCurrency": { "name": "BCS Token", "symbol": "BCS", "decimals": 18 }, - "infoURL": "https://blockchainstation.io", - "shortName": "bcs", - "chainId": 707, - "networkId": 707, - "explorers": [ - { - "name": "BlockChain Station Explorer", - "url": "https://explorer.bcsdev.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "BlockChain Station Testnet", - "chain": "BCS", - "rpc": ["https://rpc-testnet.bcsdev.io", "wss://rpc-ws-testnet.bcsdev.io"], - "faucets": ["https://faucet.bcsdev.io"], - "nativeCurrency": { - "name": "BCS Testnet Token", - "symbol": "tBCS", - "decimals": 18 - }, - "infoURL": "https://blockchainstation.io", - "shortName": "tbcs", - "chainId": 708, - "networkId": 708, - "explorers": [ - { - "name": "BlockChain Station Explorer", - "url": "https://testnet.bcsdev.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Factory 127 Testnet", - "chain": "FETH", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Factory 127 Token", - "symbol": "FETH", - "decimals": 18 - }, - "infoURL": "https://www.factory127.com", - "shortName": "tfeth", - "chainId": 721, - "networkId": 721, - "slip44": 721 - }, - { - "name": "OpenChain Testnet", - "chain": "OpenChain Testnet", - "rpc": [ - "http://mainnet.openchain.info:8545", - "https://mainnet1.openchain.info" - ], - "faucets": ["https://faucet.openchain.info/"], - "nativeCurrency": { - "name": "Openchain Testnet", - "symbol": "TOPC", - "decimals": 18 - }, - "infoURL": "https://testnet.openchain.info/", - "shortName": "opc", - "chainId": 776, - "networkId": 776, - "explorers": [ - { - "name": "OPEN CHAIN TESTNET", - "url": "https://testnet.openchain.info", - "standard": "none" - } - ] - }, - { - "name": "cheapETH", - "chain": "cheapETH", - "rpc": ["https://node.cheapeth.org/rpc"], - "faucets": [], - "nativeCurrency": { "name": "cTH", "symbol": "cTH", "decimals": 18 }, - "infoURL": "https://cheapeth.org/", - "shortName": "cth", - "chainId": 777, - "networkId": 777 - }, - { - "name": "Acala Network", - "chain": "ACA", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Acala Token", - "symbol": "ACA", - "decimals": 18 - }, - "infoURL": "https://acala.network", - "shortName": "aca", - "chainId": 787, - "networkId": 787, - "slip44": 787 - }, - { - "name": "Aerochain Testnet", - "chain": "Aerochain", - "network": "testnet", - "rpc": ["https://testnet-rpc.aerochain.id/"], - "faucets": ["https://faucet.aerochain.id/"], - "nativeCurrency": { - "name": "Aerochain Testnet", - "symbol": "TAero", - "decimals": 18 - }, - "infoURL": "https://aerochaincoin.org/", - "shortName": "taero", - "chainId": 788, - "networkId": 788, - "explorers": [ - { - "name": "aeroscan", - "url": "https://testnet.aeroscan.id", - "standard": "EIP3091" - } - ] - }, - { - "name": "Haic", - "chain": "Haic", - "rpc": ["https://orig.haichain.io/"], - "faucets": [], - "nativeCurrency": { "name": "Haicoin", "symbol": "HAIC", "decimals": 18 }, - "infoURL": "https://www.haichain.io/", - "shortName": "haic", - "chainId": 803, - "networkId": 803 - }, - { - "name": "Callisto Mainnet", - "chain": "CLO", - "rpc": ["https://clo-geth.0xinfra.com"], - "faucets": [], - "nativeCurrency": { - "name": "Callisto Mainnet Ether", - "symbol": "CLO", - "decimals": 18 - }, - "infoURL": "https://callisto.network", - "shortName": "clo", - "chainId": 820, - "networkId": 1, - "slip44": 820 - }, - { - "name": "Callisto Testnet", - "chain": "CLO", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Callisto Testnet Ether", - "symbol": "TCLO", - "decimals": 18 - }, - "infoURL": "https://callisto.network", - "shortName": "tclo", - "chainId": 821, - "networkId": 2 - }, - { - "name": "Ambros Chain Mainnet", - "chain": "ambroschain", - "rpc": ["https://api.ambros.network"], - "faucets": [], - "nativeCurrency": { "name": "AMBROS", "symbol": "AMBROS", "decimals": 18 }, - "infoURL": "https://ambros.network", - "shortName": "ambros", - "chainId": 880, - "networkId": 880, - "explorers": [ - { - "name": "Ambros Chain Explorer", - "url": "https://ambrosscan.com", - "standard": "none" - } - ] - }, - { - "name": "Wanchain", - "chain": "WAN", - "rpc": ["https://gwan-ssl.wandevs.org:56891/"], - "faucets": [], - "nativeCurrency": { "name": "Wancoin", "symbol": "WAN", "decimals": 18 }, - "infoURL": "https://www.wanscan.org", - "shortName": "wan", - "chainId": 888, - "networkId": 888, - "slip44": 5718350 - }, - { - "name": "Garizon Testnet Stage0", - "chain": "GAR", - "network": "testnet", - "icon": "garizon", - "rpc": ["https://s0-testnet.garizon.net/rpc"], - "faucets": ["https://faucet-testnet.garizon.com"], - "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, - "infoURL": "https://garizon.com", - "shortName": "gar-test-s0", - "chainId": 900, - "networkId": 900, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer-testnet.garizon.com", - "icon": "garizon", - "standard": "EIP3091" - } - ] - }, - { - "name": "Garizon Testnet Stage1", - "chain": "GAR", - "network": "testnet", - "icon": "garizon", - "rpc": ["https://s1-testnet.garizon.net/rpc"], - "faucets": ["https://faucet-testnet.garizon.com"], - "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, - "infoURL": "https://garizon.com", - "shortName": "gar-test-s1", - "chainId": 901, - "networkId": 901, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer-testnet.garizon.com", - "icon": "garizon", - "standard": "EIP3091" - } - ], - "parent": { "chain": "eip155-900", "type": "shard" } - }, - { - "name": "Garizon Testnet Stage2", - "chain": "GAR", - "network": "testnet", - "icon": "garizon", - "rpc": ["https://s2-testnet.garizon.net/rpc"], - "faucets": ["https://faucet-testnet.garizon.com"], - "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, - "infoURL": "https://garizon.com", - "shortName": "gar-test-s2", - "chainId": 902, - "networkId": 902, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer-testnet.garizon.com", - "icon": "garizon", - "standard": "EIP3091" - } - ], - "parent": { "chain": "eip155-900", "type": "shard" } - }, - { - "name": "Garizon Testnet Stage3", - "chain": "GAR", - "network": "testnet", - "icon": "garizon", - "rpc": ["https://s3-testnet.garizon.net/rpc"], - "faucets": ["https://faucet-testnet.garizon.com"], - "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, - "infoURL": "https://garizon.com", - "shortName": "gar-test-s3", - "chainId": 903, - "networkId": 903, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer-testnet.garizon.com", - "icon": "garizon", - "standard": "EIP3091" - } - ], - "parent": { "chain": "eip155-900", "type": "shard" } - }, - { - "name": "PulseChain Testnet", - "shortName": "tpls", - "chain": "tPLS", - "chainId": 940, - "networkId": 940, - "infoURL": "https://pulsechain.com/", - "rpc": [ - "https://rpc.v2.testnet.pulsechain.com/", - "wss://rpc.v2.testnet.pulsechain.com/" - ], - "faucets": ["https://faucet.v2.testnet.pulsechain.com/"], - "nativeCurrency": { "name": "Test Pulse", "symbol": "tPLS", "decimals": 18 } - }, - { - "name": "PulseChain Testnet v2b", - "shortName": "t2bpls", - "chain": "t2bPLS", - "network": "testnet-2b", - "chainId": 941, - "networkId": 941, - "infoURL": "https://pulsechain.com/", - "rpc": [ - "https://rpc.v2b.testnet.pulsechain.com/", - "wss://rpc.v2b.testnet.pulsechain.com/" - ], - "faucets": ["https://faucet.v2b.testnet.pulsechain.com/"], - "nativeCurrency": { "name": "Test Pulse", "symbol": "tPLS", "decimals": 18 } - }, - { - "name": "PulseChain Testnet v3", - "shortName": "t3pls", - "chain": "t3PLS", - "network": "testnet-3", - "chainId": 942, - "networkId": 942, - "infoURL": "https://pulsechain.com/", - "rpc": [ - "https://rpc.v3.testnet.pulsechain.com/", - "wss://rpc.v3.testnet.pulsechain.com/" - ], - "faucets": ["https://faucet.v3.testnet.pulsechain.com/"], - "nativeCurrency": { "name": "Test Pulse", "symbol": "tPLS", "decimals": 18 } - }, - { - "name": "Nepal Blockchain Network", - "chain": "YETI", - "rpc": [ - "https://api.nepalblockchain.dev", - "https://api.nepalblockchain.network" - ], - "faucets": ["https://faucet.nepalblockchain.network"], - "nativeCurrency": { - "name": "Nepal Blockchain Network Ether", - "symbol": "YETI", - "decimals": 18 - }, - "infoURL": "https://nepalblockchain.network", - "shortName": "yeti", - "chainId": 977, - "networkId": 977 - }, - { - "name": "TOP Mainnet EVM", - "chain": "TOP", - "icon": "top", - "rpc": ["ethapi.topnetwork.org"], - "faucets": [], - "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, - "infoURL": "https://www.topnetwork.org/", - "shortName": "top_evm", - "chainId": 980, - "networkId": 0, - "explorers": [ - { - "name": "topscan.dev", - "url": "https://www.topscan.io", - "standard": "none" - } - ] - }, - { - "name": "TOP Mainnet", - "chain": "TOP", - "icon": "top", - "rpc": ["topapi.topnetwork.org"], - "faucets": [], - "nativeCurrency": { "name": "TOP", "symbol": "TOP", "decimals": 6 }, - "infoURL": "https://www.topnetwork.org/", - "shortName": "top", - "chainId": 989, - "networkId": 0, - "explorers": [ - { - "name": "topscan.dev", - "url": "https://www.topscan.io", - "standard": "none" - } - ] - }, - { - "name": "Lucky Network", - "chain": "LN", - "rpc": [ - "https://rpc.luckynetwork.org", - "wss://ws.lnscan.org", - "https://rpc.lnscan.org" - ], - "faucets": [], - "nativeCurrency": { "name": "Lucky", "symbol": "L99", "decimals": 18 }, - "infoURL": "https://luckynetwork.org", - "shortName": "ln", - "chainId": 998, - "networkId": 998, - "icon": "lucky", - "explorers": [ - { - "name": "blockscout", - "url": "https://explorer.luckynetwork.org", - "standard": "none" - }, - { "name": "expedition", "url": "https://lnscan.org", "standard": "none" } - ] - }, - { - "name": "Wanchain Testnet", - "chain": "WAN", - "rpc": ["https://gwan-ssl.wandevs.org:46891/"], - "faucets": [], - "nativeCurrency": { "name": "Wancoin", "symbol": "WAN", "decimals": 18 }, - "infoURL": "https://testnet.wanscan.org", - "shortName": "twan", - "chainId": 999, - "networkId": 999 - }, - { - "name": "Klaytn Testnet Baobab", - "chain": "KLAY", - "rpc": ["https://api.baobab.klaytn.net:8651"], - "faucets": ["https://baobab.wallet.klaytn.com/access?next=faucet"], - "nativeCurrency": { "name": "KLAY", "symbol": "KLAY", "decimals": 18 }, - "infoURL": "https://www.klaytn.com/", - "shortName": "Baobab", - "chainId": 1001, - "networkId": 1001 - }, - { - "name": "Newton Testnet", - "chain": "NEW", - "rpc": ["https://rpc1.newchain.newtonproject.org"], - "faucets": [], - "nativeCurrency": { "name": "Newton", "symbol": "NEW", "decimals": 18 }, - "infoURL": "https://www.newtonproject.org/", - "shortName": "tnew", - "chainId": 1007, - "networkId": 1007 - }, - { - "name": "Eurus Mainnet", - "chain": "EUN", - "network": "eurus", - "rpc": ["https://mainnet.eurus.network/"], - "faucets": [], - "nativeCurrency": { "name": "Eurus", "symbol": "EUN", "decimals": 18 }, - "infoURL": "https://eurus.network", - "shortName": "eun", - "chainId": 1008, - "networkId": 1008, - "icon": "eurus", - "explorers": [ - { - "name": "eurusexplorer", - "url": "https://explorer.eurus.network", - "icon": "eurus", - "standard": "none" - } - ] - }, - { - "name": "Evrice Network", - "chain": "EVC", - "rpc": ["https://meta.evrice.com"], - "faucets": [], - "nativeCurrency": { "name": "Evrice", "symbol": "EVC", "decimals": 18 }, - "infoURL": "https://evrice.com", - "shortName": "EVC", - "chainId": 1010, - "networkId": 1010, - "slip44": 1020 - }, - { - "name": "Newton", - "chain": "NEW", - "rpc": ["https://global.rpc.mainnet.newtonproject.org"], - "faucets": [], - "nativeCurrency": { "name": "Newton", "symbol": "NEW", "decimals": 18 }, - "infoURL": "https://www.newtonproject.org/", - "shortName": "new", - "chainId": 1012, - "networkId": 1012 - }, - { - "name": "Sakura", - "chain": "Sakura", - "rpc": [], - "faucets": [], - "nativeCurrency": { "name": "Sakura", "symbol": "SKU", "decimals": 18 }, - "infoURL": "https://clover.finance/sakura", - "shortName": "sku", - "chainId": 1022, - "networkId": 1022 - }, - { - "name": "Clover Testnet", - "chain": "Clover", - "rpc": [], - "faucets": [], - "nativeCurrency": { "name": "Clover", "symbol": "CLV", "decimals": 18 }, - "infoURL": "https://clover.finance", - "shortName": "tclv", - "chainId": 1023, - "networkId": 1023 - }, - { - "name": "CLV Parachain", - "chain": "CLV", - "rpc": ["https://api-para.clover.finance"], - "faucets": [], - "nativeCurrency": { "name": "CLV", "symbol": "CLV", "decimals": 18 }, - "infoURL": "https://clv.org", - "shortName": "clv", - "chainId": 1024, - "networkId": 1024 - }, - { - "name": "BitTorrent Chain Testnet", - "chain": "BTTC", - "rpc": ["https://testrpc.bittorrentchain.io/"], - "faucets": [], - "nativeCurrency": { "name": "BitTorrent", "symbol": "BTT", "decimals": 18 }, - "infoURL": "https://bittorrentchain.io/", - "shortName": "tbtt", - "chainId": 1028, - "networkId": 1028, - "explorers": [ - { - "name": "testbttcscan", - "url": "https://testscan.bittorrentchain.io", - "standard": "none" - } - ] - }, - { - "name": "Conflux eSpace", - "chain": "Conflux", - "network": "mainnet", - "rpc": ["https://evm.confluxrpc.com"], - "faucets": [], - "nativeCurrency": { "name": "CFX", "symbol": "CFX", "decimals": 18 }, - "infoURL": "https://confluxnetwork.org", - "shortName": "cfx", - "chainId": 1030, - "networkId": 1030, - "icon": "conflux", - "explorers": [ - { - "name": "Conflux Scan", - "url": "https://evm.confluxscan.net", - "standard": "none" - } - ] - }, - { - "name": "Metis Andromeda Mainnet", - "chain": "ETH", - "rpc": ["https://andromeda.metis.io/?owner=1088"], - "faucets": [], - "nativeCurrency": { "name": "Metis", "symbol": "METIS", "decimals": 18 }, - "infoURL": "https://www.metis.io", - "shortName": "metis-andromeda", - "chainId": 1088, - "networkId": 1088, - "explorers": [ - { - "name": "blockscout", - "url": "https://andromeda-explorer.metis.io", - "standard": "EIP3091" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-1", - "bridges": [{ "url": "https://bridge.metis.io" }] - } - }, - { - "name": "MathChain", - "chain": "MATH", - "rpc": [ - "https://mathchain-asia.maiziqianbao.net/rpc", - "https://mathchain-us.maiziqianbao.net/rpc" - ], - "faucets": [], - "nativeCurrency": { "name": "MathChain", "symbol": "MATH", "decimals": 18 }, - "infoURL": "https://mathchain.org", - "shortName": "MATH", - "chainId": 1139, - "networkId": 1139 - }, - { - "name": "MathChain Testnet", - "chain": "MATH", - "rpc": ["https://galois-hk.maiziqianbao.net/rpc"], - "faucets": ["https://scan.boka.network/#/Galois/faucet"], - "nativeCurrency": { "name": "MathChain", "symbol": "MATH", "decimals": 18 }, - "infoURL": "https://mathchain.org", - "shortName": "tMATH", - "chainId": 1140, - "networkId": 1140 - }, - { - "name": "Iora Chain", - "chain": "IORA", - "network": "iorachain", - "icon": "iorachain", - "rpc": ["https://dataseed.iorachain.com"], - "faucets": [], - "nativeCurrency": { "name": "Iora", "symbol": "IORA", "decimals": 18 }, - "infoURL": "https://iorachain.com", - "shortName": "iora", - "chainId": 1197, - "networkId": 1197, - "explorers": [ - { - "name": "ioraexplorer", - "url": "https://explorer.iorachain.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Evanesco Testnet", - "chain": "Evanesco Testnet", - "network": "avis", - "rpc": ["https://seed5.evanesco.org:8547"], - "faucets": [], - "nativeCurrency": { "name": "AVIS", "symbol": "AVIS", "decimals": 18 }, - "infoURL": "https://evanesco.org/", - "shortName": "avis", - "chainId": 1201, - "networkId": 1201 - }, - { - "name": "World Trade Technical Chain Mainnet", - "chain": "WTT", - "rpc": ["https://rpc.cadaut.com", "wss://rpc.cadaut.com/ws"], - "faucets": [], - "nativeCurrency": { - "name": "World Trade Token", - "symbol": "WTT", - "decimals": 18 - }, - "infoURL": "http://www.cadaut.com", - "shortName": "wtt", - "chainId": 1202, - "networkId": 2048, - "explorers": [ - { - "name": "WTTScout", - "url": "https://explorer.cadaut.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Popcateum Mainnet", - "chain": "POPCATEUM", - "rpc": ["https://dataseed.popcateum.org"], - "faucets": [], - "nativeCurrency": { "name": "Popcat", "symbol": "POP", "decimals": 18 }, - "infoURL": "https://popcateum.org", - "shortName": "popcat", - "chainId": 1213, - "networkId": 1213, - "explorers": [ - { - "name": "popcateum explorer", - "url": "https://explorer.popcateum.org", - "standard": "none" - } - ] - }, - { - "name": "EnterChain Mainnet", - "chain": "ENTER", - "network": "mainnet", - "rpc": ["https://tapi.entercoin.net/"], - "faucets": [], - "nativeCurrency": { - "name": "EnterCoin", - "symbol": "ENTER", - "decimals": 18 - }, - "infoURL": "https://entercoin.net", - "shortName": "enter", - "chainId": 1214, - "networkId": 1214, - "icon": "enter", - "explorers": [ - { - "name": "Enter Explorer - Expenter", - "url": "https://explorer.entercoin.net", - "icon": "enter", - "standard": "EIP3091" - } - ] - }, - { - "name": "HALO Mainnet", - "chain": "HALO", - "rpc": ["https://nodes.halo.land"], - "faucets": [], - "nativeCurrency": { "name": "HALO", "symbol": "HO", "decimals": 18 }, - "infoURL": "https://halo.land/#/", - "shortName": "HO", - "chainId": 1280, - "networkId": 1280, - "explorers": [ - { - "name": "HALOexplorer", - "url": "https://browser.halo.land", - "standard": "none" - } - ] - }, - { - "name": "Moonbeam", - "chain": "MOON", - "rpc": [ - "https://rpc.api.moonbeam.network", - "wss://wss.api.moonbeam.network" - ], - "faucets": [], - "nativeCurrency": { "name": "Glimmer", "symbol": "GLMR", "decimals": 18 }, - "infoURL": "https://moonbeam.network/networks/moonbeam/", - "shortName": "mbeam", - "chainId": 1284, - "networkId": 1284, - "explorers": [ - { - "name": "moonscan", - "url": "https://moonbeam.moonscan.io", - "standard": "none" - } - ] - }, - { - "name": "Moonriver", - "chain": "MOON", - "rpc": [ - "https://rpc.api.moonriver.moonbeam.network", - "wss://wss.api.moonriver.moonbeam.network" - ], - "faucets": [], - "nativeCurrency": { "name": "Moonriver", "symbol": "MOVR", "decimals": 18 }, - "infoURL": "https://moonbeam.network/networks/moonriver/", - "shortName": "mriver", - "chainId": 1285, - "networkId": 1285, - "explorers": [ - { - "name": "moonscan", - "url": "https://moonriver.moonscan.io", - "standard": "none" - } - ] - }, - { - "name": "Moonrock old", - "chain": "MOON", - "rpc": [], - "faucets": [], - "nativeCurrency": { "name": "Rocs", "symbol": "ROC", "decimals": 18 }, - "infoURL": "", - "shortName": "mrock-old", - "chainId": 1286, - "networkId": 1286, - "status": "deprecated" - }, - { - "name": "Moonbase Alpha", - "chain": "MOON", - "rpc": [ - "https://rpc.api.moonbase.moonbeam.network", - "wss://wss.api.moonbase.moonbeam.network" - ], - "faucets": [], - "nativeCurrency": { "name": "Dev", "symbol": "DEV", "decimals": 18 }, - "infoURL": "https://docs.moonbeam.network/networks/testnet/", - "shortName": "mbase", - "chainId": 1287, - "networkId": 1287, - "explorers": [ - { - "name": "moonscan", - "url": "https://moonbase.moonscan.io", - "standard": "none" - } - ] - }, - { - "name": "Moonrock", - "chain": "MOON", - "rpc": [ - "https://rpc.api.moonrock.moonbeam.network", - "wss://wss.api.moonrock.moonbeam.network" - ], - "faucets": [], - "nativeCurrency": { "name": "Rocs", "symbol": "ROC", "decimals": 18 }, - "infoURL": "https://docs.moonbeam.network/learn/platform/networks/overview/", - "shortName": "mrock", - "chainId": 1288, - "networkId": 1288 - }, - { - "name": "CENNZnet old", - "chain": "CENNZnet", - "rpc": [], - "faucets": [], - "nativeCurrency": { "name": "CPAY", "symbol": "CPAY", "decimals": 18 }, - "infoURL": "https://cennz.net", - "shortName": "cennz-old", - "chainId": 1337, - "networkId": 1337, - "status": "deprecated" - }, - { - "name": "Sherpax Mainnet", - "chain": "Sherpax Mainnet", - "rpc": ["https://mainnet.sherpax.io/rpc"], - "faucets": [], - "nativeCurrency": { "name": "KSX", "symbol": "KSX", "decimals": 18 }, - "infoURL": "https://sherpax.io/", - "shortName": "Sherpax", - "chainId": 1506, - "networkId": 1506, - "explorers": [ - { - "name": "Sherpax Mainnet Explorer", - "url": "https://evm.sherpax.io", - "standard": "none" - } - ] - }, - { - "name": "Sherpax Testnet", - "chain": "Sherpax Testnet", - "rpc": ["https://sherpax-testnet.chainx.org/rpc"], - "faucets": [], - "nativeCurrency": { "name": "KSX", "symbol": "KSX", "decimals": 18 }, - "infoURL": "https://sherpax.io/", - "shortName": "Sherpax Testnet", - "chainId": 1507, - "networkId": 1507, - "explorers": [ - { - "name": "Sherpax Testnet Explorer", - "url": "https://evm-pre.sherpax.io", - "standard": "none" - } - ] - }, - { - "name": "Catecoin Chain Mainnet", - "chain": "Catechain", - "rpc": ["https://send.catechain.com"], - "faucets": [], - "nativeCurrency": { "name": "Catecoin", "symbol": "CATE", "decimals": 18 }, - "infoURL": "https://catechain.com", - "shortName": "cate", - "chainId": 1618, - "networkId": 1618 - }, - { - "name": "Atheios", - "chain": "ATH", - "rpc": ["https://wallet.atheios.com:8797"], - "faucets": [], - "nativeCurrency": { - "name": "Atheios Ether", - "symbol": "ATH", - "decimals": 18 - }, - "infoURL": "https://atheios.com", - "shortName": "ath", - "chainId": 1620, - "networkId": 11235813, - "slip44": 1620 - }, - { - "name": "Btachain", - "chain": "btachain", - "rpc": ["https://dataseed1.btachain.com/"], - "faucets": [], - "nativeCurrency": { - "name": "Bitcoin Asset", - "symbol": "BTA", - "decimals": 18 - }, - "infoURL": "https://bitcoinasset.io/", - "shortName": "bta", - "chainId": 1657, - "networkId": 1657 - }, - { - "name": "LUDAN Mainnet", - "chain": "LUDAN", - "rpc": ["https://rpc.ludan.org/"], - "faucets": [], - "nativeCurrency": { "name": "LUDAN", "symbol": "LUDAN", "decimals": 18 }, - "infoURL": "https://www.ludan.org/", - "shortName": "LUDAN", - "icon": "ludan", - "chainId": 1688, - "networkId": 1688 - }, - { - "name": "Cube Chain Mainnet", - "chain": "Cube", - "icon": "cube", - "rpc": [ - "https://http-mainnet.cube.network", - "wss://ws-mainnet.cube.network", - "https://http-mainnet-sg.cube.network", - "wss://ws-mainnet-sg.cube.network", - "https://http-mainnet-us.cube.network", - "wss://ws-mainnet-us.cube.network" - ], - "faucets": [], - "nativeCurrency": { - "name": "Cube Chain Native Token", - "symbol": "CUBE", - "decimals": 18 - }, - "infoURL": "https://www.cube.network", - "shortName": "cube", - "chainId": 1818, - "networkId": 1818, - "slip44": 1818, - "explorers": [ - { - "name": "cube-scan", - "url": "https://cubescan.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "Cube Chain Testnet", - "chain": "Cube", - "icon": "cube", - "rpc": [ - "https://http-testnet.cube.network", - "wss://ws-testnet.cube.network", - "https://http-testnet-sg.cube.network", - "wss://ws-testnet-sg.cube.network", - "https://http-testnet-jp.cube.network", - "wss://ws-testnet-jp.cube.network", - "https://http-testnet-us.cube.network", - "wss://ws-testnet-us.cube.network" - ], - "faucets": ["https://faucet.cube.network"], - "nativeCurrency": { - "name": "Cube Chain Test Native Token", - "symbol": "CUBET", - "decimals": 18 - }, - "infoURL": "https://www.cube.network", - "shortName": "cubet", - "chainId": 1819, - "networkId": 1819, - "slip44": 1819, - "explorers": [ - { - "name": "cubetest-scan", - "url": "https://testnet.cubescan.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "Teslafunds", - "chain": "TSF", - "rpc": ["https://tsfapi.europool.me"], - "faucets": [], - "nativeCurrency": { - "name": "Teslafunds Ether", - "symbol": "TSF", - "decimals": 18 - }, - "infoURL": "https://teslafunds.io", - "shortName": "tsf", - "chainId": 1856, - "networkId": 1 - }, - { - "name": "BON Network", - "chain": "BON", - "network": "testnet", - "rpc": ["http://rpc.boyanet.org:8545", "ws://rpc.boyanet.org:8546"], - "faucets": [], - "nativeCurrency": { "name": "BOYACoin", "symbol": "BOY", "decimals": 18 }, - "infoURL": "https://boyanet.org", - "shortName": "boya", - "chainId": 1898, - "networkId": 1, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.boyanet.org:4001", - "standard": "EIP3091" - } - ] - }, - { - "name": "Eurus Testnet", - "chain": "EUN", - "network": "eurus-testnet", - "rpc": ["https://testnet.eurus.network"], - "faucets": [], - "nativeCurrency": { "name": "Eurus", "symbol": "EUN", "decimals": 18 }, - "infoURL": "https://eurus.network", - "shortName": "euntest", - "chainId": 1984, - "networkId": 1984, - "icon": "eurus", - "explorers": [ - { - "name": "testnetexplorer", - "url": "https://testnetexplorer.eurus.network", - "icon": "eurus", - "standard": "none" - } - ] - }, - { - "name": "EtherGem", - "chain": "EGEM", - "rpc": ["https://jsonrpc.egem.io/custom"], - "faucets": [], - "nativeCurrency": { - "name": "EtherGem Ether", - "symbol": "EGEM", - "decimals": 18 - }, - "infoURL": "https://egem.io", - "shortName": "egem", - "chainId": 1987, - "networkId": 1987, - "slip44": 1987 - }, - { - "name": "Milkomeda C1 Mainnet", - "chain": "milkAda", - "icon": "milkomeda", - "network": "mainnet", - "rpc": [ - "https://rpc-mainnet-cardano-evm.c1.milkomeda.com", - "wss://rpc-mainnet-cardano-evm.c1.milkomeda.com" - ], - "faucets": [], - "nativeCurrency": { "name": "milkAda", "symbol": "mADA", "decimals": 18 }, - "infoURL": "https://milkomeda.com", - "shortName": "milkAda", - "chainId": 2001, - "networkId": 2001, - "explorers": [ - { - "name": "Blockscout", - "url": "https://explorer-mainnet-cardano-evm.c1.milkomeda.com", - "standard": "none" - } - ] - }, - { - "name": "CloudWalk Testnet", - "chain": "CloudWalk Testnet", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "CloudWalk Native Token", - "symbol": "CWN", - "decimals": 18 - }, - "infoURL": "https://cloudwalk.io", - "shortName": "cloudwalk_testnet", - "chainId": 2008, - "networkId": 2008, - "explorers": [ - { - "name": "CloudWalk Testnet Explorer", - "url": "https://explorer.testnet.cloudwalk.io", - "standard": "none" - } - ] - }, - { - "name": "CloudWalk Mainnet", - "chain": "CloudWalk Mainnet", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "CloudWalk Native Token", - "symbol": "CWN", - "decimals": 18 - }, - "infoURL": "https://cloudwalk.io", - "shortName": "cloudwalk_mainnet", - "chainId": 2009, - "networkId": 2009, - "explorers": [ - { - "name": "CloudWalk Mainnet Explorer", - "url": "https://explorer.mainnet.cloudwalk.io", - "standard": "none" - } - ] - }, - { - "name": "420coin", - "chain": "420", - "rpc": [], - "faucets": [], - "nativeCurrency": { "name": "Fourtwenty", "symbol": "420", "decimals": 18 }, - "infoURL": "https://420integrated.com", - "shortName": "420", - "chainId": 2020, - "networkId": 2020 - }, - { - "name": "Edgeware Mainnet", - "chain": "EDG", - "rpc": ["https://mainnet1.edgewa.re"], - "faucets": [], - "nativeCurrency": { "name": "Edge", "symbol": "EDG", "decimals": 18 }, - "infoURL": "http://edgewa.re", - "shortName": "edg", - "chainId": 2021, - "networkId": 2021 - }, - { - "name": "Beresheet Testnet", - "chain": "EDG", - "rpc": ["https://beresheet1.edgewa.re"], - "faucets": [], - "nativeCurrency": { - "name": "Testnet Edge", - "symbol": "tEDG", - "decimals": 18 - }, - "infoURL": "http://edgewa.re", - "shortName": "edgt", - "chainId": 2022, - "networkId": 2022 - }, - { - "name": "Taycan Testnet", - "chain": "Taycan", - "rpc": ["https://test-taycan.hupayx.io"], - "faucets": ["https://ttaycan-faucet.hupayx.io/"], - "nativeCurrency": { - "name": "test-Shuffle", - "symbol": "tSFL", - "decimals": 18 - }, - "infoURL": "https://hupayx.io", - "shortName": "taycan-testnet", - "chainId": 2023, - "networkId": 2023, - "explorers": [ - { - "name": "Taycan Explorer(Blockscout)", - "url": "https://evmscan-test.hupayx.io", - "standard": "none" - }, - { - "name": "Taycan Cosmos Explorer", - "url": "https://cosmoscan-test.hupayx.io", - "standard": "none" - } - ] - }, - { - "name": "Rangers Protocol Mainnet", - "chain": "Rangers", - "icon": "rangers", - "rpc": ["https://mainnet.rangersprotocol.com/api/jsonrpc"], - "faucets": [], - "nativeCurrency": { - "name": "Rangers Protocol Gas", - "symbol": "RPG", - "decimals": 18 - }, - "infoURL": "https://rangersprotocol.com", - "shortName": "rpg", - "chainId": 2025, - "networkId": 2025, - "slip44": 1008, - "explorers": [ - { - "name": "rangersscan", - "url": "https://scan.rangersprotocol.com", - "standard": "none" - } - ] - }, - { - "name": "Ecoball Mainnet", - "chain": "ECO", - "rpc": ["https://api.ecoball.org/ecoball/"], - "faucets": [], - "nativeCurrency": { - "name": "Ecoball Coin", - "symbol": "ECO", - "decimals": 18 - }, - "infoURL": "https://ecoball.org", - "shortName": "eco", - "chainId": 2100, - "networkId": 2100, - "explorers": [ - { - "name": "Ecoball Explorer", - "url": "https://scan.ecoball.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "Ecoball Testnet Espuma", - "chain": "ECO", - "rpc": ["https://api.ecoball.org/espuma/"], - "faucets": [], - "nativeCurrency": { - "name": "Espuma Coin", - "symbol": "ECO", - "decimals": 18 - }, - "infoURL": "https://ecoball.org", - "shortName": "esp", - "chainId": 2101, - "networkId": 2101, - "explorers": [ - { - "name": "Ecoball Testnet Explorer", - "url": "https://espuma-scan.ecoball.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "Findora Mainnet", - "chain": "Findora", - "network": "mainnet", - "rpc": ["https://prod-mainnet.prod.findora.org:8545"], - "faucets": [], - "nativeCurrency": { "name": "FRA", "symbol": "FRA", "decimals": 18 }, - "infoURL": "https://findora.org/", - "shortName": "fra", - "chainId": 2152, - "networkId": 2152, - "explorers": [ - { - "name": "findorascan", - "url": "https://evm.findorascan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Findora Testnet", - "chain": "Testnet-anvil", - "network": "testnet", - "rpc": ["https://prod-testnet.prod.findora.org:8545/"], - "faucets": [], - "nativeCurrency": { "name": "FRA", "symbol": "FRA", "decimals": 18 }, - "infoURL": "https://findora.org/", - "shortName": "findora-testnet", - "chainId": 2153, - "networkId": 2153, - "explorers": [ - { - "name": "findorascan", - "url": "https://testnet-anvil.evm.findorascan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Evanesco Mainnet", - "chain": "EVA", - "network": "mainnet", - "rpc": ["https://seed4.evanesco.org:8546"], - "faucets": [], - "nativeCurrency": { "name": "EVA", "symbol": "EVA", "decimals": 18 }, - "infoURL": "https://evanesco.org/", - "shortName": "evanesco", - "chainId": 2213, - "networkId": 2213, - "icon": "evanesco", - "explorers": [ - { - "name": "Evanesco Explorer", - "url": "https://explorer.evanesco.org", - "standard": "none" - } - ] - }, - { - "name": "Kava EVM Testnet", - "chain": "KAVA", - "network": "testnet", - "rpc": ["https://evm.evm-alpha.kava.io", "wss://evm-ws.evm-alpha.kava.io"], - "faucets": ["https://faucet.kava.io"], - "nativeCurrency": { "name": "TKava", "symbol": "TKAVA", "decimals": 18 }, - "infoURL": "https://www.kava.io", - "shortName": "tkava", - "chainId": 2221, - "networkId": 2221, - "icon": "kava", - "explorers": [ - { - "name": "Kava Testnet Explorer", - "url": "https://explorer.evm-alpha.kava.io", - "standard": "EIP3091", - "icon": "kava" - } - ] - }, - { - "name": "Kava EVM", - "chain": "KAVA", - "network": "mainnet", - "rpc": [ - "https://evm.kava.io", - "https://evm2.kava.io", - "wss://wevm.kava.io", - "wss://wevm2.kava.io" - ], - "faucets": [], - "nativeCurrency": { "name": "Kava", "symbol": "KAVA", "decimals": 18 }, - "infoURL": "https://www.kava.io", - "shortName": "kava", - "chainId": 2222, - "networkId": 2222, - "icon": "kava", - "explorers": [ - { - "name": "Kava EVM Explorer", - "url": "https://explorer.kava.io", - "standard": "EIP3091", - "icon": "kava" - } - ] - }, - { - "name": "VChain Mainnet", - "chain": "VChain", - "rpc": ["https://bc.vcex.xyz"], - "faucets": [], - "nativeCurrency": { "name": "VNDT", "symbol": "VNDT", "decimals": 18 }, - "infoURL": "https://bo.vcex.xyz/", - "shortName": "VChain", - "chainId": 2223, - "networkId": 2223, - "explorers": [ - { - "name": "VChain Scan", - "url": "https://scan.vcex.xyz", - "standard": "EIP3091" - } - ] - }, - { - "name": "Kortho Mainnet", - "chain": "Kortho Chain", - "rpc": ["https://www.kortho-chain.com"], - "faucets": [], - "nativeCurrency": { - "name": "KorthoChain", - "symbol": "KTO", - "decimals": 11 - }, - "infoURL": "https://www.kortho.io/", - "shortName": "ktoc", - "chainId": 2559, - "networkId": 2559 - }, - { - "name": "TechPay Mainnet", - "chain": "TPC", - "network": "mainnet", - "rpc": ["https://api.techpay.io/"], - "faucets": [], - "nativeCurrency": { "name": "TechPay", "symbol": "TPC", "decimals": 18 }, - "infoURL": "https://techpay.io/", - "shortName": "tpc", - "chainId": 2569, - "networkId": 2569, - "icon": "techpay", - "explorers": [ - { - "name": "tpcscan", - "url": "https://tpcscan.com", - "icon": "techpay", - "standard": "EIP3091" - } - ] - }, - { - "name": "EZChain C-Chain Mainnet", - "chain": "EZC", - "rpc": ["https://api.ezchain.com/ext/bc/C/rpc"], - "faucets": [], - "nativeCurrency": { "name": "EZChain", "symbol": "EZC", "decimals": 18 }, - "infoURL": "https://ezchain.com", - "shortName": "EZChain", - "chainId": 2612, - "networkId": 2612, - "icon": "ezchain", - "explorers": [ - { - "name": "ezchain", - "url": "https://cchain-explorer.ezchain.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "EZChain C-Chain Testnet", - "chain": "EZC", - "rpc": ["https://testnet-api.ezchain.com/ext/bc/C/rpc"], - "faucets": ["https://testnet-faucet.ezchain.com"], - "nativeCurrency": { "name": "EZChain", "symbol": "EZC", "decimals": 18 }, - "infoURL": "https://ezchain.com", - "shortName": "Fuji-EZChain", - "chainId": 2613, - "networkId": 2613, - "icon": "ezchain", - "explorers": [ - { - "name": "ezchain", - "url": "https://testnet-cchain-explorer.ezchain.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "CENNZnet Rata", - "chain": "CENNZnet", - "network": "rata", - "rpc": ["https://rata.centrality.me/public"], - "faucets": ["https://app-faucet.centrality.me"], - "nativeCurrency": { "name": "CPAY", "symbol": "CPAY", "decimals": 18 }, - "infoURL": "https://cennz.net", - "shortName": "cennz-r", - "chainId": 3000, - "networkId": 3000, - "icon": "cennz" - }, - { - "name": "CENNZnet Nikau", - "chain": "CENNZnet", - "network": "nikau", - "rpc": ["https://nikau.centrality.me/public"], - "faucets": ["https://app-faucet.centrality.me"], - "nativeCurrency": { "name": "CPAY", "symbol": "CPAY", "decimals": 18 }, - "infoURL": "https://cennz.net", - "shortName": "cennz-n", - "chainId": 3001, - "networkId": 3001, - "icon": "cennz", - "explorers": [ - { - "name": "UNcover", - "url": "https://www.uncoverexplorer.com/?network=Nikau", - "standard": "none" - } - ] - }, - { - "name": "ZCore Testnet", - "chain": "Beach", - "icon": "zcore", - "rpc": ["https://rpc-testnet.zcore.cash"], - "faucets": ["https://faucet.zcore.cash"], - "nativeCurrency": { "name": "ZCore", "symbol": "ZCR", "decimals": 18 }, - "infoURL": "https://zcore.cash", - "shortName": "zcrbeach", - "chainId": 3331, - "networkId": 3331 - }, - { - "name": "Web3Q Testnet", - "chain": "Web3Q", - "rpc": ["https://testnet.web3q.io:8545"], - "faucets": [], - "nativeCurrency": { "name": "Web3Q", "symbol": "W3Q", "decimals": 18 }, - "infoURL": "https://testnet.web3q.io/home.w3q/", - "shortName": "w3q-t", - "chainId": 3333, - "networkId": 3333, - "explorers": [ - { - "name": "w3q-testnet", - "url": "https://explorer.testnet.web3q.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Web3Q Galileo", - "chain": "Web3Q", - "rpc": ["https://galileo.web3q.io:8545"], - "faucets": [], - "nativeCurrency": { "name": "Web3Q", "symbol": "W3Q", "decimals": 18 }, - "infoURL": "https://galileo.web3q.io/home.w3q/", - "shortName": "w3q-g", - "chainId": 3334, - "networkId": 3334, - "explorers": [ - { - "name": "w3q-galileo", - "url": "https://explorer.galileo.web3q.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Paribu Net Mainnet", - "chain": "PRB", - "network": "Paribu Net", - "rpc": ["https://rpc.paribu.network"], - "faucets": [], - "nativeCurrency": { "name": "PRB", "symbol": "PRB", "decimals": 18 }, - "infoURL": "https://net.paribu.com", - "shortName": "prb", - "chainId": 3400, - "networkId": 3400, - "icon": "prb", - "explorers": [ - { - "name": "Paribu Net Explorer", - "url": "https://explorer.paribu.network", - "icon": "explorer", - "standard": "EIP3091" - } - ] - }, - { - "name": "Paribu Net Testnet", - "chain": "PRB", - "network": "Paribu Net", - "rpc": ["https://rpc.testnet.paribuscan.com"], - "faucets": ["https://faucet.paribuscan.com"], - "nativeCurrency": { "name": "PRB", "symbol": "PRB", "decimals": 18 }, - "infoURL": "https://net.paribu.com", - "shortName": "prbtestnet", - "chainId": 3500, - "networkId": 3500, - "icon": "prb", - "explorers": [ - { - "name": "Paribu Net Testnet Explorer", - "url": "https://testnet.paribuscan.com", - "icon": "explorer", - "standard": "EIP3091" - } - ] - }, - { - "name": "Bittex Mainnet", - "chain": "BTX", - "rpc": ["https://rpc1.bittexscan.info", "https://rpc2.bittexscan.info"], - "faucets": [], - "nativeCurrency": { "name": "Bittex", "symbol": "BTX", "decimals": 18 }, - "infoURL": "https://bittexscan.com", - "shortName": "btx", - "chainId": 3690, - "networkId": 3690, - "icon": "ethereum", - "explorers": [ - { - "name": "bittexscan", - "url": "https://bittexscan.com", - "icon": "etherscan", - "standard": "EIP3091" - } - ] - }, - { - "name": "Crossbell", - "chain": "Crossbell", - "network": "mainnet", - "rpc": ["https://rpc.crossbell.io"], - "faucets": ["https://faucet.crossbell.io"], - "nativeCurrency": { - "name": "Crossbell Token", - "symbol": "CSB", - "decimals": 18 - }, - "infoURL": "https://crossbell.io", - "shortName": "csb", - "chainId": 3737, - "networkId": 3737, - "icon": "crossbell", - "explorers": [ - { - "name": "Crossbell Explorer", - "url": "https://scan.crossbell.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "DYNO Mainnet", - "chain": "DYNO", - "rpc": ["https://api.dynoprotocol.com"], - "faucets": ["https://faucet.dynoscan.io"], - "nativeCurrency": { - "name": "DYNO Token", - "symbol": "DYNO", - "decimals": 18 - }, - "infoURL": "https://dynoprotocol.com", - "shortName": "dyno", - "chainId": 3966, - "networkId": 3966, - "explorers": [ - { - "name": "DYNO Explorer", - "url": "https://dynoscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "DYNO Testnet", - "chain": "DYNO", - "rpc": ["https://tapi.dynoprotocol.com"], - "faucets": ["https://faucet.dynoscan.io"], - "nativeCurrency": { - "name": "DYNO Token", - "symbol": "tDYNO", - "decimals": 18 - }, - "infoURL": "https://dynoprotocol.com", - "shortName": "tdyno", - "chainId": 3967, - "networkId": 3967, - "explorers": [ - { - "name": "DYNO Explorer", - "url": "https://testnet.dynoscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "YuanChain Mainnet", - "chain": "YCC", - "network": "mainnet", - "rpc": ["https://mainnet.yuan.org/eth"], - "faucets": [], - "nativeCurrency": { "name": "YCC", "symbol": "YCC", "decimals": 18 }, - "infoURL": "https://www.yuan.org", - "shortName": "ycc", - "chainId": 3999, - "networkId": 3999, - "icon": "ycc", - "explorers": [ - { - "name": "YuanChain Explorer", - "url": "https://mainnet.yuan.org", - "standard": "none" - } - ] - }, - { - "name": "Fantom Testnet", - "chain": "FTM", - "rpc": ["https://rpc.testnet.fantom.network"], - "faucets": ["https://faucet.fantom.network"], - "nativeCurrency": { "name": "Fantom", "symbol": "FTM", "decimals": 18 }, - "infoURL": "https://docs.fantom.foundation/quick-start/short-guide#fantom-testnet", - "shortName": "tftm", - "chainId": 4002, - "networkId": 4002, - "icon": "fantom", - "explorers": [ - { - "name": "ftmscan", - "url": "https://testnet.ftmscan.com", - "icon": "ftmscan", - "standard": "EIP3091" - } - ] - }, - { - "name": "AIOZ Network Testnet", - "chain": "AIOZ", - "network": "testnet", - "icon": "aioz", - "rpc": ["https://eth-ds.testnet.aioz.network"], - "faucets": [], - "nativeCurrency": { "name": "testAIOZ", "symbol": "AIOZ", "decimals": 18 }, - "infoURL": "https://aioz.network", - "shortName": "aioz-testnet", - "chainId": 4102, - "networkId": 4102, - "slip44": 60, - "explorers": [ - { - "name": "AIOZ Network Testnet Explorer", - "url": "https://testnet.explorer.aioz.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "PHI Network", - "chain": "PHI", - "network": "mainnet", - "rpc": ["https://rpc1.phi.network", "https://rpc2.phi.network"], - "faucets": [], - "nativeCurrency": { "name": "PHI", "symbol": "Φ", "decimals": 18 }, - "infoURL": "https://phi.network", - "shortName": "PHI", - "chainId": 4181, - "networkId": 4181, - "icon": "phi", - "explorers": [ - { - "name": "PHI Explorer", - "url": "https://explorer.phi.network", - "icon": "phi", - "standard": "none" - } - ] - }, - { - "name": "IoTeX Network Mainnet", - "chain": "iotex.io", - "rpc": ["https://babel-api.mainnet.iotex.io"], - "faucets": [], - "nativeCurrency": { "name": "IoTeX", "symbol": "IOTX", "decimals": 18 }, - "infoURL": "https://iotex.io", - "shortName": "iotex-mainnet", - "chainId": 4689, - "networkId": 4689, - "explorers": [ - { - "name": "iotexscan", - "url": "https://iotexscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "IoTeX Network Testnet", - "chain": "iotex.io", - "rpc": ["https://babel-api.testnet.iotex.io"], - "faucets": ["https://faucet.iotex.io/"], - "nativeCurrency": { "name": "IoTeX", "symbol": "IOTX", "decimals": 18 }, - "infoURL": "https://iotex.io", - "shortName": "iotex-testnet", - "chainId": 4690, - "networkId": 4690, - "explorers": [ - { - "name": "testnet iotexscan", - "url": "https://testnet.iotexscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Venidium Testnet", - "chain": "XVM", - "rpc": ["https://rpc-evm-testnet.venidium.io"], - "faucets": [], - "nativeCurrency": { "name": "Venidium", "symbol": "XVM", "decimals": 18 }, - "infoURL": "https://venidium.io", - "shortName": "txvm", - "chainId": 4918, - "networkId": 4918, - "explorers": [ - { - "name": "Venidium EVM Testnet Explorer", - "url": "https://evm-testnet.venidiumexplorer.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Venidium Mainnet", - "chain": "XVM", - "icon": "venidium", - "rpc": ["https://rpc.venidium.io"], - "faucets": [], - "nativeCurrency": { "name": "Venidium", "symbol": "XVM", "decimals": 18 }, - "infoURL": "https://venidium.io", - "shortName": "xvm", - "chainId": 4919, - "networkId": 4919, - "explorers": [ - { - "name": "Venidium Explorer", - "url": "https://evm.venidiumexplorer.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "TLChain Network Mainnet", - "chain": "TLC", - "icon": "tlc", - "rpc": ["https://mainnet-rpc.tlxscan.com/"], - "faucets": [], - "nativeCurrency": { - "name": "TLChain Network", - "symbol": "TLC", - "decimals": 18 - }, - "infoURL": "https://tlchain.network/", - "shortName": "tlc", - "chainId": 5177, - "networkId": 5177, - "explorers": [ - { - "name": "TLChain Explorer", - "url": "https://explorer.tlchain.network", - "standard": "none" - } - ] - }, - { - "name": "EraSwap Mainnet", - "chain": "ESN", - "icon": "eraswap", - "rpc": [ - "https://mainnet.eraswap.network", - "https://rpc-mumbai.mainnet.eraswap.network" - ], - "faucets": [], - "nativeCurrency": { "name": "EraSwap", "symbol": "ES", "decimals": 18 }, - "infoURL": "https://eraswap.info/", - "shortName": "es", - "chainId": 5197, - "networkId": 5197 - }, - { - "name": "Uzmi Network Mainnet", - "chain": "UZMI", - "rpc": ["https://network.uzmigames.com.br/"], - "faucets": [], - "nativeCurrency": { "name": "UZMI", "symbol": "UZMI", "decimals": 18 }, - "infoURL": "https://uzmigames.com.br/", - "shortName": "UZMI", - "chainId": 5315, - "networkId": 5315 - }, - { - "name": "Nahmii Mainnet", - "chain": "Nahmii", - "network": "mainnet", - "rpc": ["https://l2.nahmii.io"], - "faucets": [], - "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, - "infoURL": "https://nahmii.io", - "shortName": "Nahmii", - "chainId": 5551, - "networkId": 5551, - "icon": "nahmii", - "explorers": [ - { - "name": "Nahmii mainnet explorer", - "url": "https://explorer.nahmii.io", - "icon": "nahmii", - "standard": "EIP3091" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-1", - "bridges": [{ "url": "https://bridge.nahmii.io" }] - } - }, - { - "name": "Nahmii Testnet", - "chain": "Nahmii", - "network": "testnet", - "rpc": ["https://l2.testnet.nahmii.io"], - "faucets": [], - "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, - "infoURL": "https://nahmii.io", - "shortName": "Nahmii testnet", - "chainId": 5553, - "networkId": 5553, - "icon": "nahmii", - "explorers": [ - { - "name": "blockscout", - "url": "https://explorer.testnet.nahmii.io", - "icon": "nahmii", - "standard": "EIP3091" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-3", - "bridges": [{ "url": "https://bridge.nahmii.io" }] - } - }, - { - "name": "Syscoin Tanenbaum Testnet", - "chain": "SYS", - "rpc": ["https://rpc.tanenbaum.io", "wss://rpc.tanenbaum.io/wss"], - "faucets": ["https://faucet.tanenbaum.io"], - "nativeCurrency": { - "name": "Testnet Syscoin", - "symbol": "tSYS", - "decimals": 18 - }, - "infoURL": "https://syscoin.org", - "shortName": "tsys", - "chainId": 5700, - "networkId": 5700, - "explorers": [ - { - "name": "Syscoin Testnet Block Explorer", - "url": "https://tanenbaum.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Digest Swarm Chain", - "chain": "DSC", - "icon": "swarmchain", - "rpc": ["https://rpc.digestgroup.ltd"], - "faucets": [], - "nativeCurrency": { - "name": "DigestCoin", - "symbol": "DGCC", - "decimals": 18 - }, - "infoURL": "https://digestgroup.ltd", - "shortName": "dgcc", - "chainId": 5777, - "networkId": 5777, - "explorers": [ - { - "name": "swarmexplorer", - "url": "https://explorer.digestgroup.ltd", - "standard": "EIP3091" - } - ] - }, - { - "name": "Ontology Testnet", - "chain": "Ontology", - "rpc": [ - "http://polaris1.ont.io:20339", - "http://polaris2.ont.io:20339", - "http://polaris3.ont.io:20339", - "http://polaris4.ont.io:20339", - "https://polaris1.ont.io:10339", - "https://polaris2.ont.io:10339", - "https://polaris3.ont.io:10339", - "https://polaris4.ont.io:10339" - ], - "faucets": ["https://developer.ont.io/"], - "nativeCurrency": { "name": "ONG", "symbol": "ONG", "decimals": 18 }, - "infoURL": "https://ont.io/", - "shortName": "Ontology Testnet", - "chainId": 5851, - "networkId": 5851, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.ont.io/testnet", - "standard": "EIP3091" - } - ] - }, - { - "name": "Wegochain Rubidium Mainnet", - "chain": "RBD", - "rpc": ["https://proxy.wegochain.io", "http://wallet.wegochain.io:7764"], - "faucets": [], - "nativeCurrency": { "name": "Rubid", "symbol": "RBD", "decimals": 18 }, - "infoURL": "https://www.wegochain.io", - "shortName": "rbd", - "chainId": 5869, - "networkId": 5869, - "explorers": [ - { - "name": "wegoscan2", - "url": "https://scan2.wegochain.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Pixie Chain Mainnet", - "chain": "PixieChain", - "rpc": [ - "https://http-mainnet.chain.pixie.xyz", - "wss://ws-mainnet.chain.pixie.xyz" - ], - "faucets": [], - "nativeCurrency": { - "name": "Pixie Chain Native Token", - "symbol": "PIX", - "decimals": 18 - }, - "infoURL": "https://chain.pixie.xyz", - "shortName": "pixie-chain", - "chainId": 6626, - "networkId": 6626, - "explorers": [ - { - "name": "blockscout", - "url": "https://scan.chain.pixie.xyz", - "standard": "none" - } - ] - }, - { - "name": "Ella the heart", - "chain": "ella", - "icon": "ella", - "rpc": ["https://rpc.ella.network"], - "faucets": [], - "nativeCurrency": { "name": "Ella", "symbol": "ELLA", "decimals": 18 }, - "infoURL": "https://ella.network", - "shortName": "ELLA", - "chainId": 7027, - "networkId": 7027, - "explorers": [ - { "name": "Ella", "url": "https://ella.network", "standard": "EIP3091" } - ] - }, - { - "name": "Shyft Mainnet", - "chain": "SHYFT", - "icon": "shyft", - "rpc": ["https://rpc.shyft.network/"], - "faucets": [], - "nativeCurrency": { "name": "Shyft", "symbol": "SHYFT", "decimals": 18 }, - "infoURL": "https://shyft.network", - "shortName": "shyft", - "chainId": 7341, - "networkId": 7341, - "slip44": 2147490989, - "explorers": [ - { - "name": "Shyft BX", - "url": "https://bx.shyft.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "Rise of the Warbots Testnet", - "chain": "nmactest", - "rpc": [ - "https://testnet1.riseofthewarbots.com", - "https://testnet2.riseofthewarbots.com", - "https://testnet3.riseofthewarbots.com", - "https://testnet4.riseofthewarbots.com", - "https://testnet5.riseofthewarbots.com" - ], - "faucets": [], - "nativeCurrency": { - "name": "Nano Machines", - "symbol": "NMAC", - "decimals": 18 - }, - "infoURL": "https://riseofthewarbots.com/", - "shortName": "Rise of the Warbots Testnet", - "chainId": 7777, - "networkId": 7777, - "explorers": [ - { - "name": "avascan", - "url": "https://testnet.avascan.info/blockchain/2mZ9doojfwHzXN3VXDQELKnKyZYxv7833U8Yq5eTfFx3hxJtiy", - "standard": "none" - } - ] - }, - { - "name": "Hazlor Testnet", - "chain": "SCAS", - "rpc": [ - "https://hatlas.rpc.hazlor.com:8545", - "wss://hatlas.rpc.hazlor.com:8546" - ], - "faucets": ["https://faucet.hazlor.com"], - "nativeCurrency": { - "name": "Hazlor Test Coin", - "symbol": "TSCAS", - "decimals": 18 - }, - "infoURL": "https://hazlor.com", - "shortName": "tscas", - "chainId": 7878, - "networkId": 7878, - "explorers": [ - { - "name": "Hazlor Testnet Explorer", - "url": "https://explorer.hazlor.com", - "standard": "none" - } - ] - }, - { - "name": "Teleport", - "chain": "Teleport", - "rpc": ["https://evm-rpc.teleport.network"], - "faucets": [], - "nativeCurrency": { "name": "Tele", "symbol": "TELE", "decimals": 18 }, - "infoURL": "https://teleport.network", - "shortName": "teleport", - "chainId": 8000, - "networkId": 8000, - "icon": "teleport", - "explorers": [ - { - "name": "Teleport EVM Explorer (Blockscout)", - "url": "https://evm-explorer.teleport.network", - "standard": "none", - "icon": "teleport" - }, - { - "name": "Teleport Cosmos Explorer (Big Dipper)", - "url": "https://explorer.teleport.network", - "standard": "none", - "icon": "teleport" - } - ] - }, - { - "name": "Teleport Testnet", - "chain": "Teleport", - "rpc": ["https://evm-rpc.testnet.teleport.network"], - "faucets": ["https://chain-docs.teleport.network/testnet/faucet.html"], - "nativeCurrency": { "name": "Tele", "symbol": "TELE", "decimals": 18 }, - "infoURL": "https://teleport.network", - "shortName": "teleport-testnet", - "chainId": 8001, - "networkId": 8001, - "icon": "teleport", - "explorers": [ - { - "name": "Teleport EVM Explorer (Blockscout)", - "url": "https://evm-explorer.testnet.teleport.network", - "standard": "none", - "icon": "teleport" - }, - { - "name": "Teleport Cosmos Explorer (Big Dipper)", - "url": "https://explorer.testnet.teleport.network", - "standard": "none", - "icon": "teleport" - } - ] - }, - { - "name": "MDGL Testnet", - "chain": "MDGL", - "rpc": ["https://testnet.mdgl.io"], - "faucets": [], - "nativeCurrency": { - "name": "MDGL Token", - "symbol": "MDGLT", - "decimals": 18 - }, - "infoURL": "https://mdgl.io", - "shortName": "mdgl", - "chainId": 8029, - "networkId": 8029 - }, - { - "name": "GeneChain Adenine Testnet", - "chain": "GeneChain", - "rpc": ["https://rpc-testnet.genechain.io"], - "faucets": ["https://faucet.genechain.io"], - "nativeCurrency": { - "name": "Testnet RNA", - "symbol": "tRNA", - "decimals": 18 - }, - "infoURL": "https://scan-testnet.genechain.io/", - "shortName": "GeneChainAdn", - "chainId": 8080, - "networkId": 8080, - "explorers": [ - { - "name": "GeneChain Adenine Testnet Scan", - "url": "https://scan-testnet.genechain.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Klaytn Mainnet Cypress", - "chain": "KLAY", - "rpc": ["https://public-node-api.klaytnapi.com/v1/cypress"], - "faucets": [], - "nativeCurrency": { "name": "KLAY", "symbol": "KLAY", "decimals": 18 }, - "infoURL": "https://www.klaytn.com/", - "shortName": "Cypress", - "chainId": 8217, - "networkId": 8217, - "slip44": 8217, - "explorers": [ - { - "name": "Klaytnscope", - "url": "https://scope.klaytn.com", - "standard": "none" - } - ] - }, - { - "name": "KorthoTest", - "chain": "Kortho", - "rpc": ["https://www.krotho-test.net"], - "faucets": [], - "nativeCurrency": { - "name": "Kortho Test", - "symbol": "KTO", - "decimals": 11 - }, - "infoURL": "https://www.kortho.io/", - "shortName": "Kortho", - "chainId": 8285, - "networkId": 8285 - }, - { - "name": "TOOL Global Mainnet", - "chain": "OLO", - "rpc": ["https://mainnet-web3.wolot.io"], - "faucets": [], - "nativeCurrency": { - "name": "TOOL Global", - "symbol": "OLO", - "decimals": 18 - }, - "infoURL": "https://ibdt.io", - "shortName": "olo", - "chainId": 8723, - "networkId": 8723, - "slip44": 479, - "explorers": [ - { - "name": "OLO Block Explorer", - "url": "https://www.olo.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "TOOL Global Testnet", - "chain": "OLO", - "rpc": ["https://testnet-web3.wolot.io"], - "faucets": ["https://testnet-explorer.wolot.io"], - "nativeCurrency": { - "name": "TOOL Global", - "symbol": "OLO", - "decimals": 18 - }, - "infoURL": "https://testnet-explorer.wolot.io", - "shortName": "tolo", - "chainId": 8724, - "networkId": 8724, - "slip44": 479 - }, - { - "name": "Ambros Chain Testnet", - "chain": "ambroschain", - "rpc": ["https://api.testnet.ambros.network"], - "faucets": [], - "nativeCurrency": { "name": "AMBROS", "symbol": "AMBROS", "decimals": 18 }, - "infoURL": "https://test.ambros.network", - "shortName": "ambrostestnet", - "chainId": 8888, - "networkId": 8888, - "explorers": [ - { - "name": "Ambros Chain Explorer", - "url": "https://testnet.ambrosscan.com", - "standard": "none" - } - ] - }, - { - "name": "Mammoth Mainnet", - "title": "Mammoth Chain", - "chain": "MMT", - "rpc": [ - "https://dataseed.mmtscan.io", - "https://dataseed1.mmtscan.io", - "https://dataseed2.mmtscan.io" - ], - "faucets": ["https://faucet.mmtscan.io/"], - "nativeCurrency": { - "name": "Mammoth Token", - "symbol": "MMT", - "decimals": 18 - }, - "infoURL": "https://mmtchain.io/", - "shortName": "mmt", - "chainId": 8898, - "networkId": 8898, - "icon": "mmt", - "explorers": [ - { - "name": "mmtscan", - "url": "https://mmtscan.io", - "standard": "EIP3091", - "icon": "mmt" - } - ] - }, - { - "name": "bloxberg", - "chain": "bloxberg", - "rpc": ["https://core.bloxberg.org"], - "faucets": ["https://faucet.bloxberg.org/"], - "nativeCurrency": { "name": "BERG", "symbol": "U+25B3", "decimals": 18 }, - "infoURL": "https://bloxberg.org", - "shortName": "berg", - "chainId": 8995, - "networkId": 8995 - }, - { - "name": "Evmos Testnet", - "chain": "Evmos", - "rpc": ["https://eth.bd.evmos.dev:8545"], - "faucets": ["https://faucet.evmos.dev"], - "nativeCurrency": { - "name": "test-Evmos", - "symbol": "tEVMOS", - "decimals": 18 - }, - "infoURL": "https://evmos.org", - "shortName": "evmos-testnet", - "chainId": 9000, - "networkId": 9000, - "icon": "evmos", - "explorers": [ - { - "name": "Evmos EVM Explorer", - "url": "https://evm.evmos.dev", - "standard": "EIP3091", - "icon": "evmos" - }, - { - "name": "Evmos Cosmos Explorer", - "url": "https://explorer.evmos.dev", - "standard": "none", - "icon": "evmos" - } - ] - }, - { - "name": "Evmos", - "chain": "Evmos", - "rpc": ["https://eth.bd.evmos.org:8545"], - "faucets": [], - "nativeCurrency": { "name": "Evmos", "symbol": "EVMOS", "decimals": 18 }, - "infoURL": "https://evmos.org", - "shortName": "evmos", - "chainId": 9001, - "networkId": 9001, - "icon": "evmos", - "explorers": [ - { - "name": "Evmos EVM Explorer (Blockscout)", - "url": "https://evm.evmos.org", - "standard": "none", - "icon": "evmos" - }, - { - "name": "Evmos Cosmos Explorer (Mintscan)", - "url": "https://www.mintscan.io/evmos", - "standard": "none", - "icon": "evmos" - } - ] - }, - { - "name": "Genesis Coin", - "chain": "Genesis", - "rpc": ["https://genesis-gn.com", "wss://genesis-gn.com"], - "faucets": [], - "nativeCurrency": { "name": "GN Coin", "symbol": "GNC", "decimals": 18 }, - "infoURL": "https://genesis-gn.com", - "shortName": "GENEC", - "chainId": 9100, - "networkId": 9100 - }, - { - "name": "Rangers Protocol Testnet Robin", - "chain": "Rangers", - "icon": "rangers", - "rpc": ["https://robin.rangersprotocol.com/api/jsonrpc"], - "faucets": ["https://robin-faucet.rangersprotocol.com"], - "nativeCurrency": { - "name": "Rangers Protocol Gas", - "symbol": "tRPG", - "decimals": 18 - }, - "infoURL": "https://rangersprotocol.com", - "shortName": "trpg", - "chainId": 9527, - "networkId": 9527, - "explorers": [ - { - "name": "rangersscan-robin", - "url": "https://robin-rangersscan.rangersprotocol.com", - "standard": "none" - } - ] - }, - { - "name": "myOwn Testnet", - "chain": "myOwn", - "rpc": ["https://geth.dev.bccloud.net"], - "faucets": [], - "nativeCurrency": { "name": "MYN", "symbol": "MYN", "decimals": 18 }, - "infoURL": "https://docs.bccloud.net/", - "shortName": "myn", - "chainId": 9999, - "networkId": 9999 - }, - { - "name": "Smart Bitcoin Cash", - "chain": "smartBCH", - "rpc": [ - "https://smartbch.greyh.at", - "https://rpc-mainnet.smartbch.org", - "https://smartbch.fountainhead.cash/mainnet", - "https://smartbch.devops.cash/mainnet" - ], - "faucets": [], - "nativeCurrency": { - "name": "Bitcoin Cash", - "symbol": "BCH", - "decimals": 18 - }, - "infoURL": "https://smartbch.org/", - "shortName": "smartbch", - "chainId": 10000, - "networkId": 10000 - }, - { - "name": "Smart Bitcoin Cash Testnet", - "chain": "smartBCHTest", - "rpc": [ - "https://rpc-testnet.smartbch.org", - "https://smartbch.devops.cash/testnet" - ], - "faucets": [], - "nativeCurrency": { - "name": "Bitcoin Cash Test Token", - "symbol": "BCHT", - "decimals": 18 - }, - "infoURL": "http://smartbch.org/", - "shortName": "smartbchtest", - "chainId": 10001, - "networkId": 10001 - }, - { - "name": "Blockchain Genesis Mainnet", - "chain": "GEN", - "rpc": [ - "https://eu.mainnet.xixoio.com", - "https://us.mainnet.xixoio.com", - "https://asia.mainnet.xixoio.com" - ], - "faucets": [], - "nativeCurrency": { "name": "GEN", "symbol": "GEN", "decimals": 18 }, - "infoURL": "https://www.xixoio.com/", - "shortName": "GEN", - "chainId": 10101, - "networkId": 10101 - }, - { - "name": "CryptoCoinPay", - "chain": "CCP", - "rpc": [ - "http://node106.cryptocoinpay.info:8545", - "ws://node106.cryptocoinpay.info:8546" - ], - "faucets": [], - "icon": "ccp", - "nativeCurrency": { - "name": "CryptoCoinPay", - "symbol": "CCP", - "decimals": 18 - }, - "infoURL": "https://www.cryptocoinpay.co", - "shortName": "CCP", - "chainId": 10823, - "networkId": 10823, - "explorers": [ - { - "name": "CCP Explorer", - "url": "https://cryptocoinpay.info", - "standard": "EIP3091" - } - ] - }, - { - "name": "Quadrans Blockchain", - "chain": "QDC", - "network": "mainnet", - "icon": "quadrans", - "rpc": [ - "https://rpc.quadrans.io", - "https://rpcna.quadrans.io", - "https://rpceu.quadrans.io" - ], - "faucets": [], - "nativeCurrency": { - "name": "Quadrans Coin", - "symbol": "QDC", - "decimals": 18 - }, - "infoURL": "https://quadrans.io", - "shortName": "quadrans", - "chainId": 10946, - "networkId": 10946, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.quadrans.io", - "icon": "quadrans", - "standard": "EIP3091" - } - ] - }, - { - "name": "Quadrans Blockchain Testnet", - "chain": "tQDC", - "network": "testnet", - "icon": "quadrans", - "rpc": ["https://rpctest.quadrans.io", "https://rpctest2.quadrans.io"], - "faucets": ["https://faucetpage.quadrans.io"], - "nativeCurrency": { - "name": "Quadrans Testnet Coin", - "symbol": "tQDC", - "decimals": 18 - }, - "infoURL": "https://quadrans.io", - "shortName": "quadranstestnet", - "chainId": 10947, - "networkId": 10947, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.testnet.quadrans.io", - "icon": "quadrans", - "standard": "EIP3091" - } - ] - }, - { - "name": "WAGMI", - "chain": "WAGMI", - "icon": "wagmi", - "rpc": ["https://subnets.avax.network/wagmi/wagmi-chain-testnet/rpc"], - "faucets": ["https://faucet.trywagmi.xyz"], - "nativeCurrency": { "name": "WAGMI", "symbol": "WGM", "decimals": 18 }, - "infoURL": "https://trywagmi.xyz", - "shortName": "WAGMI", - "chainId": 11111, - "networkId": 11111, - "explorers": [ - { - "name": "WAGMI Explorer", - "url": "https://subnets.avax.network/wagmi/wagmi-chain-testnet/explorer", - "standard": "EIP3091" - } - ] - }, - { - "name": "Shyft Testnet", - "chain": "SHYFTT", - "icon": "shyft", - "rpc": ["https://rpc.testnet.shyft.network/"], - "faucets": [], - "nativeCurrency": { - "name": "Shyft Test Token", - "symbol": "SHYFTT", - "decimals": 18 - }, - "infoURL": "https://shyft.network", - "shortName": "shyftt", - "chainId": 11437, - "networkId": 11437, - "explorers": [ - { - "name": "Shyft Testnet BX", - "url": "https://bx.testnet.shyft.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "Singularity ZERO Testnet", - "chain": "ZERO", - "rpc": ["https://betaenv.singularity.gold:18545"], - "faucets": ["https://nft.singularity.gold"], - "nativeCurrency": { "name": "ZERO", "symbol": "tZERO", "decimals": 18 }, - "infoURL": "https://www.singularity.gold", - "shortName": "tZERO", - "chainId": 12051, - "networkId": 12051, - "explorers": [ - { - "name": "zeroscan", - "url": "https://betaenv.singularity.gold:18002", - "standard": "EIP3091" - } - ] - }, - { - "name": "Singularity ZERO Mainnet", - "chain": "ZERO", - "rpc": ["https://zerorpc.singularity.gold"], - "faucets": ["https://zeroscan.singularity.gold"], - "nativeCurrency": { "name": "ZERO", "symbol": "ZERO", "decimals": 18 }, - "infoURL": "https://www.singularity.gold", - "shortName": "ZERO", - "chainId": 12052, - "networkId": 12052, - "slip44": 621, - "explorers": [ - { - "name": "zeroscan", - "url": "https://zeroscan.singularity.gold", - "standard": "EIP3091" - } - ] - }, - { - "name": "Phoenix Mainnet", - "chain": "Phoenix", - "network": "mainnet", - "rpc": ["https://rpc.phoenixplorer.com/"], - "faucets": [], - "nativeCurrency": { "name": "Phoenix", "symbol": "PHX", "decimals": 18 }, - "infoURL": "https://cryptophoenix.org/phoenix", - "shortName": "Phoenix", - "chainId": 13381, - "networkId": 13381, - "icon": "phoenix", - "explorers": [ - { - "name": "phoenixplorer", - "url": "https://phoenixplorer.com", - "icon": "phoenixplorer", - "standard": "EIP3091" - } - ] - }, - { - "name": "MetaDot Mainnet", - "chain": "MTT", - "rpc": ["https://mainnet.metadot.network"], - "faucets": [], - "nativeCurrency": { - "name": "MetaDot Token", - "symbol": "MTT", - "decimals": 18 - }, - "infoURL": "https://metadot.network", - "shortName": "mtt", - "chainId": 16000, - "networkId": 16000 - }, - { - "name": "MetaDot Testnet", - "chain": "MTTTest", - "rpc": ["https://testnet.metadot.network"], - "faucets": ["https://faucet.metadot.network/"], - "nativeCurrency": { - "name": "MetaDot Token TestNet", - "symbol": "MTTest", - "decimals": 18 - }, - "infoURL": "https://metadot.network", - "shortName": "mtttest", - "chainId": 16001, - "networkId": 16001 - }, - { - "name": "IVAR Chain Testnet", - "chain": "IVAR", - "icon": "ivar", - "rpc": ["https://testnet-rpc.ivarex.com"], - "faucets": ["https://tfaucet.ivarex.com/"], - "nativeCurrency": { "name": "tIvar", "symbol": "tIVAR", "decimals": 18 }, - "infoURL": "https://ivarex.com", - "shortName": "tivar", - "chainId": 16888, - "networkId": 16888, - "explorers": [ - { - "name": "ivarscan", - "url": "https://testnet.ivarscan.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "BTCIX Network", - "chain": "BTCIX", - "rpc": ["https://seed.btcix.org/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "BTCIX Network", - "symbol": "BTCIX", - "decimals": 18 - }, - "infoURL": "https://bitcolojix.org", - "shortName": "btcix", - "chainId": 19845, - "networkId": 19845, - "explorers": [ - { - "name": "BTCIXScan", - "url": "https://btcixscan.com", - "standard": "none" - } - ] - }, - { - "name": "CENNZnet Azalea", - "chain": "CENNZnet", - "network": "azalea", - "rpc": ["https://cennznet.unfrastructure.io/public"], - "faucets": [], - "nativeCurrency": { "name": "CPAY", "symbol": "CPAY", "decimals": 18 }, - "infoURL": "https://cennz.net", - "shortName": "cennz-a", - "chainId": 21337, - "networkId": 21337, - "icon": "cennz", - "explorers": [ - { - "name": "UNcover", - "url": "https://uncoverexplorer.com", - "standard": "none" - } - ] - }, - { - "name": "omChain Mainnet", - "chain": "OML", - "icon": "omlira", - "rpc": ["https://seed.omchain.io"], - "faucets": [], - "nativeCurrency": { "name": "omChain", "symbol": "OMC", "decimals": 18 }, - "infoURL": "https://omchain.io", - "shortName": "omc", - "chainId": 21816, - "networkId": 21816, - "explorers": [ - { - "name": "omChain Explorer", - "url": "https://explorer.omchain.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Taycan", - "chain": "Taycan", - "network": "mainnet", - "rpc": ["https://taycan-rpc.hupayx.io:8545"], - "faucets": [], - "nativeCurrency": { "name": "shuffle", "symbol": "SFL", "decimals": 18 }, - "infoURL": "https://hupayx.io", - "shortName": "SFL", - "chainId": 22023, - "networkId": 22023, - "explorers": [ - { - "name": "Taycan Explorer(Blockscout)", - "url": "https://taycan-evmscan.hupayx.io", - "standard": "none" - }, - { - "name": "Taycan Cosmos Explorer(BigDipper)", - "url": "https://taycan-cosmoscan.hupayx.io", - "standard": "none" - } - ] - }, - { - "name": "Webchain", - "chain": "WEB", - "rpc": ["https://node1.webchain.network"], - "faucets": [], - "nativeCurrency": { - "name": "Webchain Ether", - "symbol": "WEB", - "decimals": 18 - }, - "infoURL": "https://webchain.network", - "shortName": "web", - "chainId": 24484, - "networkId": 37129, - "slip44": 227 - }, - { - "name": "MintMe.com Coin", - "chain": "MINTME", - "rpc": ["https://node1.mintme.com"], - "faucets": [], - "nativeCurrency": { - "name": "MintMe.com Coin", - "symbol": "MINTME", - "decimals": 18 - }, - "infoURL": "https://www.mintme.com", - "shortName": "mintme", - "chainId": 24734, - "networkId": 37480 - }, - { - "name": "OasisChain Mainnet", - "chain": "OasisChain", - "rpc": [ - "https://rpc1.oasischain.io", - "https://rpc2.oasischain.io", - "https://rpc3.oasischain.io" - ], - "faucets": ["http://faucet.oasischain.io"], - "nativeCurrency": { "name": "OAC", "symbol": "OAC", "decimals": 18 }, - "infoURL": "https://scan.oasischain.io", - "shortName": "OAC", - "chainId": 26863, - "networkId": 26863, - "explorers": [ - { - "name": "OasisChain Explorer", - "url": "https://scan.oasischain.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Piece testnet", - "chain": "PieceNetwork", - "icon": "piecechain", - "rpc": ["https://testnet-rpc0.piecenetwork.com"], - "faucets": ["https://piecenetwork.com/faucet"], - "nativeCurrency": { "name": "ECE", "symbol": "ECE", "decimals": 18 }, - "infoURL": "https://piecenetwork.com", - "shortName": "Piece", - "chainId": 30067, - "networkId": 30067, - "explorers": [ - { - "name": "Piece Scan", - "url": "https://testnet-scan.piecenetwork.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Ethersocial Network", - "chain": "ESN", - "rpc": ["https://api.esn.gonspool.com"], - "faucets": [], - "nativeCurrency": { - "name": "Ethersocial Network Ether", - "symbol": "ESN", - "decimals": 18 - }, - "infoURL": "https://ethersocial.org", - "shortName": "esn", - "chainId": 31102, - "networkId": 1, - "slip44": 31102 - }, - { - "name": "GoChain Testnet", - "chain": "GO", - "rpc": ["https://testnet-rpc.gochain.io"], - "faucets": [], - "nativeCurrency": { - "name": "GoChain Coin", - "symbol": "GO", - "decimals": 18 - }, - "infoURL": "https://gochain.io", - "shortName": "got", - "chainId": 31337, - "networkId": 31337, - "slip44": 6060, - "explorers": [ - { - "name": "GoChain Testnet Explorer", - "url": "https://testnet-explorer.gochain.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Bitgert Mainnet", - "chain": "Brise", - "rpc": [ - "https://mainnet-rpc.brisescan.com", - "https://chainrpc.com", - "https://serverrpc.com" - ], - "faucets": [], - "nativeCurrency": { - "name": "Bitrise Token", - "symbol": "Brise", - "decimals": 18 - }, - "infoURL": "https://bitgert.com/", - "shortName": "Brise", - "chainId": 32520, - "networkId": 32520, - "icon": "brise", - "explorers": [ - { - "name": "Brise Scan", - "url": "https://brisescan.com", - "icon": "brise", - "standard": "EIP3091" - } - ] - }, - { - "name": "Fusion Mainnet", - "chain": "FSN", - "rpc": ["https://mainnet.anyswap.exchange", "https://fsn.dev/api"], - "faucets": [], - "nativeCurrency": { "name": "Fusion", "symbol": "FSN", "decimals": 18 }, - "infoURL": "https://www.fusion.org/", - "shortName": "fsn", - "chainId": 32659, - "networkId": 32659 - }, - { - "name": "Energi Mainnet", - "chain": "NRG", - "rpc": ["https://nodeapi.energi.network"], - "faucets": [], - "nativeCurrency": { "name": "Energi", "symbol": "NRG", "decimals": 18 }, - "infoURL": "https://www.energi.world/", - "shortName": "nrg", - "chainId": 39797, - "networkId": 39797, - "slip44": 39797 - }, - { - "name": "pegglecoin", - "chain": "42069", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "pegglecoin", - "symbol": "peggle", - "decimals": 18 - }, - "infoURL": "https://teampeggle.com", - "shortName": "PC", - "chainId": 42069, - "networkId": 42069 - }, - { - "name": "Arbitrum One", - "chainId": 42161, - "shortName": "arb1", - "chain": "ETH", - "networkId": 42161, - "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, - "rpc": [ - "https://arbitrum-mainnet.infura.io/v3/${INFURA_API_KEY}", - "https://arb-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}", - "https://arb1.arbitrum.io/rpc" - ], - "faucets": [], - "explorers": [ - { - "name": "Arbiscan", - "url": "https://arbiscan.io", - "standard": "EIP3091" - }, - { - "name": "Arbitrum Explorer", - "url": "https://explorer.arbitrum.io", - "standard": "EIP3091" - } - ], - "infoURL": "https://arbitrum.io", - "parent": { - "type": "L2", - "chain": "eip155-1", - "bridges": [{ "url": "https://bridge.arbitrum.io" }] - } - }, - { - "name": "Celo Mainnet", - "chainId": 42220, - "shortName": "CELO", - "chain": "CELO", - "networkId": 42220, - "nativeCurrency": { "name": "CELO", "symbol": "CELO", "decimals": 18 }, - "rpc": ["https://forno.celo.org", "wss://forno.celo.org/ws"], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], - "infoURL": "https://docs.celo.org/", - "explorers": [ - { - "name": "blockscout", - "url": "https://explorer.celo.org", - "standard": "none" - } - ] - }, - { - "name": "Emerald Paratime Testnet", - "chain": "Emerald", - "icon": "oasis", - "rpc": [ - "https://testnet.emerald.oasis.dev/", - "wss://testnet.emerald.oasis.dev/ws" - ], - "faucets": [], - "nativeCurrency": { - "name": "Emerald Rose", - "symbol": "ROSE", - "decimals": 18 - }, - "infoURL": "https://docs.oasis.dev/general/developer-resources/overview", - "shortName": "emerald", - "chainId": 42261, - "networkId": 42261, - "explorers": [ - { - "name": "Emerald Paratime Testnet Explorer", - "url": "https://testnet.explorer.emerald.oasis.dev", - "standard": "EIP3091" - } - ] - }, - { - "name": "Emerald Paratime Mainnet", - "chain": "Emerald", - "icon": "oasis", - "rpc": ["https://emerald.oasis.dev", "wss://emerald.oasis.dev/ws"], - "faucets": [], - "nativeCurrency": { - "name": "Emerald Rose", - "symbol": "ROSE", - "decimals": 18 - }, - "infoURL": "https://docs.oasis.dev/general/developer-resources/overview", - "shortName": "oasis", - "chainId": 42262, - "networkId": 42262, - "explorers": [ - { - "name": "Emerald Paratime Mainnet Explorer", - "url": "https://explorer.emerald.oasis.dev", - "standard": "EIP3091" - } - ] - }, - { - "name": "Athereum", - "chain": "ATH", - "rpc": ["https://ava.network:21015/ext/evm/rpc"], - "faucets": ["http://athfaucet.ava.network//?address=${ADDRESS}"], - "nativeCurrency": { - "name": "Athereum Ether", - "symbol": "ATH", - "decimals": 18 + { "name": "expedition", "url": "https://lnscan.org", "standard": "none" } + ] + }, + { + "name": "Wanchain Testnet", + "chain": "WAN", + "rpc": ["https://gwan-ssl.wandevs.org:46891/"], + "faucets": [], + "nativeCurrency": { "name": "Wancoin", "symbol": "WAN", "decimals": 18 }, + "infoURL": "https://testnet.wanscan.org", + "shortName": "twan", + "chainId": 999, + "networkId": 999 + }, + { + "name": "GTON Mainnet", + "chain": "GTON", + "rpc": ["https://rpc.gton.network/"], + "faucets": [], + "nativeCurrency": { "name": "GCD", "symbol": "GCD", "decimals": 18 }, + "infoURL": "https://gton.capital", + "shortName": "gton", + "chainId": 1000, + "networkId": 1000, + "explorers": [ + { + "name": "GTON Network Explorer", + "url": "https://explorer.gton.network", + "standard": "EIP3091" + } + ], + "parent": { "type": "L2", "chain": "eip155-1" } + }, + { + "name": "Klaytn Testnet Baobab", + "chain": "KLAY", + "rpc": ["https://api.baobab.klaytn.net:8651"], + "faucets": ["https://baobab.wallet.klaytn.com/access?next=faucet"], + "nativeCurrency": { "name": "KLAY", "symbol": "KLAY", "decimals": 18 }, + "infoURL": "https://www.klaytn.com/", + "shortName": "Baobab", + "chainId": 1001, + "networkId": 1001 + }, + { + "name": "T-EKTA", + "title": "EKTA Testnet T-EKTA", + "chain": "T-EKTA", + "rpc": ["https://test.ekta.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "T-EKTA", "symbol": "T-EKTA", "decimals": 18 }, + "infoURL": "https://www.ekta.io", + "shortName": "t-ekta", + "chainId": 1004, + "networkId": 1004, + "icon": "ekta", + "explorers": [ + { + "name": "test-ektascan", + "url": "https://test.ektascan.io", + "icon": "ekta", + "standard": "EIP3091" + } + ] + }, + { + "name": "Newton Testnet", + "chain": "NEW", + "rpc": ["https://rpc1.newchain.newtonproject.org"], + "faucets": [], + "nativeCurrency": { "name": "Newton", "symbol": "NEW", "decimals": 18 }, + "infoURL": "https://www.newtonproject.org/", + "shortName": "tnew", + "chainId": 1007, + "networkId": 1007 + }, + { + "name": "Eurus Mainnet", + "chain": "EUN", + "rpc": ["https://mainnet.eurus.network/"], + "faucets": [], + "nativeCurrency": { "name": "Eurus", "symbol": "EUN", "decimals": 18 }, + "infoURL": "https://eurus.network", + "shortName": "eun", + "chainId": 1008, + "networkId": 1008, + "icon": "eurus", + "explorers": [ + { + "name": "eurusexplorer", + "url": "https://explorer.eurus.network", + "icon": "eurus", + "standard": "none" + } + ] + }, + { + "name": "Evrice Network", + "chain": "EVC", + "rpc": ["https://meta.evrice.com"], + "faucets": [], + "nativeCurrency": { "name": "Evrice", "symbol": "EVC", "decimals": 18 }, + "infoURL": "https://evrice.com", + "shortName": "EVC", + "chainId": 1010, + "networkId": 1010, + "slip44": 1020 + }, + { + "name": "Newton", + "chain": "NEW", + "rpc": ["https://global.rpc.mainnet.newtonproject.org"], + "faucets": [], + "nativeCurrency": { "name": "Newton", "symbol": "NEW", "decimals": 18 }, + "infoURL": "https://www.newtonproject.org/", + "shortName": "new", + "chainId": 1012, + "networkId": 1012 + }, + { + "name": "Sakura", + "chain": "Sakura", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Sakura", "symbol": "SKU", "decimals": 18 }, + "infoURL": "https://clover.finance/sakura", + "shortName": "sku", + "chainId": 1022, + "networkId": 1022 + }, + { + "name": "Clover Testnet", + "chain": "Clover", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Clover", "symbol": "CLV", "decimals": 18 }, + "infoURL": "https://clover.finance", + "shortName": "tclv", + "chainId": 1023, + "networkId": 1023 + }, + { + "name": "CLV Parachain", + "chain": "CLV", + "rpc": ["https://api-para.clover.finance"], + "faucets": [], + "nativeCurrency": { "name": "CLV", "symbol": "CLV", "decimals": 18 }, + "infoURL": "https://clv.org", + "shortName": "clv", + "chainId": 1024, + "networkId": 1024 + }, + { + "name": "BitTorrent Chain Testnet", + "chain": "BTTC", + "rpc": ["https://testrpc.bittorrentchain.io/"], + "faucets": [], + "nativeCurrency": { "name": "BitTorrent", "symbol": "BTT", "decimals": 18 }, + "infoURL": "https://bittorrentchain.io/", + "shortName": "tbtt", + "chainId": 1028, + "networkId": 1028, + "explorers": [ + { + "name": "testbttcscan", + "url": "https://testscan.bittorrentchain.io", + "standard": "none" + } + ] + }, + { + "name": "Conflux eSpace", + "chain": "Conflux", + "rpc": ["https://evm.confluxrpc.com"], + "faucets": [], + "nativeCurrency": { "name": "CFX", "symbol": "CFX", "decimals": 18 }, + "infoURL": "https://confluxnetwork.org", + "shortName": "cfx", + "chainId": 1030, + "networkId": 1030, + "icon": "conflux", + "explorers": [ + { + "name": "Conflux Scan", + "url": "https://evm.confluxscan.net", + "standard": "none" + } + ] + }, + { + "name": "Proxy Network Testnet", + "chain": "Proxy Network", + "rpc": ["http://128.199.94.183:8041"], + "faucets": [], + "nativeCurrency": { "name": "PRX", "symbol": "PRX", "decimals": 18 }, + "infoURL": "https://theproxy.network", + "shortName": "prx", + "chainId": 1031, + "networkId": 1031, + "explorers": [ + { + "name": "proxy network testnet", + "url": "http://testnet-explorer.theproxy.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bronos Testnet", + "chain": "Bronos", + "rpc": ["https://evm-testnet.bronos.org"], + "faucets": ["https://faucet.bronos.org"], + "nativeCurrency": { "name": "tBRO", "symbol": "tBRO", "decimals": 18 }, + "infoURL": "https://bronos.org", + "shortName": "bronos-testnet", + "chainId": 1038, + "networkId": 1038, + "icon": "bronos", + "explorers": [ + { + "name": "Bronos Testnet Explorer", + "url": "https://tbroscan.bronos.org", + "standard": "none", + "icon": "bronos" + } + ] + }, + { + "name": "Bronos Mainnet", + "chain": "Bronos", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "BRO", "symbol": "BRO", "decimals": 18 }, + "infoURL": "https://bronos.org", + "shortName": "bronos-mainnet", + "chainId": 1039, + "networkId": 1039, + "icon": "bronos", + "explorers": [ + { + "name": "Bronos Explorer", + "url": "https://broscan.bronos.org", + "standard": "none", + "icon": "bronos" + } + ] + }, + { + "name": "ShimmerEVM Testnet", + "title": "ShimmerEVM Testnet", + "chain": "ShimmerEVM", + "icon": "shimmerevm", + "rpc": ["https://json-rpc.evm.testnet.shimmer.network"], + "faucets": [ + "https://evm-toolkit.evm.testnet.shimmer.network", + "https://evm-faucet.testnet.shimmer.network" + ], + "nativeCurrency": { "name": "SMR", "symbol": "SMR", "decimals": 18 }, + "infoURL": "https://shimmer.network", + "shortName": "shimmerevm-testnet", + "chainId": 1071, + "networkId": 1071, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.evm.testnet.shimmer.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Metis Andromeda Mainnet", + "chain": "ETH", + "rpc": ["https://andromeda.metis.io/?owner=1088"], + "faucets": [], + "nativeCurrency": { "name": "Metis", "symbol": "METIS", "decimals": 18 }, + "infoURL": "https://www.metis.io", + "shortName": "metis-andromeda", + "chainId": 1088, + "networkId": 1088, + "explorers": [ + { + "name": "blockscout", + "url": "https://andromeda-explorer.metis.io", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://bridge.metis.io" }] + } + }, + { + "name": "MOAC mainnet", + "chain": "MOAC", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "MOAC", "symbol": "mc", "decimals": 18 }, + "infoURL": "https://moac.io", + "shortName": "moac", + "chainId": 1099, + "networkId": 1099, + "slip44": 314, + "explorers": [ + { + "name": "moac explorer", + "url": "https://explorer.moac.io", + "standard": "none" + } + ] + }, + { + "name": "Polygon zkEVM", + "title": "Polygon zkEVM", + "chain": "Polygon", + "rpc": ["https://zkevm-rpc.com"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://polygon.technology/polygon-zkevm", + "shortName": "zkevm", + "chainId": 1101, + "networkId": 1101, + "icon": "zkevm", + "explorers": [ + { + "name": "blockscout", + "url": "https://zkevm.polygonscan.com", + "icon": "zkevm", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://bridge.zkevm-rpc.com" }] + } + }, + { + "name": "WEMIX3.0 Mainnet", + "chain": "WEMIX", + "rpc": ["https://api.wemix.com", "wss://ws.wemix.com"], + "faucets": [], + "nativeCurrency": { "name": "WEMIX", "symbol": "WEMIX", "decimals": 18 }, + "infoURL": "https://wemix.com", + "shortName": "wemix", + "chainId": 1111, + "networkId": 1111, + "explorers": [ + { + "name": "WEMIX Block Explorer", + "url": "https://explorer.wemix.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "WEMIX3.0 Testnet", + "chain": "TWEMIX", + "rpc": ["https://api.test.wemix.com", "wss://ws.test.wemix.com"], + "faucets": ["https://wallet.test.wemix.com/faucet"], + "nativeCurrency": { + "name": "TestnetWEMIX", + "symbol": "tWEMIX", + "decimals": 18 + }, + "infoURL": "https://wemix.com", + "shortName": "twemix", + "chainId": 1112, + "networkId": 1112, + "explorers": [ + { + "name": "WEMIX Testnet Microscope", + "url": "https://microscope.test.wemix.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Core Blockchain Testnet", + "chain": "Core", + "icon": "core", + "rpc": ["https://rpc.test.btcs.network/"], + "faucets": ["https://scan.test.btcs.network/faucet"], + "nativeCurrency": { + "name": "Core Blockchain Testnet Native Token", + "symbol": "tCORE", + "decimals": 18 + }, + "infoURL": "https://www.coredao.org", + "shortName": "tcore", + "chainId": 1115, + "networkId": 1115, + "explorers": [ + { + "name": "Core Scan Testnet", + "url": "https://scan.test.btcs.network", + "icon": "core", + "standard": "EIP3091" + } + ] + }, + { + "name": "Core Blockchain Mainnet", + "chain": "Core", + "icon": "core", + "rpc": ["https://rpc.coredao.org/", "https://rpc-core.icecreamswap.com"], + "faucets": [], + "nativeCurrency": { + "name": "Core Blockchain Native Token", + "symbol": "CORE", + "decimals": 18 + }, + "infoURL": "https://www.coredao.org", + "shortName": "core", + "chainId": 1116, + "networkId": 1116, + "explorers": [ + { + "name": "Core Scan", + "url": "https://scan.coredao.org", + "icon": "core", + "standard": "EIP3091" + } + ] + }, + { + "name": "Dogcoin Mainnet", + "chain": "DOGS", + "icon": "dogs", + "rpc": ["https://mainnet-rpc.dogcoin.me"], + "faucets": ["https://faucet.dogcoin.network"], + "nativeCurrency": { "name": "Dogcoin", "symbol": "DOGS", "decimals": 18 }, + "infoURL": "https://dogcoin.network", + "shortName": "DOGSm", + "chainId": 1117, + "networkId": 1117, + "explorers": [ + { + "name": "Dogcoin", + "url": "https://explorer.dogcoin.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "DeFiChain EVM Network Mainnet", + "chain": "defichain-evm", + "status": "incubating", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "DeFiChain", "symbol": "DFI", "decimals": 18 }, + "infoURL": "https://meta.defichain.com/", + "shortName": "DFI", + "chainId": 1130, + "networkId": 1130, + "slip44": 1130, + "icon": "defichain-network", + "explorers": [] + }, + { + "name": "DeFiChain EVM Network Testnet", + "chain": "defichain-evm-testnet", + "status": "incubating", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "DeFiChain", "symbol": "DFI", "decimals": 18 }, + "infoURL": "https://meta.defichain.com/", + "shortName": "DFI-T", + "chainId": 1131, + "networkId": 1131, + "icon": "defichain-network", + "explorers": [] + }, + { + "name": "AmStar Testnet", + "chain": "AmStar", + "icon": "amstar", + "rpc": ["https://testnet-rpc.amstarscan.com"], + "faucets": [], + "nativeCurrency": { "name": "SINSO", "symbol": "SINSO", "decimals": 18 }, + "infoURL": "https://sinso.io", + "shortName": "ASARt", + "chainId": 1138, + "networkId": 1138, + "explorers": [ + { + "name": "amstarscan-testnet", + "url": "https://testnet.amstarscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "MathChain", + "chain": "MATH", + "rpc": [ + "https://mathchain-asia.maiziqianbao.net/rpc", + "https://mathchain-us.maiziqianbao.net/rpc" + ], + "faucets": [], + "nativeCurrency": { "name": "MathChain", "symbol": "MATH", "decimals": 18 }, + "infoURL": "https://mathchain.org", + "shortName": "MATH", + "chainId": 1139, + "networkId": 1139 + }, + { + "name": "MathChain Testnet", + "chain": "MATH", + "rpc": ["https://galois-hk.maiziqianbao.net/rpc"], + "faucets": ["https://scan.boka.network/#/Galois/faucet"], + "nativeCurrency": { "name": "MathChain", "symbol": "MATH", "decimals": 18 }, + "infoURL": "https://mathchain.org", + "shortName": "tMATH", + "chainId": 1140, + "networkId": 1140 + }, + { + "name": "Symplexia Smart Chain", + "chain": "Plexchain", + "rpc": ["https://plex-rpc.plexfinance.us"], + "faucets": [], + "nativeCurrency": { + "name": "Plex Native Token", + "symbol": "PLEX", + "decimals": 18 + }, + "infoURL": "https://plexfinance.us/", + "shortName": "Plexchain", + "chainId": 1149, + "networkId": 1149, + "icon": "plexchain", + "explorers": [ + { + "name": "Plexchain Explorer", + "url": "https://explorer.plexfinance.us", + "icon": "plexchain", + "standard": "EIP3091" + } + ] + }, + { + "name": "Origin Testnet", + "chain": "Origin", + "rpc": ["https://json-rpc.origin.uptick.network"], + "faucets": [], + "nativeCurrency": { "name": "Origin", "symbol": "UOC", "decimals": 18 }, + "infoURL": "https://www.uptick.network", + "shortName": "auoc", + "chainId": 1170, + "networkId": 1170, + "icon": "origin", + "explorers": [ + { + "name": "Origin Explorer", + "url": "https://evm-explorer.origin.uptick.network", + "icon": "origin", + "standard": "none" + } + ] + }, + { + "name": "Smart Host Teknoloji TESTNET", + "chain": "SHT", + "rpc": ["https://s2.tl.web.tr:4041"], + "faucets": [], + "nativeCurrency": { + "name": "Smart Host Teknoloji TESTNET", + "symbol": "tSHT", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://smart-host.com.tr", + "shortName": "sht", + "chainId": 1177, + "networkId": 1177, + "icon": "smarthost", + "explorers": [ + { + "name": "Smart Host Teknoloji TESTNET Explorer", + "url": "https://s2.tl.web.tr:4000", + "icon": "smarthost", + "standard": "EIP3091" + } + ] + }, + { + "name": "Iora Chain", + "chain": "IORA", + "icon": "iorachain", + "rpc": ["https://dataseed.iorachain.com"], + "faucets": [], + "nativeCurrency": { "name": "Iora", "symbol": "IORA", "decimals": 18 }, + "infoURL": "https://iorachain.com", + "shortName": "iora", + "chainId": 1197, + "networkId": 1197, + "explorers": [ + { + "name": "ioraexplorer", + "url": "https://explorer.iorachain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Evanesco Testnet", + "chain": "Evanesco Testnet", + "rpc": ["https://seed5.evanesco.org:8547"], + "faucets": [], + "nativeCurrency": { "name": "AVIS", "symbol": "AVIS", "decimals": 18 }, + "infoURL": "https://evanesco.org/", + "shortName": "avis", + "chainId": 1201, + "networkId": 1201 + }, + { + "name": "World Trade Technical Chain Mainnet", + "chain": "WTT", + "rpc": ["https://rpc.cadaut.com", "wss://rpc.cadaut.com/ws"], + "faucets": [], + "nativeCurrency": { + "name": "World Trade Token", + "symbol": "WTT", + "decimals": 18 + }, + "infoURL": "http://www.cadaut.com", + "shortName": "wtt", + "chainId": 1202, + "networkId": 2048, + "explorers": [ + { + "name": "WTTScout", + "url": "https://explorer.cadaut.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Popcateum Mainnet", + "chain": "POPCATEUM", + "rpc": ["https://dataseed.popcateum.org"], + "faucets": [], + "nativeCurrency": { "name": "Popcat", "symbol": "POP", "decimals": 18 }, + "infoURL": "https://popcateum.org", + "shortName": "popcat", + "chainId": 1213, + "networkId": 1213, + "explorers": [ + { + "name": "popcateum explorer", + "url": "https://explorer.popcateum.org", + "standard": "none" + } + ] + }, + { + "name": "EnterChain Mainnet", + "chain": "ENTER", + "rpc": ["https://tapi.entercoin.net/"], + "faucets": [], + "nativeCurrency": { + "name": "EnterCoin", + "symbol": "ENTER", + "decimals": 18 + }, + "infoURL": "https://entercoin.net", + "shortName": "enter", + "chainId": 1214, + "networkId": 1214, + "icon": "enter", + "explorers": [ + { + "name": "Enter Explorer - Expenter", + "url": "https://explorer.entercoin.net", + "icon": "enter", + "standard": "EIP3091" + } + ] + }, + { + "name": "Exzo Network Mainnet", + "chain": "EXZO", + "icon": "exzo", + "rpc": ["https://mainnet.exzo.technology"], + "faucets": [], + "nativeCurrency": { "name": "Exzo", "symbol": "XZO", "decimals": 18 }, + "infoURL": "https://exzo.network", + "shortName": "xzo", + "chainId": 1229, + "networkId": 1229, + "explorers": [ + { + "name": "blockscout", + "url": "https://exzoscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ultron Testnet", + "chain": "Ultron", + "icon": "ultron", + "rpc": ["https://ultron-dev.io"], + "faucets": [], + "nativeCurrency": { "name": "Ultron", "symbol": "ULX", "decimals": 18 }, + "infoURL": "https://ultron.foundation", + "shortName": "UltronTestnet", + "chainId": 1230, + "networkId": 1230, + "explorers": [ + { + "name": "Ultron Testnet Explorer", + "url": "https://explorer.ultron-dev.io", + "icon": "ultron", + "standard": "none" + } + ] + }, + { + "name": "Ultron Mainnet", + "chain": "Ultron", + "icon": "ultron", + "rpc": ["https://ultron-rpc.net"], + "faucets": [], + "nativeCurrency": { "name": "Ultron", "symbol": "ULX", "decimals": 18 }, + "infoURL": "https://ultron.foundation", + "shortName": "UtronMainnet", + "chainId": 1231, + "networkId": 1231, + "explorers": [ + { + "name": "Ultron Explorer", + "url": "https://ulxscan.com", + "icon": "ultron", + "standard": "none" + } + ] + }, + { + "name": "Step Network", + "title": "Step Main Network", + "chain": "STEP", + "icon": "step", + "rpc": ["https://rpc.step.network"], + "faucets": [], + "nativeCurrency": { "name": "FITFI", "symbol": "FITFI", "decimals": 18 }, + "infoURL": "https://step.network", + "shortName": "step", + "chainId": 1234, + "networkId": 1234, + "explorers": [ + { + "name": "StepScan", + "url": "https://stepscan.io", + "icon": "step", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-43114", + "bridges": [{ "url": "https://bridge.step.network" }] + } + }, + { + "name": "ARC Mainnet", + "chain": "ARC", + "icon": "arc", + "rpc": ["https://rpc-main-1.archiechain.io"], + "faucets": [], + "nativeCurrency": { "name": "ARC", "symbol": "ARC", "decimals": 18 }, + "infoURL": "https://archiechain.io/", + "shortName": "ARC", + "chainId": 1243, + "networkId": 1243, + "explorers": [ + { + "name": "archiescan", + "url": "https://app.archiescan.io", + "standard": "none" + } + ] + }, + { + "name": "ARC Testnet", + "chain": "ARC", + "icon": "arc", + "rpc": ["https://rpc-test-1.archiechain.io"], + "faucets": ["https://faucet.archiechain.io"], + "nativeCurrency": { "name": "ARC", "symbol": "ARC", "decimals": 18 }, + "infoURL": "https://archiechain.io/", + "shortName": "TARC", + "chainId": 1244, + "networkId": 1244, + "explorers": [ + { + "name": "archiescan", + "url": "https://testnet.archiescan.io", + "standard": "none" + } + ] + }, + { + "name": "OM Platform Mainnet", + "chain": "omplatform", + "rpc": ["https://rpc-cnx.omplatform.com/"], + "faucets": [], + "nativeCurrency": { "name": "OMCOIN", "symbol": "OM", "decimals": 18 }, + "infoURL": "https://omplatform.com/", + "shortName": "om", + "chainId": 1246, + "networkId": 1246, + "explorers": [ + { + "name": "OMSCAN - Expenter", + "url": "https://omscan.omplatform.com", + "standard": "none" + } + ] + }, + { + "name": "CIC Chain Testnet", + "chain": "CICT", + "rpc": ["https://testapi.cicscan.com"], + "faucets": ["https://cicfaucet.com"], + "nativeCurrency": { + "name": "Crazy Internet Coin", + "symbol": "CICT", + "decimals": 18 + }, + "infoURL": "https://www.cicchain.net", + "shortName": "CICT", + "chainId": 1252, + "networkId": 1252, + "icon": "cicchain", + "explorers": [ + { + "name": "CICscan", + "url": "https://testnet.cicscan.com", + "icon": "cicchain", + "standard": "EIP3091" + } + ] + }, + { + "name": "HALO Mainnet", + "chain": "HALO", + "rpc": ["https://nodes.halo.land"], + "faucets": [], + "nativeCurrency": { "name": "HALO", "symbol": "HO", "decimals": 18 }, + "infoURL": "https://halo.land/#/", + "shortName": "HO", + "chainId": 1280, + "networkId": 1280, + "explorers": [ + { + "name": "HALOexplorer", + "url": "https://browser.halo.land", + "standard": "none" + } + ] + }, + { + "name": "Moonbeam", + "chain": "MOON", + "rpc": [ + "https://rpc.api.moonbeam.network", + "wss://wss.api.moonbeam.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Glimmer", "symbol": "GLMR", "decimals": 18 }, + "infoURL": "https://moonbeam.network/networks/moonbeam/", + "shortName": "mbeam", + "chainId": 1284, + "networkId": 1284, + "explorers": [ + { + "name": "moonscan", + "url": "https://moonbeam.moonscan.io", + "standard": "none" + } + ] + }, + { + "name": "Moonriver", + "chain": "MOON", + "rpc": [ + "https://rpc.api.moonriver.moonbeam.network", + "wss://wss.api.moonriver.moonbeam.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Moonriver", "symbol": "MOVR", "decimals": 18 }, + "infoURL": "https://moonbeam.network/networks/moonriver/", + "shortName": "mriver", + "chainId": 1285, + "networkId": 1285, + "explorers": [ + { + "name": "moonscan", + "url": "https://moonriver.moonscan.io", + "standard": "none" + } + ] + }, + { + "name": "Moonrock old", + "chain": "MOON", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Rocs", "symbol": "ROC", "decimals": 18 }, + "infoURL": "", + "shortName": "mrock-old", + "chainId": 1286, + "networkId": 1286, + "status": "deprecated" + }, + { + "name": "Moonbase Alpha", + "chain": "MOON", + "rpc": [ + "https://rpc.api.moonbase.moonbeam.network", + "wss://wss.api.moonbase.moonbeam.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Dev", "symbol": "DEV", "decimals": 18 }, + "infoURL": "https://docs.moonbeam.network/networks/testnet/", + "shortName": "mbase", + "chainId": 1287, + "networkId": 1287, + "explorers": [ + { + "name": "moonscan", + "url": "https://moonbase.moonscan.io", + "standard": "none" + } + ] + }, + { + "name": "Moonrock", + "chain": "MOON", + "rpc": [ + "https://rpc.api.moonrock.moonbeam.network", + "wss://wss.api.moonrock.moonbeam.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Rocs", "symbol": "ROC", "decimals": 18 }, + "infoURL": "https://docs.moonbeam.network/learn/platform/networks/overview/", + "shortName": "mrock", + "chainId": 1288, + "networkId": 1288 + }, + { + "name": "Bobabeam", + "chain": "Bobabeam", + "rpc": [ + "https://bobabeam.boba.network", + "wss://wss.bobabeam.boba.network", + "https://replica.bobabeam.boba.network", + "wss://replica-wss.bobabeam.boba.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "Bobabeam", + "chainId": 1294, + "networkId": 1294, + "explorers": [ + { + "name": "Bobabeam block explorer", + "url": "https://blockexplorer.bobabeam.boba.network", + "standard": "none" + } + ] + }, + { + "name": "Bobabase Testnet", + "chain": "Bobabase Testnet", + "rpc": [ + "https://bobabase.boba.network", + "wss://wss.bobabase.boba.network", + "https://replica.bobabase.boba.network", + "wss://replica-wss.bobabase.boba.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "Bobabase", + "chainId": 1297, + "networkId": 1297, + "explorers": [ + { + "name": "Bobabase block explorer", + "url": "https://blockexplorer.bobabase.boba.network", + "standard": "none" + } + ] + }, + { + "name": "Dos Fuji Subnet", + "chain": "DOS", + "rpc": ["https://test.doschain.com/jsonrpc"], + "faucets": [], + "nativeCurrency": { + "name": "Dos Native Token", + "symbol": "DOS", + "decimals": 18 + }, + "infoURL": "http://doschain.io/", + "shortName": "TDOS", + "chainId": 1311, + "networkId": 1311, + "explorers": [ + { + "name": "dos-testnet", + "url": "https://test.doscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Alyx Mainnet", + "chain": "ALYX", + "rpc": ["https://rpc.alyxchain.com"], + "faucets": [], + "nativeCurrency": { + "name": "Alyx Chain Native Token", + "symbol": "ALYX", + "decimals": 18 + }, + "infoURL": "https://www.alyxchain.com", + "shortName": "alyx", + "chainId": 1314, + "networkId": 1314, + "explorers": [ + { + "name": "alyxscan", + "url": "https://www.alyxscan.com", + "standard": "EIP3091" + } + ], + "icon": "alyx" + }, + { + "name": "Aitd Mainnet", + "chain": "AITD", + "icon": "aitd", + "rpc": ["https://walletrpc.aitd.io", "https://node.aitd.io"], + "faucets": [], + "nativeCurrency": { + "name": "AITD Mainnet", + "symbol": "AITD", + "decimals": 18 + }, + "infoURL": "https://www.aitd.io/", + "shortName": "aitd", + "chainId": 1319, + "networkId": 1319, + "explorers": [ + { + "name": "AITD Chain Explorer Mainnet", + "url": "https://aitd-explorer-new.aitd.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Aitd Testnet", + "chain": "AITD", + "icon": "aitd", + "rpc": ["http://http-testnet.aitd.io"], + "faucets": ["https://aitd-faucet-pre.aitdcoin.com/"], + "nativeCurrency": { + "name": "AITD Testnet", + "symbol": "AITD", + "decimals": 18 + }, + "infoURL": "https://www.aitd.io/", + "shortName": "aitdtestnet", + "chainId": 1320, + "networkId": 1320, + "explorers": [ + { + "name": "AITD Chain Explorer Testnet", + "url": "https://block-explorer-testnet.aitd.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Geth Testnet", + "title": "Go Ethereum (Geth) Private Testnet", + "chain": "ETH", + "rpc": ["http://127.0.0.1:8545"], + "faucets": [], + "nativeCurrency": { + "name": "Geth Testnet Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://geth.ethereum.org", + "shortName": "geth", + "chainId": 1337, + "networkId": 1337 + }, + { + "name": "Elysium Testnet", + "title": "An L1, carbon-neutral, tree-planting, metaverse dedicated blockchain created by VulcanForged", + "chain": "Elysium", + "rpc": ["https://elysium-test-rpc.vulcanforged.com"], + "faucets": [], + "nativeCurrency": { "name": "LAVA", "symbol": "LAVA", "decimals": 18 }, + "infoURL": "https://elysiumscan.vulcanforged.com", + "shortName": "ELST", + "chainId": 1338, + "networkId": 1338, + "explorers": [ + { + "name": "Elysium testnet explorer", + "url": "https://elysium-explorer.vulcanforged.com", + "standard": "none" + } + ] + }, + { + "name": "Elysium Mainnet", + "title": "An L1, carbon-neutral, tree-planting, metaverse dedicated blockchain created by VulcanForged", + "chain": "Elysium", + "rpc": ["https://rpc.elysiumchain.tech/"], + "faucets": [], + "nativeCurrency": { "name": "LAVA", "symbol": "LAVA", "decimals": 18 }, + "infoURL": "https://elysiumscan.vulcanforged.com", + "shortName": "ELSM", + "chainId": 1339, + "networkId": 1339, + "explorers": [ + { + "name": "Elysium mainnet explorer", + "url": "https://explorer.elysiumchain.tech", + "standard": "none" + } + ] + }, + { + "name": "CIC Chain Mainnet", + "chain": "CIC", + "rpc": ["https://xapi.cicscan.com"], + "faucets": [], + "nativeCurrency": { + "name": "Crazy Internet Coin", + "symbol": "CIC", + "decimals": 18 + }, + "infoURL": "https://www.cicchain.net", + "shortName": "CIC", + "chainId": 1353, + "networkId": 1353, + "icon": "cicchain", + "explorers": [ + { + "name": "CICscan", + "url": "https://cicscan.com", + "icon": "cicchain", + "standard": "EIP3091" + } + ] + }, + { + "name": "Zafirium Mainnet", + "chain": "ZAFIC", + "icon": "zafirium", + "rpc": ["https://mainnet.zakumi.io"], + "faucets": [], + "nativeCurrency": { + "name": "Zakumi Chain Native Token", + "symbol": "ZAFIC", + "decimals": 18 + }, + "infoURL": "https://www.zakumi.io", + "shortName": "zafic", + "chainId": 1369, + "networkId": 1369, + "explorers": [ + { + "name": "zafirium-explorer", + "url": "https://explorer.zakumi.io", + "standard": "none" + } + ] + }, + { + "name": "AmStar Mainnet", + "chain": "AmStar", + "icon": "amstar", + "rpc": ["https://mainnet-rpc.amstarscan.com"], + "faucets": [], + "nativeCurrency": { "name": "SINSO", "symbol": "SINSO", "decimals": 18 }, + "infoURL": "https://sinso.io", + "shortName": "ASAR", + "chainId": 1388, + "networkId": 1388, + "explorers": [ + { + "name": "amstarscan", + "url": "https://mainnet.amstarscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Joseon Mainnet", + "chain": "Joseon", + "icon": "joseon", + "rpc": ["https://rpc.modchain.net/blockchain.joseon.com/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Joseon Mun", "symbol": "JSM", "decimals": 18 }, + "infoURL": "https://www.joseon.com/", + "shortName": "mun", + "chainId": 1392, + "networkId": 1392, + "explorers": [ + { + "name": "BlockExplorer", + "url": "https://www.blockexplorer.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Polygon zkEVM Testnet old", + "title": "Polygon zkEVM Testnet", + "chain": "Polygon", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://polygon.technology/solutions/polygon-zkevm/", + "shortName": "zkevmtest", + "chainId": 1402, + "networkId": 1402, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.public.zkevm-test.net", + "standard": "EIP3091" + } + ], + "status": "deprecated" + }, + { + "name": "Polygon zkEVM Testnet Pre Audit-Upgraded", + "title": "Polygon zkEVM Testnet Pre Audit-Upgraded", + "chain": "Polygon", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://polygon.technology/solutions/polygon-zkevm/", + "shortName": "testnet-zkEVM-mango-pre-audit-upgraded", + "chainId": 1422, + "networkId": 1422, + "explorers": [ + { + "name": "Polygon zkEVM explorer", + "url": "https://explorer.public.zkevm-test.net", + "standard": "EIP3091" + } + ], + "status": "deprecated" + }, + { + "name": "Rikeza Network Mainnet", + "title": "Rikeza Network Mainnet", + "chain": "Rikeza", + "icon": "rikeza", + "rpc": ["https://rpc.rikscan.com"], + "faucets": [], + "nativeCurrency": { "name": "Rikeza", "symbol": "RIK", "decimals": 18 }, + "infoURL": "https://rikeza.io", + "shortName": "RIK", + "chainId": 1433, + "networkId": 1433, + "explorers": [ + { + "name": "Rikeza Blockchain explorer", + "url": "https://rikscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Living Assets Mainnet", + "chain": "LAS", + "icon": "livingassets", + "rpc": [ + "https://beta.mainnet.livingassets.io/rpc", + "https://gamma.mainnet.livingassets.io/rpc" + ], + "faucets": [], + "nativeCurrency": { "name": "LAS", "symbol": "LAS", "decimals": 18 }, + "infoURL": "https://dev.livingassets.io/", + "shortName": "LAS", + "chainId": 1440, + "networkId": 1440 + }, + { + "name": "Polygon zkEVM Testnet", + "title": "Polygon zkEVM Testnet", + "chain": "Polygon", + "rpc": ["https://rpc.public.zkevm-test.net"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://polygon.technology/solutions/polygon-zkevm/", + "shortName": "testnet-zkEVM-mango", + "chainId": 1442, + "networkId": 1442, + "explorers": [ + { + "name": "Polygon zkEVM explorer", + "url": "https://explorer.public.zkevm-test.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "GIL Testnet", + "chain": "GIL", + "icon": "gauss", + "rpc": ["https://rpc.giltestnet.com"], + "faucets": [], + "nativeCurrency": { "name": "GANG", "symbol": "GANG", "decimals": 18 }, + "infoURL": "https://gaussgang.com/", + "shortName": "gil", + "chainId": 1452, + "networkId": 1452, + "explorers": [ + { + "name": "GIL Explorer", + "url": "https://explorer.giltestnet.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ctex Scan Blockchain", + "chain": "Ctex Scan Blockchain", + "icon": "ctex", + "rpc": ["https://mainnet-rpc.ctexscan.com/"], + "faucets": ["https://faucet.ctexscan.com"], + "nativeCurrency": { "name": "CTEX", "symbol": "CTEX", "decimals": 18 }, + "infoURL": "https://ctextoken.io", + "shortName": "CTEX", + "chainId": 1455, + "networkId": 1455, + "explorers": [ + { + "name": "Ctex Scan Explorer", + "url": "https://ctexscan.com", + "standard": "none" + } + ] + }, + { + "name": "ChainX-EVM", + "chain": "ChainX", + "rpc": [ + "https://mainnet.chainx.org/rpc", + "https://mainnet2.chainx.org/rpc" + ], + "faucets": [], + "nativeCurrency": { "name": "BTC", "symbol": "BTC", "decimals": 18 }, + "infoURL": "https://chainx.org", + "shortName": "chainx", + "chainId": 1501, + "networkId": 1501, + "explorers": [ + { + "name": "chainx-evm scan", + "url": "https://evm.chainx.org", + "standard": "none" + } + ] + }, + { + "name": "Sherpax Mainnet", + "chain": "Sherpax Mainnet", + "rpc": ["https://mainnet.sherpax.io/rpc"], + "faucets": [], + "nativeCurrency": { "name": "KSX", "symbol": "KSX", "decimals": 18 }, + "infoURL": "https://sherpax.io/", + "shortName": "Sherpax", + "chainId": 1506, + "networkId": 1506, + "explorers": [ + { + "name": "Sherpax Mainnet Explorer", + "url": "https://evm.sherpax.io", + "standard": "none" + } + ] + }, + { + "name": "Sherpax Testnet", + "chain": "Sherpax Testnet", + "rpc": ["https://sherpax-testnet.chainx.org/rpc"], + "faucets": [], + "nativeCurrency": { "name": "KSX", "symbol": "KSX", "decimals": 18 }, + "infoURL": "https://sherpax.io/", + "shortName": "SherpaxTestnet", + "chainId": 1507, + "networkId": 1507, + "explorers": [ + { + "name": "Sherpax Testnet Explorer", + "url": "https://evm-pre.sherpax.io", + "standard": "none" + } + ] + }, + { + "name": "Beagle Messaging Chain", + "chain": "BMC", + "rpc": ["https://beagle.chat/eth"], + "faucets": ["https://faucet.beagle.chat/"], + "nativeCurrency": { "name": "Beagle", "symbol": "BG", "decimals": 18 }, + "infoURL": "https://beagle.chat/", + "shortName": "beagle", + "chainId": 1515, + "networkId": 1515, + "explorers": [ + { + "name": "Beagle Messaging Chain Explorer", + "url": "https://eth.beagle.chat", + "standard": "EIP3091" + } + ] + }, + { + "name": "Tenet", + "title": "Tenet Mainnet", + "chain": "TENET", + "icon": "tenet", + "rpc": ["https://rpc.tenet.org"], + "faucets": [], + "nativeCurrency": { "name": "TENET", "symbol": "TENET", "decimals": 18 }, + "infoURL": "https://tenet.org/", + "shortName": "tenet", + "chainId": 1559, + "networkId": 1559, + "explorers": [ + { + "name": "TenetScan Mainnet", + "url": "https://tenetscan.io", + "icon": "tenet", + "standard": "EIP3091" + } + ] + }, + { + "name": "Catecoin Chain Mainnet", + "chain": "Catechain", + "rpc": ["https://send.catechain.com"], + "faucets": [], + "nativeCurrency": { "name": "Catecoin", "symbol": "CATE", "decimals": 18 }, + "infoURL": "https://catechain.com", + "shortName": "cate", + "chainId": 1618, + "networkId": 1618 + }, + { + "name": "Atheios", + "chain": "ATH", + "rpc": ["https://wallet.atheios.com:8797"], + "faucets": [], + "nativeCurrency": { + "name": "Atheios Ether", + "symbol": "ATH", + "decimals": 18 + }, + "infoURL": "https://atheios.com", + "shortName": "ath", + "chainId": 1620, + "networkId": 11235813, + "slip44": 1620 + }, + { + "name": "Btachain", + "chain": "btachain", + "rpc": ["https://dataseed1.btachain.com/"], + "faucets": [], + "nativeCurrency": { + "name": "Bitcoin Asset", + "symbol": "BTA", + "decimals": 18 + }, + "infoURL": "https://bitcoinasset.io/", + "shortName": "bta", + "chainId": 1657, + "networkId": 1657 + }, + { + "name": "Horizen Yuma Testnet", + "shortName": "Yuma", + "chain": "Yuma", + "icon": "eon", + "rpc": ["https://yuma-testnet.horizenlabs.io/ethv1"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": ["https://yuma-testnet-faucet.horizen.io"], + "nativeCurrency": { + "name": "Testnet Zen", + "symbol": "tZEN", + "decimals": 18 + }, + "infoURL": "https://horizen.io/", + "chainId": 1662, + "networkId": 1662, + "slip44": 121, + "explorers": [ + { + "name": "Yuma Testnet Block Explorer", + "url": "https://yuma-explorer.horizen.io", + "icon": "eon", + "standard": "EIP3091" + } + ] + }, + { + "name": "Horizen Gobi Testnet", + "shortName": "Gobi", + "chain": "Gobi", + "icon": "eon", + "rpc": ["https://gobi-testnet.horizenlabs.io/ethv1"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": ["https://faucet.horizen.io"], + "nativeCurrency": { + "name": "Testnet Zen", + "symbol": "tZEN", + "decimals": 18 + }, + "infoURL": "https://horizen.io/", + "chainId": 1663, + "networkId": 1663, + "slip44": 121, + "explorers": [ + { + "name": "Gobi Testnet Block Explorer", + "url": "https://gobi-explorer.horizen.io", + "icon": "eon", + "standard": "EIP3091" + } + ] + }, + { + "name": "LUDAN Mainnet", + "chain": "LUDAN", + "rpc": ["https://rpc.ludan.org/"], + "faucets": [], + "nativeCurrency": { "name": "LUDAN", "symbol": "LUDAN", "decimals": 18 }, + "infoURL": "https://www.ludan.org/", + "shortName": "LUDAN", + "icon": "ludan", + "chainId": 1688, + "networkId": 1688 + }, + { + "name": "Anytype EVM Chain", + "chain": "ETH", + "icon": "any", + "rpc": ["https://geth.anytype.io"], + "faucets": ["https://evm.anytype.io/faucet"], + "nativeCurrency": { "name": "ANY", "symbol": "ANY", "decimals": 18 }, + "infoURL": "https://evm.anytype.io", + "shortName": "AnytypeChain", + "chainId": 1701, + "networkId": 1701, + "explorers": [ + { + "name": "Anytype Explorer", + "url": "https://explorer.anytype.io", + "icon": "any", + "standard": "EIP3091" + } + ] + }, + { + "name": "TBSI Mainnet", + "title": "Thai Blockchain Service Infrastructure Mainnet", + "chain": "TBSI", + "rpc": ["https://rpc.blockchain.or.th"], + "faucets": [], + "nativeCurrency": { "name": "Jinda", "symbol": "JINDA", "decimals": 18 }, + "infoURL": "https://blockchain.or.th", + "shortName": "TBSI", + "chainId": 1707, + "networkId": 1707 + }, + { + "name": "TBSI Testnet", + "title": "Thai Blockchain Service Infrastructure Testnet", + "chain": "TBSI", + "rpc": ["https://rpc.testnet.blockchain.or.th"], + "faucets": ["https://faucet.blockchain.or.th"], + "nativeCurrency": { "name": "Jinda", "symbol": "JINDA", "decimals": 18 }, + "infoURL": "https://blockchain.or.th", + "shortName": "tTBSI", + "chainId": 1708, + "networkId": 1708 + }, + { + "name": "Palette Chain Mainnet", + "chain": "PLT", + "rpc": ["https://palette-rpc.com:22000"], + "faucets": [], + "nativeCurrency": { + "name": "Palette Token", + "symbol": "PLT", + "decimals": 18 + }, + "features": [], + "infoURL": "https://hashpalette.com/", + "shortName": "PCM", + "chainId": 1718, + "networkId": 1718, + "icon": "PLT", + "explorers": [ + { + "name": "Palettescan", + "url": "https://palettescan.com", + "icon": "PLT", + "standard": "none" + } + ] + }, + { + "name": "PartyChain", + "chain": "mainnet", + "rpc": ["https://tea.mining4people.com/rpc", "http://172.104.194.36:8545"], + "faucets": [], + "nativeCurrency": { "name": "Grams", "symbol": "GRAMS", "decimals": 18 }, + "infoURL": "TeaPartyCrypto.com", + "shortName": "TeaParty", + "chainId": 1773, + "networkId": 1773, + "icon": "grams", + "status": "incubating", + "explorers": [ + { + "name": "PartyExplorer", + "url": "https://partyexplorer.co", + "icon": "grams", + "standard": "EIP3091" + } + ] + }, + { + "name": "Gauss Mainnet", + "chain": "Gauss", + "icon": "gauss", + "rpc": ["https://rpc.gaussgang.com"], + "faucets": [], + "nativeCurrency": { "name": "GANG", "symbol": "GANG", "decimals": 18 }, + "infoURL": "https://gaussgang.com/", + "shortName": "gauss", + "chainId": 1777, + "networkId": 1777, + "explorers": [ + { + "name": "Gauss Explorer", + "url": "https://explorer.gaussgang.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Kerleano", + "title": "Proof of Climate awaReness testnet", + "chain": "CRC", + "status": "active", + "rpc": [ + "https://cacib-saturn-test.francecentral.cloudapp.azure.com", + "wss://cacib-saturn-test.francecentral.cloudapp.azure.com:9443" + ], + "faucets": [ + "https://github.com/ethereum-pocr/kerleano/blob/main/docs/faucet.md" + ], + "nativeCurrency": { + "name": "Climate awaReness Coin", + "symbol": "CRC", + "decimals": 18 + }, + "infoURL": "https://github.com/ethereum-pocr/kerleano", + "shortName": "kerleano", + "chainId": 1804, + "networkId": 1804, + "icon": "pocr", + "explorers": [ + { + "name": "Lite Explorer", + "url": "https://ethereum-pocr.github.io/explorer/kerleano", + "icon": "pocr", + "standard": "EIP3091" + } + ] + }, + { + "name": "Rabbit Analog Testnet Chain", + "chain": "rAna", + "icon": "rabbit", + "rpc": ["https://rabbit.analog-rpc.com"], + "faucets": ["https://analogfaucet.com"], + "nativeCurrency": { + "name": "Rabbit Analog Test Chain Native Token ", + "symbol": "rAna", + "decimals": 18 + }, + "infoURL": "https://rabbit.analogscan.com", + "shortName": "rAna", + "chainId": 1807, + "networkId": 1807, + "explorers": [ + { + "name": "blockscout", + "url": "https://rabbit.analogscan.com", + "standard": "none" + } + ] + }, + { + "name": "Cube Chain Mainnet", + "chain": "Cube", + "icon": "cube", + "rpc": [ + "https://http-mainnet.cube.network", + "wss://ws-mainnet.cube.network", + "https://http-mainnet-sg.cube.network", + "wss://ws-mainnet-sg.cube.network", + "https://http-mainnet-us.cube.network", + "wss://ws-mainnet-us.cube.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Cube Chain Native Token", + "symbol": "CUBE", + "decimals": 18 + }, + "infoURL": "https://www.cube.network", + "shortName": "cube", + "chainId": 1818, + "networkId": 1818, + "slip44": 1818, + "explorers": [ + { + "name": "cube-scan", + "url": "https://cubescan.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Cube Chain Testnet", + "chain": "Cube", + "icon": "cube", + "rpc": [ + "https://http-testnet.cube.network", + "wss://ws-testnet.cube.network", + "https://http-testnet-sg.cube.network", + "wss://ws-testnet-sg.cube.network", + "https://http-testnet-jp.cube.network", + "wss://ws-testnet-jp.cube.network", + "https://http-testnet-us.cube.network", + "wss://ws-testnet-us.cube.network" + ], + "faucets": ["https://faucet.cube.network"], + "nativeCurrency": { + "name": "Cube Chain Test Native Token", + "symbol": "CUBET", + "decimals": 18 + }, + "infoURL": "https://www.cube.network", + "shortName": "cubet", + "chainId": 1819, + "networkId": 1819, + "slip44": 1819, + "explorers": [ + { + "name": "cubetest-scan", + "url": "https://testnet.cubescan.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Teslafunds", + "chain": "TSF", + "rpc": ["https://tsfapi.europool.me"], + "faucets": [], + "nativeCurrency": { + "name": "Teslafunds Ether", + "symbol": "TSF", + "decimals": 18 + }, + "infoURL": "https://teslafunds.io", + "shortName": "tsf", + "chainId": 1856, + "networkId": 1 + }, + { + "name": "Gitshock Cartenz Testnet", + "chain": "Gitshock Cartenz", + "icon": "gitshockchain", + "rpc": ["https://rpc.cartenz.works"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { + "name": "Gitshock Cartenz", + "symbol": "tGTFX", + "decimals": 18 + }, + "infoURL": "https://gitshock.com", + "shortName": "gitshockchain", + "chainId": 1881, + "networkId": 1881, + "explorers": [ + { + "name": "blockscout", + "url": "https://scan.cartenz.works", + "standard": "EIP3091" + } + ] + }, + { + "name": "Lightlink Phoenix Mainnet", + "chain": "Lightlink Phoenix Mainnet", + "icon": "lightlink", + "rpc": [ + "https://replicator-01.phoenix.lightlink.io/rpc/v1", + "https://replicator-02.phoenix.lightlink.io/rpc/v1" + ], + "features": [{ "name": "EIP155" }], + "faucets": [], + "nativeCurrency": { "name": "Ethereum", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://lightlink.io", + "shortName": "lightlink_phoenix", + "chainId": 1890, + "networkId": 1890, + "explorers": [ + { + "name": "phoenix", + "url": "https://phoenix.lightlink.io", + "icon": "lightlink", + "standard": "EIP3091" + } + ] + }, + { + "name": "Lightlink Pegasus Testnet", + "chain": "Lightlink Pegasus Testnet", + "icon": "lightlink", + "rpc": [ + "https://replicator-01.pegasus.lightlink.io/rpc/v1", + "https://replicator-02.pegasus.lightlink.io/rpc/v1" + ], + "features": [{ "name": "EIP155" }], + "faucets": ["https://pegasus-faucet-react.vercel.app"], + "nativeCurrency": { "name": "Ethereum", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://lightlink.io", + "shortName": "lightlink_pegasus", + "chainId": 1891, + "networkId": 1891, + "explorers": [ + { + "name": "pegasus", + "url": "https://pegasus.lightlink.io", + "icon": "lightlink", + "standard": "EIP3091" + } + ] + }, + { + "name": "BON Network", + "chain": "BON", + "rpc": ["http://rpc.boyanet.org:8545", "ws://rpc.boyanet.org:8546"], + "faucets": [], + "nativeCurrency": { "name": "BOYACoin", "symbol": "BOY", "decimals": 18 }, + "infoURL": "https://boyanet.org", + "shortName": "boya", + "chainId": 1898, + "networkId": 1, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.boyanet.org:4001", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bitcichain Mainnet", + "chain": "BITCI", + "icon": "bitci", + "rpc": ["https://rpc.bitci.com"], + "faucets": [], + "nativeCurrency": { "name": "Bitci", "symbol": "BITCI", "decimals": 18 }, + "infoURL": "https://www.bitcichain.com", + "shortName": "bitci", + "chainId": 1907, + "networkId": 1907, + "explorers": [ + { + "name": "Bitci Explorer", + "url": "https://bitciexplorer.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bitcichain Testnet", + "chain": "TBITCI", + "icon": "bitci", + "rpc": ["https://testnet.bitcichain.com"], + "faucets": ["https://faucet.bitcichain.com"], + "nativeCurrency": { + "name": "Test Bitci", + "symbol": "TBITCI", + "decimals": 18 + }, + "infoURL": "https://www.bitcichain.com", + "shortName": "tbitci", + "chainId": 1908, + "networkId": 1908, + "explorers": [ + { + "name": "Bitci Explorer Testnet", + "url": "https://testnet.bitciexplorer.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "ONUS Chain Testnet", + "title": "ONUS Chain Testnet", + "chain": "onus", + "rpc": ["https://rpc-testnet.onuschain.io"], + "faucets": [], + "nativeCurrency": { "name": "ONUS", "symbol": "ONUS", "decimals": 18 }, + "infoURL": "https://onuschain.io", + "shortName": "onus-testnet", + "chainId": 1945, + "networkId": 1945, + "explorers": [ + { + "name": "Onus explorer testnet", + "url": "https://explorer-testnet.onuschain.io", + "icon": "onus", + "standard": "EIP3091" + } + ] + }, + { + "name": "D-Chain Mainnet", + "chain": "D-Chain", + "rpc": [ + "https://mainnet.d-chain.network/ext/bc/2ZiR1Bro5E59siVuwdNuRFzqL95NkvkbzyLBdrsYR9BLSHV7H4/rpc" + ], + "nativeCurrency": { "name": "DOINX", "symbol": "DOINX", "decimals": 18 }, + "shortName": "dchain-mainnet", + "chainId": 1951, + "networkId": 1951, + "icon": "dchain", + "faucets": [], + "infoURL": "" + }, + { + "name": "Dexilla Testnet", + "chain": "Dexilla", + "rpc": ["https://rpc.dexilla.com"], + "faucets": [], + "icon": "dxz", + "nativeCurrency": { + "name": "Dexilla Native Token", + "symbol": "DXZ", + "decimals": 18 + }, + "infoURL": "https://dexilla.com", + "shortName": "Dexilla", + "chainId": 1954, + "networkId": 1954, + "explorers": [ + { + "name": "dos-mainnet", + "url": "https://exp.dexilla.com", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-11155111", + "bridges": [{ "url": "https://bridge.dexilla.com" }] + } + }, + { + "name": "Eleanor", + "title": "Metatime Testnet Eleanor", + "chain": "MTC", + "rpc": [ + "https://rpc.metatime.com/eleanor", + "wss://ws.metatime.com/eleanor" + ], + "faucets": ["https://faucet.metatime.com/eleanor"], + "nativeCurrency": { + "name": "Eleanor Metacoin", + "symbol": "MTC", + "decimals": 18 + }, + "infoURL": "https://eleanor.metatime.com", + "shortName": "mtc", + "chainId": 1967, + "networkId": 1967, + "explorers": [ + { + "name": "metaexplorer-eleanor", + "url": "https://explorer.metatime.com/eleanor", + "standard": "EIP3091" + } + ] + }, + { + "name": "Super Smart Chain Testnet", + "chain": "TSCS", + "rpc": ["https://testnetrpc.scschain.com"], + "faucets": ["https://testnet.scschain.com"], + "nativeCurrency": { + "name": "Super Chain Native Token", + "symbol": "TSCS", + "decimals": 18 + }, + "infoURL": "https://testnet.scschain.com", + "shortName": "tscs", + "chainId": 1969, + "networkId": 1969, + "icon": "super", + "explorers": [ + { + "name": "blockscout", + "url": "https://testnetscan.scschain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Super Smart Chain Mainnet", + "chain": "SCS", + "rpc": ["https://rpc.scschain.com"], + "faucets": [], + "nativeCurrency": { + "name": "Super Chain Native Token", + "symbol": "SCS", + "decimals": 18 + }, + "infoURL": "https://scschain.com", + "shortName": "scs", + "chainId": 1970, + "networkId": 1970, + "icon": "super", + "explorers": [ + { + "name": "blockscout", + "url": "https://scan.scschain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Atelier", + "title": "Atelier Test Network", + "chain": "ALTR", + "rpc": ["https://1971.network/atlr", "wss://1971.network/atlr"], + "faucets": [], + "nativeCurrency": { "name": "ATLR", "symbol": "ATLR", "decimals": 18 }, + "infoURL": "https://1971.network/", + "shortName": "atlr", + "chainId": 1971, + "networkId": 1971, + "icon": "atlr" + }, + { + "name": "ONUS Chain Mainnet", + "title": "ONUS Chain Mainnet", + "chain": "onus", + "rpc": ["https://rpc.onuschain.io", "wss://ws.onuschain.io"], + "faucets": [], + "nativeCurrency": { "name": "ONUS", "symbol": "ONUS", "decimals": 18 }, + "infoURL": "https://onuschain.io", + "shortName": "onus-mainnet", + "chainId": 1975, + "networkId": 1975, + "explorers": [ + { + "name": "Onus explorer mainnet", + "url": "https://explorer.onuschain.io", + "icon": "onus", + "standard": "EIP3091" + } + ] + }, + { + "name": "Eurus Testnet", + "chain": "EUN", + "rpc": ["https://testnet.eurus.network"], + "faucets": [], + "nativeCurrency": { "name": "Eurus", "symbol": "EUN", "decimals": 18 }, + "infoURL": "https://eurus.network", + "shortName": "euntest", + "chainId": 1984, + "networkId": 1984, + "icon": "eurus", + "explorers": [ + { + "name": "testnetexplorer", + "url": "https://testnetexplorer.eurus.network", + "icon": "eurus", + "standard": "none" + } + ] + }, + { + "name": "EtherGem", + "chain": "EGEM", + "rpc": ["https://jsonrpc.egem.io/custom"], + "faucets": [], + "nativeCurrency": { + "name": "EtherGem Ether", + "symbol": "EGEM", + "decimals": 18 + }, + "infoURL": "https://egem.io", + "shortName": "egem", + "chainId": 1987, + "networkId": 1987, + "slip44": 1987 + }, + { + "name": "Ekta", + "chain": "EKTA", + "rpc": ["https://main.ekta.io"], + "faucets": [], + "nativeCurrency": { "name": "EKTA", "symbol": "EKTA", "decimals": 18 }, + "infoURL": "https://www.ekta.io", + "shortName": "ekta", + "chainId": 1994, + "networkId": 1994, + "icon": "ekta", + "explorers": [ + { + "name": "ektascan", + "url": "https://ektascan.io", + "icon": "ekta", + "standard": "EIP3091" + } + ] + }, + { + "name": "edeXa Testnet", + "chain": "edeXa TestNetwork", + "rpc": [ + "https://testnet.edexa.com/rpc", + "https://io-dataseed1.testnet.edexa.io-market.com/rpc" + ], + "faucets": ["https://faucet.edexa.com/"], + "nativeCurrency": { "name": "EDEXA", "symbol": "EDX", "decimals": 18 }, + "infoURL": "https://edexa.com/", + "shortName": "edx", + "chainId": 1995, + "networkId": 1995, + "icon": "edexa", + "explorers": [ + { + "name": "edexa-testnet", + "url": "https://explorer.testnet.edexa.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Dogechain Mainnet", + "chain": "DC", + "icon": "dogechain", + "rpc": [ + "https://rpc.dogechain.dog", + "https://rpc01-sg.dogechain.dog", + "https://rpc.ankr.com/dogechain" + ], + "faucets": [], + "nativeCurrency": { "name": "Dogecoin", "symbol": "DOGE", "decimals": 18 }, + "infoURL": "https://dogechain.dog", + "shortName": "dc", + "chainId": 2000, + "networkId": 2000, + "explorers": [ + { + "name": "dogechain explorer", + "url": "https://explorer.dogechain.dog", + "standard": "EIP3091" + } + ] + }, + { + "name": "Milkomeda C1 Mainnet", + "chain": "milkAda", + "icon": "milkomeda", + "rpc": [ + "https://rpc-mainnet-cardano-evm.c1.milkomeda.com", + "wss://rpc-mainnet-cardano-evm.c1.milkomeda.com" + ], + "faucets": [], + "nativeCurrency": { "name": "milkAda", "symbol": "mADA", "decimals": 18 }, + "infoURL": "https://milkomeda.com", + "shortName": "milkAda", + "chainId": 2001, + "networkId": 2001, + "explorers": [ + { + "name": "Blockscout", + "url": "https://explorer-mainnet-cardano-evm.c1.milkomeda.com", + "standard": "none" + } + ] + }, + { + "name": "Milkomeda A1 Mainnet", + "chain": "milkALGO", + "icon": "milkomeda", + "rpc": [ + "https://rpc-mainnet-algorand-rollup.a1.milkomeda.com", + "wss://rpc-mainnet-algorand-rollup.a1.milkomeda.com/ws" + ], + "faucets": [], + "nativeCurrency": { "name": "milkALGO", "symbol": "mALGO", "decimals": 18 }, + "infoURL": "https://milkomeda.com", + "shortName": "milkALGO", + "chainId": 2002, + "networkId": 2002, + "explorers": [ + { + "name": "Blockscout", + "url": "https://explorer-mainnet-algorand-rollup.a1.milkomeda.com", + "standard": "none" + } + ] + }, + { + "name": "CloudWalk Testnet", + "chain": "CloudWalk Testnet", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "CloudWalk Native Token", + "symbol": "CWN", + "decimals": 18 + }, + "infoURL": "https://cloudwalk.io", + "shortName": "cloudwalk_testnet", + "chainId": 2008, + "networkId": 2008, + "explorers": [ + { + "name": "CloudWalk Testnet Explorer", + "url": "https://explorer.testnet.cloudwalk.io", + "standard": "none" + } + ] + }, + { + "name": "CloudWalk Mainnet", + "chain": "CloudWalk Mainnet", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "CloudWalk Native Token", + "symbol": "CWN", + "decimals": 18 + }, + "infoURL": "https://cloudwalk.io", + "shortName": "cloudwalk_mainnet", + "chainId": 2009, + "networkId": 2009, + "explorers": [ + { + "name": "CloudWalk Mainnet Explorer", + "url": "https://explorer.mainnet.cloudwalk.io", + "standard": "none" + } + ] + }, + { + "name": "MainnetZ Mainnet", + "chain": "NetZ", + "icon": "mainnetz", + "rpc": ["https://mainnet-rpc.mainnetz.io"], + "faucets": ["https://faucet.mainnetz.io"], + "nativeCurrency": { "name": "MainnetZ", "symbol": "NetZ", "decimals": 18 }, + "infoURL": "https://mainnetz.io", + "shortName": "NetZm", + "chainId": 2016, + "networkId": 2016, + "explorers": [ + { + "name": "MainnetZ", + "url": "https://explorer.mainnetz.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "PublicMint Devnet", + "title": "Public Mint Devnet", + "chain": "PublicMint", + "rpc": ["https://rpc.dev.publicmint.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "USD", "symbol": "USD", "decimals": 18 }, + "infoURL": "https://publicmint.com", + "shortName": "pmint_dev", + "chainId": 2018, + "networkId": 2018, + "slip44": 60, + "explorers": [ + { + "name": "PublicMint Explorer", + "url": "https://explorer.dev.publicmint.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "PublicMint Testnet", + "title": "Public Mint Testnet", + "chain": "PublicMint", + "rpc": ["https://rpc.tst.publicmint.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "USD", "symbol": "USD", "decimals": 18 }, + "infoURL": "https://publicmint.com", + "shortName": "pmint_test", + "chainId": 2019, + "networkId": 2019, + "slip44": 60, + "explorers": [ + { + "name": "PublicMint Explorer", + "url": "https://explorer.tst.publicmint.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "PublicMint Mainnet", + "title": "Public Mint Mainnet", + "chain": "PublicMint", + "rpc": ["https://rpc.publicmint.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "USD", "symbol": "USD", "decimals": 18 }, + "infoURL": "https://publicmint.com", + "shortName": "pmint", + "chainId": 2020, + "networkId": 2020, + "slip44": 60, + "explorers": [ + { + "name": "PublicMint Explorer", + "url": "https://explorer.publicmint.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Edgeware EdgeEVM Mainnet", + "chain": "EDG", + "icon": "edgeware", + "rpc": [ + "https://edgeware-evm.jelliedowl.net", + "https://mainnet2.edgewa.re/evm", + "https://mainnet3.edgewa.re/evm", + "https://mainnet4.edgewa.re/evm", + "https://mainnet5.edgewa.re/evm", + "wss://edgeware.jelliedowl.net", + "wss://mainnet2.edgewa.re", + "wss://mainnet3.edgewa.re", + "wss://mainnet4.edgewa.re", + "wss://mainnet5.edgewa.re" + ], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "Edgeware", "symbol": "EDG", "decimals": 18 }, + "infoURL": "https://edgeware.io", + "shortName": "edg", + "chainId": 2021, + "networkId": 2021, + "slip44": 523, + "explorers": [ + { + "name": "Edgscan by Bharathcoorg", + "url": "https://edgscan.live", + "standard": "EIP3091" }, - "infoURL": "https://athereum.ava.network", - "shortName": "avaeth", - "chainId": 43110, - "networkId": 43110 - }, - { - "name": "Avalanche Fuji Testnet", - "chain": "AVAX", - "rpc": ["https://api.avax-test.network/ext/bc/C/rpc"], - "faucets": ["https://faucet.avax-test.network/"], - "nativeCurrency": { "name": "Avalanche", "symbol": "AVAX", "decimals": 18 }, - "infoURL": "https://cchain.explorer.avax-test.network", - "shortName": "Fuji", - "chainId": 43113, - "networkId": 1, - "explorers": [ - { - "name": "snowtrace", - "url": "https://testnet.snowtrace.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Avalanche C-Chain", - "chain": "AVAX", - "rpc": ["https://api.avax.network/ext/bc/C/rpc"], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], - "nativeCurrency": { "name": "Avalanche", "symbol": "AVAX", "decimals": 18 }, - "infoURL": "https://www.avax.network/", - "shortName": "Avalanche", - "chainId": 43114, - "networkId": 43114, - "slip44": 9005, - "explorers": [ - { - "name": "snowtrace", - "url": "https://snowtrace.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Celo Alfajores Testnet", - "chainId": 44787, - "shortName": "ALFA", - "chain": "CELO", - "networkId": 44787, - "nativeCurrency": { "name": "CELO", "symbol": "CELO", "decimals": 18 }, - "rpc": [ - "https://alfajores-forno.celo-testnet.org", - "wss://alfajores-forno.celo-testnet.org/ws" - ], - "faucets": [ - "https://celo.org/developers/faucet", - "https://cauldron.pretoriaresearchlab.io/alfajores-faucet" - ], - "infoURL": "https://docs.celo.org/" - }, - { - "name": "Autobahn Network", - "chain": "TXL", - "network": "mainnet", - "rpc": ["https://rpc.autobahn.network"], - "faucets": [], - "nativeCurrency": { "name": "TXL", "symbol": "TXL", "decimals": 18 }, - "infoURL": "https://autobahn.network", - "shortName": "Autobahn Network", - "chainId": 45000, - "networkId": 45000, - "icon": "autobahn", - "explorers": [ - { - "name": "autobahn explorer", - "url": "https://explorer.autobahn.network", - "icon": "autobahn", - "standard": "EIP3091" - } - ] - }, - { - "name": "REI Network", - "chain": "REI", - "rpc": ["https://rpc.rei.network", "wss://rpc.rei.network"], - "faucets": [], - "nativeCurrency": { "name": "REI", "symbol": "REI", "decimals": 18 }, - "infoURL": "https://rei.network/", - "shortName": "REI", - "chainId": 47805, - "networkId": 47805, - "explorers": [ - { - "name": "rei-scan", - "url": "https://scan.rei.network", - "standard": "none" - } - ] - }, - { - "name": "Energi Testnet", - "chain": "NRG", - "rpc": ["https://nodeapi.test.energi.network"], - "faucets": [], - "nativeCurrency": { "name": "Energi", "symbol": "NRG", "decimals": 18 }, - "infoURL": "https://www.energi.world/", - "shortName": "tnrg", - "chainId": 49797, - "networkId": 49797, - "slip44": 49797 - }, - { - "name": "DFK Chain", - "chain": "DFK", - "icon": "dfk", - "network": "mainnet", - "rpc": ["https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"], - "faucets": [], - "nativeCurrency": { "name": "Jewel", "symbol": "JEWEL", "decimals": 18 }, - "infoURL": "https://defikingdoms.com", - "shortName": "DFK", - "chainId": 53935, - "networkId": 53935, - "explorers": [ - { - "name": "ethernal", - "url": "https://explorer.dfkchain.com", - "icon": "ethereum", - "standard": "none" - } - ] - }, - { - "name": "REI Chain Mainnet", - "chain": "REI", - "icon": "reichain", - "rpc": ["https://rei-rpc.moonrhythm.io"], - "faucets": ["http://kururu.finance/faucet?chainId=55555"], - "nativeCurrency": { "name": "Rei", "symbol": "REI", "decimals": 18 }, - "infoURL": "https://reichain.io", - "shortName": "rei", - "chainId": 55555, - "networkId": 55555, - "explorers": [ - { "name": "reiscan", "url": "https://reiscan.com", "standard": "EIP3091" } - ] - }, - { - "name": "REI Chain Testnet", - "chain": "REI", - "icon": "reichain", - "rpc": ["https://rei-testnet-rpc.moonrhythm.io"], - "faucets": ["http://kururu.finance/faucet?chainId=55556"], - "nativeCurrency": { "name": "tRei", "symbol": "tREI", "decimals": 18 }, - "infoURL": "https://reichain.io", - "shortName": "trei", - "chainId": 55556, - "networkId": 55556, - "explorers": [ - { - "name": "reiscan", - "url": "https://testnet.reiscan.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Thinkium Testnet Chain 0", - "chain": "Thinkium", - "rpc": ["https://test.thinkiumrpc.net/"], - "faucets": ["https://www.thinkiumdev.net/faucet"], - "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, - "infoURL": "https://thinkium.net/", - "shortName": "TKM-test0", - "chainId": 60000, - "networkId": 60000, - "explorers": [ - { - "name": "thinkiumscan", - "url": "https://test0.thinkiumscan.net", - "standard": "EIP3091" - } - ] - }, - { - "name": "Thinkium Testnet Chain 1", - "chain": "Thinkium", - "rpc": ["https://test1.thinkiumrpc.net/"], - "faucets": ["https://www.thinkiumdev.net/faucet"], - "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, - "infoURL": "https://thinkium.net/", - "shortName": "TKM-test1", - "chainId": 60001, - "networkId": 60001, - "explorers": [ - { - "name": "thinkiumscan", - "url": "https://test1.thinkiumscan.net", - "standard": "EIP3091" - } - ] - }, - { - "name": "Thinkium Testnet Chain 2", - "chain": "Thinkium", - "rpc": ["https://test2.thinkiumrpc.net/"], - "faucets": ["https://www.thinkiumdev.net/faucet"], - "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, - "infoURL": "https://thinkium.net/", - "shortName": "TKM-test2", - "chainId": 60002, - "networkId": 60002, - "explorers": [ - { - "name": "thinkiumscan", - "url": "https://test2.thinkiumscan.net", - "standard": "EIP3091" - } - ] - }, - { - "name": "Thinkium Testnet Chain 103", - "chain": "Thinkium", - "rpc": ["https://test103.thinkiumrpc.net/"], - "faucets": ["https://www.thinkiumdev.net/faucet"], - "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, - "infoURL": "https://thinkium.net/", - "shortName": "TKM-test103", - "chainId": 60103, - "networkId": 60103, - "explorers": [ - { - "name": "thinkiumscan", - "url": "https://test103.thinkiumscan.net", - "standard": "EIP3091" - } - ] - }, - { - "name": "Celo Baklava Testnet", - "chainId": 62320, - "shortName": "BKLV", - "chain": "CELO", - "networkId": 62320, - "nativeCurrency": { "name": "CELO", "symbol": "CELO", "decimals": 18 }, - "rpc": ["https://baklava-forno.celo-testnet.org"], - "faucets": [ - "https://docs.google.com/forms/d/e/1FAIpQLSdfr1BwUTYepVmmvfVUDRCwALejZ-TUva2YujNpvrEmPAX2pg/viewform", - "https://cauldron.pretoriaresearchlab.io/baklava-faucet" - ], - "infoURL": "https://docs.celo.org/" - }, - { - "name": "MultiVAC Mainnet", - "chain": "MultiVAC", - "icon": "multivac", - "rpc": ["https://rpc.mtv.ac", "https://rpc-eu.mtv.ac"], - "faucets": [], - "nativeCurrency": { "name": "MultiVAC", "symbol": "MTV", "decimals": 18 }, - "infoURL": "https://mtv.ac", - "shortName": "mtv", - "chainId": 62621, - "networkId": 62621, - "explorers": [ - { - "name": "MultiVAC Explorer", - "url": "https://e.mtv.ac", - "standard": "none" - } - ] - }, - { - "name": "eCredits Mainnet", - "chain": "ECS", - "network": "mainnet", - "rpc": ["https://rpc.ecredits.com"], - "faucets": [], - "nativeCurrency": { "name": "eCredits", "symbol": "ECS", "decimals": 18 }, - "infoURL": "https://ecredits.com", - "shortName": "ecs", - "chainId": 63000, - "networkId": 63000, - "icon": "ecredits", - "explorers": [ - { - "name": "eCredits MainNet Explorer", - "url": "https://explorer.ecredits.com", - "icon": "ecredits", - "standard": "EIP3091" - } - ] - }, - { - "name": "eCredits Testnet", - "chain": "ECS", - "network": "testnet", - "rpc": ["https://rpc.tst.ecredits.com"], - "faucets": ["https://faucet.tst.ecredits.com"], - "nativeCurrency": { "name": "eCredits", "symbol": "ECS", "decimals": 18 }, - "infoURL": "https://ecredits.com", - "shortName": "ecs-testnet", - "chainId": 63001, - "networkId": 63001, - "icon": "ecredits", - "explorers": [ - { - "name": "eCredits TestNet Explorer", - "url": "https://explorer.tst.ecredits.com", - "icon": "ecredits", - "standard": "EIP3091" - } - ] - }, - { - "name": "Condrieu", - "title": "Ethereum Verkle Testnet Condrieu", - "chain": "ETH", - "rpc": ["https://rpc.condrieu.ethdevops.io:8545"], - "faucets": ["https://faucet.condrieu.ethdevops.io"], - "nativeCurrency": { - "name": "Condrieu Testnet Ether", - "symbol": "CTE", - "decimals": 18 + { + "name": "Subscan", + "url": "https://edgeware.subscan.io", + "standard": "none", + "icon": "subscan" + } + ] + }, + { + "name": "Beresheet BereEVM Testnet", + "chain": "EDG", + "rpc": [ + "https://beresheet-evm.jelliedowl.net", + "wss://beresheet.jelliedowl.net" + ], + "faucets": [], + "nativeCurrency": { + "name": "Testnet EDG", + "symbol": "tEDG", + "decimals": 18 + }, + "infoURL": "https://edgeware.io/build", + "shortName": "edgt", + "chainId": 2022, + "networkId": 2022, + "explorers": [ + { + "name": "Edgscan by Bharathcoorg", + "url": "https://testnet.edgscan.live", + "standard": "EIP3091" + } + ] + }, + { + "name": "Taycan Testnet", + "chain": "Taycan", + "rpc": ["https://test-taycan.hupayx.io"], + "faucets": ["https://ttaycan-faucet.hupayx.io/"], + "nativeCurrency": { + "name": "test-Shuffle", + "symbol": "tSFL", + "decimals": 18 + }, + "infoURL": "https://hupayx.io", + "shortName": "taycan-testnet", + "chainId": 2023, + "networkId": 2023, + "icon": "shuffle", + "explorers": [ + { + "name": "Taycan Explorer(Blockscout)", + "url": "https://evmscan-test.hupayx.io", + "standard": "none", + "icon": "shuffle" }, - "infoURL": "https://condrieu.ethdevops.io", - "shortName": "cndr", - "chainId": 69420, - "networkId": 69420, - "explorers": [ - { - "name": "Condrieu explorer", - "url": "https://explorer.condrieu.ethdevops.io", - "standard": "none" - } - ] - }, - { - "name": "Thinkium Mainnet Chain 0", - "chain": "Thinkium", - "rpc": ["https://proxy.thinkiumrpc.net/"], - "faucets": [], - "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, - "infoURL": "https://thinkium.net/", - "shortName": "TKM0", - "chainId": 70000, - "networkId": 70000, - "explorers": [ - { - "name": "thinkiumscan", - "url": "https://chain0.thinkiumscan.net", - "standard": "EIP3091" - } - ] - }, - { - "name": "Thinkium Mainnet Chain 1", - "chain": "Thinkium", - "rpc": ["https://proxy1.thinkiumrpc.net/"], - "faucets": [], - "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, - "infoURL": "https://thinkium.net/", - "shortName": "TKM1", - "chainId": 70001, - "networkId": 70001, - "explorers": [ - { - "name": "thinkiumscan", - "url": "https://chain1.thinkiumscan.net", - "standard": "EIP3091" - } - ] - }, - { - "name": "Thinkium Mainnet Chain 2", - "chain": "Thinkium", - "rpc": ["https://proxy2.thinkiumrpc.net/"], - "faucets": [], - "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, - "infoURL": "https://thinkium.net/", - "shortName": "TKM2", - "chainId": 70002, - "networkId": 70002, - "explorers": [ - { - "name": "thinkiumscan", - "url": "https://chain2.thinkiumscan.net", - "standard": "EIP3091" - } - ] - }, - { - "name": "Thinkium Mainnet Chain 103", - "chain": "Thinkium", - "rpc": ["https://proxy103.thinkiumrpc.net/"], - "faucets": [], - "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, - "infoURL": "https://thinkium.net/", - "shortName": "TKM103", - "chainId": 70103, - "networkId": 70103, - "explorers": [ - { - "name": "thinkiumscan", - "url": "https://chain103.thinkiumscan.net", - "standard": "EIP3091" - } - ] - }, - { - "name": "Polyjuice Testnet", - "chain": "CKB", - "icon": "polyjuice", - "rpc": [ - "https://godwoken-testnet-web3-rpc.ckbapp.dev", - "ws://godwoken-testnet-web3-rpc.ckbapp.dev/ws" - ], - "faucets": ["https://faucet.nervos.org/"], - "nativeCurrency": { "name": "CKB", "symbol": "CKB", "decimals": 8 }, - "infoURL": "https://github.com/nervosnetwork/godwoken", - "shortName": "ckb", - "chainId": 71393, - "networkId": 1 - }, - { - "name": "Godwoken Testnet (V1.1)", - "chain": "GWT", - "rpc": ["https://godwoken-testnet-v1.ckbapp.dev"], - "faucets": ["https://testnet.bridge.godwoken.io"], - "nativeCurrency": { "name": "CKB", "symbol": "CKB", "decimals": 18 }, - "infoURL": "https://www.nervos.org", - "shortName": "gw-testnet-v1", - "chainId": 71401, - "networkId": 71401, - "explorers": [ - { - "name": "GWScan Block Explorer", - "url": "https://v1.aggron.gwscan.com", - "standard": "none" - } - ] - }, - { - "name": "Godwoken Mainnet", - "chain": "GWT", - "rpc": ["https://godwoken-testnet-v1.ckbapp.dev"], - "faucets": ["https://testnet.bridge.godwoken.io"], - "nativeCurrency": { "name": "CKB", "symbol": "CKB", "decimals": 18 }, - "infoURL": "https://www.nervos.org", - "shortName": "gw-mainnet-v1", - "chainId": 71402, - "networkId": 71402, - "explorers": [ - { - "name": "GWScan Block Explorer", - "url": "https://v1.aggron.gwscan.com", - "standard": "none" - } - ] - }, - { - "name": "Energy Web Volta Testnet", - "chain": "Volta", - "rpc": [ - "https://volta-rpc.energyweb.org", - "wss://volta-rpc.energyweb.org/ws" - ], - "faucets": ["https://voltafaucet.energyweb.org"], - "nativeCurrency": { "name": "Volta Token", "symbol": "VT", "decimals": 18 }, - "infoURL": "https://energyweb.org", - "shortName": "vt", - "chainId": 73799, - "networkId": 73799 - }, - { - "name": "Firenze test network", - "chain": "ETH", - "rpc": ["https://ethnode.primusmoney.com/firenze"], - "faucets": [], - "nativeCurrency": { - "name": "Firenze Ether", - "symbol": "FIN", - "decimals": 18 + { + "name": "Taycan Cosmos Explorer", + "url": "https://cosmoscan-test.hupayx.io", + "standard": "none", + "icon": "shuffle" + } + ] + }, + { + "name": "Rangers Protocol Mainnet", + "chain": "Rangers", + "icon": "rangers", + "rpc": ["https://mainnet.rangersprotocol.com/api/jsonrpc"], + "faucets": [], + "nativeCurrency": { + "name": "Rangers Protocol Gas", + "symbol": "RPG", + "decimals": 18 + }, + "infoURL": "https://rangersprotocol.com", + "shortName": "rpg", + "chainId": 2025, + "networkId": 2025, + "slip44": 1008, + "explorers": [ + { + "name": "rangersscan", + "url": "https://scan.rangersprotocol.com", + "standard": "none" + } + ] + }, + { + "name": "OriginTrail Parachain", + "chain": "OTP", + "rpc": [ + "https://astrosat.origintrail.network", + "wss://parachain-rpc.origin-trail.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "OriginTrail Parachain Token", + "symbol": "OTP", + "decimals": 12 + }, + "infoURL": "https://parachain.origintrail.io", + "shortName": "otp", + "chainId": 2043, + "networkId": 2043 + }, + { + "name": "Shrapnel Subnet", + "chain": "shrapnel", + "rpc": ["https://subnets.avax.network/shrapnel/mainnet/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "Shrapnel Gas Token", + "symbol": "SHRAPG", + "decimals": 18 + }, + "infoURL": "https://www.shrapnel.com/", + "shortName": "Shrapnel", + "chainId": 2044, + "networkId": 2044 + }, + { + "name": "Stratos Testnet", + "chain": "STOS", + "rpc": ["https://web3-testnet-rpc.thestratos.org"], + "faucets": [], + "nativeCurrency": { "name": "STOS", "symbol": "STOS", "decimals": 18 }, + "infoURL": "https://www.thestratos.org", + "shortName": "stos-testnet", + "chainId": 2047, + "networkId": 2047, + "explorers": [ + { + "name": "Stratos EVM Explorer (Blockscout)", + "url": "https://web3-testnet-explorer.thestratos.org", + "standard": "none" }, - "infoURL": "https://primusmoney.com", - "shortName": "firenze", - "chainId": 78110, - "networkId": 78110 - }, - { - "name": "Mumbai", - "title": "Polygon Testnet Mumbai", - "chain": "Polygon", - "rpc": [ - "https://matic-mumbai.chainstacklabs.com", - "https://rpc-mumbai.maticvigil.com", - "https://matic-testnet-archive-rpc.bwarelabs.com" - ], - "faucets": ["https://faucet.polygon.technology/"], - "nativeCurrency": { "name": "MATIC", "symbol": "MATIC", "decimals": 18 }, - "infoURL": "https://polygon.technology/", - "shortName": "maticmum", - "chainId": 80001, - "networkId": 80001, - "explorers": [ - { - "name": "polygonscan", - "url": "https://mumbai.polygonscan.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "IVAR Chain Mainnet", - "chain": "IVAR", - "icon": "ivar", - "rpc": ["https://mainnet-rpc.ivarex.com"], - "faucets": ["https://faucet.ivarex.com/"], - "nativeCurrency": { "name": "Ivar", "symbol": "IVAR", "decimals": 18 }, - "infoURL": "https://ivarex.com", - "shortName": "ivar", - "chainId": 88888, - "networkId": 88888, - "explorers": [ - { - "name": "ivarscan", - "url": "https://ivarscan.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "UB Smart Chain(testnet)", - "chain": "USC", - "network": "testnet", - "rpc": ["https://testnet.rpc.uschain.network"], - "faucets": [], - "nativeCurrency": { "name": "UBC", "symbol": "UBC", "decimals": 18 }, - "infoURL": "https://www.ubchain.site", - "shortName": "usctest", - "chainId": 99998, - "networkId": 99998 - }, - { - "name": "UB Smart Chain", - "chain": "USC", - "network": "mainnet", - "rpc": ["https://rpc.uschain.network"], - "faucets": [], - "nativeCurrency": { "name": "UBC", "symbol": "UBC", "decimals": 18 }, - "infoURL": "https://www.ubchain.site/", - "shortName": "usc", - "chainId": 99999, - "networkId": 99999 - }, - { - "name": "QuarkChain Mainnet Root", - "chain": "QuarkChain", - "rpc": ["http://jrpc.mainnet.quarkchain.io:38391"], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-r", - "chainId": 100000, - "networkId": 100000 - }, - { - "name": "QuarkChain Mainnet Shard 0", - "chain": "QuarkChain", - "rpc": [ - "https://mainnet-s0-ethapi.quarkchain.io", - "http://eth-jrpc.mainnet.quarkchain.io:39000" - ], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-s0", - "chainId": 100001, - "networkId": 100001, - "parent": { "chain": "eip155-100000", "type": "shard" }, - "explorers": [ - { - "name": "quarkchain-mainnet", - "url": "https://mainnet.quarkchain.io/0", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Mainnet Shard 1", - "chain": "QuarkChain", - "rpc": [ - "https://mainnet-s1-ethapi.quarkchain.io", - "http://eth-jrpc.mainnet.quarkchain.io:39001" - ], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-s1", - "chainId": 100002, - "networkId": 100002, - "parent": { "chain": "eip155-100000", "type": "shard" }, - "explorers": [ - { - "name": "quarkchain-mainnet", - "url": "https://mainnet.quarkchain.io/1", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Mainnet Shard 2", - "chain": "QuarkChain", - "rpc": [ - "https://mainnet-s2-ethapi.quarkchain.io", - "http://eth-jrpc.mainnet.quarkchain.io:39002" - ], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-s2", - "chainId": 100003, - "networkId": 100003, - "parent": { "chain": "eip155-100000", "type": "shard" }, - "explorers": [ - { - "name": "quarkchain-mainnet", - "url": "https://mainnet.quarkchain.io/2", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Mainnet Shard 3", - "chain": "QuarkChain", - "rpc": [ - "https://mainnet-s3-ethapi.quarkchain.io", - "http://eth-jrpc.mainnet.quarkchain.io:39003" - ], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-s3", - "chainId": 100004, - "networkId": 100004, - "parent": { "chain": "eip155-100000", "type": "shard" }, - "explorers": [ - { - "name": "quarkchain-mainnet", - "url": "https://mainnet.quarkchain.io/3", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Mainnet Shard 4", - "chain": "QuarkChain", - "rpc": [ - "https://mainnet-s4-ethapi.quarkchain.io", - "http://eth-jrpc.mainnet.quarkchain.io:39004" - ], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-s4", - "chainId": 100005, - "networkId": 100005, - "parent": { "chain": "eip155-100000", "type": "shard" }, - "explorers": [ - { - "name": "quarkchain-mainnet", - "url": "https://mainnet.quarkchain.io/4", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Mainnet Shard 5", - "chain": "QuarkChain", - "rpc": [ - "https://mainnet-s5-ethapi.quarkchain.io", - "http://eth-jrpc.mainnet.quarkchain.io:39005" - ], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-s5", - "chainId": 100006, - "networkId": 100006, - "parent": { "chain": "eip155-100000", "type": "shard" }, - "explorers": [ - { - "name": "quarkchain-mainnet", - "url": "https://mainnet.quarkchain.io/5", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Mainnet Shard 6", - "chain": "QuarkChain", - "rpc": [ - "https://mainnet-s6-ethapi.quarkchain.io", - "http://eth-jrpc.mainnet.quarkchain.io:39006" - ], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-s6", - "chainId": 100007, - "networkId": 100007, - "parent": { "chain": "eip155-100000", "type": "shard" }, - "explorers": [ - { - "name": "quarkchain-mainnet", - "url": "https://mainnet.quarkchain.io/6", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Mainnet Shard 7", - "chain": "QuarkChain", - "rpc": [ - "https://mainnet-s7-ethapi.quarkchain.io", - "http://eth-jrpc.mainnet.quarkchain.io:39007" - ], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-s7", - "chainId": 100008, - "networkId": 100008, - "parent": { "chain": "eip155-100000", "type": "shard" }, - "explorers": [ - { - "name": "quarkchain-mainnet", - "url": "https://mainnet.quarkchain.io/7", - "standard": "EIP3091" - } - ] - }, - { - "name": "Crystaleum", - "chain": "crystal", - "network": "mainnet", - "rpc": ["https://evm.cryptocurrencydevs.org", "https://rpc.crystaleum.org"], - "faucets": [], - "nativeCurrency": { "name": "CRFI", "symbol": "â—ˆ", "decimals": 18 }, - "infoURL": "https://crystaleum.org", - "shortName": "CRFI", - "chainId": 103090, - "networkId": 1, - "icon": "crystal", - "explorers": [ - { - "name": "blockscout", - "url": "https://scan.crystaleum.org", - "icon": "crystal", - "standard": "EIP3091" - } - ] - }, - { - "name": "BROChain Mainnet", - "chain": "BRO", - "network": "mainnet", - "rpc": [ - "https://rpc.brochain.org", - "http://rpc.brochain.org", - "https://rpc.brochain.org/mainnet", - "http://rpc.brochain.org/mainnet" - ], - "faucets": [], - "nativeCurrency": { "name": "Brother", "symbol": "BRO", "decimals": 18 }, - "infoURL": "https://brochain.org", - "shortName": "bro", - "chainId": 108801, - "networkId": 108801, - "explorers": [ - { - "name": "BROChain Explorer", - "url": "https://explorer.brochain.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Devnet Root", - "chain": "QuarkChain", - "rpc": ["http://jrpc.devnet.quarkchain.io:38391"], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-r", - "chainId": 110000, - "networkId": 110000 - }, - { - "name": "QuarkChain Devnet Shard 0", - "chain": "QuarkChain", - "rpc": [ - "https://devnet-s0-ethapi.quarkchain.io", - "http://eth-jrpc.devnet.quarkchain.io:39900" - ], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-s0", - "chainId": 110001, - "networkId": 110001, - "parent": { "chain": "eip155-110000", "type": "shard" }, - "explorers": [ - { - "name": "quarkchain-devnet", - "url": "https://devnet.quarkchain.io/0", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Devnet Shard 1", - "chain": "QuarkChain", - "rpc": [ - "https://devnet-s1-ethapi.quarkchain.io", - "http://eth-jrpc.devnet.quarkchain.io:39901" - ], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-s1", - "chainId": 110002, - "networkId": 110002, - "parent": { "chain": "eip155-110000", "type": "shard" }, - "explorers": [ - { - "name": "quarkchain-devnet", - "url": "https://devnet.quarkchain.io/1", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Devnet Shard 2", - "chain": "QuarkChain", - "rpc": [ - "https://devnet-s2-ethapi.quarkchain.io", - "http://eth-jrpc.devnet.quarkchain.io:39902" - ], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-s2", - "chainId": 110003, - "networkId": 110003, - "parent": { "chain": "eip155-110000", "type": "shard" }, - "explorers": [ - { - "name": "quarkchain-devnet", - "url": "https://devnet.quarkchain.io/2", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Devnet Shard 3", - "chain": "QuarkChain", - "rpc": [ - "https://devnet-s3-ethapi.quarkchain.io", - "http://eth-jrpc.devnet.quarkchain.io:39903" - ], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-s3", - "chainId": 110004, - "networkId": 110004, - "parent": { "chain": "eip155-110000", "type": "shard" }, - "explorers": [ - { - "name": "quarkchain-devnet", - "url": "https://devnet.quarkchain.io/3", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Devnet Shard 4", - "chain": "QuarkChain", - "rpc": [ - "https://devnet-s4-ethapi.quarkchain.io", - "http://eth-jrpc.devnet.quarkchain.io:39904" - ], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-s4", - "chainId": 110005, - "networkId": 110005, - "parent": { "chain": "eip155-110000", "type": "shard" }, - "explorers": [ - { - "name": "quarkchain-devnet", - "url": "https://devnet.quarkchain.io/4", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Devnet Shard 5", - "chain": "QuarkChain", - "rpc": [ - "https://devnet-s5-ethapi.quarkchain.io", - "http://eth-jrpc.devnet.quarkchain.io:39905" - ], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-s5", - "chainId": 110006, - "networkId": 110006, - "parent": { "chain": "eip155-110000", "type": "shard" }, - "explorers": [ - { - "name": "quarkchain-devnet", - "url": "https://devnet.quarkchain.io/5", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Devnet Shard 6", - "chain": "QuarkChain", - "rpc": [ - "https://devnet-s6-ethapi.quarkchain.io", - "http://eth-jrpc.devnet.quarkchain.io:39906" - ], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-s6", - "chainId": 110007, - "networkId": 110007, - "parent": { "chain": "eip155-110000", "type": "shard" }, - "explorers": [ - { - "name": "quarkchain-devnet", - "url": "https://devnet.quarkchain.io/6", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Devnet Shard 7", - "chain": "QuarkChain", - "rpc": [ - "https://devnet-s7-ethapi.quarkchain.io", - "http://eth-jrpc.devnet.quarkchain.io:39907" - ], - "faucets": [], - "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-s7", - "chainId": 110008, - "networkId": 110008, - "parent": { "chain": "eip155-110000", "type": "shard" }, - "explorers": [ - { - "name": "quarkchain-devnet", - "url": "https://devnet.quarkchain.io/7", - "standard": "EIP3091" - } - ] - }, - { - "name": "Milkomeda C1 Testnet", - "chain": "milkTAda", - "icon": "milkomeda", - "network": "testnet", - "rpc": [ - "https://rpc-devnet-cardano-evm.c1.milkomeda.com", - "wss://rpc-devnet-cardano-evm.c1.milkomeda.com" - ], - "faucets": [], - "nativeCurrency": { "name": "milkTAda", "symbol": "mTAda", "decimals": 18 }, - "infoURL": "https://milkomeda.com", - "shortName": "milkTAda", - "chainId": 200101, - "networkId": 200101, - "explorers": [ - { - "name": "Blockscout", - "url": "https://explorer-devnet-cardano-evm.c1.milkomeda.com", - "standard": "none" - } - ] - }, - { - "name": "Akroma", - "chain": "AKA", - "rpc": ["https://remote.akroma.io"], - "faucets": [], - "nativeCurrency": { - "name": "Akroma Ether", - "symbol": "AKA", - "decimals": 18 + { + "name": "Stratos Cosmos Explorer (BigDipper)", + "url": "https://big-dipper-dev.thestratos.org", + "standard": "none" + } + ] + }, + { + "name": "Stratos Mainnet", + "chain": "STOS", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "STOS", "symbol": "STOS", "decimals": 18 }, + "infoURL": "https://www.thestratos.org", + "shortName": "stos-mainnet", + "chainId": 2048, + "networkId": 2048, + "status": "incubating" + }, + { + "name": "Quokkacoin Mainnet", + "chain": "Qkacoin", + "rpc": ["https://rpc.qkacoin.org"], + "faucets": [], + "nativeCurrency": { "name": "Qkacoin", "symbol": "QKA", "decimals": 18 }, + "infoURL": "https://qkacoin.org", + "shortName": "QKA", + "chainId": 2077, + "networkId": 2077, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.qkacoin.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ecoball Mainnet", + "chain": "ECO", + "rpc": ["https://api.ecoball.org/ecoball/"], + "faucets": [], + "nativeCurrency": { + "name": "Ecoball Coin", + "symbol": "ECO", + "decimals": 18 + }, + "infoURL": "https://ecoball.org", + "shortName": "eco", + "chainId": 2100, + "networkId": 2100, + "explorers": [ + { + "name": "Ecoball Explorer", + "url": "https://scan.ecoball.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ecoball Testnet Espuma", + "chain": "ECO", + "rpc": ["https://api.ecoball.org/espuma/"], + "faucets": [], + "nativeCurrency": { + "name": "Espuma Coin", + "symbol": "ECO", + "decimals": 18 + }, + "infoURL": "https://ecoball.org", + "shortName": "esp", + "chainId": 2101, + "networkId": 2101, + "explorers": [ + { + "name": "Ecoball Testnet Explorer", + "url": "https://espuma-scan.ecoball.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Exosama Network", + "chain": "EXN", + "rpc": ["https://rpc.exosama.com", "wss://rpc.exosama.com"], + "faucets": [], + "nativeCurrency": { + "name": "Sama Token", + "symbol": "SAMA", + "decimals": 18 + }, + "infoURL": "https://moonsama.com", + "shortName": "exn", + "chainId": 2109, + "networkId": 2109, + "slip44": 2109, + "icon": "exn", + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.exosama.com", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "Metaplayerone Mainnet", + "chain": "METAD", + "icon": "metad", + "rpc": ["https://rpc.metaplayer.one/"], + "faucets": [], + "nativeCurrency": { "name": "METAD", "symbol": "METAD", "decimals": 18 }, + "infoURL": "https://docs.metaplayer.one/", + "shortName": "Metad", + "chainId": 2122, + "networkId": 2122, + "explorers": [ + { + "name": "Metad Scan", + "url": "https://scan.metaplayer.one", + "icon": "metad", + "standard": "EIP3091" + } + ] + }, + { + "name": "Metaplayerone Dubai Testnet", + "chain": "MP1 Dubai-Testnet", + "rpc": ["https://rpc-dubai.mp1network.com/"], + "faucets": [], + "nativeCurrency": { "name": "Metaunit", "symbol": "MEU", "decimals": 18 }, + "infoURL": "https://docs.metaplayer.one/", + "shortName": "MEU", + "chainId": 2124, + "networkId": 2124, + "explorers": [ + { + "name": "MP1Scan", + "url": "https://dubai.mp1scan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Defi Oracle Meta Testnet", + "chain": "dfiometatest", + "icon": "defioraclemeta", + "rpc": [ + "https://rpc.public-2138.defi-oracle.io", + "wss://rpc.public-2138.defi-oracle.io" + ], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "testEther", "symbol": "tETH", "decimals": 18 }, + "infoURL": "https://defi-oracle.io/", + "shortName": "dfio-meta-test", + "chainId": 2138, + "networkId": 21, + "slip44": 60, + "ens": { "registry": "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85" }, + "explorers": [ + { + "name": "Quorum Explorer", + "url": "https://public-2138.defi-oracle.io", + "standard": "none" + } + ] + }, + { + "name": "BOSagora Mainnet", + "chain": "ETH", + "rpc": ["https://mainnet.bosagora.org", "https://rpc.bosagora.org"], + "faucets": [], + "nativeCurrency": { "name": "BOSAGORA", "symbol": "BOA", "decimals": 18 }, + "infoURL": "https://docs.bosagora.org", + "shortName": "boa", + "chainId": 2151, + "networkId": 2151, + "icon": "agora", + "explorers": [ + { + "name": "BOASCAN", + "url": "https://boascan.io", + "icon": "agora", + "standard": "EIP3091" + } + ] + }, + { + "name": "Findora Mainnet", + "chain": "Findora", + "rpc": ["https://rpc-mainnet.findora.org"], + "faucets": [], + "nativeCurrency": { "name": "FRA", "symbol": "FRA", "decimals": 18 }, + "infoURL": "https://findora.org/", + "shortName": "fra", + "chainId": 2152, + "networkId": 2152, + "explorers": [ + { + "name": "findorascan", + "url": "https://evm.findorascan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Findora Testnet", + "chain": "Testnet-anvil", + "rpc": ["https://prod-testnet.prod.findora.org:8545/"], + "faucets": [], + "nativeCurrency": { "name": "FRA", "symbol": "FRA", "decimals": 18 }, + "infoURL": "https://findora.org/", + "shortName": "findora-testnet", + "chainId": 2153, + "networkId": 2153, + "explorers": [ + { + "name": "findorascan", + "url": "https://testnet-anvil.evm.findorascan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Findora Forge", + "chain": "Testnet-forge", + "rpc": ["https://prod-forge.prod.findora.org:8545/"], + "faucets": [], + "nativeCurrency": { "name": "FRA", "symbol": "FRA", "decimals": 18 }, + "infoURL": "https://findora.org/", + "shortName": "findora-forge", + "chainId": 2154, + "networkId": 2154, + "explorers": [ + { + "name": "findorascan", + "url": "https://testnet-forge.evm.findorascan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bitcoin EVM", + "chain": "Bitcoin EVM", + "rpc": ["https://connect.bitcoinevm.com"], + "faucets": [], + "nativeCurrency": { "name": "Bitcoin", "symbol": "BTC", "decimals": 18 }, + "infoURL": "https://bitcoinevm.com", + "shortName": "BTC", + "chainId": 2203, + "networkId": 2203, + "icon": "ebtc", + "explorers": [ + { + "name": "Explorer", + "url": "https://explorer.bitcoinevm.com", + "icon": "ebtc", + "standard": "none" + } + ] + }, + { + "name": "Evanesco Mainnet", + "chain": "EVA", + "rpc": ["https://seed4.evanesco.org:8546"], + "faucets": [], + "nativeCurrency": { "name": "EVA", "symbol": "EVA", "decimals": 18 }, + "infoURL": "https://evanesco.org/", + "shortName": "evanesco", + "chainId": 2213, + "networkId": 2213, + "icon": "evanesco", + "explorers": [ + { + "name": "Evanesco Explorer", + "url": "https://explorer.evanesco.org", + "standard": "none" + } + ] + }, + { + "name": "Kava EVM Testnet", + "chain": "KAVA", + "rpc": ["https://evm.testnet.kava.io", "wss://wevm.testnet.kava.io"], + "faucets": ["https://faucet.kava.io"], + "nativeCurrency": { "name": "TKava", "symbol": "TKAVA", "decimals": 18 }, + "infoURL": "https://www.kava.io", + "shortName": "tkava", + "chainId": 2221, + "networkId": 2221, + "icon": "kava", + "explorers": [ + { + "name": "Kava Testnet Explorer", + "url": "https://explorer.testnet.kava.io", + "standard": "EIP3091", + "icon": "kava" + } + ] + }, + { + "name": "Kava EVM", + "chain": "KAVA", + "rpc": [ + "https://evm.kava.io", + "https://evm2.kava.io", + "wss://wevm.kava.io", + "wss://wevm2.kava.io" + ], + "faucets": [], + "nativeCurrency": { "name": "Kava", "symbol": "KAVA", "decimals": 18 }, + "infoURL": "https://www.kava.io", + "shortName": "kava", + "chainId": 2222, + "networkId": 2222, + "icon": "kava", + "explorers": [ + { + "name": "Kava EVM Explorer", + "url": "https://explorer.kava.io", + "standard": "EIP3091", + "icon": "kava" + } + ] + }, + { + "name": "VChain Mainnet", + "chain": "VChain", + "rpc": ["https://bc.vcex.xyz"], + "faucets": [], + "nativeCurrency": { "name": "VNDT", "symbol": "VNDT", "decimals": 18 }, + "infoURL": "https://bo.vcex.xyz/", + "shortName": "VChain", + "chainId": 2223, + "networkId": 2223, + "explorers": [ + { + "name": "VChain Scan", + "url": "https://scan.vcex.xyz", + "standard": "EIP3091" + } + ] + }, + { + "name": "BOMB Chain", + "chain": "BOMB", + "rpc": ["https://rpc.bombchain.com"], + "faucets": [], + "nativeCurrency": { + "name": "BOMB Token", + "symbol": "BOMB", + "decimals": 18 + }, + "infoURL": "https://www.bombchain.com", + "shortName": "bomb", + "chainId": 2300, + "networkId": 2300, + "icon": "bomb", + "explorers": [ + { + "name": "bombscan", + "icon": "bomb", + "url": "https://bombscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Arevia", + "chain": "Arevia", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Arev", "symbol": "ARÉV", "decimals": 18 }, + "infoURL": "", + "shortName": "arevia", + "chainId": 2309, + "networkId": 2309, + "explorers": [], + "status": "incubating" + }, + { + "name": "SOMA Network Testnet", + "chain": "SOMA", + "rpc": ["https://data-testnet-v1.somanetwork.io/"], + "faucets": ["https://faucet.somanetwork.io"], + "nativeCurrency": { "name": "SMA", "symbol": "tSMA", "decimals": 18 }, + "infoURL": "https://somanetwork.io", + "shortName": "sma", + "chainId": 2323, + "networkId": 2323, + "icon": "soma", + "explorers": [ + { + "name": "SOMA Testnet Explorer", + "icon": "soma", + "url": "https://testnet.somascan.io", + "standard": "none" + } + ] + }, + { + "name": "Altcoinchain", + "chain": "mainnet", + "rpc": ["https://rpc0.altcoinchain.org/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Altcoin", "symbol": "ALT", "decimals": 18 }, + "infoURL": "https://altcoinchain.org", + "shortName": "alt", + "chainId": 2330, + "networkId": 2330, + "icon": "altcoinchain", + "status": "active", + "explorers": [ + { + "name": "expedition", + "url": "http://expedition.altcoinchain.org", + "icon": "altcoinchain", + "standard": "none" + } + ] + }, + { + "name": "SOMA Network Mainnet", + "chain": "SOMA", + "rpc": ["https://data-mainnet-v1.somanetwork.io/"], + "faucets": ["https://airdrop.somanetwork.io"], + "nativeCurrency": { + "name": "Soma Native Token", + "symbol": "SMA", + "decimals": 18 + }, + "infoURL": "https://somanetwork.io", + "shortName": "smam", + "chainId": 2332, + "networkId": 2332, + "icon": "soma", + "status": "incubating", + "explorers": [ + { + "name": "SOMA Explorer Mainnet", + "icon": "soma", + "url": "https://somascan.io", + "standard": "none" + } + ] + }, + { + "name": "Kroma Sepolia", + "title": "Kroma Testnet Sepolia", + "chainId": 2357, + "shortName": "kroma-sepolia", + "chain": "ETH", + "networkId": 2357, + "nativeCurrency": { + "name": "Sepolia Ether", + "symbol": "ETH", + "decimals": 18 + }, + "rpc": ["https://api.sepolia.kroma.network"], + "faucets": [], + "infoURL": "https://kroma.network", + "icon": "kroma", + "explorers": [ + { + "name": "blockscout", + "url": "https://blockscout.sepolia.kroma.network", + "icon": "kroma", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-11155111", + "bridges": [{ "url": "https://kroma.network/bridge" }] + } + }, + { + "name": "BOMB Chain Testnet", + "chain": "BOMB", + "rpc": ["https://bombchain-testnet.ankr.com/bas_full_rpc_1"], + "faucets": ["https://faucet.bombchain-testnet.ankr.com/"], + "nativeCurrency": { + "name": "BOMB Token", + "symbol": "tBOMB", + "decimals": 18 + }, + "infoURL": "https://www.bombmoney.com", + "shortName": "bombt", + "chainId": 2399, + "networkId": 2399, + "icon": "bomb", + "explorers": [ + { + "name": "bombscan-testnet", + "icon": "bomb", + "url": "https://explorer.bombchain-testnet.ankr.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "TCG Verse Mainnet", + "chain": "TCG Verse", + "icon": "tcg_verse", + "rpc": ["https://rpc.tcgverse.xyz"], + "faucets": [], + "nativeCurrency": { "name": "OAS", "symbol": "OAS", "decimals": 18 }, + "infoURL": "https://tcgverse.xyz/", + "shortName": "TCGV", + "chainId": 2400, + "networkId": 2400, + "explorers": [ + { + "name": "TCG Verse Explorer", + "url": "https://explorer.tcgverse.xyz", + "standard": "EIP3091" + } + ], + "parent": { "type": "L2", "chain": "eip155-248" } + }, + { + "name": "XODEX", + "chain": "XODEX", + "rpc": ["https://mainnet.xo-dex.com/rpc", "https://xo-dex.io"], + "faucets": [], + "nativeCurrency": { + "name": "XODEX Native Token", + "symbol": "XODEX", + "decimals": 18 + }, + "infoURL": "https://xo-dex.com", + "shortName": "xodex", + "chainId": 2415, + "networkId": 10, + "icon": "xodex", + "explorers": [ + { + "name": "XODEX Explorer", + "url": "https://explorer.xo-dex.com", + "standard": "EIP3091", + "icon": "xodex" + } + ] + }, + { + "name": "Kortho Mainnet", + "chain": "Kortho Chain", + "rpc": ["https://www.kortho-chain.com"], + "faucets": [], + "nativeCurrency": { + "name": "KorthoChain", + "symbol": "KTO", + "decimals": 11 + }, + "infoURL": "https://www.kortho.io/", + "shortName": "ktoc", + "chainId": 2559, + "networkId": 2559 + }, + { + "name": "TechPay Mainnet", + "chain": "TPC", + "rpc": ["https://api.techpay.io/"], + "faucets": [], + "nativeCurrency": { "name": "TechPay", "symbol": "TPC", "decimals": 18 }, + "infoURL": "https://techpay.io/", + "shortName": "tpc", + "chainId": 2569, + "networkId": 2569, + "icon": "techpay", + "explorers": [ + { + "name": "tpcscan", + "url": "https://tpcscan.com", + "icon": "techpay", + "standard": "EIP3091" + } + ] + }, + { + "name": "PoCRNet", + "title": "Proof of Climate awaReness mainnet", + "chain": "CRC", + "status": "active", + "rpc": [ + "https://pocrnet.westeurope.cloudapp.azure.com/http", + "wss://pocrnet.westeurope.cloudapp.azure.com/ws" + ], + "faucets": [], + "nativeCurrency": { + "name": "Climate awaReness Coin", + "symbol": "CRC", + "decimals": 18 + }, + "infoURL": "https://github.com/ethereum-pocr/pocrnet", + "shortName": "pocrnet", + "chainId": 2606, + "networkId": 2606, + "icon": "pocr", + "explorers": [ + { + "name": "Lite Explorer", + "url": "https://ethereum-pocr.github.io/explorer/pocrnet", + "icon": "pocr", + "standard": "EIP3091" + } + ] + }, + { + "name": "Redlight Chain Mainnet", + "chain": "REDLC", + "rpc": ["https://dataseed2.redlightscan.finance"], + "faucets": [], + "nativeCurrency": { + "name": "Redlight Coin", + "symbol": "REDLC", + "decimals": 18 + }, + "infoURL": "https://redlight.finance/", + "shortName": "REDLC", + "chainId": 2611, + "networkId": 2611, + "explorers": [ + { + "name": "REDLC Explorer", + "url": "https://redlightscan.finance", + "standard": "EIP3091" + } + ] + }, + { + "name": "EZChain C-Chain Mainnet", + "chain": "EZC", + "rpc": ["https://api.ezchain.com/ext/bc/C/rpc"], + "faucets": [], + "nativeCurrency": { "name": "EZChain", "symbol": "EZC", "decimals": 18 }, + "infoURL": "https://ezchain.com", + "shortName": "EZChain", + "chainId": 2612, + "networkId": 2612, + "icon": "ezchain", + "explorers": [ + { + "name": "ezchain", + "url": "https://cchain-explorer.ezchain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "EZChain C-Chain Testnet", + "chain": "EZC", + "rpc": ["https://testnet-api.ezchain.com/ext/bc/C/rpc"], + "faucets": ["https://testnet-faucet.ezchain.com"], + "nativeCurrency": { "name": "EZChain", "symbol": "EZC", "decimals": 18 }, + "infoURL": "https://ezchain.com", + "shortName": "Fuji-EZChain", + "chainId": 2613, + "networkId": 2613, + "icon": "ezchain", + "explorers": [ + { + "name": "ezchain", + "url": "https://testnet-cchain-explorer.ezchain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "WhiteBIT Network Testnet", + "chain": "WBT", + "rpc": ["https://rpc-testnet.whitebit.network"], + "faucets": ["https://explorer.whitebit.network/testnet/faucet"], + "nativeCurrency": { + "name": "WhiteBIT Coin", + "symbol": "WBT", + "decimals": 18 + }, + "infoURL": "https://whitebit.com/wbt", + "shortName": "twbt", + "chainId": 2625, + "networkId": 2625, + "icon": "whitebit-testnet", + "explorers": [ + { + "name": "wb-explorer-testnet", + "url": "https://explorer.whitebit.network/testnet", + "standard": "EIP3091" + } + ] + }, + { + "name": "Boba Network Goerli Testnet", + "chain": "ETH", + "rpc": ["https://goerli.boba.network/"], + "faucets": [], + "nativeCurrency": { + "name": "Goerli Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "Bobagoerli", + "chainId": 2888, + "networkId": 2888, + "explorers": [ + { + "name": "Blockscout", + "url": "https://testnet.bobascan.com", + "standard": "none" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-5", + "bridges": [{ "url": "https://gateway.goerli.boba.network" }] + } + }, + { + "name": "BitYuan Mainnet", + "chain": "BTY", + "rpc": ["https://mainnet.bityuan.com/eth"], + "faucets": [], + "nativeCurrency": { "name": "BTY", "symbol": "BTY", "decimals": 18 }, + "infoURL": "https://www.bityuan.com", + "shortName": "bty", + "chainId": 2999, + "networkId": 2999, + "icon": "bty", + "explorers": [ + { + "name": "BitYuan Block Chain Explorer", + "url": "https://mainnet.bityuan.com", + "standard": "none" + } + ] + }, + { + "name": "CENNZnet Rata", + "chain": "CENNZnet", + "rpc": [], + "faucets": ["https://app-faucet.centrality.me"], + "nativeCurrency": { "name": "CPAY", "symbol": "CPAY", "decimals": 18 }, + "infoURL": "https://cennz.net", + "shortName": "cennz-r", + "chainId": 3000, + "networkId": 3000, + "icon": "cennz" + }, + { + "name": "CENNZnet Nikau", + "chain": "CENNZnet", + "rpc": ["https://nikau.centrality.me/public"], + "faucets": ["https://app-faucet.centrality.me"], + "nativeCurrency": { "name": "CPAY", "symbol": "CPAY", "decimals": 18 }, + "infoURL": "https://cennz.net", + "shortName": "cennz-n", + "chainId": 3001, + "networkId": 3001, + "icon": "cennz", + "explorers": [ + { + "name": "UNcover", + "url": "https://www.uncoverexplorer.com/?network=Nikau", + "standard": "none" + } + ] + }, + { + "name": "Canxium Mainnet", + "chain": "CAU", + "rpc": ["https://rpc.canxium.org"], + "faucets": [], + "nativeCurrency": { "name": "Canxium", "symbol": "CAU", "decimals": 18 }, + "infoURL": "https://canxium.org", + "shortName": "cau", + "chainId": 3003, + "networkId": 3003, + "explorers": [ + { + "name": "canxium explorer", + "url": "https://explorer.canxium.org", + "standard": "none" + } + ] + }, + { + "name": "PLAYA3ULL GAMES", + "chain": "3ULL", + "rpc": ["https://api.mainnet.playa3ull.games"], + "faucets": [], + "nativeCurrency": { "name": "3ULL", "symbol": "3ULL", "decimals": 18 }, + "features": [{ "name": "EIP1559" }], + "infoURL": "https://playa3ull.games", + "shortName": "3ULL", + "chainId": 3011, + "networkId": 3011, + "icon": "playa3ull", + "explorers": [ + { + "name": "PLAYA3ULL GAMES Explorer", + "url": "https://3011.routescan.io", + "icon": "playa3ull", + "standard": "EIP3091" + } + ] + }, + { + "name": "Orlando Chain", + "chain": "ORL", + "rpc": ["https://rpc-testnet.orlchain.com"], + "faucets": [], + "nativeCurrency": { "name": "Orlando", "symbol": "ORL", "decimals": 18 }, + "infoURL": "https://orlchain.com", + "shortName": "ORL", + "chainId": 3031, + "networkId": 3031, + "icon": "orl", + "explorers": [ + { + "name": "Orlando (ORL) Explorer", + "url": "https://orlscan.com", + "icon": "orl", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bifrost Mainnet", + "title": "The Bifrost Mainnet network", + "chain": "BFC", + "rpc": [ + "https://public-01.mainnet.thebifrost.io/rpc", + "https://public-02.mainnet.thebifrost.io/rpc" + ], + "faucets": [], + "nativeCurrency": { "name": "Bifrost", "symbol": "BFC", "decimals": 18 }, + "infoURL": "https://thebifrost.io", + "shortName": "bfc", + "chainId": 3068, + "networkId": 3068, + "icon": "bifrost", + "explorers": [ + { + "name": "explorer-thebifrost", + "url": "https://explorer.mainnet.thebifrost.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Filecoin - Hyperspace testnet", + "status": "deprecated", + "chain": "FIL", + "icon": "filecoin", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "testnet filecoin", + "symbol": "tFIL", + "decimals": 18 + }, + "infoURL": "https://filecoin.io", + "shortName": "filecoin-hyperspace", + "chainId": 3141, + "networkId": 3141, + "slip44": 1, + "explorers": [] + }, + { + "name": "Debounce Subnet Testnet", + "chain": "Debounce Network", + "icon": "debounce", + "rpc": ["https://dev-rpc.debounce.network"], + "faucets": [], + "nativeCurrency": { + "name": "Debounce Network", + "symbol": "DB", + "decimals": 18 + }, + "infoURL": "https://debounce.network", + "shortName": "debounce-devnet", + "chainId": 3306, + "networkId": 3306, + "explorers": [ + { + "name": "Debounce Devnet Explorer", + "url": "https://explorer.debounce.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "ZCore Testnet", + "chain": "Beach", + "icon": "zcore", + "rpc": ["https://rpc-testnet.zcore.cash"], + "faucets": ["https://faucet.zcore.cash"], + "nativeCurrency": { "name": "ZCore", "symbol": "ZCR", "decimals": 18 }, + "infoURL": "https://zcore.cash", + "shortName": "zcrbeach", + "chainId": 3331, + "networkId": 3331 + }, + { + "name": "Web3Q Testnet", + "chain": "Web3Q", + "rpc": ["https://testnet.web3q.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "Web3Q", "symbol": "W3Q", "decimals": 18 }, + "infoURL": "https://testnet.web3q.io/home.w3q/", + "shortName": "w3q-t", + "chainId": 3333, + "networkId": 3333, + "explorers": [ + { + "name": "w3q-testnet", + "url": "https://explorer.testnet.web3q.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Web3Q Galileo", + "chain": "Web3Q", + "rpc": ["https://galileo.web3q.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "Web3Q", "symbol": "W3Q", "decimals": 18 }, + "infoURL": "https://galileo.web3q.io/home.w3q/", + "shortName": "w3q-g", + "chainId": 3334, + "networkId": 3334, + "explorers": [ + { + "name": "w3q-galileo", + "url": "https://explorer.galileo.web3q.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Paribu Net Mainnet", + "chain": "PRB", + "rpc": ["https://rpc.paribu.network"], + "faucets": [], + "nativeCurrency": { "name": "PRB", "symbol": "PRB", "decimals": 18 }, + "infoURL": "https://net.paribu.com", + "shortName": "prb", + "chainId": 3400, + "networkId": 3400, + "icon": "prb", + "explorers": [ + { + "name": "Paribu Net Explorer", + "url": "https://explorer.paribu.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "SecureChain Testnet", + "chain": "SCAI", + "icon": "scaiIcon", + "rpc": ["https://testnet-rpc.securechain.ai"], + "faucets": ["https://faucet.securechain.ai"], + "nativeCurrency": { "name": "SCAI", "symbol": "SCAI", "decimals": 18 }, + "infoURL": "https://securechain.ai", + "shortName": "SCAIt", + "chainId": 3434, + "networkId": 3434, + "explorers": [ + { + "name": "SecureChain", + "url": "https://testnet.securechain.ai", + "standard": "EIP3091" + } + ] + }, + { + "name": "Paribu Net Testnet", + "chain": "PRB", + "rpc": ["https://rpc.testnet.paribuscan.com"], + "faucets": ["https://faucet.paribuscan.com"], + "nativeCurrency": { "name": "PRB", "symbol": "PRB", "decimals": 18 }, + "infoURL": "https://net.paribu.com", + "shortName": "prbtestnet", + "chainId": 3500, + "networkId": 3500, + "icon": "prb", + "explorers": [ + { + "name": "Paribu Net Testnet Explorer", + "url": "https://testnet.paribuscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "JFIN Chain", + "chain": "JFIN", + "rpc": ["https://rpc.jfinchain.com"], + "faucets": [], + "nativeCurrency": { "name": "JFIN Coin", "symbol": "jfin", "decimals": 18 }, + "infoURL": "https://jfinchain.com", + "shortName": "jfin", + "chainId": 3501, + "networkId": 3501, + "explorers": [ + { + "name": "JFIN Chain Explorer", + "url": "https://exp.jfinchain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "PandoProject Mainnet", + "chain": "PandoProject", + "icon": "pando", + "rpc": ["https://eth-rpc-api.pandoproject.org/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "pando-token", + "symbol": "PTX", + "decimals": 18 + }, + "infoURL": "https://www.pandoproject.org/", + "shortName": "pando-mainnet", + "chainId": 3601, + "networkId": 3601, + "explorers": [ + { + "name": "Pando Mainnet Explorer", + "url": "https://explorer.pandoproject.org", + "standard": "none" + } + ] + }, + { + "name": "PandoProject Testnet", + "chain": "PandoProject", + "icon": "pando", + "rpc": ["https://testnet.ethrpc.pandoproject.org/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "pando-token", + "symbol": "PTX", + "decimals": 18 + }, + "infoURL": "https://www.pandoproject.org/", + "shortName": "pando-testnet", + "chainId": 3602, + "networkId": 3602, + "explorers": [ + { + "name": "Pando Testnet Explorer", + "url": "https://testnet.explorer.pandoproject.org", + "standard": "none" + } + ] + }, + { + "name": "Jouleverse Mainnet", + "chain": "Jouleverse", + "rpc": ["https://rpc.jnsdao.com:8503"], + "faucets": [], + "nativeCurrency": { "name": "J", "symbol": "J", "decimals": 18 }, + "infoURL": "https://jnsdao.com", + "shortName": "jouleverse", + "chainId": 3666, + "networkId": 3666, + "explorers": [ + { + "name": "jscan", + "url": "https://jscan.jnsdao.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bittex Mainnet", + "chain": "BTX", + "rpc": ["https://rpc1.bittexscan.info", "https://rpc2.bittexscan.info"], + "faucets": [], + "nativeCurrency": { "name": "Bittex", "symbol": "BTX", "decimals": 18 }, + "infoURL": "https://bittexscan.com", + "shortName": "btx", + "chainId": 3690, + "networkId": 3690, + "explorers": [ + { + "name": "bittexscan", + "url": "https://bittexscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Empire Network", + "chain": "EMPIRE", + "rpc": ["https://rpc.empirenetwork.io"], + "faucets": [], + "nativeCurrency": { "name": "Empire", "symbol": "EMPIRE", "decimals": 18 }, + "infoURL": "https://www.empirenetwork.io/", + "shortName": "empire", + "chainId": 3693, + "networkId": 3693, + "explorers": [ + { + "name": "Empire Explorer", + "url": "https://explorer.empirenetwork.io", + "standard": "none" + } + ] + }, + { + "name": "Crossbell", + "chain": "Crossbell", + "rpc": ["https://rpc.crossbell.io"], + "faucets": ["https://faucet.crossbell.io"], + "nativeCurrency": { + "name": "Crossbell Token", + "symbol": "CSB", + "decimals": 18 + }, + "infoURL": "https://crossbell.io", + "shortName": "csb", + "chainId": 3737, + "networkId": 3737, + "icon": "crossbell", + "explorers": [ + { + "name": "Crossbell Explorer", + "url": "https://scan.crossbell.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "AlveyChain Mainnet", + "chain": "ALV", + "icon": "alveychain", + "rpc": ["https://rpc.alveychain.com/rpc", "https://rpc2.alvey.io/rpc"], + "faucets": [], + "nativeCurrency": { "name": "AlveyCoin", "symbol": "ALV", "decimals": 18 }, + "infoURL": "https://alveyscan.com/rpc", + "shortName": "alv", + "chainId": 3797, + "networkId": 3797, + "explorers": [ + { + "name": "AlveyScan", + "url": "https://alveyscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "DRAC Network", + "chain": "DRAC", + "rpc": ["https://www.dracscan.com/rpc"], + "faucets": ["https://www.dracscan.io/faucet"], + "nativeCurrency": { "name": "DRAC", "symbol": "DRAC", "decimals": 18 }, + "infoURL": "https://drac.io/", + "shortName": "drac", + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "chainId": 3912, + "networkId": 3912, + "icon": "drac", + "explorers": [ + { + "name": "DRAC_Network Scan", + "url": "https://www.dracscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "DOS Tesnet", + "chain": "DOS", + "rpc": ["https://test.doschain.com"], + "faucets": [], + "nativeCurrency": { "name": "DOS", "symbol": "DOS", "decimals": 18 }, + "infoURL": "http://doschain.io/", + "shortName": "dost", + "chainId": 3939, + "networkId": 3939, + "icon": "doschain", + "explorers": [ + { + "name": "DOScan-Test", + "url": "https://test.doscan.io", + "icon": "doschain", + "standard": "EIP3091" + } + ] + }, + { + "name": "DYNO Mainnet", + "chain": "DYNO", + "rpc": ["https://api.dynoprotocol.com"], + "faucets": ["https://faucet.dynoscan.io"], + "nativeCurrency": { + "name": "DYNO Token", + "symbol": "DYNO", + "decimals": 18 + }, + "infoURL": "https://dynoprotocol.com", + "shortName": "dyno", + "chainId": 3966, + "networkId": 3966, + "explorers": [ + { + "name": "DYNO Explorer", + "url": "https://dynoscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "DYNO Testnet", + "chain": "DYNO", + "rpc": ["https://tapi.dynoprotocol.com"], + "faucets": ["https://faucet.dynoscan.io"], + "nativeCurrency": { + "name": "DYNO Token", + "symbol": "tDYNO", + "decimals": 18 + }, + "infoURL": "https://dynoprotocol.com", + "shortName": "tdyno", + "chainId": 3967, + "networkId": 3967, + "explorers": [ + { + "name": "DYNO Explorer", + "url": "https://testnet.dynoscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "YuanChain Mainnet", + "chain": "YCC", + "rpc": ["https://mainnet.yuan.org/eth"], + "faucets": [], + "nativeCurrency": { "name": "YCC", "symbol": "YCC", "decimals": 18 }, + "infoURL": "https://www.yuan.org", + "shortName": "ycc", + "chainId": 3999, + "networkId": 3999, + "icon": "ycc", + "explorers": [ + { + "name": "YuanChain Explorer", + "url": "https://mainnet.yuan.org", + "standard": "none" + } + ] + }, + { + "name": "Ozone Chain Mainnet", + "chain": "OZONE", + "rpc": ["https://node1.ozonechain.io"], + "faucets": [], + "nativeCurrency": { "name": "OZONE", "symbol": "OZO", "decimals": 18 }, + "infoURL": "https://ozonechain.io", + "shortName": "ozo", + "chainId": 4000, + "networkId": 4000, + "icon": "ozonechain", + "explorers": [ + { + "name": "OZONE Scan", + "url": "https://ozonescan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Fantom Testnet", + "chain": "FTM", + "rpc": [ + "https://rpc.testnet.fantom.network", + "https://fantom-testnet.publicnode.com" + ], + "faucets": ["https://faucet.fantom.network"], + "nativeCurrency": { "name": "Fantom", "symbol": "FTM", "decimals": 18 }, + "infoURL": "https://docs.fantom.foundation/quick-start/short-guide#fantom-testnet", + "shortName": "tftm", + "chainId": 4002, + "networkId": 4002, + "icon": "fantom", + "explorers": [ + { + "name": "ftmscan", + "url": "https://testnet.ftmscan.com", + "icon": "ftmscan", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bobaopera Testnet", + "chain": "Bobaopera Testnet", + "rpc": [ + "https://testnet.bobaopera.boba.network", + "wss://wss.testnet.bobaopera.boba.network", + "https://replica.testnet.bobaopera.boba.network", + "wss://replica-wss.testnet.bobaopera.boba.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "BobaoperaTestnet", + "chainId": 4051, + "networkId": 4051, + "explorers": [ + { + "name": "Bobaopera Testnet block explorer", + "url": "https://blockexplorer.testnet.bobaopera.boba.network", + "standard": "none" + } + ] + }, + { + "name": "Nahmii 3 Mainnet", + "chain": "Nahmii", + "rpc": [], + "status": "incubating", + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://nahmii.io", + "shortName": "Nahmii3Mainnet", + "chainId": 4061, + "networkId": 4061, + "icon": "nahmii", + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://bridge.nahmii.io" }] + } + }, + { + "name": "Nahmii 3 Testnet", + "chain": "Nahmii", + "rpc": ["https://ngeth.testnet.n3.nahmii.io"], + "faucets": [], + "nativeCurrency": { + "name": "Goerli Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://nahmii.io", + "shortName": "Nahmii3Testnet", + "chainId": 4062, + "networkId": 4062, + "icon": "nahmii", + "explorers": [ + { + "name": "Nahmii 3 Testnet Explorer", + "url": "https://explorer.testnet.n3.nahmii.io", + "icon": "nahmii", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-3", + "bridges": [{ "url": "https://bridge.testnet.n3.nahmii.io" }] + } + }, + { + "name": "Fastex Chain (Bahamut) Oasis Testnet", + "title": "Bahamut testnet Oasis", + "icon": "bahamut", + "chain": "Fastex Chain (Bahamut)", + "rpc": ["https://rpc1.oasis.bahamutchain.com"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": ["https://faucet.oasis.fastexchain.com"], + "nativeCurrency": { "name": "FTN", "symbol": "FTN", "decimals": 18 }, + "infoURL": "https://fastexchain.com", + "shortName": "Oasis", + "chainId": 4090, + "networkId": 4090, + "explorers": [ + { + "name": "blockscout", + "url": "https://oasis.ftnscan.com", + "standard": "none" + } + ] + }, + { + "name": "Bitindi Testnet", + "chain": "BNI", + "icon": "bitindiTestnet", + "rpc": ["https://testnet-rpc.bitindi.org"], + "faucets": ["https://faucet.bitindi.org"], + "nativeCurrency": { "name": "BNI", "symbol": "$BNI", "decimals": 18 }, + "infoURL": "https://bitindi.org", + "shortName": "BNIt", + "chainId": 4096, + "networkId": 4096, + "explorers": [ + { + "name": "Bitindi", + "url": "https://testnet.bitindiscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bitindi Mainnet", + "chain": "BNI", + "icon": "bitindi", + "rpc": ["https://mainnet-rpc.bitindi.org"], + "faucets": ["https://faucet.bitindi.org"], + "nativeCurrency": { "name": "BNI", "symbol": "$BNI", "decimals": 18 }, + "infoURL": "https://bitindi.org", + "shortName": "BNIm", + "chainId": 4099, + "networkId": 4099, + "explorers": [ + { + "name": "Bitindi", + "url": "https://bitindiscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "AIOZ Network Testnet", + "chain": "AIOZ", + "icon": "aioz", + "rpc": ["https://eth-ds.testnet.aioz.network"], + "faucets": [], + "nativeCurrency": { "name": "testAIOZ", "symbol": "AIOZ", "decimals": 18 }, + "infoURL": "https://aioz.network", + "shortName": "aioz-testnet", + "chainId": 4102, + "networkId": 4102, + "slip44": 60, + "explorers": [ + { + "name": "AIOZ Network Testnet Explorer", + "url": "https://testnet.explorer.aioz.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Tipboxcoin Testnet", + "chain": "TPBX", + "icon": "tipboxcoinIcon", + "rpc": ["https://testnet-rpc.tipboxcoin.net"], + "faucets": ["https://faucet.tipboxcoin.net"], + "nativeCurrency": { + "name": "Tipboxcoin", + "symbol": "TPBX", + "decimals": 18 + }, + "infoURL": "https://tipboxcoin.net", + "shortName": "TPBXt", + "chainId": 4141, + "networkId": 4141, + "explorers": [ + { + "name": "Tipboxcoin", + "url": "https://testnet.tipboxcoin.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "PHI Network V1", + "chain": "PHI V1", + "rpc": ["https://rpc1.phi.network", "https://rpc2.phi.network"], + "faucets": [], + "nativeCurrency": { "name": "PHI", "symbol": "Φ", "decimals": 18 }, + "infoURL": "https://phi.network", + "shortName": "PHIv1", + "chainId": 4181, + "networkId": 4181, + "icon": "phi", + "explorers": [ + { + "name": "PHI Explorer", + "url": "https://explorer.phi.network", + "icon": "phi", + "standard": "none" + } + ] + }, + { + "name": "LUKSO Testnet", + "chain": "LUKSO Testnet", + "icon": "lukso", + "rpc": [ + "https://rpc.testnet.lukso.network", + "wss://ws-rpc.testnet.lukso.network" + ], + "faucets": ["https://faucet.testnet.lukso.network"], + "nativeCurrency": { "name": "TestLYX", "symbol": "LYXt", "decimals": 18 }, + "explorers": [ + { + "name": "Blockscout", + "url": "https://explorer.execution.testnet.lukso.network", + "standard": "none" + } + ], + "infoURL": "https://lukso.network", + "shortName": "lukso-testnet", + "chainId": 4201, + "networkId": 4201, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }] + }, + { + "name": "Nexi Mainnet", + "chain": "Nexi", + "icon": "nexi", + "rpc": [ + "https://rpc.chain.nexi.technology/", + "https://chain.nexilix.com", + "https://chain.nexi.evmnode.online" + ], + "faucets": [], + "nativeCurrency": { "name": "Nexi", "symbol": "NEXI", "decimals": 18 }, + "infoURL": "https://www.nexi.technology/", + "shortName": "nexi", + "chainId": 4242, + "networkId": 4242, + "slip44": 2500, + "explorers": [ + { + "name": "nexiscan", + "url": "https://www.nexiscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bobafuji Testnet", + "chain": "Bobafuji Testnet", + "rpc": [ + "https://testnet.avax.boba.network", + "wss://wss.testnet.avax.boba.network", + "https://replica.testnet.avax.boba.network", + "wss://replica-wss.testnet.avax.boba.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "BobaFujiTestnet", + "chainId": 4328, + "networkId": 4328, + "explorers": [ + { + "name": "Bobafuji Testnet block explorer", + "url": "https://blockexplorer.testnet.avax.boba.network", + "standard": "none" + } + ] + }, + { + "name": "Htmlcoin Mainnet", + "chain": "mainnet", + "rpc": ["https://janus.htmlcoin.com/api/"], + "faucets": ["https://gruvin.me/htmlcoin"], + "nativeCurrency": { "name": "Htmlcoin", "symbol": "HTML", "decimals": 8 }, + "infoURL": "https://htmlcoin.com", + "shortName": "html", + "chainId": 4444, + "networkId": 4444, + "icon": "htmlcoin", + "status": "active", + "explorers": [ + { + "name": "htmlcoin", + "url": "https://explorer.htmlcoin.com", + "icon": "htmlcoin", + "standard": "none" + } + ] + }, + { + "name": "IoTeX Network Mainnet", + "chain": "iotex.io", + "rpc": ["https://babel-api.mainnet.iotex.io"], + "faucets": [], + "nativeCurrency": { "name": "IoTeX", "symbol": "IOTX", "decimals": 18 }, + "infoURL": "https://iotex.io", + "shortName": "iotex-mainnet", + "chainId": 4689, + "networkId": 4689, + "explorers": [ + { + "name": "iotexscan", + "url": "https://iotexscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "IoTeX Network Testnet", + "chain": "iotex.io", + "rpc": ["https://babel-api.testnet.iotex.io"], + "faucets": ["https://faucet.iotex.io/"], + "nativeCurrency": { "name": "IoTeX", "symbol": "IOTX", "decimals": 18 }, + "infoURL": "https://iotex.io", + "shortName": "iotex-testnet", + "chainId": 4690, + "networkId": 4690, + "explorers": [ + { + "name": "testnet iotexscan", + "url": "https://testnet.iotexscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "BlackFort Exchange Network Testnet", + "chain": "TBXN", + "rpc": ["https://testnet.blackfort.network/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "BlackFort Testnet Token", + "symbol": "TBXN", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://blackfort.exchange", + "shortName": "TBXN", + "chainId": 4777, + "networkId": 4777, + "icon": "bxn", + "explorers": [ + { + "name": "blockscout", + "url": "https://testnet-explorer.blackfort.network", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "Venidium Testnet", + "chain": "XVM", + "rpc": ["https://rpc-evm-testnet.venidium.io"], + "faucets": [], + "nativeCurrency": { "name": "Venidium", "symbol": "XVM", "decimals": 18 }, + "infoURL": "https://venidium.io", + "shortName": "txvm", + "chainId": 4918, + "networkId": 4918, + "explorers": [ + { + "name": "Venidium EVM Testnet Explorer", + "url": "https://evm-testnet.venidiumexplorer.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Venidium Mainnet", + "chain": "XVM", + "icon": "venidium", + "rpc": ["https://rpc.venidium.io"], + "faucets": [], + "nativeCurrency": { "name": "Venidium", "symbol": "XVM", "decimals": 18 }, + "infoURL": "https://venidium.io", + "shortName": "xvm", + "chainId": 4919, + "networkId": 4919, + "explorers": [ + { + "name": "Venidium Explorer", + "url": "https://evm.venidiumexplorer.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "BlackFort Exchange Network", + "chain": "BXN", + "rpc": [ + "https://mainnet.blackfort.network/rpc", + "https://mainnet-1.blackfort.network/rpc", + "https://mainnet-2.blackfort.network/rpc", + "https://mainnet-3.blackfort.network/rpc" + ], + "faucets": [], + "nativeCurrency": { + "name": "BlackFort Token", + "symbol": "BXN", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://blackfort.exchange", + "shortName": "BXN", + "chainId": 4999, + "networkId": 4999, + "icon": "bxn", + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.blackfort.network", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "Mantle", + "chain": "ETH", + "rpc": ["https://rpc.mantle.xyz"], + "faucets": [], + "nativeCurrency": { "name": "Mantle", "symbol": "MNT", "decimals": 18 }, + "infoURL": "https://mantle.xyz", + "shortName": "mantle", + "chainId": 5000, + "networkId": 5000, + "explorers": [ + { + "name": "Mantle Explorer", + "url": "https://explorer.mantle.xyz", + "standard": "EIP3091" + } + ] + }, + { + "name": "Mantle Testnet", + "chain": "ETH", + "rpc": ["https://rpc.testnet.mantle.xyz"], + "faucets": ["https://faucet.testnet.mantle.xyz"], + "nativeCurrency": { + "name": "Testnet Mantle", + "symbol": "MNT", + "decimals": 18 + }, + "infoURL": "https://mantle.xyz", + "shortName": "mantle-testnet", + "chainId": 5001, + "networkId": 5001, + "explorers": [ + { + "name": "Mantle Testnet Explorer", + "url": "https://explorer.testnet.mantle.xyz", + "standard": "EIP3091" + } + ] + }, + { + "name": "Fastex Chain (Bahamut)", + "title": "Bahamut mainnet Sahara", + "chain": "Fastex Chain (Bahamut)", + "icon": "bahamut", + "rpc": [ + "https://rpc1.sahara.bahamutchain.com", + "https://rpc2.sahara.bahamutchain.com" + ], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "FTN", "symbol": "FTN", "decimals": 18 }, + "shortName": "ftn", + "infoURL": "https://fastexchain.com", + "chainId": 5165, + "networkId": 5165, + "explorers": [ + { "name": "blockscout", "url": "https://ftnscan.com", "standard": "none" } + ] + }, + { + "name": "TLChain Network Mainnet", + "chain": "TLC", + "icon": "tlc", + "rpc": ["https://mainnet-rpc.tlxscan.com/"], + "faucets": [], + "nativeCurrency": { + "name": "TLChain Network", + "symbol": "TLC", + "decimals": 18 + }, + "infoURL": "https://tlchain.network/", + "shortName": "tlc", + "chainId": 5177, + "networkId": 5177, + "explorers": [ + { + "name": "TLChain Explorer", + "url": "https://explorer.tlchain.network", + "standard": "none" + } + ] + }, + { + "name": "EraSwap Mainnet", + "chain": "ESN", + "icon": "eraswap", + "rpc": [ + "https://mainnet.eraswap.network", + "https://rpc-mumbai.mainnet.eraswap.network" + ], + "faucets": [], + "nativeCurrency": { "name": "EraSwap", "symbol": "ES", "decimals": 18 }, + "infoURL": "https://eraswap.info/", + "shortName": "es", + "chainId": 5197, + "networkId": 5197 + }, + { + "name": "Humanode Mainnet", + "chain": "HMND", + "rpc": ["https://explorer-rpc-http.mainnet.stages.humanode.io"], + "faucets": [], + "nativeCurrency": { "name": "HMND", "symbol": "HMND", "decimals": 18 }, + "infoURL": "https://humanode.io", + "shortName": "hmnd", + "chainId": 5234, + "networkId": 5234, + "explorers": [] + }, + { + "name": "Firechain Mainnet Old", + "chain": "FIRE", + "icon": "firechain", + "rpc": ["https://mainnet.rpc1.thefirechain.com"], + "faucets": [], + "nativeCurrency": { "name": "Firechain", "symbol": "FIRE", "decimals": 18 }, + "infoURL": "https://thefirechain.com", + "shortName": "_old_fire", + "chainId": 5290, + "networkId": 5290, + "explorers": [], + "status": "deprecated" + }, + { + "name": "Uzmi Network Mainnet", + "chain": "UZMI", + "rpc": ["https://network.uzmigames.com.br/"], + "faucets": [], + "nativeCurrency": { "name": "UZMI", "symbol": "UZMI", "decimals": 18 }, + "infoURL": "https://uzmigames.com.br/", + "shortName": "UZMI", + "chainId": 5315, + "networkId": 5315 + }, + { + "name": "Nahmii Mainnet", + "chain": "Nahmii", + "rpc": ["https://l2.nahmii.io"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://nahmii.io", + "shortName": "Nahmii", + "chainId": 5551, + "networkId": 5551, + "icon": "nahmii", + "explorers": [ + { + "name": "Nahmii mainnet explorer", + "url": "https://explorer.nahmii.io", + "icon": "nahmii", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://bridge.nahmii.io" }] + } + }, + { + "name": "Nahmii Testnet", + "chain": "Nahmii", + "rpc": ["https://l2.testnet.nahmii.io"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://nahmii.io", + "shortName": "NahmiiTestnet", + "chainId": 5553, + "networkId": 5553, + "icon": "nahmii", + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.testnet.nahmii.io", + "icon": "nahmii", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-3", + "bridges": [{ "url": "https://bridge.nahmii.io" }] + } + }, + { + "name": "Chain Verse Mainnet", + "chain": "CVERSE", + "icon": "chain_verse", + "rpc": ["https://rpc.chainverse.info"], + "faucets": [], + "nativeCurrency": { "name": "Oasys", "symbol": "OAS", "decimals": 18 }, + "infoURL": "https://chainverse.info", + "shortName": "cverse", + "chainId": 5555, + "networkId": 5555, + "explorers": [ + { + "name": "Chain Verse Explorer", + "url": "https://explorer.chainverse.info", + "standard": "EIP3091" + } + ] + }, + { + "name": "Syscoin Tanenbaum Testnet", + "chain": "SYS", + "rpc": ["https://rpc.tanenbaum.io", "wss://rpc.tanenbaum.io/wss"], + "faucets": ["https://faucet.tanenbaum.io"], + "nativeCurrency": { + "name": "Testnet Syscoin", + "symbol": "tSYS", + "decimals": 18 + }, + "infoURL": "https://syscoin.org", + "shortName": "tsys", + "chainId": 5700, + "networkId": 5700, + "explorers": [ + { + "name": "Syscoin Testnet Block Explorer", + "url": "https://tanenbaum.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Hika Network Testnet", + "title": "Hika Network Testnet", + "chain": "HIK", + "icon": "hik", + "rpc": ["https://rpc-testnet.hika.network/"], + "faucets": [], + "nativeCurrency": { "name": "Hik Token", "symbol": "HIK", "decimals": 18 }, + "infoURL": "https://hika.network/", + "shortName": "hik", + "chainId": 5729, + "networkId": 5729, + "explorers": [ + { + "name": "Hika Network Testnet Explorer", + "url": "https://scan-testnet.hika.network", + "standard": "none" + } + ] + }, + { + "name": "SatoshiChain Testnet", + "chain": "SATS", + "icon": "satoshichain", + "rpc": ["https://testnet-rpc.satoshichain.io"], + "faucets": ["https://faucet.satoshichain.io"], + "nativeCurrency": { + "name": "SatoshiChain Coin", + "symbol": "SATS", + "decimals": 18 + }, + "infoURL": "https://satoshichain.net", + "shortName": "satst", + "chainId": 5758, + "networkId": 5758, + "explorers": [ + { + "name": "SatoshiChain Testnet Explorer", + "url": "https://testnet.satoshiscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ganache", + "title": "Ganache GUI Ethereum Testnet", + "chain": "ETH", + "icon": "ganache", + "rpc": ["https://127.0.0.1:7545"], + "faucets": [], + "nativeCurrency": { + "name": "Ganache Test Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://trufflesuite.com/ganache/", + "shortName": "ggui", + "chainId": 5777, + "networkId": 5777, + "explorers": [] + }, + { + "name": "Ontology Testnet", + "chain": "Ontology", + "icon": "ontology", + "rpc": [ + "http://polaris1.ont.io:20339", + "http://polaris2.ont.io:20339", + "http://polaris3.ont.io:20339", + "http://polaris4.ont.io:20339", + "https://polaris1.ont.io:10339", + "https://polaris2.ont.io:10339", + "https://polaris3.ont.io:10339", + "https://polaris4.ont.io:10339" + ], + "faucets": ["https://developer.ont.io/"], + "nativeCurrency": { "name": "ONG", "symbol": "ONG", "decimals": 18 }, + "infoURL": "https://ont.io/", + "shortName": "OntologyTestnet", + "chainId": 5851, + "networkId": 5851, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.ont.io/testnet", + "standard": "EIP3091" + } + ] + }, + { + "name": "Wegochain Rubidium Mainnet", + "chain": "RBD", + "rpc": ["https://proxy.wegochain.io", "http://wallet.wegochain.io:7764"], + "faucets": [], + "nativeCurrency": { "name": "Rubid", "symbol": "RBD", "decimals": 18 }, + "infoURL": "https://www.wegochain.io", + "shortName": "rbd", + "chainId": 5869, + "networkId": 5869, + "explorers": [ + { + "name": "wegoscan2", + "url": "https://scan2.wegochain.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Tres Testnet", + "chain": "TresLeches", + "rpc": ["https://rpc-test.tresleches.finance/"], + "faucets": ["http://faucet.tresleches.finance:8080"], + "nativeCurrency": { "name": "TRES", "symbol": "TRES", "decimals": 18 }, + "infoURL": "https://treschain.com", + "shortName": "TRESTEST", + "chainId": 6065, + "networkId": 6065, + "icon": "tresleches", + "explorers": [ + { + "name": "treslechesexplorer", + "url": "https://explorer-test.tresleches.finance", + "icon": "treslechesexplorer", + "standard": "EIP3091" + } + ] + }, + { + "name": "Tres Mainnet", + "chain": "TresLeches", + "rpc": ["https://rpc.tresleches.finance/", "https://rpc.treschain.io/"], + "faucets": [], + "nativeCurrency": { "name": "TRES", "symbol": "TRES", "decimals": 18 }, + "infoURL": "https://treschain.com", + "shortName": "TRESMAIN", + "chainId": 6066, + "networkId": 6066, + "icon": "tresleches", + "explorers": [ + { + "name": "treslechesexplorer", + "url": "https://explorer.tresleches.finance", + "icon": "treslechesexplorer", + "standard": "EIP3091" + } + ] + }, + { + "name": "UPTN Testnet", + "chain": "UPTN", + "icon": "uptn", + "rpc": ["https://node-api.alp.uptn.io/v1/ext/rpc"], + "features": [{ "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "UPTN", "symbol": "UPTN", "decimals": 18 }, + "infoURL": "https://uptn.io", + "shortName": "UPTN-TEST", + "chainId": 6118, + "networkId": 6118, + "explorers": [ + { + "name": "UPTN Testnet Explorer", + "url": "https://testnet.explorer.uptn.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "UPTN", + "chain": "UPTN", + "icon": "uptn", + "rpc": ["https://node-api.uptn.io/v1/ext/rpc"], + "features": [{ "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "UPTN", "symbol": "UPTN", "decimals": 18 }, + "infoURL": "https://uptn.io", + "shortName": "UPTN", + "chainId": 6119, + "networkId": 6119, + "explorers": [ + { + "name": "UPTN Explorer", + "url": "https://explorer.uptn.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Peerpay", + "chain": "P2P", + "rpc": ["https://peerpay.su.gy/p2p"], + "faucets": [], + "nativeCurrency": { "name": "Peerpay", "symbol": "P2P", "decimals": 18 }, + "infoURL": "https://peerpay.su.gy", + "shortName": "Peerpay", + "chainId": 6502, + "networkId": 6502, + "explorers": [] + }, + { + "name": "Scolcoin WeiChain Testnet", + "chain": "SCOLWEI-testnet", + "rpc": ["https://testnet-rpc.scolcoin.com"], + "faucets": ["https://faucet.scolcoin.com"], + "nativeCurrency": { "name": "Scolcoin", "symbol": "SCOL", "decimals": 18 }, + "infoURL": "https://scolcoin.com", + "shortName": "SRC-test", + "chainId": 6552, + "networkId": 6552, + "icon": "scolcoin", + "explorers": [ + { + "name": "Scolscan Testnet Explorer", + "url": "https://testnet-explorer.scolcoin.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Fox Testnet Network", + "chain": "FOX", + "rpc": [ + "https://rpc-testnet-v1.foxchain.app/", + "https://rpc2-testnet-v1.foxchain.app/", + "https://rpc3-testnet-v1.foxchain.app" + ], + "faucets": ["https://faucet.foxchain.app"], + "nativeCurrency": { + "name": "FOX Native Token", + "symbol": "tFOX", + "decimals": 18 + }, + "infoURL": "https://foxchain.app", + "shortName": "fox", + "chainId": 6565, + "networkId": 6565, + "icon": "fox", + "explorers": [ + { + "name": "FOX Testnet Explorer", + "icon": "fox", + "url": "https://testnet.foxscan.app", + "standard": "none" + } + ] + }, + { + "name": "Pixie Chain Mainnet", + "chain": "PixieChain", + "rpc": [ + "https://http-mainnet.chain.pixie.xyz", + "wss://ws-mainnet.chain.pixie.xyz" + ], + "faucets": [], + "nativeCurrency": { + "name": "Pixie Chain Native Token", + "symbol": "PIX", + "decimals": 18 + }, + "infoURL": "https://chain.pixie.xyz", + "shortName": "pixie-chain", + "chainId": 6626, + "networkId": 6626, + "explorers": [ + { + "name": "blockscout", + "url": "https://scan.chain.pixie.xyz", + "standard": "none" + } + ] + }, + { + "name": "IRIShub", + "chain": "IRIShub", + "rpc": ["https://evmrpc.irishub-1.irisnet.org"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "Eris", "symbol": "ERIS", "decimals": 18 }, + "infoURL": "https://www.irisnet.org", + "shortName": "iris", + "chainId": 6688, + "networkId": 6688, + "icon": "irishub", + "explorers": [ + { + "name": "IRISHub Cosmos Explorer (IOBScan)", + "url": "https://irishub.iobscan.io", + "standard": "none", + "icon": "irishub" + } + ] + }, + { + "name": "Gold Smart Chain Mainnet", + "chain": "STAND", + "icon": "stand", + "rpc": ["https://rpc-mainnet.goldsmartchain.com"], + "faucets": ["https://faucet.goldsmartchain.com"], + "nativeCurrency": { + "name": "Standard in Gold", + "symbol": "STAND", + "decimals": 18 + }, + "infoURL": "https://goldsmartchain.com", + "shortName": "STANDm", + "chainId": 6789, + "networkId": 6789, + "explorers": [ + { + "name": "Gold Smart Chain", + "url": "https://mainnet.goldsmartchain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Tomb Chain Mainnet", + "chain": "Tomb Chain", + "rpc": ["https://rpc.tombchain.com/"], + "faucets": [], + "nativeCurrency": { "name": "Tomb", "symbol": "TOMB", "decimals": 18 }, + "infoURL": "https://tombchain.com/", + "shortName": "tombchain", + "chainId": 6969, + "networkId": 6969, + "explorers": [ + { + "name": "tombscout", + "url": "https://tombscout.com", + "standard": "none" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-250", + "bridges": [{ "url": "https://lif3.com/bridge" }] + } + }, + { + "name": "PolySmartChain", + "chain": "PSC", + "rpc": [ + "https://seed0.polysmartchain.com/", + "https://seed1.polysmartchain.com/", + "https://seed2.polysmartchain.com/" + ], + "faucets": [], + "nativeCurrency": { "name": "PSC", "symbol": "PSC", "decimals": 18 }, + "infoURL": "https://www.polysmartchain.com/", + "shortName": "psc", + "chainId": 6999, + "networkId": 6999 + }, + { + "name": "ZetaChain Mainnet", + "chain": "ZetaChain", + "icon": "zetachain", + "rpc": ["https://api.mainnet.zetachain.com/evm"], + "faucets": [], + "nativeCurrency": { "name": "Zeta", "symbol": "ZETA", "decimals": 18 }, + "infoURL": "https://zetachain.com/docs/", + "shortName": "zetachain-mainnet", + "chainId": 7000, + "networkId": 7000, + "status": "incubating", + "explorers": [ + { + "name": "ZetaChain Mainnet Explorer", + "url": "https://explorer.mainnet.zetachain.com", + "standard": "none" + } + ] + }, + { + "name": "ZetaChain Athens Testnet", + "chain": "ZetaChain", + "icon": "zetachain", + "rpc": [ + "https://zetachain-athens-evm.blockpi.network/v1/rpc/public", + "wss://zetachain-athens.blockpi.network/rpc/v1/public/websocket" + ], + "faucets": ["https://labs.zetachain.com/get-zeta"], + "nativeCurrency": { "name": "Zeta", "symbol": "aZETA", "decimals": 18 }, + "infoURL": "https://zetachain.com/docs", + "shortName": "zetachain-athens", + "chainId": 7001, + "networkId": 7001, + "status": "active", + "explorers": [ + { + "name": "ZetaChain Athens Testnet Explorer", + "url": "https://explorer.athens.zetachain.com", + "standard": "none" + } + ] + }, + { + "name": "Ella the heart", + "chain": "ella", + "icon": "ella", + "rpc": ["https://rpc.ella.network"], + "faucets": [], + "nativeCurrency": { "name": "Ella", "symbol": "ELLA", "decimals": 18 }, + "infoURL": "https://ella.network", + "shortName": "ELLA", + "chainId": 7027, + "networkId": 7027, + "explorers": [ + { "name": "Ella", "url": "https://ella.network", "standard": "EIP3091" } + ] + }, + { + "name": "Planq Mainnet", + "chain": "Planq", + "icon": "planq", + "rpc": ["https://evm-rpc.planq.network"], + "faucets": [], + "nativeCurrency": { "name": "Planq", "symbol": "PLQ", "decimals": 18 }, + "infoURL": "https://planq.network", + "shortName": "planq", + "chainId": 7070, + "networkId": 7070, + "explorers": [ + { + "name": "Planq EVM Explorer (Blockscout)", + "url": "https://evm.planq.network", + "standard": "none" }, - "infoURL": "https://akroma.io", - "shortName": "aka", - "chainId": 200625, - "networkId": 200625, - "slip44": 200625 - }, - { - "name": "Alaya Mainnet", - "chain": "Alaya", - "rpc": [ - "https://openapi.alaya.network/rpc", - "wss://openapi.alaya.network/ws" - ], - "faucets": [], - "nativeCurrency": { "name": "ATP", "symbol": "atp", "decimals": 18 }, - "infoURL": "https://www.alaya.network/", - "shortName": "alaya", - "chainId": 201018, - "networkId": 1, - "icon": "alaya", - "explorers": [ - { - "name": "alaya explorer", - "url": "https://scan.alaya.network", - "standard": "none" - } - ] - }, - { - "name": "Alaya Dev Testnet", - "chain": "Alaya", - "rpc": [ - "https://devnetopenapi.alaya.network/rpc", - "wss://devnetopenapi.alaya.network/ws" - ], - "faucets": [ - "https://faucet.alaya.network/faucet/?id=f93426c0887f11eb83b900163e06151c" - ], - "nativeCurrency": { "name": "ATP", "symbol": "atp", "decimals": 18 }, - "infoURL": "https://www.alaya.network/", - "shortName": "alayadev", - "chainId": 201030, - "networkId": 1, - "icon": "alaya", - "explorers": [ - { - "name": "alaya explorer", - "url": "https://devnetscan.alaya.network", - "standard": "none" - } - ] - }, - { - "name": "PlatON Mainnet", - "chain": "PlatON", - "network": "mainnet", - "rpc": [ - "https://openapi2.platon.network/rpc", - "wss://openapi2.platon.network/ws" - ], - "faucets": [], - "nativeCurrency": { "name": "LAT", "symbol": "lat", "decimals": 18 }, - "infoURL": "https://www.platon.network", - "shortName": "platon", - "chainId": 210425, - "networkId": 1, - "icon": "platon", - "explorers": [ - { - "name": "PlatON explorer", - "url": "https://scan.platon.network", - "standard": "none" - } - ] - }, - { - "name": "Haymo Testnet", - "chain": "tHYM", - "network": "testnet", - "rpc": ["https://testnet1.haymo.network"], - "faucets": [], - "nativeCurrency": { "name": "HAYMO", "symbol": "HYM", "decimals": 18 }, - "infoURL": "https://haymoswap.web.app/", - "shortName": "hym", - "chainId": 234666, - "networkId": 234666 - }, - { - "name": "ARTIS sigma1", - "chain": "ARTIS", - "rpc": ["https://rpc.sigma1.artis.network"], - "faucets": [], - "nativeCurrency": { - "name": "ARTIS sigma1 Ether", - "symbol": "ATS", - "decimals": 18 + { + "name": "Planq Cosmos Explorer (BigDipper)", + "url": "https://explorer.planq.network", + "standard": "none" + } + ] + }, + { + "name": "KLYNTAR", + "chain": "KLY", + "rpc": [ + "https://evm.klyntar.org/kly_evm_rpc", + "https://evm.klyntarscan.org/kly_evm_rpc" + ], + "faucets": [], + "nativeCurrency": { "name": "KLYNTAR", "symbol": "KLY", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://klyntar.org", + "shortName": "kly", + "chainId": 7331, + "networkId": 7331, + "icon": "klyntar", + "explorers": [], + "status": "incubating" + }, + { + "name": "Shyft Mainnet", + "chain": "SHYFT", + "icon": "shyft", + "rpc": ["https://rpc.shyft.network/"], + "faucets": [], + "nativeCurrency": { "name": "Shyft", "symbol": "SHYFT", "decimals": 18 }, + "infoURL": "https://shyft.network", + "shortName": "shyft", + "chainId": 7341, + "networkId": 7341, + "slip44": 2147490989, + "explorers": [ + { + "name": "Shyft BX", + "url": "https://bx.shyft.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Raba Network Mainnet", + "chain": "Raba", + "icon": "raba", + "rpc": ["https://rpc.x.raba.app/", "wss://rpc.x.raba.app/ws/"], + "faucets": [], + "nativeCurrency": { "name": "Raba", "symbol": "RABA", "decimals": 18 }, + "infoURL": "https://x.raba.app/", + "shortName": "raba", + "chainId": 7484, + "networkId": 7484, + "explorers": [ + { + "name": "raba", + "url": "https://x.raba.app/explorer", + "standard": "none" + } + ] + }, + { + "name": "ADIL Testnet", + "chain": "ADIL", + "icon": "adil", + "rpc": ["https://testnet.adilchain-rpc.io"], + "faucets": ["https://testnet-faucet.adil-scan.io"], + "nativeCurrency": { + "name": "Testnet ADIL", + "symbol": "ADIL", + "decimals": 18 + }, + "infoURL": "https://adilchain.io", + "shortName": "tadil", + "chainId": 7575, + "networkId": 7575, + "explorers": [ + { + "name": "ADIL Testnet Explorer", + "url": "https://testnet.adilchain-scan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Adil Chain V2 Mainnet", + "chain": "ADIL", + "icon": "adil", + "rpc": ["https://adilchain-rpc.io"], + "faucets": [], + "nativeCurrency": { "name": "ADIL", "symbol": "ADIL", "decimals": 18 }, + "infoURL": "https://adilchain.io", + "shortName": "adil", + "chainId": 7576, + "networkId": 7576, + "explorers": [ + { + "name": "ADIL Mainnet Explorer", + "url": "https://adilchain-scan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "The Root Network - Mainnet", + "chain": "TRN", + "rpc": [ + "https://root.rootnet.live/archive", + "wss://root.rootnet.live/archive/ws" + ], + "faucets": [], + "nativeCurrency": { "name": "XRP", "symbol": "XRP", "decimals": 6 }, + "infoURL": "https://www.futureverse.com/technology/root", + "shortName": "trn-mainnet", + "chainId": 7668, + "networkId": 7668, + "explorers": [ + { + "name": "rootnet", + "url": "https://explorer.rootnet.live", + "standard": "EIP3091" + } + ] + }, + { + "name": "The Root Network - Porcini Testnet", + "chain": "TRN", + "rpc": [ + "https://porcini.rootnet.app/archive", + "wss://porcini.rootnet.app/archive/ws" + ], + "faucets": [], + "nativeCurrency": { "name": "XRP", "symbol": "XRP", "decimals": 6 }, + "infoURL": "https://www.futureverse.com/technology/root", + "shortName": "trn-porcini", + "chainId": 7672, + "networkId": 7672, + "explorers": [ + { + "name": "rootnet", + "url": "https://explorer.rootnet.cloud", + "standard": "EIP3091" + } + ] + }, + { + "name": "Canto", + "chain": "Canto", + "rpc": [ + "https://canto.slingshot.finance", + "https://canto.neobase.one", + "https://mainnode.plexnode.org:8545" + ], + "faucets": [], + "nativeCurrency": { "name": "Canto", "symbol": "CANTO", "decimals": 18 }, + "infoURL": "https://canto.io", + "shortName": "canto", + "chainId": 7700, + "networkId": 7700, + "explorers": [ + { + "name": "Canto EVM Explorer (Blockscout)", + "url": "https://evm.explorer.canto.io", + "standard": "none" }, - "infoURL": "https://artis.eco", - "shortName": "ats", - "chainId": 246529, - "networkId": 246529, - "slip44": 246529 - }, - { - "name": "ARTIS Testnet tau1", - "chain": "ARTIS", - "rpc": ["https://rpc.tau1.artis.network"], - "faucets": [], - "nativeCurrency": { - "name": "ARTIS tau1 Ether", - "symbol": "tATS", - "decimals": 18 + { + "name": "Canto Cosmos Explorer", + "url": "https://cosmos-explorers.neobase.one", + "standard": "none" }, - "infoURL": "https://artis.network", - "shortName": "atstau", - "chainId": 246785, - "networkId": 246785 - }, - { - "name": "Social Smart Chain Mainnet", - "chain": "SoChain", - "rpc": ["https://socialsmartchain.digitalnext.business"], - "faucets": [], - "nativeCurrency": { "name": "SoChain", "symbol": "$OC", "decimals": 18 }, - "infoURL": "https://digitalnext.business/SocialSmartChain", - "shortName": "SoChain", - "chainId": 281121, - "networkId": 281121, - "explorers": [] - }, - { - "name": "Polis Testnet", - "chain": "Sparta", - "icon": "polis", - "rpc": ["https://sparta-rpc.polis.tech"], - "faucets": ["https://faucet.polis.tech"], - "nativeCurrency": { "name": "tPolis", "symbol": "tPOLIS", "decimals": 18 }, - "infoURL": "https://polis.tech", - "shortName": "sparta", - "chainId": 333888, - "networkId": 333888 - }, - { - "name": "Polis Mainnet", - "chain": "Olympus", - "icon": "polis", - "rpc": ["https://rpc.polis.tech"], - "faucets": ["https://faucet.polis.tech"], - "nativeCurrency": { "name": "Polis", "symbol": "POLIS", "decimals": 18 }, - "infoURL": "https://polis.tech", - "shortName": "olympus", - "chainId": 333999, - "networkId": 333999 - }, - { - "name": "Arbitrum Rinkeby", - "title": "Arbitrum Testnet Rinkeby", - "chainId": 421611, - "shortName": "arb-rinkeby", - "chain": "ETH", - "networkId": 421611, - "nativeCurrency": { - "name": "Arbitrum Rinkeby Ether", - "symbol": "ARETH", - "decimals": 18 + { + "name": "Canto EVM Explorer (Blockscout)", + "url": "https://tuber.build", + "standard": "none" + } + ] + }, + { + "name": "Canto Tesnet", + "chain": "Canto", + "rpc": ["https://testnet-archive.plexnode.wtf"], + "faucets": [], + "nativeCurrency": { + "name": "Testnet Canto", + "symbol": "CANTO", + "decimals": 18 + }, + "infoURL": "https://canto.io", + "shortName": "TestnetCanto", + "chainId": 7701, + "networkId": 7701, + "explorers": [ + { + "name": "Canto Testnet EVM Explorer (Blockscout)", + "url": "https://testnet.tuber.build", + "standard": "none" + } + ] + }, + { + "name": "Rise of the Warbots Testnet", + "chain": "nmactest", + "rpc": [ + "https://testnet1.riseofthewarbots.com", + "https://testnet2.riseofthewarbots.com", + "https://testnet3.riseofthewarbots.com", + "https://testnet4.riseofthewarbots.com", + "https://testnet5.riseofthewarbots.com" + ], + "faucets": [], + "nativeCurrency": { + "name": "Nano Machines", + "symbol": "NMAC", + "decimals": 18 + }, + "infoURL": "https://riseofthewarbots.com/", + "shortName": "RiseOfTheWarbotsTestnet", + "chainId": 7777, + "networkId": 7777, + "explorers": [ + { + "name": "avascan", + "url": "https://testnet.avascan.info/blockchain/2mZ9doojfwHzXN3VXDQELKnKyZYxv7833U8Yq5eTfFx3hxJtiy", + "standard": "none" + } + ] + }, + { + "name": "Hazlor Testnet", + "chain": "SCAS", + "rpc": [ + "https://hatlas.rpc.hazlor.com:8545", + "wss://hatlas.rpc.hazlor.com:8546" + ], + "faucets": ["https://faucet.hazlor.com"], + "nativeCurrency": { + "name": "Hazlor Test Coin", + "symbol": "TSCAS", + "decimals": 18 + }, + "infoURL": "https://hazlor.com", + "shortName": "tscas", + "chainId": 7878, + "networkId": 7878, + "explorers": [ + { + "name": "Hazlor Testnet Explorer", + "url": "https://explorer.hazlor.com", + "standard": "none" + } + ] + }, + { + "name": "DOS Chain", + "chain": "DOS", + "rpc": ["https://main.doschain.com"], + "faucets": [], + "nativeCurrency": { "name": "DOS", "symbol": "DOS", "decimals": 18 }, + "infoURL": "https://doschain.io", + "shortName": "dos", + "chainId": 7979, + "networkId": 7979, + "icon": "doschain", + "explorers": [ + { + "name": "DOScan", + "url": "https://doscan.io", + "icon": "doschain", + "standard": "EIP3091" + } + ] + }, + { + "name": "Teleport", + "chain": "Teleport", + "rpc": ["https://evm-rpc.teleport.network"], + "faucets": [], + "nativeCurrency": { "name": "Tele", "symbol": "TELE", "decimals": 18 }, + "infoURL": "https://teleport.network", + "shortName": "teleport", + "chainId": 8000, + "networkId": 8000, + "icon": "teleport", + "explorers": [ + { + "name": "Teleport EVM Explorer (Blockscout)", + "url": "https://evm-explorer.teleport.network", + "standard": "none", + "icon": "teleport" }, - "rpc": ["https://rinkeby.arbitrum.io/rpc"], - "faucets": ["http://fauceth.komputing.org?chain=421611&address=${ADDRESS}"], - "infoURL": "https://arbitrum.io", - "explorers": [ - { - "name": "arbiscan-testnet", - "url": "https://testnet.arbiscan.io", - "standard": "EIP3091" - }, - { - "name": "arbitrum-rinkeby", - "url": "https://rinkeby-explorer.arbitrum.io", - "standard": "EIP3091" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-4", - "bridges": [{ "url": "https://bridge.arbitrum.io" }] - } - }, - { - "name": "Dexalot Testnet", - "chain": "DEXALOT", - "network": "testnet", - "rpc": ["https://subnets.avax.network/dexalot/testnet/rpc"], - "faucets": ["https://sfaucet.dexalot-test.com"], - "nativeCurrency": { "name": "Dexalot", "symbol": "ALOT", "decimals": 18 }, - "infoURL": "https://dexalot.com", - "shortName": "Dexalot", - "chainId": 432201, - "networkId": 432201, - "explorers": [ - { - "name": "Avalanche Subnet Explorer", - "url": "https://subnets.avax.network/dexalot/testnet/explorer", - "standard": "EIP3091" - } - ] - }, - { - "name": "Weelink Testnet", - "chain": "WLK", - "rpc": ["https://weelinknode1c.gw002.oneitfarm.com"], - "faucets": ["https://faucet.weelink.gw002.oneitfarm.com"], - "nativeCurrency": { - "name": "Weelink Chain Token", - "symbol": "tWLK", - "decimals": 18 + { + "name": "Teleport Cosmos Explorer (Big Dipper)", + "url": "https://explorer.teleport.network", + "standard": "none", + "icon": "teleport" + } + ] + }, + { + "name": "Teleport Testnet", + "chain": "Teleport", + "rpc": ["https://evm-rpc.testnet.teleport.network"], + "faucets": ["https://chain-docs.teleport.network/testnet/faucet.html"], + "nativeCurrency": { "name": "Tele", "symbol": "TELE", "decimals": 18 }, + "infoURL": "https://teleport.network", + "shortName": "teleport-testnet", + "chainId": 8001, + "networkId": 8001, + "icon": "teleport", + "explorers": [ + { + "name": "Teleport EVM Explorer (Blockscout)", + "url": "https://evm-explorer.testnet.teleport.network", + "standard": "none", + "icon": "teleport" }, - "infoURL": "https://weelink.cloud", - "shortName": "wlkt", - "chainId": 444900, - "networkId": 444900, - "explorers": [ - { - "name": "weelink-testnet", - "url": "https://weelink.cloud/#/blockView/overview", - "standard": "none" - } - ] - }, - { - "name": "OpenChain Mainnet", - "chain": "OpenChain", - "rpc": ["https://baas-rpc.luniverse.io:18545?lChainId=1641349324562974539"], - "faucets": [], - "nativeCurrency": { "name": "OpenCoin", "symbol": "OPC", "decimals": 10 }, - "infoURL": "https://www.openchain.live", - "shortName": "oc", - "chainId": 474142, - "networkId": 474142, - "explorers": [ - { - "name": "SIDE SCAN", - "url": "https://sidescan.luniverse.io/1641349324562974539", - "standard": "none" - } - ] - }, - { - "name": "CMP-Testnet", - "chain": "CMP", - "network": "testnet", - "rpc": [ - "https://galaxy.block.caduceus.foundation", - "wss://galaxy.block.caduceus.foundation" - ], - "faucets": ["https://dev.caduceus.foundation/testNetwork"], - "nativeCurrency": { - "name": "Caduceus Testnet Token", - "symbol": "CMP", - "decimals": 18 + { + "name": "Teleport Cosmos Explorer (Big Dipper)", + "url": "https://explorer.testnet.teleport.network", + "standard": "none", + "icon": "teleport" + } + ] + }, + { + "name": "MDGL Testnet", + "chain": "MDGL", + "rpc": ["https://testnet.mdgl.io"], + "faucets": [], + "nativeCurrency": { + "name": "MDGL Token", + "symbol": "MDGLT", + "decimals": 18 + }, + "infoURL": "https://mdgl.io", + "shortName": "mdgl", + "chainId": 8029, + "networkId": 8029 + }, + { + "name": "Shardeum Liberty 1.X", + "chain": "Shardeum", + "icon": "shardeum", + "rpc": ["https://liberty10.shardeum.org/"], + "faucets": ["https://faucet.liberty10.shardeum.org"], + "nativeCurrency": { + "name": "Shardeum SHM", + "symbol": "SHM", + "decimals": 18 + }, + "infoURL": "https://docs.shardeum.org/", + "shortName": "Liberty10", + "chainId": 8080, + "networkId": 8080, + "explorers": [ + { + "name": "Shardeum Scan", + "url": "https://explorer-liberty10.shardeum.org", + "standard": "EIP3091" + } + ], + "redFlags": ["reusedChainId"] + }, + { + "name": "Shardeum Liberty 2.X", + "chain": "Shardeum", + "icon": "shardeum", + "rpc": ["https://liberty20.shardeum.org/"], + "faucets": ["https://faucet.liberty20.shardeum.org"], + "nativeCurrency": { + "name": "Shardeum SHM", + "symbol": "SHM", + "decimals": 18 + }, + "infoURL": "https://docs.shardeum.org/", + "shortName": "Liberty20", + "chainId": 8081, + "networkId": 8081, + "explorers": [ + { + "name": "Shardeum Scan", + "url": "https://explorer-liberty20.shardeum.org", + "standard": "EIP3091" + } + ], + "redFlags": ["reusedChainId"] + }, + { + "name": "Shardeum Sphinx 1.X", + "chain": "Shardeum", + "icon": "shardeum", + "rpc": ["https://sphinx.shardeum.org/"], + "faucets": ["https://faucet-sphinx.shardeum.org/"], + "nativeCurrency": { + "name": "Shardeum SHM", + "symbol": "SHM", + "decimals": 18 + }, + "infoURL": "https://docs.shardeum.org/", + "shortName": "Sphinx10", + "chainId": 8082, + "networkId": 8082, + "explorers": [ + { + "name": "Shardeum Scan", + "url": "https://explorer-sphinx.shardeum.org", + "standard": "EIP3091" + } + ], + "redFlags": ["reusedChainId"] + }, + { + "name": "BitEth", + "chain": "BTE", + "rpc": ["https://rpc.biteth.org"], + "faucets": [], + "nativeCurrency": { "name": "BitEth", "symbol": "BTE", "decimals": 18 }, + "infoURL": "https://biteth.org", + "shortName": "BitEth", + "chainId": 8086, + "networkId": 8086, + "explorers": [] + }, + { + "name": "StreamuX Blockchain", + "chain": "StreamuX", + "rpc": [ + "https://u0ma6t6heb:KDNwOsRDGcyM2Oeui1p431Bteb4rvcWkuPgQNHwB4FM@u0xy4x6x82-u0e2mg517m-rpc.us0-aws.kaleido.io/" + ], + "faucets": [], + "nativeCurrency": { "name": "StreamuX", "symbol": "SmuX", "decimals": 18 }, + "infoURL": "https://www.streamux.cloud", + "shortName": "StreamuX", + "chainId": 8098, + "networkId": 8098 + }, + { + "name": "Qitmeer Network Testnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Qitmeer Testnet", + "symbol": "MEER-T", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "meertest", + "chainId": 8131, + "networkId": 8131, + "icon": "meer", + "explorers": [ + { + "name": "meerscan testnet", + "icon": "meer", + "url": "https://testnet.qng.meerscan.io", + "standard": "none" + } + ] + }, + { + "name": "Qitmeer Network Mixnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Qitmeer Mixnet", + "symbol": "MEER-M", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "meermix", + "icon": "meer", + "chainId": 8132, + "networkId": 8132, + "status": "incubating" + }, + { + "name": "Qitmeer Network Privnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Qitmeer Privnet", + "symbol": "MEER-P", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "meerpriv", + "icon": "meer", + "chainId": 8133, + "networkId": 8133, + "status": "incubating" + }, + { + "name": "Amana", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Amana Mainnet", + "symbol": "MEER", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "amana", + "icon": "meer", + "chainId": 8134, + "networkId": 8134, + "status": "incubating" + }, + { + "name": "Flana", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Flana Mainnet", + "symbol": "MEER", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "flana", + "icon": "meer", + "chainId": 8135, + "networkId": 8135, + "status": "incubating" + }, + { + "name": "Mizana", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Mizana Mainnet", + "symbol": "MEER", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "mizana", + "icon": "meer", + "chainId": 8136, + "networkId": 8136, + "status": "incubating" + }, + { + "name": "BeOne Chain Testnet", + "chain": "BOC", + "rpc": [ + "https://pre-boc1.beonechain.com", + "https://pre-boc2.beonechain.com", + "https://pre-boc3.beonechain.com" + ], + "faucets": ["https://testnet.beonescan.com/faucet"], + "nativeCurrency": { + "name": "BeOne Chain Testnet", + "symbol": "BOC", + "decimals": 18 + }, + "infoURL": "https://testnet.beonescan.com", + "shortName": "tBOC", + "chainId": 8181, + "networkId": 8181, + "icon": "beonechain", + "explorers": [ + { + "name": "BeOne Chain Testnet", + "url": "https://testnet.beonescan.com", + "icon": "beonechain", + "standard": "none" + } + ] + }, + { + "name": "Klaytn Mainnet Cypress", + "chain": "KLAY", + "rpc": ["https://public-node-api.klaytnapi.com/v1/cypress"], + "faucets": [], + "nativeCurrency": { "name": "KLAY", "symbol": "KLAY", "decimals": 18 }, + "infoURL": "https://www.klaytn.com/", + "shortName": "Cypress", + "chainId": 8217, + "networkId": 8217, + "slip44": 8217, + "explorers": [ + { + "name": "Klaytnscope", + "url": "https://scope.klaytn.com", + "standard": "none" + } + ] + }, + { + "name": "Blockton Blockchain", + "chain": "Blockton Blockchain", + "icon": "bton", + "rpc": ["https://rpc.blocktonscan.com/"], + "faucets": ["https://faucet.blocktonscan.com/"], + "nativeCurrency": { "name": "BLOCKTON", "symbol": "BTON", "decimals": 18 }, + "infoURL": "https://blocktoncoin.com", + "shortName": "BTON", + "chainId": 8272, + "networkId": 8272, + "explorers": [ + { + "name": "Blockton Explorer", + "url": "https://blocktonscan.com", + "standard": "none" + } + ] + }, + { + "name": "KorthoTest", + "chain": "Kortho", + "rpc": ["https://www.krotho-test.net"], + "faucets": [], + "nativeCurrency": { + "name": "Kortho Test", + "symbol": "KTO", + "decimals": 11 + }, + "infoURL": "https://www.kortho.io/", + "shortName": "Kortho", + "chainId": 8285, + "networkId": 8285 + }, + { + "name": "Dracones Financial Services", + "title": "The Dracones Mainnet", + "chain": "FUCK", + "rpc": ["https://api.dracones.net/"], + "faucets": [], + "nativeCurrency": { + "name": "Functionally Universal Coin Kind", + "symbol": "FUCK", + "decimals": 18 + }, + "infoURL": "https://wolfery.com", + "shortName": "fuck", + "chainId": 8387, + "networkId": 8387, + "icon": "dracones", + "explorers": [] + }, + { + "name": "Base", + "chain": "ETH", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://base.org", + "shortName": "base", + "chainId": 8453, + "networkId": 8453, + "status": "incubating" + }, + { + "name": "Toki Network", + "chain": "TOKI", + "rpc": ["https://mainnet.buildwithtoki.com/v0/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Toki", "symbol": "TOKI", "decimals": 18 }, + "infoURL": "https://www.buildwithtoki.com", + "shortName": "toki", + "chainId": 8654, + "networkId": 8654, + "icon": "toki", + "explorers": [] + }, + { + "name": "Toki Testnet", + "chain": "TOKI", + "rpc": ["https://testnet.buildwithtoki.com/v0/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Toki", "symbol": "TOKI", "decimals": 18 }, + "infoURL": "https://www.buildwithtoki.com", + "shortName": "toki-testnet", + "chainId": 8655, + "networkId": 8655, + "icon": "toki", + "explorers": [] + }, + { + "name": "TOOL Global Mainnet", + "chain": "OLO", + "rpc": ["https://mainnet-web3.wolot.io"], + "faucets": [], + "nativeCurrency": { + "name": "TOOL Global", + "symbol": "OLO", + "decimals": 18 + }, + "infoURL": "https://ibdt.io", + "shortName": "olo", + "chainId": 8723, + "networkId": 8723, + "slip44": 479, + "explorers": [ + { + "name": "OLO Block Explorer", + "url": "https://www.olo.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "TOOL Global Testnet", + "chain": "OLO", + "rpc": ["https://testnet-web3.wolot.io"], + "faucets": ["https://testnet-explorer.wolot.io"], + "nativeCurrency": { + "name": "TOOL Global", + "symbol": "OLO", + "decimals": 18 + }, + "infoURL": "https://testnet-explorer.wolot.io", + "shortName": "tolo", + "chainId": 8724, + "networkId": 8724, + "slip44": 479 + }, + { + "name": "Alph Network", + "chain": "ALPH", + "rpc": ["https://rpc.alph.network", "wss://rpc.alph.network"], + "faucets": [], + "nativeCurrency": { + "name": "Alph Network", + "symbol": "ALPH", + "decimals": 18 + }, + "infoURL": "https://alph.network", + "shortName": "alph", + "chainId": 8738, + "networkId": 8738, + "explorers": [ + { + "name": "alphscan", + "url": "https://explorer.alph.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "TMY Chain", + "chain": "TMY", + "icon": "tmychain", + "rpc": ["https://node1.tmyblockchain.org/rpc"], + "faucets": ["https://faucet.tmychain.org/"], + "nativeCurrency": { "name": "TMY", "symbol": "TMY", "decimals": 18 }, + "infoURL": "https://tmychain.org/", + "shortName": "tmy", + "chainId": 8768, + "networkId": 8768 + }, + { + "name": "MARO Blockchain Mainnet", + "chain": "MARO Blockchain", + "icon": "MARO", + "rpc": ["https://rpc-mainnet.ma.ro"], + "faucets": [], + "nativeCurrency": { "name": "MARO", "symbol": "MARO", "decimals": 18 }, + "infoURL": "https://ma.ro/", + "shortName": "maro", + "chainId": 8848, + "networkId": 8848, + "explorers": [ + { "name": "MARO Scan", "url": "https://scan.ma.ro/#", "standard": "none" } + ] + }, + { + "name": "Unique", + "icon": "unique", + "chain": "UNQ", + "rpc": [ + "https://rpc.unique.network", + "https://eu-rpc.unique.network", + "https://asia-rpc.unique.network", + "https://us-rpc.unique.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Unique", "symbol": "UNQ", "decimals": 18 }, + "infoURL": "https://unique.network", + "shortName": "unq", + "chainId": 8880, + "networkId": 8880, + "explorers": [ + { + "name": "Unique Scan", + "url": "https://uniquescan.io/unique", + "standard": "none" + } + ] + }, + { + "name": "Quartz by Unique", + "icon": "quartz", + "chain": "UNQ", + "rpc": [ + "https://rpc-quartz.unique.network", + "https://quartz.api.onfinality.io/public-ws", + "https://eu-rpc-quartz.unique.network", + "https://asia-rpc-quartz.unique.network", + "https://us-rpc-quartz.unique.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Quartz", "symbol": "QTZ", "decimals": 18 }, + "infoURL": "https://unique.network", + "shortName": "qtz", + "chainId": 8881, + "networkId": 8881, + "explorers": [ + { + "name": "Unique Scan / Quartz", + "url": "https://uniquescan.io/quartz", + "standard": "none" + } + ] + }, + { + "name": "Opal testnet by Unique", + "icon": "opal", + "chain": "UNQ", + "rpc": [ + "https://rpc-opal.unique.network", + "https://us-rpc-opal.unique.network", + "https://eu-rpc-opal.unique.network", + "https://asia-rpc-opal.unique.network" + ], + "faucets": ["https://t.me/unique2faucet_opal_bot"], + "nativeCurrency": { "name": "Opal", "symbol": "UNQ", "decimals": 18 }, + "infoURL": "https://unique.network", + "shortName": "opl", + "chainId": 8882, + "networkId": 8882, + "explorers": [ + { + "name": "Unique Scan / Opal", + "url": "https://uniquescan.io/opal", + "standard": "none" + } + ] + }, + { + "name": "Sapphire by Unique", + "icon": "sapphire", + "chain": "UNQ", + "rpc": [ + "https://rpc-sapphire.unique.network", + "https://us-rpc-sapphire.unique.network", + "https://eu-rpc-sapphire.unique.network", + "https://asia-rpc-sapphire.unique.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Quartz", "symbol": "QTZ", "decimals": 18 }, + "infoURL": "https://unique.network", + "shortName": "sph", + "chainId": 8883, + "networkId": 8883, + "explorers": [ + { + "name": "Unique Scan / Sapphire", + "url": "https://uniquescan.io/sapphire", + "standard": "none" + } + ] + }, + { + "name": "XANAChain", + "chain": "XANAChain", + "rpc": ["https://mainnet.xana.net/rpc"], + "faucets": [], + "nativeCurrency": { "name": "XETA", "symbol": "XETA", "decimals": 18 }, + "infoURL": "https://xanachain.xana.net/", + "shortName": "XANAChain", + "chainId": 8888, + "networkId": 8888, + "icon": "xeta", + "explorers": [ + { + "name": "XANAChain", + "url": "https://xanachain.xana.net", + "standard": "EIP3091" + } + ], + "redFlags": ["reusedChainId"] + }, + { + "name": "Vyvo Smart Chain", + "chain": "VSC", + "rpc": ["https://vsc-dataseed.vyvo.org:8889"], + "faucets": [], + "nativeCurrency": { "name": "VSC", "symbol": "VSC", "decimals": 18 }, + "infoURL": "https://vsc-dataseed.vyvo.org", + "shortName": "vsc", + "chainId": 8889, + "networkId": 8889 + }, + { + "name": "Mammoth Mainnet", + "title": "Mammoth Chain", + "chain": "MMT", + "rpc": [ + "https://dataseed.mmtscan.io", + "https://dataseed1.mmtscan.io", + "https://dataseed2.mmtscan.io" + ], + "faucets": ["https://faucet.mmtscan.io/"], + "nativeCurrency": { + "name": "Mammoth Token", + "symbol": "MMT", + "decimals": 18 + }, + "infoURL": "https://mmtchain.io/", + "shortName": "mmt", + "chainId": 8898, + "networkId": 8898, + "icon": "mmt", + "explorers": [ + { + "name": "mmtscan", + "url": "https://mmtscan.io", + "standard": "EIP3091", + "icon": "mmt" + } + ] + }, + { + "name": "JIBCHAIN L1", + "chain": "JBC", + "rpc": ["https://rpc-l1.jibchain.net"], + "faucets": [], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "nativeCurrency": { "name": "JIBCOIN", "symbol": "JBC", "decimals": 18 }, + "infoURL": "https://jibchain.net", + "shortName": "jbc", + "chainId": 8899, + "networkId": 8899, + "explorers": [ + { + "name": "JIBCHAIN Explorer", + "url": "https://exp-l1.jibchain.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Giant Mammoth Mainnet", + "title": "Giant Mammoth Chain", + "chain": "GMMT", + "rpc": ["https://rpc-asia.gmmtchain.io"], + "faucets": [], + "nativeCurrency": { + "name": "Giant Mammoth Coin", + "symbol": "GMMT", + "decimals": 18 + }, + "infoURL": "https://gmmtchain.io/", + "shortName": "gmmt", + "chainId": 8989, + "networkId": 8989, + "icon": "gmmt", + "explorers": [ + { + "name": "gmmtscan", + "url": "https://scan.gmmtchain.io", + "standard": "EIP3091", + "icon": "gmmt" + } + ] + }, + { + "name": "bloxberg", + "chain": "bloxberg", + "rpc": ["https://core.bloxberg.org"], + "faucets": ["https://faucet.bloxberg.org/"], + "nativeCurrency": { "name": "BERG", "symbol": "U+25B3", "decimals": 18 }, + "infoURL": "https://bloxberg.org", + "shortName": "berg", + "chainId": 8995, + "networkId": 8995 + }, + { + "name": "Evmos Testnet", + "chain": "Evmos", + "rpc": ["https://eth.bd.evmos.dev:8545"], + "faucets": ["https://faucet.evmos.dev"], + "nativeCurrency": { + "name": "test-Evmos", + "symbol": "tEVMOS", + "decimals": 18 + }, + "infoURL": "https://evmos.org", + "shortName": "evmos-testnet", + "chainId": 9000, + "networkId": 9000, + "icon": "evmos", + "explorers": [ + { + "name": "Evmos EVM Explorer", + "url": "https://evm.evmos.dev", + "standard": "EIP3091", + "icon": "evmos" }, - "infoURL": "https://caduceus.foundation/", - "shortName": "cmp", - "chainId": 512512, - "networkId": 512512, - "explorers": [ - { - "name": "Galaxy Scan", - "url": "https://galaxy.scan.caduceus.foundation", - "standard": "none" - } - ] - }, - { - "name": "Vision - Vpioneer Test Chain", - "chain": "Vision-Vpioneer", - "rpc": ["https://vpioneer.infragrid.v.network/ethereum/compatible"], - "faucets": ["https://vpioneerfaucet.visionscan.org"], - "nativeCurrency": { "name": "VS", "symbol": "VS", "decimals": 18 }, - "infoURL": "https://visionscan.org", - "shortName": "vpioneer", - "chainId": 666666, - "networkId": 666666, - "slip44": 60 - }, - { - "name": "Vision - Mainnet", - "chain": "Vision", - "rpc": ["https://infragrid.v.network/ethereum/compatible"], - "faucets": [], - "nativeCurrency": { "name": "VS", "symbol": "VS", "decimals": 18 }, - "infoURL": "https://www.v.network", - "explorers": [ - { - "name": "Visionscan", - "url": "https://www.visionscan.org", - "standard": "EIP3091" - } - ], - "shortName": "vision", - "chainId": 888888, - "networkId": 888888, - "slip44": 60 - }, - { - "name": "Eluvio Content Fabric", - "chain": "Eluvio", - "rpc": [ - "https://host-76-74-28-226.contentfabric.io/eth/", - "https://host-76-74-28-232.contentfabric.io/eth/", - "https://host-76-74-29-2.contentfabric.io/eth/", - "https://host-76-74-29-8.contentfabric.io/eth/", - "https://host-76-74-29-34.contentfabric.io/eth/", - "https://host-76-74-29-35.contentfabric.io/eth/", - "https://host-154-14-211-98.contentfabric.io/eth/", - "https://host-154-14-192-66.contentfabric.io/eth/", - "https://host-60-240-133-202.contentfabric.io/eth/", - "https://host-64-235-250-98.contentfabric.io/eth/" - ], - "faucets": [], - "nativeCurrency": { "name": "ELV", "symbol": "ELV", "decimals": 18 }, - "infoURL": "https://eluv.io", - "shortName": "elv", - "chainId": 955305, - "networkId": 955305, - "slip44": 1011, - "explorers": [ - { - "name": "blockscout", - "url": "https://explorer.eluv.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Etho Protocol", - "chain": "ETHO", - "rpc": ["https://rpc.ethoprotocol.com"], - "faucets": [], - "nativeCurrency": { - "name": "Etho Protocol", - "symbol": "ETHO", - "decimals": 18 + { + "name": "Evmos Cosmos Explorer", + "url": "https://explorer.evmos.dev", + "standard": "none", + "icon": "evmos" + } + ] + }, + { + "name": "Evmos", + "chain": "Evmos", + "rpc": [ + "https://eth.bd.evmos.org:8545", + "https://evmos-evm.publicnode.com" + ], + "faucets": [], + "nativeCurrency": { "name": "Evmos", "symbol": "EVMOS", "decimals": 18 }, + "infoURL": "https://evmos.org", + "shortName": "evmos", + "chainId": 9001, + "networkId": 9001, + "icon": "evmos", + "explorers": [ + { + "name": "Evmos EVM Explorer (Escan)", + "url": "https://escan.live", + "standard": "none", + "icon": "evmos" }, - "infoURL": "https://ethoprotocol.com", - "shortName": "etho", - "chainId": 1313114, - "networkId": 1313114, - "slip44": 1313114, - "explorers": [ - { - "name": "blockscout", - "url": "https://explorer.ethoprotocol.com", - "standard": "none" - } - ] - }, - { - "name": "Xerom", - "chain": "XERO", - "rpc": ["https://rpc.xerom.org"], - "faucets": [], - "nativeCurrency": { - "name": "Xerom Ether", - "symbol": "XERO", - "decimals": 18 + { + "name": "Evmos Cosmos Explorer (Mintscan)", + "url": "https://www.mintscan.io/evmos", + "standard": "none", + "icon": "evmos" + } + ] + }, + { + "name": "BerylBit Mainnet", + "chain": "BRB", + "rpc": ["https://mainnet.berylbit.io"], + "faucets": ["https://t.me/BerylBit"], + "nativeCurrency": { + "name": "BerylBit Chain Native Token", + "symbol": "BRB", + "decimals": 18 + }, + "infoURL": "https://www.beryl-bit.com", + "shortName": "brb", + "chainId": 9012, + "networkId": 9012, + "icon": "berylbit", + "explorers": [ + { + "name": "berylbit-explorer", + "url": "https://explorer.berylbit.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Genesis Coin", + "chain": "Genesis", + "rpc": ["https://genesis-gn.com", "wss://genesis-gn.com"], + "faucets": [], + "nativeCurrency": { "name": "GN Coin", "symbol": "GNC", "decimals": 18 }, + "infoURL": "https://genesis-gn.com", + "shortName": "GENEC", + "chainId": 9100, + "networkId": 9100 + }, + { + "name": "Rinia Testnet Old", + "chain": "FIRE", + "icon": "rinia", + "rpc": [], + "faucets": ["https://faucet.thefirechain.com"], + "nativeCurrency": { "name": "Firechain", "symbol": "FIRE", "decimals": 18 }, + "infoURL": "https://thefirechain.com", + "shortName": "_old_tfire", + "chainId": 9170, + "networkId": 9170, + "explorers": [], + "status": "deprecated" + }, + { + "name": "Dogcoin Testnet", + "chain": "DOGS", + "icon": "dogs", + "rpc": ["https://testnet-rpc.dogcoin.me"], + "faucets": ["https://faucet.dogcoin.network"], + "nativeCurrency": { "name": "Dogcoin", "symbol": "DOGS", "decimals": 18 }, + "infoURL": "https://dogcoin.network", + "shortName": "DOGSt", + "chainId": 9339, + "networkId": 9339, + "explorers": [ + { + "name": "Dogcoin", + "url": "https://testnet.dogcoin.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Rangers Protocol Testnet Robin", + "chain": "Rangers", + "icon": "rangers", + "rpc": ["https://robin.rangersprotocol.com/api/jsonrpc"], + "faucets": ["https://robin-faucet.rangersprotocol.com"], + "nativeCurrency": { + "name": "Rangers Protocol Gas", + "symbol": "tRPG", + "decimals": 18 + }, + "infoURL": "https://rangersprotocol.com", + "shortName": "trpg", + "chainId": 9527, + "networkId": 9527, + "explorers": [ + { + "name": "rangersscan-robin", + "url": "https://robin-rangersscan.rangersprotocol.com", + "standard": "none" + } + ] + }, + { + "name": "QEasyWeb3 Testnet", + "chain": "QET", + "rpc": ["https://qeasyweb3.com"], + "faucets": ["http://faucet.qeasyweb3.com"], + "nativeCurrency": { "name": "QET", "symbol": "QET", "decimals": 18 }, + "infoURL": "https://www.qeasyweb3.com", + "shortName": "QETTest", + "chainId": 9528, + "networkId": 9528, + "explorers": [ + { + "name": "QEasyWeb3 Explorer", + "url": "https://www.qeasyweb3.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Neonlink Testnet", + "chain": "Neonlink", + "rpc": ["https://testnet.neonlink.io"], + "faucets": ["https://faucet.neonlink.io/"], + "nativeCurrency": { + "name": "Neonlink Native Token", + "symbol": "tNEON", + "decimals": 18 + }, + "infoURL": "https://neonlink.io", + "shortName": "testneon", + "chainId": 9559, + "networkId": 9559, + "icon": "neonlink", + "explorers": [ + { + "name": "Neon Blockchain Explorer", + "url": "https://testnet-scan.neonlink.io", + "standard": "EIP3091", + "icon": "neonlink" + } + ] + }, + { + "name": "Oort MainnetDev", + "title": "Oort MainnetDev", + "chain": "MainnetDev", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Oort", "symbol": "CCN", "decimals": 18 }, + "infoURL": "https://oortech.com", + "shortName": "MainnetDev", + "chainId": 9700, + "networkId": 9700, + "icon": "ccn" + }, + { + "name": "Boba BNB Testnet", + "chain": "Boba BNB Testnet", + "rpc": [ + "https://testnet.bnb.boba.network", + "wss://wss.testnet.bnb.boba.network", + "https://replica.testnet.bnb.boba.network", + "wss://replica-wss.testnet.bnb.boba.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "BobaBnbTestnet", + "chainId": 9728, + "networkId": 9728, + "explorers": [ + { + "name": "Boba BNB Testnet block explorer", + "url": "https://blockexplorer.testnet.bnb.boba.network", + "standard": "none" + } + ] + }, + { + "name": "MainnetZ Testnet", + "chain": "NetZ", + "icon": "mainnetzTestnet", + "rpc": ["https://testnet-rpc.mainnetz.io"], + "faucets": ["https://faucet.mainnetz.io"], + "nativeCurrency": { "name": "MainnetZ", "symbol": "NetZ", "decimals": 18 }, + "infoURL": "https://testnet.mainnetz.io", + "shortName": "NetZt", + "chainId": 9768, + "networkId": 9768, + "explorers": [ + { + "name": "MainnetZ", + "url": "https://testnet.mainnetz.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "PepeNetwork Mainnet", + "chain": "PepeNetwork", + "rpc": ["https://rpc-mainnet.pepenetwork.io"], + "faucets": [], + "nativeCurrency": { "name": "Pepe", "symbol": "WPEPE", "decimals": 18 }, + "infoURL": "https://pepenetwork.io", + "shortName": "pn", + "chainId": 9779, + "networkId": 9779, + "icon": "pepenetwork", + "explorers": [ + { + "name": "Pepe Explorer", + "url": "https://explorer.pepenetwork.io", + "icon": "pepenetwork", + "standard": "none" + } + ] + }, + { + "name": "Carbon EVM", + "chain": "Carbon", + "icon": "carbon", + "rpc": ["https://evm-api.carbon.network/"], + "faucets": [], + "nativeCurrency": { "name": "swth", "symbol": "SWTH", "decimals": 18 }, + "infoURL": "https://carbon.network/", + "shortName": "carbon", + "chainId": 9790, + "networkId": 9790, + "explorers": [] + }, + { + "name": "Carbon EVM Testnet", + "chain": "Carbon", + "icon": "carbon", + "rpc": ["https://test-evm-api.carbon.network/"], + "faucets": [], + "nativeCurrency": { "name": "swth", "symbol": "SWTH", "decimals": 18 }, + "infoURL": "https://carbon.network/", + "shortName": "carbon-testnet", + "chainId": 9792, + "networkId": 9792, + "explorers": [] + }, + { + "name": "AltLayer Testnet", + "chain": "ETH", + "rpc": ["https://testnet-rollup-api.altlayer.io"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://altlayer.io", + "shortName": "alt-testnet", + "chainId": 9997, + "networkId": 9997, + "icon": "altlayer", + "explorers": [ + { + "name": "blockscout", + "url": "https://testnet-rollup-explorer.altlayer.io", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "myOwn Testnet", + "chain": "myOwn", + "rpc": ["https://geth.dev.bccloud.net"], + "faucets": [], + "nativeCurrency": { "name": "MYN", "symbol": "MYN", "decimals": 18 }, + "infoURL": "https://docs.bccloud.net/", + "shortName": "myn", + "chainId": 9999, + "networkId": 9999 + }, + { + "name": "Smart Bitcoin Cash", + "chain": "smartBCH", + "rpc": [ + "https://smartbch.greyh.at", + "https://rpc-mainnet.smartbch.org", + "https://smartbch.fountainhead.cash/mainnet", + "https://smartbch.devops.cash/mainnet" + ], + "faucets": [], + "nativeCurrency": { + "name": "Bitcoin Cash", + "symbol": "BCH", + "decimals": 18 + }, + "infoURL": "https://smartbch.org/", + "shortName": "smartbch", + "chainId": 10000, + "networkId": 10000 + }, + { + "name": "Smart Bitcoin Cash Testnet", + "chain": "smartBCHTest", + "rpc": [ + "https://rpc-testnet.smartbch.org", + "https://smartbch.devops.cash/testnet" + ], + "faucets": [], + "nativeCurrency": { + "name": "Bitcoin Cash Test Token", + "symbol": "BCHT", + "decimals": 18 + }, + "infoURL": "http://smartbch.org/", + "shortName": "smartbchtest", + "chainId": 10001, + "networkId": 10001 + }, + { + "name": "Gon Chain", + "chain": "GonChain", + "icon": "gonchain", + "rpc": [ + "https://node1.testnet.gaiaopen.network", + "http://database1.gaiaopen.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Gon Token", "symbol": "GT", "decimals": 18 }, + "infoURL": "", + "shortName": "gon", + "chainId": 10024, + "networkId": 10024, + "explorers": [ + { + "name": "Gon Explorer", + "url": "https://gonscan.com", + "standard": "none" + } + ] + }, + { + "name": "SJATSH", + "chain": "ETH", + "rpc": ["http://geth.free.idcfengye.com"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://sjis.me", + "shortName": "SJ", + "chainId": 10086, + "networkId": 10086 + }, + { + "name": "Blockchain Genesis Mainnet", + "chain": "GEN", + "rpc": [ + "https://eu.mainnet.xixoio.com", + "https://us.mainnet.xixoio.com", + "https://asia.mainnet.xixoio.com" + ], + "faucets": [], + "nativeCurrency": { "name": "GEN", "symbol": "GEN", "decimals": 18 }, + "infoURL": "https://www.xixoio.com/", + "shortName": "GEN", + "chainId": 10101, + "networkId": 10101 + }, + { + "name": "Gnosis Chiado Testnet", + "chain": "GNO", + "icon": "gnosis", + "rpc": [ + "https://rpc.chiadochain.net", + "https://rpc.chiado.gnosis.gateway.fm", + "wss://rpc.chiadochain.net/wss" + ], + "faucets": ["https://gnosisfaucet.com"], + "nativeCurrency": { + "name": "Chiado xDAI", + "symbol": "XDAI", + "decimals": 18 + }, + "infoURL": "https://docs.gnosischain.com", + "shortName": "chi", + "chainId": 10200, + "networkId": 10200, + "explorers": [ + { + "name": "blockscout", + "url": "https://blockscout.chiadochain.net", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "0XTade", + "chain": "0XTade Chain", + "rpc": ["https://node.0xtchain.com"], + "faucets": [], + "nativeCurrency": { "name": "0XT", "symbol": "0XT", "decimals": 18 }, + "infoURL": "https://www.0xtrade.finance/", + "shortName": "0xt", + "chainId": 10248, + "networkId": 10248, + "explorers": [ + { + "name": "0xtrade Scan", + "url": "https://www.0xtscan.com", + "standard": "none" + } + ] + }, + { + "name": "Numbers Mainnet", + "chain": "NUM", + "icon": "num", + "rpc": ["https://mainnetrpc.num.network"], + "faucets": [], + "nativeCurrency": { "name": "NUM Token", "symbol": "NUM", "decimals": 18 }, + "infoURL": "https://numbersprotocol.io", + "shortName": "Jade", + "chainId": 10507, + "networkId": 10507, + "explorers": [ + { + "name": "ethernal", + "url": "https://mainnet.num.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Numbers Testnet", + "chain": "NUM", + "icon": "num", + "rpc": ["https://testnetrpc.num.network"], + "faucets": [ + "https://faucet.avax.network/?subnet=num", + "https://faucet.num.network" + ], + "nativeCurrency": { "name": "NUM Token", "symbol": "NUM", "decimals": 18 }, + "infoURL": "https://numbersprotocol.io", + "shortName": "Snow", + "chainId": 10508, + "networkId": 10508, + "explorers": [ + { + "name": "ethernal", + "url": "https://testnet.num.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "CryptoCoinPay", + "chain": "CCP", + "rpc": [ + "http://node106.cryptocoinpay.info:8545", + "ws://node106.cryptocoinpay.info:8546" + ], + "faucets": [], + "icon": "ccp", + "nativeCurrency": { + "name": "CryptoCoinPay", + "symbol": "CCP", + "decimals": 18 + }, + "infoURL": "https://www.cryptocoinpay.co", + "shortName": "CCP", + "chainId": 10823, + "networkId": 10823, + "explorers": [ + { + "name": "CCP Explorer", + "url": "https://cryptocoinpay.info", + "standard": "EIP3091" + } + ] + }, + { + "name": "Quadrans Blockchain", + "chain": "QDC", + "icon": "quadrans", + "rpc": [ + "https://rpc.quadrans.io", + "https://rpcna.quadrans.io", + "https://rpceu.quadrans.io" + ], + "faucets": [], + "nativeCurrency": { + "name": "Quadrans Coin", + "symbol": "QDC", + "decimals": 18 + }, + "infoURL": "https://quadrans.io", + "shortName": "quadrans", + "chainId": 10946, + "networkId": 10946, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.quadrans.io", + "icon": "quadrans", + "standard": "EIP3091" + } + ] + }, + { + "name": "Quadrans Blockchain Testnet", + "chain": "tQDC", + "icon": "quadrans", + "rpc": ["https://rpctest.quadrans.io", "https://rpctest2.quadrans.io"], + "faucets": ["https://faucetpage.quadrans.io"], + "nativeCurrency": { + "name": "Quadrans Testnet Coin", + "symbol": "tQDC", + "decimals": 18 + }, + "infoURL": "https://quadrans.io", + "shortName": "quadranstestnet", + "chainId": 10947, + "networkId": 10947, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.testnet.quadrans.io", + "icon": "quadrans", + "standard": "EIP3091" + } + ] + }, + { + "name": "Astra", + "chain": "Astra", + "rpc": ["https://rpc.astranaut.io", "https://rpc1.astranaut.io"], + "faucets": [], + "nativeCurrency": { "name": "Astra", "symbol": "ASA", "decimals": 18 }, + "infoURL": "https://astranaut.io", + "shortName": "astra", + "chainId": 11110, + "networkId": 11110, + "icon": "astra", + "explorers": [ + { + "name": "Astra EVM Explorer (Blockscout)", + "url": "https://explorer.astranaut.io", + "standard": "none", + "icon": "astra" }, - "infoURL": "https://xerom.org", - "shortName": "xero", - "chainId": 1313500, - "networkId": 1313500 - }, - { - "name": "Kintsugi", - "title": "Kintsugi merge testnet", - "chain": "ETH", - "rpc": ["https://rpc.kintsugi.themerge.dev"], - "faucets": [ - "http://fauceth.komputing.org?chain=1337702&address=${ADDRESS}", - "https://faucet.kintsugi.themerge.dev" - ], - "nativeCurrency": { - "name": "kintsugi Ethere", - "symbol": "kiETH", - "decimals": 18 + { + "name": "Astra PingPub Explorer", + "url": "https://ping.astranaut.io/astra", + "standard": "none", + "icon": "astra" + } + ] + }, + { + "name": "WAGMI", + "chain": "WAGMI", + "icon": "wagmi", + "rpc": ["https://subnets.avax.network/wagmi/wagmi-chain-testnet/rpc"], + "faucets": ["https://faucet.avax.network/?subnet=wagmi"], + "nativeCurrency": { "name": "WAGMI", "symbol": "WGM", "decimals": 18 }, + "infoURL": "https://subnets-test.avax.network/wagmi/details", + "shortName": "WAGMI", + "chainId": 11111, + "networkId": 11111, + "explorers": [ + { + "name": "Avalanche Subnet Explorer", + "url": "https://subnets-test.avax.network/wagmi", + "standard": "EIP3091" + } + ] + }, + { + "name": "Astra Testnet", + "chain": "Astra", + "rpc": ["https://rpc.astranaut.dev"], + "faucets": ["https://faucet.astranaut.dev"], + "nativeCurrency": { + "name": "test-Astra", + "symbol": "tASA", + "decimals": 18 + }, + "infoURL": "https://astranaut.io", + "shortName": "astra-testnet", + "chainId": 11115, + "networkId": 11115, + "icon": "astra", + "explorers": [ + { + "name": "Astra EVM Explorer", + "url": "https://explorer.astranaut.dev", + "standard": "EIP3091", + "icon": "astra" }, - "infoURL": "https://kintsugi.themerge.dev/", - "shortName": "kintsugi", - "chainId": 1337702, - "networkId": 1337702, - "explorers": [ - { - "name": "kintsugi explorer", - "url": "https://explorer.kintsugi.themerge.dev", - "standard": "EIP3091" - } + { + "name": "Astra PingPub Explorer", + "url": "https://ping.astranaut.dev/astra", + "standard": "none", + "icon": "astra" + } + ] + }, + { + "name": "HashBit Mainnet", + "chain": "HBIT", + "rpc": ["https://mainnet-rpc.hashbit.org", "https://rpc.hashbit.org"], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], + "nativeCurrency": { + "name": "HashBit Native Token", + "symbol": "HBIT", + "decimals": 18 + }, + "infoURL": "https://hashbit.org", + "shortName": "hbit", + "chainId": 11119, + "networkId": 11119, + "explorers": [ + { + "name": "hashbitscan", + "url": "https://explorer.hashbit.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Haqq Network", + "chain": "Haqq", + "rpc": ["https://rpc.eth.haqq.network"], + "faucets": [], + "nativeCurrency": { + "name": "Islamic Coin", + "symbol": "ISLM", + "decimals": 18 + }, + "infoURL": "https://islamiccoin.net", + "shortName": "ISLM", + "chainId": 11235, + "networkId": 11235, + "explorers": [ + { + "name": "Mainnet HAQQ Explorer", + "url": "https://explorer.haqq.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Shyft Testnet", + "chain": "SHYFTT", + "icon": "shyft", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Shyft Test Token", + "symbol": "SHYFTT", + "decimals": 18 + }, + "infoURL": "https://shyft.network", + "shortName": "shyftt", + "chainId": 11437, + "networkId": 11437, + "explorers": [ + { + "name": "Shyft Testnet BX", + "url": "https://bx.testnet.shyft.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Sardis Testnet", + "chain": "SRDX", + "icon": "sardisTestnet", + "rpc": ["https://testnet-rpc.sardisnetwork.com"], + "faucets": ["https://faucet.sardisnetwork.com"], + "nativeCurrency": { "name": "Sardis", "symbol": "SRDX", "decimals": 18 }, + "infoURL": "https://mysardis.com", + "shortName": "SRDXt", + "chainId": 11612, + "networkId": 11612, + "explorers": [ + { + "name": "Sardis", + "url": "https://testnet.sardisnetwork.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "SanR Chain", + "chain": "SanRChain", + "rpc": ["https://sanrchain-node.santiment.net"], + "faucets": [], + "nativeCurrency": { "name": "nSAN", "symbol": "nSAN", "decimals": 18 }, + "infoURL": "https://sanr.app", + "shortName": "SAN", + "chainId": 11888, + "networkId": 11888, + "icon": "sanrchain", + "parent": { + "chain": "eip155-1", + "type": "L2", + "bridges": [{ "url": "https://sanr.app" }] + }, + "explorers": [ + { + "name": "SanR Chain Explorer", + "url": "https://sanrchain-explorer.santiment.net", + "standard": "none" + } + ] + }, + { + "name": "SatoshiChain Mainnet", + "chain": "SATS", + "icon": "satoshichain", + "rpc": ["https://mainnet-rpc.satoshichain.io"], + "faucets": [], + "nativeCurrency": { + "name": "SatoshiChain Coin", + "symbol": "SATS", + "decimals": 18 + }, + "infoURL": "https://satoshichain.net", + "shortName": "sats", + "chainId": 12009, + "networkId": 12009, + "explorers": [ + { + "name": "SatoshiChain Explorer", + "url": "https://satoshiscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Singularity ZERO Testnet", + "chain": "ZERO", + "rpc": ["https://betaenv.singularity.gold:18545"], + "faucets": ["https://nft.singularity.gold"], + "nativeCurrency": { "name": "ZERO", "symbol": "tZERO", "decimals": 18 }, + "infoURL": "https://www.singularity.gold", + "shortName": "tZERO", + "chainId": 12051, + "networkId": 12051, + "explorers": [ + { + "name": "zeroscan", + "url": "https://betaenv.singularity.gold:18002", + "standard": "EIP3091" + } + ] + }, + { + "name": "Singularity ZERO Mainnet", + "chain": "ZERO", + "rpc": ["https://zerorpc.singularity.gold"], + "faucets": ["https://zeroscan.singularity.gold"], + "nativeCurrency": { "name": "ZERO", "symbol": "ZERO", "decimals": 18 }, + "infoURL": "https://www.singularity.gold", + "shortName": "ZERO", + "chainId": 12052, + "networkId": 12052, + "slip44": 621, + "explorers": [ + { + "name": "zeroscan", + "url": "https://zeroscan.singularity.gold", + "standard": "EIP3091" + } + ] + }, + { + "name": "Fibonacci Mainnet", + "chain": "FIBO", + "icon": "fibonacci", + "rpc": [ + "https://node1.fibo-api.asia", + "https://node2.fibo-api.asia", + "https://node3.fibo-api.asia", + "https://node4.fibo-api.asia", + "https://node5.fibo-api.asia", + "https://node6.fibo-api.asia", + "https://node7.fibo-api.asia", + "https://node1.fibo-rpc.asia", + "https://node2.fibo-rpc.asia", + "https://node3.fibo-rpc.asia", + "https://node4.fibo-rpc.asia", + "https://node5.fibo-rpc.asia", + "https://node6.fibo-rpc.asia", + "https://node7.fibo-rpc.asia" + ], + "faucets": ["https://test.fibochain.org/faucets"], + "nativeCurrency": { + "name": "FIBONACCI UTILITY TOKEN", + "symbol": "FIBO", + "decimals": 18 + }, + "infoURL": "https://fibochain.org", + "shortName": "fibo", + "chainId": 12306, + "networkId": 1230, + "explorers": [ + { + "name": "fiboscan", + "url": "https://scan.fibochain.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "BLG Testnet", + "chain": "BLG", + "icon": "blg", + "rpc": ["https://rpc.blgchain.com"], + "faucets": ["https://faucet.blgchain.com"], + "nativeCurrency": { "name": "Blg", "symbol": "BLG", "decimals": 18 }, + "infoURL": "https://blgchain.com", + "shortName": "blgchain", + "chainId": 12321, + "networkId": 12321 + }, + { + "name": "Step Testnet", + "title": "Step Test Network", + "chain": "STEP", + "icon": "step", + "rpc": ["https://rpc.testnet.step.network"], + "faucets": ["https://faucet.step.network"], + "nativeCurrency": { "name": "FITFI", "symbol": "FITFI", "decimals": 18 }, + "infoURL": "https://step.network", + "shortName": "steptest", + "chainId": 12345, + "networkId": 12345, + "explorers": [ + { + "name": "StepScan", + "url": "https://testnet.stepscan.io", + "icon": "step", + "standard": "EIP3091" + } + ], + "parent": { "type": "L2", "chain": "eip155-43113" } + }, + { + "name": "Rikeza Network Testnet", + "title": "Rikeza Network Testnet", + "chain": "Rikeza", + "icon": "rikeza", + "rpc": ["https://testnet-rpc.rikscan.com"], + "faucets": [], + "nativeCurrency": { "name": "Rikeza", "symbol": "RIK", "decimals": 18 }, + "infoURL": "https://rikeza.io", + "shortName": "tRIK", + "chainId": 12715, + "networkId": 12715, + "explorers": [ + { + "name": "Rikeza Blockchain explorer", + "url": "https://testnet.rikscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "SPS", + "chain": "SPS", + "rpc": ["https://rpc.ssquad.games"], + "faucets": [], + "nativeCurrency": { "name": "ECG", "symbol": "ECG", "decimals": 18 }, + "infoURL": "https://ssquad.games/", + "shortName": "SPS", + "chainId": 13000, + "networkId": 13000, + "explorers": [ + { + "name": "SPS Explorer", + "url": "http://spsscan.ssquad.games", + "standard": "EIP3091" + } + ] + }, + { + "name": "Credit Smartchain Mainnet", + "chain": "CREDIT", + "rpc": ["https://mainnet-rpc.cscscan.io"], + "faucets": [], + "nativeCurrency": { "name": "Credit", "symbol": "CREDIT", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://creditsmartchain.com", + "shortName": "Credit", + "chainId": 13308, + "networkId": 1, + "icon": "credit", + "explorers": [ + { + "name": "CSC Scan", + "url": "https://explorer.cscscan.io", + "icon": "credit", + "standard": "EIP3091" + } + ] + }, + { + "name": "Phoenix Mainnet", + "chain": "Phoenix", + "rpc": ["https://rpc.phoenixplorer.com/"], + "faucets": [], + "nativeCurrency": { "name": "Phoenix", "symbol": "PHX", "decimals": 18 }, + "infoURL": "https://cryptophoenix.org/phoenix", + "shortName": "Phoenix", + "chainId": 13381, + "networkId": 13381, + "icon": "phoenix", + "explorers": [ + { + "name": "phoenixplorer", + "url": "https://phoenixplorer.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Susono", + "chain": "SUS", + "rpc": [ + "https://gateway.opn.network/node/ext/bc/2VsZe5DstWw2bfgdx3YbjKcMsJnNDjni95sZorBEdk9L9Qr9Fr/rpc" + ], + "faucets": [], + "nativeCurrency": { "name": "Susono", "symbol": "OPN", "decimals": 18 }, + "infoURL": "", + "shortName": "sus", + "chainId": 13812, + "networkId": 13812, + "explorers": [ + { + "name": "Susono", + "url": "http://explorer.opn.network", + "standard": "none" + } + ] + }, + { + "name": "SPS Testnet", + "chain": "SPS-Testnet", + "rpc": ["https://www.3sps.net"], + "faucets": [], + "nativeCurrency": { "name": "ECG", "symbol": "ECG", "decimals": 18 }, + "infoURL": "https://ssquad.games/", + "shortName": "SPS-Test", + "chainId": 14000, + "networkId": 14000, + "explorers": [ + { + "name": "SPS Test Explorer", + "url": "https://explorer.3sps.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "LoopNetwork Mainnet", + "chain": "LoopNetwork", + "rpc": ["https://api.mainnetloop.com"], + "faucets": [], + "nativeCurrency": { "name": "LOOP", "symbol": "LOOP", "decimals": 18 }, + "infoURL": "http://theloopnetwork.org/", + "shortName": "loop", + "chainId": 15551, + "networkId": 15551, + "explorers": [ + { + "name": "loopscan", + "url": "http://explorer.mainnetloop.com", + "standard": "none" + } + ] + }, + { + "name": "Trust EVM Testnet", + "chain": "Trust EVM Testnet", + "rpc": ["https://api.testnet-dev.trust.one"], + "faucets": ["https://faucet.testnet-dev.trust.one/"], + "nativeCurrency": { "name": "Trust EVM", "symbol": "EVM", "decimals": 18 }, + "infoURL": "https://www.trust.one/", + "shortName": "TrustTestnet", + "chainId": 15555, + "networkId": 15555, + "explorers": [ + { + "name": "Trust EVM Explorer", + "url": "https://trustscan.one", + "standard": "EIP3091" + } + ] + }, + { + "name": "EOS EVM Network Testnet", + "chain": "EOS", + "icon": "eos", + "rpc": ["https://api.testnet.evm.eosnetwork.com"], + "faucets": [], + "nativeCurrency": { "name": "EOS", "symbol": "EOS", "decimals": 18 }, + "infoURL": "https://eosnetwork.com/eos-evm", + "shortName": "eos-testnet", + "chainId": 15557, + "networkId": 15557, + "explorers": [ + { + "name": "EOS EVM Explorer", + "url": "https://explorer.testnet.evm.eosnetwork.com", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://bridge.testnet.evm.eosnetwork.com" }] + } + }, + { + "name": "MetaDot Mainnet", + "chain": "MTT", + "rpc": ["https://mainnet.metadot.network"], + "faucets": [], + "nativeCurrency": { + "name": "MetaDot Token", + "symbol": "MTT", + "decimals": 18 + }, + "infoURL": "https://metadot.network", + "shortName": "mtt", + "chainId": 16000, + "networkId": 16000 + }, + { + "name": "MetaDot Testnet", + "chain": "MTTTest", + "rpc": ["https://testnet.metadot.network"], + "faucets": ["https://faucet.metadot.network/"], + "nativeCurrency": { + "name": "MetaDot Token TestNet", + "symbol": "MTTest", + "decimals": 18 + }, + "infoURL": "https://metadot.network", + "shortName": "mtttest", + "chainId": 16001, + "networkId": 16001 + }, + { + "name": "Genesys Mainnet", + "chain": "Genesys", + "icon": "genesys", + "rpc": ["https://rpc.genesys.network"], + "faucets": [], + "nativeCurrency": { "name": "Genesys", "symbol": "GSYS", "decimals": 18 }, + "infoURL": "https://www.genesys.network/", + "shortName": "Genesys", + "chainId": 16507, + "networkId": 16507, + "explorers": [ + { + "name": "GchainExplorer", + "url": "https://gchainexplorer.genesys.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "IRIShub Testnet", + "chain": "IRIShub", + "rpc": ["https://evmrpc.nyancat.irisnet.org"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "Eris", "symbol": "ERIS", "decimals": 18 }, + "infoURL": "https://www.irisnet.org", + "shortName": "nyancat", + "chainId": 16688, + "networkId": 16688, + "icon": "nyancat", + "explorers": [ + { + "name": "IRISHub Testnet Cosmos Explorer (IOBScan)", + "url": "https://nyancat.iobscan.io", + "standard": "none", + "icon": "nyancat" + } + ] + }, + { + "name": "IVAR Chain Testnet", + "chain": "IVAR", + "icon": "ivar", + "rpc": ["https://testnet-rpc.ivarex.com"], + "faucets": ["https://tfaucet.ivarex.com/"], + "nativeCurrency": { "name": "tIvar", "symbol": "tIVAR", "decimals": 18 }, + "infoURL": "https://ivarex.com", + "shortName": "tivar", + "chainId": 16888, + "networkId": 16888, + "explorers": [ + { + "name": "ivarscan", + "url": "https://testnet.ivarscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Palette Chain Testnet", + "chain": "PLT", + "rpc": ["https://palette-opennet.com:22000"], + "faucets": [], + "nativeCurrency": { + "name": "Palette Token", + "symbol": "PLT", + "decimals": 18 + }, + "features": [], + "infoURL": "https://hashpalette.com/", + "shortName": "PCT", + "chainId": 17180, + "networkId": 17180, + "icon": "PLT", + "explorers": [ + { + "name": "Palettescan", + "url": "https://testnet.palettescan.com", + "icon": "PLT", + "standard": "none" + } + ] + }, + { + "name": "EOS EVM Network", + "chain": "EOS", + "icon": "eos", + "rpc": ["https://api.evm.eosnetwork.com"], + "faucets": [], + "nativeCurrency": { "name": "EOS", "symbol": "EOS", "decimals": 18 }, + "infoURL": "https://eosnetwork.com/eos-evm", + "shortName": "eos", + "chainId": 17777, + "networkId": 17777, + "explorers": [ + { + "name": "EOS EVM Explorer", + "url": "https://explorer.evm.eosnetwork.com", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [ + { "url": "https://bridge.evm.eosnetwork.com" }, + { "url": "https://app.multichain.org" } ] - }, - { - "name": "Kiln", - "chain": "ETH", - "network": "testnet", - "rpc": ["https://rpc.kiln.themerge.dev"], - "faucets": [ - "https://faucet.kiln.themerge.dev", - "https://kiln-faucet.pk910.de", - "https://kilnfaucet.com" - ], - "nativeCurrency": { - "name": "Testnet ETH", - "symbol": "ETH", - "decimals": 18 + } + }, + { + "name": "Frontier of Dreams Testnet", + "chain": "Game Network", + "rpc": ["https://rpc.fod.games/"], + "nativeCurrency": { "name": "ZKST", "symbol": "ZKST", "decimals": 18 }, + "faucets": [], + "shortName": "ZKST", + "chainId": 18000, + "networkId": 18000, + "infoURL": "https://goexosphere.com", + "explorers": [ + { + "name": "Game Network", + "url": "https://explorer.fod.games", + "standard": "EIP3091" + } + ] + }, + { + "name": "Proof Of Memes", + "title": "Proof Of Memes Mainnet", + "chain": "POM", + "icon": "pom", + "rpc": [ + "https://mainnet-rpc.memescan.io", + "https://mainnet-rpc2.memescan.io", + "https://mainnet-rpc3.memescan.io", + "https://mainnet-rpc4.memescan.io" + ], + "faucets": [], + "nativeCurrency": { + "name": "Proof Of Memes", + "symbol": "POM", + "decimals": 18 + }, + "infoURL": "https://proofofmemes.org", + "shortName": "pom", + "chainId": 18159, + "networkId": 18159, + "explorers": [ + { + "name": "explorer-proofofmemes", + "url": "https://memescan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "HOME Verse Mainnet", + "chain": "HOME Verse", + "icon": "home_verse", + "rpc": ["https://rpc.mainnet.oasys.homeverse.games/"], + "faucets": [], + "nativeCurrency": { "name": "OAS", "symbol": "OAS", "decimals": 18 }, + "infoURL": "https://www.homeverse.games/", + "shortName": "HMV", + "chainId": 19011, + "networkId": 19011, + "explorers": [ + { + "name": "HOME Verse Explorer", + "url": "https://explorer.oasys.homeverse.games", + "standard": "EIP3091" + } + ], + "parent": { "type": "L2", "chain": "eip155-248" } + }, + { + "name": "BTCIX Network", + "chain": "BTCIX", + "rpc": ["https://seed.btcix.org/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "BTCIX Network", + "symbol": "BTCIX", + "decimals": 18 + }, + "infoURL": "https://bitcolojix.org", + "shortName": "btcix", + "chainId": 19845, + "networkId": 19845, + "explorers": [ + { + "name": "BTCIXScan", + "url": "https://btcixscan.com", + "standard": "none" + } + ] + }, + { + "name": "Camelark Mainnet", + "chainId": 20001, + "shortName": "Camelark", + "chain": "ETHW", + "icon": "camelark", + "networkId": 20001, + "nativeCurrency": { + "name": "EthereumPoW", + "symbol": "ETHW", + "decimals": 18 + }, + "rpc": ["https://mainnet-http-rpc.camelark.com"], + "faucets": [], + "explorers": [ + { + "name": "CamelarkScan", + "url": "https://scan.camelark.com", + "standard": "EIP3091" + } + ], + "infoURL": "https://www.camelark.com" + }, + { + "name": "Callisto Testnet", + "chain": "CLO", + "rpc": ["https://testnet-rpc.callisto.network/"], + "faucets": ["https://faucet.callisto.network/"], + "nativeCurrency": { "name": "Callisto", "symbol": "CLO", "decimals": 18 }, + "infoURL": "https://callisto.network", + "shortName": "CLOTestnet", + "chainId": 20729, + "networkId": 79 + }, + { + "name": "P12 Chain", + "chain": "P12", + "icon": "p12", + "rpc": ["https://rpc-chain.p12.games"], + "faucets": [], + "nativeCurrency": { "name": "Hooked P2", "symbol": "hP2", "decimals": 18 }, + "infoURL": "https://p12.network", + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "shortName": "p12", + "chainId": 20736, + "networkId": 20736, + "explorers": [ + { + "name": "P12 Chain Explorer", + "url": "https://explorer.p12.games", + "standard": "EIP3091" + } + ] + }, + { + "name": "CENNZnet Azalea", + "chain": "CENNZnet", + "rpc": ["https://cennznet.unfrastructure.io/public"], + "faucets": [], + "nativeCurrency": { "name": "CPAY", "symbol": "CPAY", "decimals": 18 }, + "infoURL": "https://cennz.net", + "shortName": "cennz-a", + "chainId": 21337, + "networkId": 21337, + "icon": "cennz", + "explorers": [ + { + "name": "UNcover", + "url": "https://uncoverexplorer.com", + "standard": "none" + } + ] + }, + { + "name": "omChain Mainnet", + "chain": "OML", + "icon": "omlira", + "rpc": ["https://seed.omchain.io"], + "faucets": [], + "nativeCurrency": { "name": "omChain", "symbol": "OMC", "decimals": 18 }, + "infoURL": "https://omchain.io", + "shortName": "omc", + "chainId": 21816, + "networkId": 21816, + "explorers": [ + { + "name": "omChain Explorer", + "url": "https://explorer.omchain.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Taycan", + "chain": "Taycan", + "rpc": ["https://taycan-rpc.hupayx.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "shuffle", "symbol": "SFL", "decimals": 18 }, + "infoURL": "https://hupayx.io", + "shortName": "SFL", + "chainId": 22023, + "networkId": 22023, + "icon": "shuffle", + "explorers": [ + { + "name": "Taycan Explorer(Blockscout)", + "url": "https://taycan-evmscan.hupayx.io", + "standard": "none", + "icon": "shuffle" }, - "infoURL": "https://kiln.themerge.dev/", - "shortName": "kiln", - "chainId": 1337802, - "networkId": 1337802, - "icon": "ethereum", - "explorers": [ - { - "name": "Kiln Explorer", - "url": "https://explorer.kiln.themerge.dev", - "icon": "ethereum", - "standard": "EIP3091" - } - ] - }, - { - "name": "PlatON Dev Testnet", - "chain": "PlatON", - "rpc": [ - "https://devnetopenapi2.platon.network/rpc", - "wss://devnetopenapi2.platon.network/ws" - ], - "faucets": [ - "https://faucet.platon.network/faucet/?id=e5d32df10aee11ec911142010a667c03" - ], - "nativeCurrency": { "name": "LAT", "symbol": "lat", "decimals": 18 }, - "infoURL": "https://www.platon.network", - "shortName": "platondev", - "chainId": 2203181, - "networkId": 1, - "icon": "platon", - "explorers": [ - { - "name": "PlatON explorer", - "url": "https://devnetscan.platon.network", - "standard": "none" - } - ] - }, - { - "name": "PlatON Dev Testnet2", - "chain": "PlatON", - "rpc": [ - "https://devnet2openapi.platon.network/rpc", - "wss://devnet2openapi.platon.network/ws" - ], - "faucets": ["https://devnet2faucet.platon.network/faucet"], - "nativeCurrency": { "name": "LAT", "symbol": "lat", "decimals": 18 }, - "infoURL": "https://www.platon.network", - "shortName": "platondev2", - "chainId": 2206132, - "networkId": 1, - "icon": "platon", - "explorers": [ - { - "name": "PlatON explorer", - "url": "https://devnet2scan.platon.network", - "standard": "none" - } - ] - }, - { - "name": "Musicoin", - "chain": "MUSIC", - "rpc": ["https://mewapi.musicoin.tw"], - "faucets": [], - "nativeCurrency": { "name": "Musicoin", "symbol": "MUSIC", "decimals": 18 }, - "infoURL": "https://musicoin.tw", - "shortName": "music", - "chainId": 7762959, - "networkId": 7762959, - "slip44": 184 - }, - { - "name": "Sepolia", - "title": "Ethereum Testnet Sepolia", - "chain": "ETH", - "network": "testnet", - "rpc": [], - "faucets": [ - "http://fauceth.komputing.org?chain=11155111&address=${ADDRESS}" - ], - "nativeCurrency": { - "name": "Sepolia Ether", - "symbol": "SEP", - "decimals": 18 + { + "name": "Taycan Cosmos Explorer(BigDipper)", + "url": "https://taycan-cosmoscan.hupayx.io", + "standard": "none", + "icon": "shuffle" + } + ] + }, + { + "name": "Ambrosus Main Net", + "chain": "Ambrosus", + "network": "mainnet", + "rpc": [ + "https://network.ambrosus.io" + ], + "nativeCurrency": { + "name": "Amber", + "symbol": "AMB", + "decimals": 18 + }, + "infoURL": "https://ambrosus.io", + "shortName": "amb", + "chainId": 16718, + "networkId": 16718, + "explorers": [ + { + "name": "Ambrosus explorer", + "url": "https://explorer.ambrosus.io", + "standard": "none" + } + ] + }, + { + "name": "Ambrosus Dev Net", + "chain": "Ambrosus", + "network": "devnet", + "rpc": [ + "https://network.ambrosus-dev.io" + ], + "nativeCurrency": { + "name": "Amber", + "symbol": "AMB", + "decimals": 18 + }, + "infoURL": "https://ambrosus.io", + "shortName": "amb", + "chainId": 30746, + "networkId": 30746, + "explorers": [ + { + "name": "Ambrosus explorer", + "url": "https://explorer.ambrosus-dev.io", + "standard": "none" + } + ] + }, + { + "name": "Ambrosus Test Net", + "chain": "Ambrosus", + "network": "testnet", + "rpc": [ + "https://network.ambrosus-test.io" + ], + "nativeCurrency": { + "name": "Amber", + "symbol": "AMB", + "decimals": 18 + }, + "infoURL": "https://ambrosus.io", + "shortName": "amb", + "chainId": 22040, + "networkId": 22040, + "explorers": [ + { + "name": "Ambrosus explorer", + "url": "https://explorer.ambrosus-test.io", + "standard": "none" + } + ] + }, + { + "name": "MAP Mainnet", + "chain": "MAP", + "icon": "map", + "rpc": ["https://rpc.maplabs.io"], + "faucets": [], + "nativeCurrency": { "name": "MAP", "symbol": "MAP", "decimals": 18 }, + "infoURL": "https://maplabs.io", + "shortName": "map", + "chainId": 22776, + "networkId": 22776, + "slip44": 60, + "explorers": [ + { "name": "mapscan", "url": "https://mapscan.io", "standard": "EIP3091" } + ] + }, + { + "name": "Opside Testnet", + "chain": "Opside", + "rpc": ["https://testrpc.opside.network"], + "faucets": ["https://faucet.opside.network"], + "nativeCurrency": { "name": "IDE", "symbol": "IDE", "decimals": 18 }, + "infoURL": "https://opside.network", + "shortName": "opside", + "chainId": 23118, + "networkId": 23118, + "icon": "opside", + "explorers": [ + { + "name": "opsideInfo", + "url": "https://opside.info", + "standard": "EIP3091" + } + ] + }, + { + "name": "Oasis Sapphire", + "chain": "Sapphire", + "icon": "oasis", + "rpc": ["https://sapphire.oasis.io", "wss://sapphire.oasis.io/ws"], + "faucets": [], + "nativeCurrency": { + "name": "Sapphire Rose", + "symbol": "ROSE", + "decimals": 18 + }, + "infoURL": "https://docs.oasis.io/dapp/sapphire", + "shortName": "sapphire", + "chainId": 23294, + "networkId": 23294, + "explorers": [ + { + "name": "Oasis Sapphire Explorer", + "url": "https://explorer.sapphire.oasis.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Oasis Sapphire Testnet", + "chain": "Sapphire", + "icon": "oasis", + "rpc": [ + "https://testnet.sapphire.oasis.dev", + "wss://testnet.sapphire.oasis.dev/ws" + ], + "faucets": [], + "nativeCurrency": { + "name": "Sapphire Test Rose", + "symbol": "TEST", + "decimals": 18 + }, + "infoURL": "https://docs.oasis.io/dapp/sapphire", + "shortName": "sapphire-testnet", + "chainId": 23295, + "networkId": 23295, + "explorers": [ + { + "name": "Oasis Sapphire Testnet Explorer", + "url": "https://testnet.explorer.sapphire.oasis.dev", + "standard": "EIP3091" + } + ] + }, + { + "name": "Webchain", + "chain": "WEB", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Webchain Ether", + "symbol": "WEB", + "decimals": 18 + }, + "infoURL": "https://webchain.network", + "shortName": "web", + "chainId": 24484, + "networkId": 37129, + "slip44": 227 + }, + { + "name": "MintMe.com Coin", + "chain": "MINTME", + "rpc": ["https://node1.mintme.com"], + "faucets": [], + "nativeCurrency": { + "name": "MintMe.com Coin", + "symbol": "MINTME", + "decimals": 18 + }, + "infoURL": "https://www.mintme.com", + "shortName": "mintme", + "chainId": 24734, + "networkId": 37480 + }, + { + "name": "Hammer Chain Mainnet", + "chain": "HammerChain", + "rpc": ["https://www.hammerchain.io/rpc"], + "faucets": [], + "nativeCurrency": { "name": "GOLDT", "symbol": "GOLDT", "decimals": 18 }, + "infoURL": "https://www.hammerchain.io", + "shortName": "GOLDT", + "chainId": 25888, + "networkId": 25888, + "explorers": [ + { + "name": "Hammer Chain Explorer", + "url": "https://www.hammerchain.io", + "standard": "none" + } + ] + }, + { + "name": "Bitkub Chain Testnet", + "chain": "BKC", + "icon": "bkc", + "rpc": [ + "https://rpc-testnet.bitkubchain.io", + "wss://wss-testnet.bitkubchain.io" + ], + "faucets": ["https://faucet.bitkubchain.com"], + "nativeCurrency": { + "name": "Bitkub Coin", + "symbol": "tKUB", + "decimals": 18 + }, + "infoURL": "https://www.bitkubchain.com/", + "shortName": "bkct", + "chainId": 25925, + "networkId": 25925, + "explorers": [ + { + "name": "bkcscan-testnet", + "url": "https://testnet.bkcscan.com", + "standard": "none", + "icon": "bkc" + } + ] + }, + { + "name": "Ferrum Testnet", + "chain": "tFRM", + "rpc": ["http://testnet.dev.svcs.ferrumnetwork.io:9933"], + "faucets": ["https://testnet.faucet.ferrumnetwork.io"], + "nativeCurrency": { "name": "Ferrum", "symbol": "tFRM", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://ferrum.network", + "shortName": "frm", + "chainId": 26026, + "networkId": 26026, + "explorers": [ + { + "name": "polkadotjs", + "url": "https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet.dev.svcs.ferrumnetwork.io#/explorer", + "standard": "none" + } + ] + }, + { + "name": "Hertz Network Mainnet", + "chain": "HTZ", + "rpc": ["https://mainnet-rpc.hertzscan.com"], + "faucets": [], + "nativeCurrency": { "name": "Hertz", "symbol": "HTZ", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://www.hertz-network.com", + "shortName": "HTZ", + "chainId": 26600, + "networkId": 26600, + "icon": "hertz-network", + "explorers": [ + { + "name": "Hertz Scan", + "url": "https://hertzscan.com", + "icon": "hertz-network", + "standard": "EIP3091" + } + ] + }, + { + "name": "OasisChain Mainnet", + "chain": "OasisChain", + "rpc": [ + "https://rpc1.oasischain.io", + "https://rpc2.oasischain.io", + "https://rpc3.oasischain.io" + ], + "faucets": ["http://faucet.oasischain.io"], + "nativeCurrency": { "name": "OAC", "symbol": "OAC", "decimals": 18 }, + "infoURL": "https://scan.oasischain.io", + "shortName": "OAC", + "chainId": 26863, + "networkId": 26863, + "explorers": [ + { + "name": "OasisChain Explorer", + "url": "https://scan.oasischain.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Optimism Bedrock (Goerli Alpha Testnet)", + "chain": "ETH", + "rpc": [ + "https://alpha-1-replica-0.bedrock-goerli.optimism.io", + "https://alpha-1-replica-1.bedrock-goerli.optimism.io", + "https://alpha-1-replica-2.bedrock-goerli.optimism.io", + "https://alpha-1-replica-2.bedrock-goerli.optimism.io" + ], + "faucets": [], + "nativeCurrency": { + "name": "Goerli Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://community.optimism.io/docs/developers/bedrock", + "shortName": "obgor", + "chainId": 28528, + "networkId": 28528, + "explorers": [ + { + "name": "blockscout", + "url": "https://blockscout.com/optimism/bedrock-alpha", + "standard": "EIP3091" + } + ] + }, + { + "name": "Piece testnet", + "chain": "PieceNetwork", + "icon": "piecechain", + "rpc": ["https://testnet-rpc0.piecenetwork.com"], + "faucets": ["https://piecenetwork.com/faucet"], + "nativeCurrency": { "name": "ECE", "symbol": "ECE", "decimals": 18 }, + "infoURL": "https://piecenetwork.com", + "shortName": "Piece", + "chainId": 30067, + "networkId": 30067, + "explorers": [ + { + "name": "Piece Scan", + "url": "https://testnet-scan.piecenetwork.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ethersocial Network", + "chain": "ESN", + "rpc": ["https://api.esn.gonspool.com"], + "faucets": [], + "nativeCurrency": { + "name": "Ethersocial Network Ether", + "symbol": "ESN", + "decimals": 18 + }, + "infoURL": "https://ethersocial.org", + "shortName": "esn", + "chainId": 31102, + "networkId": 1, + "slip44": 31102 + }, + { + "name": "CloudTx Mainnet", + "chain": "CLD", + "icon": "cloudtx", + "rpc": ["https://mainnet-rpc.cloudtx.finance"], + "faucets": [], + "nativeCurrency": { "name": "CloudTx", "symbol": "CLD", "decimals": 18 }, + "infoURL": "https://cloudtx.finance", + "shortName": "CLDTX", + "chainId": 31223, + "networkId": 31223, + "explorers": [ + { + "name": "cloudtxscan", + "url": "https://scan.cloudtx.finance", + "standard": "EIP3091" + } + ] + }, + { + "name": "CloudTx Testnet", + "chain": "CloudTx", + "icon": "cloudtx", + "rpc": ["https://testnet-rpc.cloudtx.finance"], + "faucets": ["https://faucet.cloudtx.finance"], + "nativeCurrency": { "name": "CloudTx", "symbol": "CLD", "decimals": 18 }, + "infoURL": "https://cloudtx.finance/", + "shortName": "CLD", + "chainId": 31224, + "networkId": 31224, + "explorers": [ + { + "name": "cloudtxexplorer", + "url": "https://explorer.cloudtx.finance", + "standard": "EIP3091" + } + ] + }, + { + "name": "GoChain Testnet", + "chain": "GO", + "rpc": ["https://testnet-rpc.gochain.io"], + "faucets": [], + "nativeCurrency": { + "name": "GoChain Coin", + "symbol": "GO", + "decimals": 18 + }, + "infoURL": "https://gochain.io", + "shortName": "got", + "chainId": 31337, + "networkId": 31337, + "slip44": 6060, + "explorers": [ + { + "name": "GoChain Testnet Explorer", + "url": "https://testnet-explorer.gochain.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Filecoin - Wallaby testnet", + "status": "deprecated", + "chain": "FIL", + "icon": "filecoin", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "testnet filecoin", + "symbol": "tFIL", + "decimals": 18 + }, + "infoURL": "https://filecoin.io", + "shortName": "filecoin-wallaby", + "chainId": 31415, + "networkId": 31415, + "slip44": 1, + "explorers": [] + }, + { + "name": "Bitgert Mainnet", + "chain": "Brise", + "rpc": [ + "https://rpc.icecreamswap.com", + "https://mainnet-rpc.brisescan.com", + "https://chainrpc.com", + "https://serverrpc.com" + ], + "faucets": [], + "nativeCurrency": { + "name": "Bitrise Token", + "symbol": "Brise", + "decimals": 18 + }, + "infoURL": "https://bitgert.com/", + "shortName": "Brise", + "chainId": 32520, + "networkId": 32520, + "icon": "brise", + "explorers": [ + { + "name": "Brise Scan", + "url": "https://brisescan.com", + "icon": "brise", + "standard": "EIP3091" + } + ] + }, + { + "name": "Fusion Mainnet", + "chain": "FSN", + "icon": "fusion", + "rpc": [ + "https://mainnet.fusionnetwork.io", + "wss://mainnet.fusionnetwork.io" + ], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "Fusion", "symbol": "FSN", "decimals": 18 }, + "infoURL": "https://fusion.org", + "shortName": "fsn", + "chainId": 32659, + "networkId": 32659, + "slip44": 288, + "explorers": [ + { + "name": "fsnscan", + "url": "https://fsnscan.com", + "icon": "fsnscan", + "standard": "EIP3091" + } + ] + }, + { + "name": "Zilliqa EVM", + "chain": "ZIL", + "rpc": ["https://api.zilliqa.com"], + "faucets": [], + "nativeCurrency": { "name": "Zilliqa", "symbol": "ZIL", "decimals": 18 }, + "infoURL": "https://www.zilliqa.com/", + "shortName": "zil", + "chainId": 32769, + "networkId": 32769, + "icon": "zilliqa", + "explorers": [ + { + "name": "Zilliqa EVM Explorer", + "url": "https://evmx.zilliqa.com", + "standard": "none" + } + ] + }, + { + "name": "Zilliqa EVM Testnet", + "chain": "ZIL", + "rpc": ["https://dev-api.zilliqa.com"], + "faucets": ["https://dev-wallet.zilliqa.com/faucet?network=testnet"], + "nativeCurrency": { "name": "Zilliqa", "symbol": "ZIL", "decimals": 18 }, + "infoURL": "https://www.zilliqa.com/", + "shortName": "zil-testnet", + "chainId": 33101, + "networkId": 33101, + "explorers": [ + { + "name": "Zilliqa EVM Explorer", + "url": "https://evmx.zilliqa.com", + "standard": "none" + } + ] + }, + { + "name": "Aves Mainnet", + "chain": "AVS", + "rpc": ["https://rpc.avescoin.io"], + "faucets": [], + "nativeCurrency": { "name": "Aves", "symbol": "AVS", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://avescoin.io", + "shortName": "avs", + "chainId": 33333, + "networkId": 33333, + "icon": "aves", + "explorers": [ + { + "name": "avescan", + "url": "https://avescan.io", + "icon": "avescan", + "standard": "EIP3091" + } + ] + }, + { + "name": "J2O Taro", + "chain": "TARO", + "rpc": ["https://rpc.j2o.io"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "TARO Coin", "symbol": "taro", "decimals": 18 }, + "infoURL": "https://j2o.io", + "shortName": "j2o", + "chainId": 35011, + "networkId": 35011, + "explorers": [ + { + "name": "J2O Taro Explorer", + "url": "https://exp.j2o.io", + "icon": "j2otaro", + "standard": "EIP3091" + } + ] + }, + { + "name": "Q Mainnet", + "chain": "Q", + "rpc": ["https://rpc.q.org"], + "faucets": [], + "nativeCurrency": { "name": "Q token", "symbol": "Q", "decimals": 18 }, + "infoURL": "https://q.org", + "shortName": "q", + "chainId": 35441, + "networkId": 35441, + "icon": "q", + "explorers": [ + { + "name": "Q explorer", + "url": "https://explorer.q.org", + "icon": "q", + "standard": "EIP3091" + } + ] + }, + { + "name": "Q Testnet", + "chain": "Q", + "rpc": ["https://rpc.qtestnet.org"], + "faucets": [], + "nativeCurrency": { "name": "Q token", "symbol": "Q", "decimals": 18 }, + "infoURL": "https://q.org/", + "shortName": "q-testnet", + "chainId": 35443, + "networkId": 35443, + "icon": "q", + "explorers": [ + { + "name": "Q explorer", + "url": "https://explorer.qtestnet.org", + "icon": "q", + "standard": "EIP3091" + } + ] + }, + { + "name": "Energi Mainnet", + "chain": "NRG", + "rpc": ["https://nodeapi.energi.network"], + "faucets": [], + "nativeCurrency": { "name": "Energi", "symbol": "NRG", "decimals": 18 }, + "infoURL": "https://www.energi.world/", + "shortName": "nrg", + "chainId": 39797, + "networkId": 39797, + "slip44": 39797 + }, + { + "name": "OHO Mainnet", + "chain": "OHO", + "rpc": ["https://mainnet.oho.ai"], + "faucets": [], + "nativeCurrency": { "name": "OHO", "symbol": "OHO", "decimals": 18 }, + "infoURL": "https://oho.ai", + "shortName": "oho", + "chainId": 39815, + "networkId": 39815, + "icon": "oho", + "explorers": [ + { + "name": "ohoscan", + "url": "https://ohoscan.com", + "icon": "ohoscan", + "standard": "EIP3091" + } + ] + }, + { + "name": "Opulent-X BETA", + "chainId": 41500, + "shortName": "ox-beta", + "chain": "Opulent-X", + "networkId": 41500, + "nativeCurrency": { "name": "Oxyn Gas", "symbol": "OXYN", "decimals": 18 }, + "rpc": ["https://connect.opulent-x.com"], + "faucets": [], + "infoURL": "https://beta.opulent-x.com", + "explorers": [ + { + "name": "Opulent-X BETA Explorer", + "url": "https://explorer.opulent-x.com", + "standard": "none" + } + ] + }, + { + "name": "pegglecoin", + "chain": "42069", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "pegglecoin", + "symbol": "peggle", + "decimals": 18 + }, + "infoURL": "https://teampeggle.com", + "shortName": "PC", + "chainId": 42069, + "networkId": 42069 + }, + { + "name": "Arbitrum One", + "chainId": 42161, + "shortName": "arb1", + "chain": "ETH", + "networkId": 42161, + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "rpc": [ + "https://arbitrum-mainnet.infura.io/v3/${INFURA_API_KEY}", + "https://arb-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}", + "https://arb1.arbitrum.io/rpc" + ], + "faucets": [], + "explorers": [ + { + "name": "Arbiscan", + "url": "https://arbiscan.io", + "standard": "EIP3091" + }, + { + "name": "Arbitrum Explorer", + "url": "https://explorer.arbitrum.io", + "standard": "EIP3091" + } + ], + "infoURL": "https://arbitrum.io", + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://bridge.arbitrum.io" }] + } + }, + { + "name": "Arbitrum Nova", + "chainId": 42170, + "shortName": "arb-nova", + "chain": "ETH", + "networkId": 42170, + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "rpc": ["https://nova.arbitrum.io/rpc"], + "faucets": [], + "explorers": [ + { + "name": "Arbitrum Nova Chain Explorer", + "url": "https://nova-explorer.arbitrum.io", + "icon": "blockscout", + "standard": "EIP3091" + } + ], + "infoURL": "https://arbitrum.io", + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://bridge.arbitrum.io" }] + } + }, + { + "name": "Celo Mainnet", + "chainId": 42220, + "shortName": "celo", + "chain": "CELO", + "networkId": 42220, + "nativeCurrency": { "name": "CELO", "symbol": "CELO", "decimals": 18 }, + "rpc": ["https://forno.celo.org", "wss://forno.celo.org/ws"], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], + "infoURL": "https://docs.celo.org/", + "explorers": [ + { + "name": "Celoscan", + "url": "https://celoscan.io", + "standard": "EIP3091" + }, + { + "name": "blockscout", + "url": "https://explorer.celo.org", + "standard": "none" + } + ] + }, + { + "name": "Oasis Emerald Testnet", + "chain": "Emerald", + "icon": "oasis", + "rpc": [ + "https://testnet.emerald.oasis.dev/", + "wss://testnet.emerald.oasis.dev/ws" + ], + "faucets": ["https://faucet.testnet.oasis.dev/"], + "nativeCurrency": { + "name": "Emerald Rose", + "symbol": "ROSE", + "decimals": 18 + }, + "infoURL": "https://docs.oasis.io/dapp/emerald", + "shortName": "emerald-testnet", + "chainId": 42261, + "networkId": 42261, + "explorers": [ + { + "name": "Oasis Emerald Testnet Explorer", + "url": "https://testnet.explorer.emerald.oasis.dev", + "standard": "EIP3091" + } + ] + }, + { + "name": "Oasis Emerald", + "chain": "Emerald", + "icon": "oasis", + "rpc": ["https://emerald.oasis.dev", "wss://emerald.oasis.dev/ws"], + "faucets": [], + "nativeCurrency": { + "name": "Emerald Rose", + "symbol": "ROSE", + "decimals": 18 + }, + "infoURL": "https://docs.oasis.io/dapp/emerald", + "shortName": "emerald", + "chainId": 42262, + "networkId": 42262, + "explorers": [ + { + "name": "Oasis Emerald Explorer", + "url": "https://explorer.emerald.oasis.dev", + "standard": "EIP3091" + } + ] + }, + { + "name": "Athereum", + "chain": "ATH", + "rpc": ["https://ava.network:21015/ext/evm/rpc"], + "faucets": ["http://athfaucet.ava.network//?address=${ADDRESS}"], + "nativeCurrency": { + "name": "Athereum Ether", + "symbol": "ATH", + "decimals": 18 + }, + "infoURL": "https://athereum.ava.network", + "shortName": "avaeth", + "chainId": 43110, + "networkId": 43110 + }, + { + "name": "Avalanche Fuji Testnet", + "chain": "AVAX", + "icon": "avax", + "rpc": [ + "https://api.avax-test.network/ext/bc/C/rpc", + "https://avalanche-fuji-c-chain.publicnode.com" + ], + "faucets": ["https://faucet.avax-test.network/"], + "nativeCurrency": { "name": "Avalanche", "symbol": "AVAX", "decimals": 18 }, + "infoURL": "https://cchain.explorer.avax-test.network", + "shortName": "Fuji", + "chainId": 43113, + "networkId": 1, + "explorers": [ + { + "name": "snowtrace", + "url": "https://testnet.snowtrace.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Avalanche C-Chain", + "chain": "AVAX", + "icon": "avax", + "rpc": [ + "https://api.avax.network/ext/bc/C/rpc", + "https://avalanche-c-chain.publicnode.com" + ], + "features": [{ "name": "EIP1559" }], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], + "nativeCurrency": { "name": "Avalanche", "symbol": "AVAX", "decimals": 18 }, + "infoURL": "https://www.avax.network/", + "shortName": "avax", + "chainId": 43114, + "networkId": 43114, + "slip44": 9005, + "explorers": [ + { + "name": "snowtrace", + "url": "https://snowtrace.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Boba Avax", + "chain": "Boba Avax", + "rpc": [ + "https://avax.boba.network", + "wss://wss.avax.boba.network", + "https://replica.avax.boba.network", + "wss://replica-wss.avax.boba.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://docs.boba.network/for-developers/network-avalanche", + "shortName": "bobaavax", + "chainId": 43288, + "networkId": 43288, + "explorers": [ + { + "name": "Boba Avax Explorer", + "url": "https://blockexplorer.avax.boba.network", + "standard": "none" + } + ] + }, + { + "name": "Frenchain", + "chain": "fren", + "rpc": ["https://rpc-02.frenscan.io"], + "faucets": [], + "nativeCurrency": { "name": "FREN", "symbol": "FREN", "decimals": 18 }, + "infoURL": "https://frenchain.app", + "shortName": "FREN", + "chainId": 44444, + "networkId": 44444, + "icon": "fren", + "explorers": [ + { + "name": "blockscout", + "url": "https://frenscan.io", + "icon": "fren", + "standard": "EIP3091" + } + ] + }, + { + "name": "Celo Alfajores Testnet", + "chainId": 44787, + "shortName": "ALFA", + "chain": "CELO", + "networkId": 44787, + "nativeCurrency": { "name": "CELO", "symbol": "CELO", "decimals": 18 }, + "rpc": [ + "https://alfajores-forno.celo-testnet.org", + "wss://alfajores-forno.celo-testnet.org/ws" + ], + "faucets": [ + "https://celo.org/developers/faucet", + "https://cauldron.pretoriaresearchlab.io/alfajores-faucet" + ], + "infoURL": "https://docs.celo.org/", + "explorers": [ + { + "name": "Celoscan", + "url": "https://celoscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Autobahn Network", + "chain": "TXL", + "rpc": ["https://rpc.autobahn.network"], + "faucets": [], + "nativeCurrency": { "name": "TXL", "symbol": "TXL", "decimals": 18 }, + "infoURL": "https://autobahn.network", + "shortName": "AutobahnNetwork", + "chainId": 45000, + "networkId": 45000, + "icon": "autobahn", + "explorers": [ + { + "name": "autobahn explorer", + "url": "https://explorer.autobahn.network", + "icon": "autobahn", + "standard": "EIP3091" + } + ] + }, + { + "name": "Fusion Testnet", + "chain": "FSN", + "icon": "fusion", + "rpc": [ + "https://testnet.fusionnetwork.io", + "wss://testnet.fusionnetwork.io" + ], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { + "name": "Testnet Fusion", + "symbol": "T-FSN", + "decimals": 18 + }, + "infoURL": "https://fusion.org", + "shortName": "tfsn", + "chainId": 46688, + "networkId": 46688, + "slip44": 288, + "explorers": [ + { + "name": "fsnscan", + "url": "https://testnet.fsnscan.com", + "icon": "fsnscan", + "standard": "EIP3091" + } + ] + }, + { + "name": "REI Network", + "chain": "REI", + "rpc": ["https://rpc.rei.network", "wss://rpc.rei.network"], + "faucets": [], + "nativeCurrency": { "name": "REI", "symbol": "REI", "decimals": 18 }, + "infoURL": "https://rei.network/", + "shortName": "REI", + "chainId": 47805, + "networkId": 47805, + "explorers": [ + { + "name": "rei-scan", + "url": "https://scan.rei.network", + "standard": "none" + } + ] + }, + { + "name": "Wireshape Floripa Testnet", + "title": "Wireshape Floripa Testnet", + "chain": "Wireshape", + "icon": "wireshape", + "rpc": [ + "https://rpc-floripa.wireshape.org", + "https://wireshape-floripa-testnet.rpc.thirdweb.com" + ], + "faucets": [], + "nativeCurrency": { "name": "WIRE", "symbol": "WIRE", "decimals": 18 }, + "infoURL": "https://wireshape.org", + "shortName": "floripa", + "chainId": 49049, + "networkId": 49049, + "explorers": [ + { + "name": "Wire Explorer", + "url": "https://floripa-explorer.wireshape.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bifrost Testnet", + "title": "The Bifrost Testnet network", + "chain": "BFC", + "rpc": [ + "https://public-01.testnet.thebifrost.io/rpc", + "https://public-02.testnet.thebifrost.io/rpc" + ], + "faucets": [], + "nativeCurrency": { "name": "Bifrost", "symbol": "BFC", "decimals": 18 }, + "infoURL": "https://thebifrost.io", + "shortName": "tbfc", + "chainId": 49088, + "networkId": 49088, + "icon": "bifrost", + "explorers": [ + { + "name": "explorer-thebifrost", + "url": "https://explorer.testnet.thebifrost.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Energi Testnet", + "chain": "NRG", + "rpc": ["https://nodeapi.test.energi.network"], + "faucets": [], + "nativeCurrency": { "name": "Energi", "symbol": "NRG", "decimals": 18 }, + "infoURL": "https://www.energi.world/", + "shortName": "tnrg", + "chainId": 49797, + "networkId": 49797, + "slip44": 49797 + }, + { + "name": "Liveplex OracleEVM", + "chain": "Liveplex OracleEVM Network", + "rpc": ["https://rpc.oracle.liveplex.io"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "", + "shortName": "LOE", + "chainId": 50001, + "networkId": 50001, + "explorers": [] + }, + { + "name": "GTON Testnet", + "chain": "GTON Testnet", + "rpc": ["https://testnet.gton.network/"], + "faucets": [], + "nativeCurrency": { "name": "GCD", "symbol": "GCD", "decimals": 18 }, + "infoURL": "https://gton.capital", + "shortName": "tgton", + "chainId": 50021, + "networkId": 50021, + "explorers": [ + { + "name": "GTON Testnet Network Explorer", + "url": "https://explorer.testnet.gton.network", + "standard": "EIP3091" + } + ], + "parent": { "type": "L2", "chain": "eip155-3" } + }, + { + "name": "Opside Testnet Pre-Alpha", + "chain": "ETH", + "rpc": [ + "https://pre-alpha-us-http-geth.opside.network", + "https://pre-alpha-hk-http-geth.opside.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "IDE Test Token", + "symbol": "IDE", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://opsi.de/", + "shortName": "Opside-Testnet", + "chainId": 51178, + "networkId": 51178, + "icon": "opside-new", + "explorers": [ + { + "name": "OpsideTestnetInfo", + "url": "https://pre-alpha.opside.info", + "icon": "opside-new", + "standard": "EIP3091" + } + ] + }, + { + "name": "Sardis Mainnet", + "chain": "SRDX", + "icon": "sardis", + "rpc": ["https://mainnet-rpc.sardisnetwork.com"], + "faucets": ["https://faucet.sardisnetwork.com"], + "nativeCurrency": { "name": "Sardis", "symbol": "SRDX", "decimals": 18 }, + "infoURL": "https://mysardis.com", + "shortName": "SRDXm", + "chainId": 51712, + "networkId": 51712, + "explorers": [ + { + "name": "Sardis", + "url": "https://contract-mainnet.sardisnetwork.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "DFK Chain", + "chain": "DFK", + "icon": "dfk", + "rpc": ["https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Jewel", "symbol": "JEWEL", "decimals": 18 }, + "infoURL": "https://defikingdoms.com", + "shortName": "DFK", + "chainId": 53935, + "networkId": 53935, + "explorers": [ + { + "name": "ethernal", + "url": "https://explorer.dfkchain.com", + "icon": "ethereum", + "standard": "none" + } + ] + }, + { + "name": "Haqq Chain Testnet", + "chain": "TestEdge2", + "rpc": ["https://rpc.eth.testedge2.haqq.network"], + "faucets": ["https://testedge2.haqq.network"], + "nativeCurrency": { + "name": "Islamic Coin", + "symbol": "ISLMT", + "decimals": 18 + }, + "infoURL": "https://islamiccoin.net", + "shortName": "ISLMT", + "chainId": 54211, + "networkId": 54211, + "explorers": [ + { + "name": "TestEdge HAQQ Explorer", + "url": "https://explorer.testedge2.haqq.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Titan", + "chain": "ETH", + "rpc": [ + "https://rpc.titan.tokamak.network", + "wss://rpc.titan.tokamak.network/ws" + ], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://tokamak.network", + "shortName": "teth", + "chainId": 55004, + "networkId": 55004, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.titan.tokamak.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "REI Chain Mainnet", + "chain": "REI", + "icon": "reichain", + "rpc": ["https://rei-rpc.moonrhythm.io"], + "faucets": ["http://kururu.finance/faucet?chainId=55555"], + "nativeCurrency": { "name": "Rei", "symbol": "REI", "decimals": 18 }, + "infoURL": "https://reichain.io", + "shortName": "reichain", + "chainId": 55555, + "networkId": 55555, + "explorers": [ + { "name": "reiscan", "url": "https://reiscan.com", "standard": "EIP3091" } + ] + }, + { + "name": "REI Chain Testnet", + "chain": "REI", + "icon": "reichain", + "rpc": ["https://rei-testnet-rpc.moonrhythm.io"], + "faucets": ["http://kururu.finance/faucet?chainId=55556"], + "nativeCurrency": { "name": "tRei", "symbol": "tREI", "decimals": 18 }, + "infoURL": "https://reichain.io", + "shortName": "trei", + "chainId": 55556, + "networkId": 55556, + "explorers": [ + { + "name": "reiscan", + "url": "https://testnet.reiscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Boba BNB Mainnet", + "chain": "Boba BNB Mainnet", + "rpc": [ + "https://bnb.boba.network", + "wss://wss.bnb.boba.network", + "https://replica.bnb.boba.network", + "wss://replica-wss.bnb.boba.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "BobaBnb", + "chainId": 56288, + "networkId": 56288, + "explorers": [ + { + "name": "Boba BNB block explorer", + "url": "https://blockexplorer.bnb.boba.network", + "standard": "none" + } + ] + }, + { + "name": "Rollux Testnet", + "chain": "SYS", + "rpc": [ + "https://rpc-tanenbaum.rollux.com", + "https://rpc.ankr.com/rollux_testnet/${ANKR_API_KEY}", + "wss://rpc-tanenbaum.rollux.com/wss" + ], + "faucets": ["https://rollux.id/faucetapp"], + "nativeCurrency": { + "name": "Testnet Syscoin", + "symbol": "TSYS", + "decimals": 18 + }, + "infoURL": "https://rollux.com", + "shortName": "tsys-rollux", + "chainId": 57000, + "networkId": 57000, + "explorers": [ + { + "name": "Rollux Testnet Explorer", + "url": "https://rollux.tanenbaum.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Linea Testnet", + "title": "Linea Goerli Testnet", + "chain": "ETH", + "rpc": [ + "https://rpc.goerli.linea.build", + "wss://rpc.goerli.linea.build", + "https://linea-goerli.infura.io/v3/${INFURA_API_KEY}", + "wss://linea-goerli.infura.io/v3/${INFURA_API_KEY}" + ], + "faucets": ["https://faucetlink.to/goerli"], + "nativeCurrency": { + "name": "Linea Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://linea.build", + "shortName": "linea-testnet", + "chainId": 59140, + "networkId": 59140, + "icon": "linea", + "parent": { + "type": "L2", + "chain": "eip155-5", + "bridges": [ + { + "url": "https://goerli.hop.exchange/#/send?token=ETH&sourceNetwork=ethereum&destNetwork=linea" + } + ] + }, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.goerli.linea.build", + "standard": "EIP3091", + "icon": "linea" + } + ], + "status": "active" + }, + { + "name": "Thinkium Testnet Chain 0", + "chain": "Thinkium", + "rpc": ["https://test.thinkiumrpc.net/"], + "faucets": ["https://www.thinkiumdev.net/faucet"], + "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, + "infoURL": "https://thinkium.net/", + "shortName": "TKM-test0", + "chainId": 60000, + "networkId": 60000, + "explorers": [ + { + "name": "thinkiumscan", + "url": "https://test0.thinkiumscan.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Thinkium Testnet Chain 1", + "chain": "Thinkium", + "rpc": ["https://test1.thinkiumrpc.net/"], + "faucets": ["https://www.thinkiumdev.net/faucet"], + "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, + "infoURL": "https://thinkium.net/", + "shortName": "TKM-test1", + "chainId": 60001, + "networkId": 60001, + "explorers": [ + { + "name": "thinkiumscan", + "url": "https://test1.thinkiumscan.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Thinkium Testnet Chain 2", + "chain": "Thinkium", + "rpc": ["https://test2.thinkiumrpc.net/"], + "faucets": ["https://www.thinkiumdev.net/faucet"], + "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, + "infoURL": "https://thinkium.net/", + "shortName": "TKM-test2", + "chainId": 60002, + "networkId": 60002, + "explorers": [ + { + "name": "thinkiumscan", + "url": "https://test2.thinkiumscan.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Thinkium Testnet Chain 103", + "chain": "Thinkium", + "rpc": ["https://test103.thinkiumrpc.net/"], + "faucets": ["https://www.thinkiumdev.net/faucet"], + "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, + "infoURL": "https://thinkium.net/", + "shortName": "TKM-test103", + "chainId": 60103, + "networkId": 60103, + "explorers": [ + { + "name": "thinkiumscan", + "url": "https://test103.thinkiumscan.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "AxelChain Dev-Net", + "chain": "AXEL", + "rpc": ["https://aium-rpc-dev.viacube.com"], + "faucets": [], + "nativeCurrency": { "name": "Axelium", "symbol": "AIUM", "decimals": 18 }, + "infoURL": "https://www.axel.org", + "shortName": "aium-dev", + "chainId": 61800, + "networkId": 61800, + "icon": "axelium", + "explorers": [ + { + "name": "AxelChain Dev-Net Explorer", + "url": "https://devexplorer2.viacube.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Etica Mainnet", + "chain": "Etica Protocol (ETI/EGAZ)", + "icon": "etica", + "rpc": [ + "https://eticamainnet.eticascan.org", + "https://eticamainnet.eticaprotocol.org" + ], + "faucets": ["http://faucet.etica-stats.org/"], + "nativeCurrency": { "name": "EGAZ", "symbol": "EGAZ", "decimals": 18 }, + "infoURL": "https://eticaprotocol.org", + "shortName": "Etica", + "chainId": 61803, + "networkId": 61803, + "explorers": [ + { + "name": "eticascan", + "url": "https://eticascan.org", + "standard": "EIP3091" }, - "infoURL": "https://sepolia.otterscan.io", - "shortName": "sep", - "chainId": 11155111, - "networkId": 11155111, - "explorers": [ - { - "name": "otterscan-sepolia", - "url": "https://sepolia.otterscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "PepChain Churchill", - "chain": "PEP", - "rpc": ["https://churchill-rpc.pepchain.io"], - "faucets": [], - "nativeCurrency": { - "name": "PepChain Churchill Ether", - "symbol": "TPEP", - "decimals": 18 + { + "name": "eticastats", + "url": "http://explorer.etica-stats.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "DoKEN Super Chain Mainnet", + "chain": "DoKEN Super Chain", + "rpc": [ + "https://sgrpc.doken.dev", + "https://nyrpc.doken.dev", + "https://ukrpc.doken.dev" + ], + "faucets": [], + "nativeCurrency": { "name": "DoKEN", "symbol": "DKN", "decimals": 18 }, + "infoURL": "https://doken.dev/", + "shortName": "DoKEN", + "chainId": 61916, + "networkId": 61916, + "icon": "doken", + "explorers": [ + { + "name": "DSC Scan", + "url": "https://explore.doken.dev", + "icon": "doken", + "standard": "EIP3091" + } + ] + }, + { + "name": "Celo Baklava Testnet", + "chainId": 62320, + "shortName": "BKLV", + "chain": "CELO", + "networkId": 62320, + "nativeCurrency": { "name": "CELO", "symbol": "CELO", "decimals": 18 }, + "rpc": ["https://baklava-forno.celo-testnet.org"], + "faucets": [ + "https://docs.google.com/forms/d/e/1FAIpQLSdfr1BwUTYepVmmvfVUDRCwALejZ-TUva2YujNpvrEmPAX2pg/viewform", + "https://cauldron.pretoriaresearchlab.io/baklava-faucet" + ], + "infoURL": "https://docs.celo.org/" + }, + { + "name": "MultiVAC Mainnet", + "chain": "MultiVAC", + "icon": "multivac", + "rpc": ["https://rpc.mtv.ac", "https://rpc-eu.mtv.ac"], + "faucets": [], + "nativeCurrency": { "name": "MultiVAC", "symbol": "MTV", "decimals": 18 }, + "infoURL": "https://mtv.ac", + "shortName": "mtv", + "chainId": 62621, + "networkId": 62621, + "explorers": [ + { + "name": "MultiVAC Explorer", + "url": "https://e.mtv.ac", + "standard": "none" + } + ] + }, + { + "name": "eCredits Mainnet", + "chain": "ECS", + "rpc": ["https://rpc.ecredits.com"], + "faucets": [], + "nativeCurrency": { "name": "eCredits", "symbol": "ECS", "decimals": 18 }, + "infoURL": "https://ecredits.com", + "shortName": "ecs", + "chainId": 63000, + "networkId": 63000, + "icon": "ecredits", + "explorers": [ + { + "name": "eCredits MainNet Explorer", + "url": "https://explorer.ecredits.com", + "icon": "ecredits", + "standard": "EIP3091" + } + ] + }, + { + "name": "eCredits Testnet", + "chain": "ECS", + "rpc": ["https://rpc.tst.ecredits.com"], + "faucets": ["https://faucet.tst.ecredits.com"], + "nativeCurrency": { "name": "eCredits", "symbol": "ECS", "decimals": 18 }, + "infoURL": "https://ecredits.com", + "shortName": "ecs-testnet", + "chainId": 63001, + "networkId": 63001, + "icon": "ecredits", + "explorers": [ + { + "name": "eCredits TestNet Explorer", + "url": "https://explorer.tst.ecredits.com", + "icon": "ecredits", + "standard": "EIP3091" + } + ] + }, + { + "name": "Scolcoin Mainnet", + "chain": "SCOLWEI", + "rpc": ["https://mainnet-rpc.scolcoin.com"], + "faucets": [], + "nativeCurrency": { "name": "Scolcoin", "symbol": "SCOL", "decimals": 18 }, + "infoURL": "https://scolcoin.com", + "shortName": "SRC", + "chainId": 65450, + "networkId": 65450, + "icon": "scolcoin", + "explorers": [ + { + "name": "Scolscan Explorer", + "url": "https://explorer.scolcoin.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "SiriusNet", + "chain": "SIN", + "status": "deprecated", + "rpc": [ + "https://u0tnafcv6j:o2T045sxuCNXL878RDQLp5__Zj-es2cvdjtgkl4etn0@u0v7kwtvtg-u0wj114sve-rpc.us0-aws.kaleido.io/" + ], + "faucets": [], + "nativeCurrency": { "name": "MCD", "symbol": "MCD", "decimals": 18 }, + "infoURL": "https://macaucasinolisboa.xyz", + "shortName": "mcl", + "chainId": 67390, + "networkId": 67390, + "explorers": [ + { + "name": "siriusnetscan", + "url": "https://siriusnet.tryethernal.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Cosmic Chain", + "chain": "COSMIC", + "rpc": ["http://testnet.cosmicchain.site:3344"], + "faucets": [], + "nativeCurrency": { + "name": "Cosmic Chain", + "symbol": "COSMIC", + "decimals": 18 + }, + "infoURL": "https://cosmicchain.site", + "shortName": "Cosmic", + "chainId": 67588, + "networkId": 3344 + }, + { + "name": "Condrieu", + "title": "Ethereum Verkle Testnet Condrieu", + "chain": "ETH", + "rpc": ["https://rpc.condrieu.ethdevops.io:8545"], + "faucets": ["https://faucet.condrieu.ethdevops.io"], + "nativeCurrency": { + "name": "Condrieu Testnet Ether", + "symbol": "CTE", + "decimals": 18 + }, + "infoURL": "https://condrieu.ethdevops.io", + "shortName": "cndr", + "chainId": 69420, + "networkId": 69420, + "explorers": [ + { + "name": "Condrieu explorer", + "url": "https://explorer.condrieu.ethdevops.io", + "standard": "none" + } + ] + }, + { + "name": "Thinkium Mainnet Chain 0", + "chain": "Thinkium", + "rpc": ["https://proxy.thinkiumrpc.net/"], + "faucets": [], + "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, + "infoURL": "https://thinkium.net/", + "shortName": "TKM0", + "chainId": 70000, + "networkId": 70000, + "explorers": [ + { + "name": "thinkiumscan", + "url": "https://chain0.thinkiumscan.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Thinkium Mainnet Chain 1", + "chain": "Thinkium", + "rpc": ["https://proxy1.thinkiumrpc.net/"], + "faucets": [], + "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, + "infoURL": "https://thinkium.net/", + "shortName": "TKM1", + "chainId": 70001, + "networkId": 70001, + "explorers": [ + { + "name": "thinkiumscan", + "url": "https://chain1.thinkiumscan.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Thinkium Mainnet Chain 2", + "chain": "Thinkium", + "rpc": ["https://proxy2.thinkiumrpc.net/"], + "faucets": [], + "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, + "infoURL": "https://thinkium.net/", + "shortName": "TKM2", + "chainId": 70002, + "networkId": 70002, + "explorers": [ + { + "name": "thinkiumscan", + "url": "https://chain2.thinkiumscan.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Thinkium Mainnet Chain 103", + "chain": "Thinkium", + "rpc": ["https://proxy103.thinkiumrpc.net/"], + "faucets": [], + "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, + "infoURL": "https://thinkium.net/", + "shortName": "TKM103", + "chainId": 70103, + "networkId": 70103, + "explorers": [ + { + "name": "thinkiumscan", + "url": "https://chain103.thinkiumscan.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "GuapcoinX", + "chain": "GuapcoinX", + "rpc": [ + "https://rpc-mainnet.guapcoinx.com/", + "https://rpc-mainnet-1.guapcoinx.com/", + "https://rpc-mainnet-2.guapcoinx.com/" + ], + "faucets": [], + "nativeCurrency": { + "name": "GuapcoinX", + "symbol": "GuapX", + "decimals": 18 + }, + "infoURL": "https://guapcoin.org/", + "shortName": "GuapX", + "chainId": 71111, + "networkId": 71111, + "icon": "guapcoinx", + "explorers": [ + { + "name": "GuapcoinX Explorer", + "url": "http://explorer.guapcoinx.com", + "standard": "none", + "icon": "guapcoinx" + } + ] + }, + { + "name": "Polyjuice Testnet", + "chain": "CKB", + "icon": "polyjuice", + "rpc": [ + "https://godwoken-testnet-web3-rpc.ckbapp.dev", + "ws://godwoken-testnet-web3-rpc.ckbapp.dev/ws" + ], + "faucets": ["https://faucet.nervos.org/"], + "nativeCurrency": { "name": "CKB", "symbol": "CKB", "decimals": 8 }, + "infoURL": "https://github.com/nervosnetwork/godwoken", + "shortName": "ckb", + "chainId": 71393, + "networkId": 1 + }, + { + "name": "Godwoken Testnet v1", + "chain": "GWT", + "rpc": [ + "https://godwoken-testnet-v1.ckbapp.dev", + "https://v1.testnet.godwoken.io/rpc" + ], + "faucets": ["https://testnet.bridge.godwoken.io"], + "nativeCurrency": { "name": "pCKB", "symbol": "pCKB", "decimals": 18 }, + "infoURL": "https://www.nervos.org", + "shortName": "gw-testnet-v1", + "chainId": 71401, + "networkId": 71401, + "explorers": [ + { + "name": "GWScan Block Explorer", + "url": "https://v1.testnet.gwscan.com", + "standard": "none" + } + ] + }, + { + "name": "Godwoken Mainnet", + "chain": "GWT", + "rpc": ["https://v1.mainnet.godwoken.io/rpc"], + "faucets": [], + "nativeCurrency": { "name": "pCKB", "symbol": "pCKB", "decimals": 18 }, + "infoURL": "https://www.nervos.org", + "shortName": "gw-mainnet-v1", + "chainId": 71402, + "networkId": 71402, + "explorers": [ + { + "name": "GWScan Block Explorer", + "url": "https://v1.gwscan.com", + "standard": "none" + } + ] + }, + { + "name": "Energy Web Volta Testnet", + "chain": "Volta", + "rpc": [ + "https://volta-rpc.energyweb.org", + "wss://volta-rpc.energyweb.org/ws" + ], + "faucets": ["https://voltafaucet.energyweb.org"], + "nativeCurrency": { "name": "Volta Token", "symbol": "VT", "decimals": 18 }, + "infoURL": "https://energyweb.org", + "shortName": "vt", + "chainId": 73799, + "networkId": 73799 + }, + { + "name": "Mixin Virtual Machine", + "chain": "MVM", + "rpc": ["https://geth.mvm.dev"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://mvm.dev", + "shortName": "mvm", + "chainId": 73927, + "networkId": 73927, + "icon": "mvm", + "explorers": [ + { + "name": "mvmscan", + "url": "https://scan.mvm.dev", + "icon": "mvm", + "standard": "EIP3091" + } + ] + }, + { + "name": "ResinCoin Mainnet", + "chain": "RESIN", + "icon": "resincoin", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "RESIN", "decimals": 18 }, + "infoURL": "https://resincoin.dev", + "shortName": "resin", + "chainId": 75000, + "networkId": 75000, + "explorers": [ + { + "name": "ResinScan", + "url": "https://explorer.resincoin.dev", + "standard": "none" + } + ] + }, + { + "name": "Vention Smart Chain Mainnet", + "chain": "VSC", + "icon": "vention", + "rpc": ["https://mainnet-rpc.vention.network"], + "faucets": ["https://faucet.vention.network"], + "nativeCurrency": { "name": "VNT", "symbol": "VNT", "decimals": 18 }, + "infoURL": "https://ventionscan.io", + "shortName": "vscm", + "chainId": 77612, + "networkId": 77612, + "explorers": [ + { + "name": "ventionscan", + "url": "https://ventionscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Firenze test network", + "chain": "ETH", + "rpc": ["https://ethnode.primusmoney.com/firenze"], + "faucets": [], + "nativeCurrency": { + "name": "Firenze Ether", + "symbol": "FIN", + "decimals": 18 + }, + "infoURL": "https://primusmoney.com", + "shortName": "firenze", + "chainId": 78110, + "networkId": 78110 + }, + { + "name": "Dragonfly Mainnet (Hexapod)", + "chain": "Dragonfly", + "icon": "dragonfly", + "rpc": [ + "https://dragonfly-rpc.switch.ch", + "https://dragonfly-rpc.kore-technologies.ch", + "https://dragonfly-rpc.phoenix-systems.io", + "https://dragonfly-rpc.block-spirit.ch" + ], + "faucets": [], + "nativeCurrency": { "name": "Dragonfly", "symbol": "DFLY", "decimals": 18 }, + "infoURL": "https://hexapod.network", + "shortName": "dfly", + "chainId": 78281, + "networkId": 78281, + "explorers": [ + { + "name": "Dragonfly Blockscout", + "url": "https://blockscout.dragonfly.hexapod.network", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "Gold Smart Chain Testnet", + "chain": "STAND", + "icon": "standTestnet", + "rpc": ["https://rpc-testnet.goldsmartchain.com"], + "faucets": ["https://faucet.goldsmartchain.com"], + "nativeCurrency": { + "name": "Standard in Gold", + "symbol": "STAND", + "decimals": 18 + }, + "infoURL": "https://goldsmartchain.com", + "shortName": "STANDt", + "chainId": 79879, + "networkId": 79879, + "explorers": [ + { + "name": "Gold Smart Chain", + "url": "https://testnet.goldsmartchain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Mumbai", + "title": "Polygon Testnet Mumbai", + "chain": "Polygon", + "icon": "polygon", + "rpc": [ + "https://matic-mumbai.chainstacklabs.com", + "https://rpc-mumbai.maticvigil.com", + "https://matic-testnet-archive-rpc.bwarelabs.com", + "https://polygon-mumbai-bor.publicnode.com" + ], + "faucets": ["https://faucet.polygon.technology/"], + "nativeCurrency": { "name": "MATIC", "symbol": "MATIC", "decimals": 18 }, + "infoURL": "https://polygon.technology/", + "shortName": "maticmum", + "chainId": 80001, + "networkId": 80001, + "explorers": [ + { + "name": "polygonscan", + "url": "https://mumbai.polygonscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Amana Testnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Amana Testnet", + "symbol": "MEER-T", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "amanatest", + "icon": "meer", + "chainId": 81341, + "networkId": 81341, + "status": "incubating" + }, + { + "name": "Amana Mixnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Amana Mixnet", + "symbol": "MEER-M", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "amanamix", + "icon": "meer", + "chainId": 81342, + "networkId": 81342, + "status": "incubating" + }, + { + "name": "Amana Privnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Amana Privnet", + "symbol": "MEER-P", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "amanapriv", + "icon": "meer", + "chainId": 81343, + "networkId": 81343, + "status": "incubating" + }, + { + "name": "Flana Testnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Flana Testnet", + "symbol": "MEER-T", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "flanatest", + "icon": "meer", + "chainId": 81351, + "networkId": 81351, + "status": "incubating" + }, + { + "name": "Flana Mixnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Flana Mixnet", + "symbol": "MEER-M", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "flanamix", + "icon": "meer", + "chainId": 81352, + "networkId": 81352, + "status": "incubating" + }, + { + "name": "Flana Privnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Flana Privnet", + "symbol": "MEER-P", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "flanapriv", + "icon": "meer", + "chainId": 81353, + "networkId": 81353, + "status": "incubating" + }, + { + "name": "Mizana Testnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Mizana Testnet", + "symbol": "MEER-T", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "mizanatest", + "icon": "meer", + "chainId": 81361, + "networkId": 81361, + "status": "incubating" + }, + { + "name": "Mizana Mixnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Mizana Mixnet", + "symbol": "MEER-M", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "mizanamix", + "icon": "meer", + "chainId": 81362, + "networkId": 81362, + "status": "incubating" + }, + { + "name": "Mizana Privnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Mizana Privnet", + "symbol": "MEER-P", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "mizanapriv", + "icon": "meer", + "chainId": 81363, + "networkId": 81363, + "status": "incubating" + }, + { + "name": "Base Goerli Testnet", + "chain": "ETH", + "rpc": ["https://goerli.base.org"], + "faucets": ["https://www.coinbase.com/faucets/base-ethereum-goerli-faucet"], + "nativeCurrency": { + "name": "Goerli Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://base.org", + "shortName": "basegor", + "chainId": 84531, + "networkId": 84531, + "explorers": [ + { + "name": "basescan", + "url": "https://goerli.basescan.org", + "standard": "none" }, - "infoURL": "https://pepchain.io", - "shortName": "tpep", - "chainId": 13371337, - "networkId": 13371337 - }, - { - "name": "IOLite", - "chain": "ILT", - "rpc": ["https://net.iolite.io"], - "faucets": [], - "nativeCurrency": { - "name": "IOLite Ether", - "symbol": "ILT", - "decimals": 18 + { + "name": "basescout", + "url": "https://base-goerli.blockscout.com", + "standard": "none" + } + ] + }, + { + "name": "CYBERTRUST", + "chain": "CYBER", + "rpc": ["http://testnet.cybertrust.space:48501"], + "faucets": [], + "nativeCurrency": { + "name": "Cyber Trust", + "symbol": "CYBER", + "decimals": 18 + }, + "infoURL": "https://cybertrust.space", + "shortName": "Cyber", + "chainId": 85449, + "networkId": 48501 + }, + { + "name": "Chiliz Scoville Testnet", + "chain": "CHZ", + "rpc": ["https://scoville-rpc.chiliz.com"], + "faucets": ["https://scoville-faucet.chiliz.com"], + "nativeCurrency": { "name": "Chiliz", "symbol": "CHZ", "decimals": 18 }, + "icon": "chiliz", + "infoURL": "https://www.chiliz.com/en/chain", + "shortName": "chz", + "chainId": 88880, + "networkId": 88880, + "explorers": [ + { + "name": "scoville-explorer", + "url": "https://scoville-explorer.chiliz.com", + "standard": "none" + } + ] + }, + { + "name": "IVAR Chain Mainnet", + "chain": "IVAR", + "icon": "ivar", + "rpc": ["https://mainnet-rpc.ivarex.com"], + "faucets": ["https://faucet.ivarex.com/"], + "nativeCurrency": { "name": "Ivar", "symbol": "IVAR", "decimals": 18 }, + "infoURL": "https://ivarex.com", + "shortName": "ivar", + "chainId": 88888, + "networkId": 88888, + "explorers": [ + { + "name": "ivarscan", + "url": "https://ivarscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Beverly Hills", + "title": "Ethereum multi-client Verkle Testnet Beverly Hills", + "chain": "ETH", + "rpc": ["https://rpc.beverlyhills.ethdevops.io:8545"], + "faucets": ["https://faucet.beverlyhills.ethdevops.io"], + "nativeCurrency": { + "name": "Beverly Hills Testnet Ether", + "symbol": "BVE", + "decimals": 18 + }, + "infoURL": "https://beverlyhills.ethdevops.io", + "shortName": "bvhl", + "chainId": 90210, + "networkId": 90210, + "status": "incubating", + "explorers": [ + { + "name": "Beverly Hills explorer", + "url": "https://explorer.beverlyhills.ethdevops.io", + "standard": "none" + } + ] + }, + { + "name": "Nautilus Chain", + "title": "Nautilus Trition Testnet", + "chain": "ETH", + "icon": "nautilus", + "rpc": ["https://triton.api.nautchain.xyz"], + "faucets": ["https://faucet.eclipse.builders"], + "nativeCurrency": { + "name": "Nautilus Zebec Testnet Tokens", + "symbol": "tZBC", + "decimals": 18 + }, + "infoURL": "https://docs.nautchain.xyz", + "shortName": "NAUT", + "chainId": 91002, + "networkId": 91002, + "explorers": [ + { + "name": "Nautscan", + "url": "https://triton.nautscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Lambda Testnet", + "chain": "Lambda", + "rpc": ["https://evm.lambda.top/"], + "faucets": ["https://faucet.lambda.top"], + "nativeCurrency": { "name": "test-Lamb", "symbol": "LAMB", "decimals": 18 }, + "infoURL": "https://lambda.im", + "shortName": "lambda-testnet", + "chainId": 92001, + "networkId": 92001, + "icon": "lambda", + "explorers": [ + { + "name": "Lambda EVM Explorer", + "url": "https://explorer.lambda.top", + "standard": "EIP3091", + "icon": "lambda" + } + ] + }, + { + "name": "Mantis Testnet (Hexapod)", + "chain": "Mantis", + "icon": "mantis", + "rpc": [ + "https://mantis-rpc.switch.ch", + "https://mantis-rpc.kore-technologies.ch", + "https://mantis-rpc.phoenix-systems.io" + ], + "faucets": [ + "https://mantis.switch.ch/faucet", + "https://mantis.kore-technologies.ch/faucet", + "https://mantis.phoenix-systems.io/faucet", + "https://mantis.block-spirit.ch/faucet" + ], + "nativeCurrency": { "name": "Mantis", "symbol": "MANTIS", "decimals": 18 }, + "infoURL": "https://hexapod.network", + "shortName": "mantis", + "chainId": 96970, + "networkId": 96970, + "explorers": [ + { + "name": "Mantis Blockscout", + "url": "https://blockscout.mantis.hexapod.network", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "Boba BNB Mainnet Old", + "chain": "Boba BNB Mainnet", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "BobaBnbOld", + "chainId": 97288, + "networkId": 97288, + "explorers": [ + { + "name": "Boba BNB block explorer", + "url": "https://blockexplorer.bnb.boba.network", + "standard": "none" + } + ], + "status": "deprecated" + }, + { + "name": "UB Smart Chain(testnet)", + "chain": "USC", + "rpc": ["https://testnet.rpc.uschain.network"], + "faucets": [], + "nativeCurrency": { "name": "UBC", "symbol": "UBC", "decimals": 18 }, + "infoURL": "https://www.ubchain.site", + "shortName": "usctest", + "chainId": 99998, + "networkId": 99998 + }, + { + "name": "UB Smart Chain", + "chain": "USC", + "rpc": ["https://rpc.uschain.network"], + "faucets": [], + "nativeCurrency": { "name": "UBC", "symbol": "UBC", "decimals": 18 }, + "infoURL": "https://www.ubchain.site/", + "shortName": "usc", + "chainId": 99999, + "networkId": 99999 + }, + { + "name": "QuarkChain Mainnet Root", + "chain": "QuarkChain", + "rpc": ["http://jrpc.mainnet.quarkchain.io:38391"], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-r", + "chainId": 100000, + "networkId": 100000 + }, + { + "name": "QuarkChain Mainnet Shard 0", + "chain": "QuarkChain", + "rpc": [ + "https://mainnet-s0-ethapi.quarkchain.io", + "http://eth-jrpc.mainnet.quarkchain.io:39000" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-s0", + "chainId": 100001, + "networkId": 100001, + "parent": { "chain": "eip155-100000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-mainnet", + "url": "https://mainnet.quarkchain.io/0", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Mainnet Shard 1", + "chain": "QuarkChain", + "rpc": [ + "https://mainnet-s1-ethapi.quarkchain.io", + "http://eth-jrpc.mainnet.quarkchain.io:39001" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-s1", + "chainId": 100002, + "networkId": 100002, + "parent": { "chain": "eip155-100000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-mainnet", + "url": "https://mainnet.quarkchain.io/1", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Mainnet Shard 2", + "chain": "QuarkChain", + "rpc": [ + "https://mainnet-s2-ethapi.quarkchain.io", + "http://eth-jrpc.mainnet.quarkchain.io:39002" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-s2", + "chainId": 100003, + "networkId": 100003, + "parent": { "chain": "eip155-100000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-mainnet", + "url": "https://mainnet.quarkchain.io/2", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Mainnet Shard 3", + "chain": "QuarkChain", + "rpc": [ + "https://mainnet-s3-ethapi.quarkchain.io", + "http://eth-jrpc.mainnet.quarkchain.io:39003" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-s3", + "chainId": 100004, + "networkId": 100004, + "parent": { "chain": "eip155-100000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-mainnet", + "url": "https://mainnet.quarkchain.io/3", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Mainnet Shard 4", + "chain": "QuarkChain", + "rpc": [ + "https://mainnet-s4-ethapi.quarkchain.io", + "http://eth-jrpc.mainnet.quarkchain.io:39004" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-s4", + "chainId": 100005, + "networkId": 100005, + "parent": { "chain": "eip155-100000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-mainnet", + "url": "https://mainnet.quarkchain.io/4", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Mainnet Shard 5", + "chain": "QuarkChain", + "rpc": [ + "https://mainnet-s5-ethapi.quarkchain.io", + "http://eth-jrpc.mainnet.quarkchain.io:39005" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-s5", + "chainId": 100006, + "networkId": 100006, + "parent": { "chain": "eip155-100000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-mainnet", + "url": "https://mainnet.quarkchain.io/5", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Mainnet Shard 6", + "chain": "QuarkChain", + "rpc": [ + "https://mainnet-s6-ethapi.quarkchain.io", + "http://eth-jrpc.mainnet.quarkchain.io:39006" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-s6", + "chainId": 100007, + "networkId": 100007, + "parent": { "chain": "eip155-100000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-mainnet", + "url": "https://mainnet.quarkchain.io/6", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Mainnet Shard 7", + "chain": "QuarkChain", + "rpc": [ + "https://mainnet-s7-ethapi.quarkchain.io", + "http://eth-jrpc.mainnet.quarkchain.io:39007" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-s7", + "chainId": 100008, + "networkId": 100008, + "parent": { "chain": "eip155-100000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-mainnet", + "url": "https://mainnet.quarkchain.io/7", + "standard": "EIP3091" + } + ] + }, + { + "name": "VeChain", + "chain": "VeChain", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "VeChain", "symbol": "VET", "decimals": 18 }, + "infoURL": "https://vechain.org", + "shortName": "vechain", + "chainId": 100009, + "networkId": 100009, + "explorers": [ + { + "name": "VeChain Stats", + "url": "https://vechainstats.com", + "standard": "none" }, - "infoURL": "https://iolite.io", - "shortName": "ilt", - "chainId": 18289463, - "networkId": 18289463 - }, - { - "name": "SmartMesh Mainnet", - "chain": "Spectrum", - "rpc": ["https://jsonapi1.smartmesh.cn"], - "faucets": [], - "nativeCurrency": { - "name": "SmartMesh Native Token", - "symbol": "SMT", - "decimals": 18 + { + "name": "VeChain Explorer", + "url": "https://explore.vechain.org", + "standard": "none" + } + ] + }, + { + "name": "VeChain Testnet", + "chain": "VeChain", + "rpc": [], + "faucets": ["https://faucet.vecha.in"], + "nativeCurrency": { "name": "VeChain", "symbol": "VET", "decimals": 18 }, + "infoURL": "https://vechain.org", + "shortName": "vechain-testnet", + "chainId": 100010, + "networkId": 100010, + "explorers": [ + { + "name": "VeChain Explorer", + "url": "https://explore-testnet.vechain.org", + "standard": "none" + } + ] + }, + { + "name": "Deprecated CHI", + "chain": "CHI1", + "icon": "gnosis", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Chiado xDAI", + "symbol": "xDAI", + "decimals": 18 + }, + "infoURL": "https://docs.gnosischain.com", + "shortName": "chi1", + "chainId": 100100, + "networkId": 100100, + "explorers": [], + "status": "deprecated" + }, + { + "name": "Soverun Testnet", + "chain": "SVRN", + "icon": "soverunTestnet", + "rpc": ["https://testnet-rpc.soverun.com"], + "faucets": ["https://faucet.soverun.com"], + "nativeCurrency": { "name": "Soverun", "symbol": "SVRN", "decimals": 18 }, + "infoURL": "https://soverun.com", + "shortName": "SVRNt", + "chainId": 101010, + "networkId": 101010, + "explorers": [ + { + "name": "Soverun", + "url": "https://testnet.soverun.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Crystaleum", + "chain": "crystal", + "rpc": ["https://evm.cryptocurrencydevs.org", "https://rpc.crystaleum.org"], + "faucets": [], + "nativeCurrency": { "name": "CRFI", "symbol": "â—ˆ", "decimals": 18 }, + "infoURL": "https://crystaleum.org", + "shortName": "CRFI", + "chainId": 103090, + "networkId": 1, + "icon": "crystal", + "explorers": [ + { + "name": "blockscout", + "url": "https://scan.crystaleum.org", + "icon": "crystal", + "standard": "EIP3091" + } + ] + }, + { + "name": "BROChain Mainnet", + "chain": "BRO", + "rpc": [ + "https://rpc.brochain.org", + "http://rpc.brochain.org", + "https://rpc.brochain.org/mainnet", + "http://rpc.brochain.org/mainnet" + ], + "faucets": [], + "nativeCurrency": { "name": "Brother", "symbol": "BRO", "decimals": 18 }, + "infoURL": "https://brochain.org", + "shortName": "bro", + "chainId": 108801, + "networkId": 108801, + "explorers": [ + { + "name": "BROChain Explorer", + "url": "https://explorer.brochain.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Devnet Root", + "chain": "QuarkChain", + "rpc": ["http://jrpc.devnet.quarkchain.io:38391"], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-r", + "chainId": 110000, + "networkId": 110000 + }, + { + "name": "QuarkChain Devnet Shard 0", + "chain": "QuarkChain", + "rpc": [ + "https://devnet-s0-ethapi.quarkchain.io", + "http://eth-jrpc.devnet.quarkchain.io:39900" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-s0", + "chainId": 110001, + "networkId": 110001, + "parent": { "chain": "eip155-110000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-devnet", + "url": "https://devnet.quarkchain.io/0", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Devnet Shard 1", + "chain": "QuarkChain", + "rpc": [ + "https://devnet-s1-ethapi.quarkchain.io", + "http://eth-jrpc.devnet.quarkchain.io:39901" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-s1", + "chainId": 110002, + "networkId": 110002, + "parent": { "chain": "eip155-110000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-devnet", + "url": "https://devnet.quarkchain.io/1", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Devnet Shard 2", + "chain": "QuarkChain", + "rpc": [ + "https://devnet-s2-ethapi.quarkchain.io", + "http://eth-jrpc.devnet.quarkchain.io:39902" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-s2", + "chainId": 110003, + "networkId": 110003, + "parent": { "chain": "eip155-110000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-devnet", + "url": "https://devnet.quarkchain.io/2", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Devnet Shard 3", + "chain": "QuarkChain", + "rpc": [ + "https://devnet-s3-ethapi.quarkchain.io", + "http://eth-jrpc.devnet.quarkchain.io:39903" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-s3", + "chainId": 110004, + "networkId": 110004, + "parent": { "chain": "eip155-110000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-devnet", + "url": "https://devnet.quarkchain.io/3", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Devnet Shard 4", + "chain": "QuarkChain", + "rpc": [ + "https://devnet-s4-ethapi.quarkchain.io", + "http://eth-jrpc.devnet.quarkchain.io:39904" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-s4", + "chainId": 110005, + "networkId": 110005, + "parent": { "chain": "eip155-110000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-devnet", + "url": "https://devnet.quarkchain.io/4", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Devnet Shard 5", + "chain": "QuarkChain", + "rpc": [ + "https://devnet-s5-ethapi.quarkchain.io", + "http://eth-jrpc.devnet.quarkchain.io:39905" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-s5", + "chainId": 110006, + "networkId": 110006, + "parent": { "chain": "eip155-110000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-devnet", + "url": "https://devnet.quarkchain.io/5", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Devnet Shard 6", + "chain": "QuarkChain", + "rpc": [ + "https://devnet-s6-ethapi.quarkchain.io", + "http://eth-jrpc.devnet.quarkchain.io:39906" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-s6", + "chainId": 110007, + "networkId": 110007, + "parent": { "chain": "eip155-110000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-devnet", + "url": "https://devnet.quarkchain.io/6", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Devnet Shard 7", + "chain": "QuarkChain", + "rpc": [ + "https://devnet-s7-ethapi.quarkchain.io", + "http://eth-jrpc.devnet.quarkchain.io:39907" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-s7", + "chainId": 110008, + "networkId": 110008, + "parent": { "chain": "eip155-110000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-devnet", + "url": "https://devnet.quarkchain.io/7", + "standard": "EIP3091" + } + ] + }, + { + "name": "Siberium Test Network", + "chain": "SBR", + "rpc": ["https://rpc.test.siberium.net"], + "faucets": [], + "nativeCurrency": { "name": "TestSIBR", "symbol": "SIBR", "decimals": 18 }, + "infoURL": "https://siberium.net", + "shortName": "testsbr", + "chainId": 111000, + "networkId": 111000, + "icon": "siberium", + "explorers": [ + { + "name": "Siberium Testnet Explorer - blockscout", + "url": "https://explorer.test.siberium.net", + "icon": "siberium", + "standard": "EIP3091" + } + ] + }, + { + "name": "Siberium Network", + "chain": "SBR", + "rpc": [ + "https://rpc.main.siberium.net", + "https://rpc.main.siberium.net.ru" + ], + "faucets": [], + "nativeCurrency": { "name": "Siberium", "symbol": "SIBR", "decimals": 18 }, + "infoURL": "https://siberium.net", + "shortName": "sbr", + "chainId": 111111, + "networkId": 111111, + "icon": "siberium", + "explorers": [ + { + "name": "Siberium Mainnet Explorer - blockscout - 1", + "url": "https://explorer.main.siberium.net", + "icon": "siberium", + "standard": "EIP3091" }, - "infoURL": "https://smartmesh.io", - "shortName": "spectrum", - "chainId": 20180430, - "networkId": 1, - "explorers": [ - { "name": "spectrum", "url": "https://spectrum.pub", "standard": "none" } - ] - }, - { - "name": "quarkblockchain", - "chain": "QKI", - "rpc": ["https://hz.rpc.qkiscan.cn", "https://jp.rpc.qkiscan.io"], - "faucets": [], - "nativeCurrency": { - "name": "quarkblockchain Native Token", - "symbol": "QKI", - "decimals": 18 + { + "name": "Siberium Mainnet Explorer - blockscout - 2", + "url": "https://explorer.main.siberium.net.ru", + "icon": "siberium", + "standard": "EIP3091" + } + ] + }, + { + "name": "ADIL Devnet", + "chain": "ADIL", + "icon": "adil", + "rpc": ["https://devnet.adilchain-rpc.io"], + "faucets": [], + "nativeCurrency": { + "name": "Devnet ADIL", + "symbol": "ADIL", + "decimals": 18 + }, + "infoURL": "https://adilchain.io", + "shortName": "dadil", + "chainId": 123456, + "networkId": 123456, + "explorers": [ + { + "name": "ADIL Devnet Explorer", + "url": "https://devnet.adilchain-scan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "ETND Chain Mainnets", + "chain": "ETND", + "rpc": ["https://rpc.node1.etnd.pro/"], + "faucets": [], + "nativeCurrency": { "name": "ETND", "symbol": "ETND", "decimals": 18 }, + "infoURL": "https://www.etnd.pro", + "shortName": "ETND", + "chainId": 131419, + "networkId": 131419, + "icon": "ETND", + "explorers": [ + { + "name": "etndscan", + "url": "https://scan.etnd.pro", + "icon": "ETND", + "standard": "none" + } + ] + }, + { + "name": "ICPlaza Mainnet", + "chain": "ICPlaza", + "icon": "icplaza", + "rpc": ["https://rpcmainnet.ic-plaza.org/"], + "faucets": [], + "nativeCurrency": { "name": "ict", "symbol": "ict", "decimals": 18 }, + "infoURL": "https://docs.ic-plaza.org/", + "shortName": "ICPlaza", + "chainId": 142857, + "networkId": 142857, + "explorers": [ + { + "name": "ICPlaza", + "url": "https://browsemainnet.ic-plaza.org/index", + "standard": "none" + } + ] + }, + { + "name": "Taiko (Alpha-2 Testnet)", + "chain": "ETH", + "status": "deprecated", + "icon": "taiko", + "rpc": ["https://rpc.a2.taiko.xyz"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://taiko.xyz", + "shortName": "taiko-a2", + "chainId": 167004, + "networkId": 167004, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.a2.taiko.xyz", + "standard": "EIP3091" + } + ] + }, + { + "name": "Taiko (Alpha-3 Testnet)", + "chain": "ETH", + "status": "active", + "icon": "taiko", + "rpc": ["https://rpc.test.taiko.xyz"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://taiko.xyz", + "shortName": "taiko-a3", + "chainId": 167005, + "networkId": 167005, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.test.taiko.xyz", + "standard": "EIP3091" + } + ] + }, + { + "name": "Condor Test Network", + "chain": "CONDOR", + "icon": "condor", + "rpc": ["https://testnet.condor.systems/rpc"], + "faucets": ["https://faucet.condor.systems"], + "nativeCurrency": { + "name": "Condor Native Token", + "symbol": "CONDOR", + "decimals": 18 + }, + "infoURL": "https://condor.systems", + "shortName": "condor", + "chainId": 188881, + "networkId": 188881, + "explorers": [ + { + "name": "CondorScan", + "url": "https://explorer.condor.systems", + "standard": "none" + } + ] + }, + { + "name": "Milkomeda C1 Testnet", + "chain": "milkTAda", + "icon": "milkomeda", + "rpc": [ + "https://rpc-devnet-cardano-evm.c1.milkomeda.com", + "wss://rpc-devnet-cardano-evm.c1.milkomeda.com" + ], + "faucets": [], + "nativeCurrency": { "name": "milkTAda", "symbol": "mTAda", "decimals": 18 }, + "infoURL": "https://milkomeda.com", + "shortName": "milkTAda", + "chainId": 200101, + "networkId": 200101, + "explorers": [ + { + "name": "Blockscout", + "url": "https://explorer-devnet-cardano-evm.c1.milkomeda.com", + "standard": "none" + } + ] + }, + { + "name": "Milkomeda A1 Testnet", + "chain": "milkTAlgo", + "icon": "milkomeda", + "rpc": ["https://rpc-devnet-algorand-rollup.a1.milkomeda.com"], + "faucets": [], + "nativeCurrency": { + "name": "milkTAlgo", + "symbol": "mTAlgo", + "decimals": 18 + }, + "infoURL": "https://milkomeda.com", + "shortName": "milkTAlgo", + "chainId": 200202, + "networkId": 200202, + "explorers": [ + { + "name": "Blockscout", + "url": "https://explorer-devnet-algorand-rollup.a1.milkomeda.com", + "standard": "none" + } + ] + }, + { + "name": "Akroma", + "chain": "AKA", + "rpc": ["https://remote.akroma.io"], + "faucets": [], + "nativeCurrency": { + "name": "Akroma Ether", + "symbol": "AKA", + "decimals": 18 + }, + "infoURL": "https://akroma.io", + "shortName": "aka", + "chainId": 200625, + "networkId": 200625, + "slip44": 200625 + }, + { + "name": "Alaya Mainnet", + "chain": "Alaya", + "rpc": [ + "https://openapi.alaya.network/rpc", + "wss://openapi.alaya.network/ws" + ], + "faucets": [], + "nativeCurrency": { "name": "ATP", "symbol": "atp", "decimals": 18 }, + "infoURL": "https://www.alaya.network/", + "shortName": "alaya", + "chainId": 201018, + "networkId": 1, + "icon": "alaya", + "explorers": [ + { + "name": "alaya explorer", + "url": "https://scan.alaya.network", + "standard": "none" + } + ] + }, + { + "name": "Alaya Dev Testnet", + "chain": "Alaya", + "rpc": [ + "https://devnetopenapi.alaya.network/rpc", + "wss://devnetopenapi.alaya.network/ws" + ], + "faucets": [ + "https://faucet.alaya.network/faucet/?id=f93426c0887f11eb83b900163e06151c" + ], + "nativeCurrency": { "name": "ATP", "symbol": "atp", "decimals": 18 }, + "infoURL": "https://www.alaya.network/", + "shortName": "alayadev", + "chainId": 201030, + "networkId": 1, + "icon": "alaya", + "explorers": [ + { + "name": "alaya explorer", + "url": "https://devnetscan.alaya.network", + "standard": "none" + } + ] + }, + { + "name": "Mythical Chain", + "chain": "MYTH", + "rpc": ["https://chain-rpc.mythicalgames.com"], + "faucets": [], + "nativeCurrency": { "name": "Mythos", "symbol": "MYTH", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://mythicalgames.com/", + "shortName": "myth", + "chainId": 201804, + "networkId": 201804, + "icon": "mythical", + "explorers": [ + { + "name": "Mythical Chain Explorer", + "url": "https://explorer.mythicalgames.com", + "icon": "mythical", + "standard": "EIP3091" + } + ] + }, + { + "name": "Decimal Smart Chain Testnet", + "chain": "tDSC", + "rpc": ["https://testnet-val.decimalchain.com/web3"], + "faucets": [], + "nativeCurrency": { "name": "Decimal", "symbol": "tDEL", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://decimalchain.com", + "shortName": "tDSC", + "chainId": 202020, + "networkId": 202020, + "icon": "dsc", + "explorers": [ + { + "name": "DSC Explorer Testnet", + "url": "https://testnet.explorer.decimalchain.com", + "icon": "dsc", + "standard": "EIP3091" + } + ] + }, + { + "name": "Jellie", + "title": "Twala Testnet Jellie", + "shortName": "twl-jellie", + "chain": "ETH", + "chainId": 202624, + "networkId": 202624, + "icon": "twala", + "nativeCurrency": { "name": "Twala Coin", "symbol": "TWL", "decimals": 18 }, + "rpc": ["https://jellie-rpc.twala.io/", "wss://jellie-rpc-wss.twala.io/"], + "faucets": [], + "infoURL": "https://twala.io/", + "explorers": [ + { + "name": "Jellie Blockchain Explorer", + "url": "https://jellie.twala.io", + "standard": "EIP3091", + "icon": "twala" + } + ] + }, + { + "name": "PlatON Mainnet", + "chain": "PlatON", + "rpc": [ + "https://openapi2.platon.network/rpc", + "wss://openapi2.platon.network/ws" + ], + "faucets": [], + "nativeCurrency": { "name": "LAT", "symbol": "lat", "decimals": 18 }, + "infoURL": "https://www.platon.network", + "shortName": "platon", + "chainId": 210425, + "networkId": 1, + "icon": "platon", + "explorers": [ + { + "name": "PlatON explorer", + "url": "https://scan.platon.network", + "standard": "none" + } + ] + }, + { + "name": "Mas Mainnet", + "chain": "MAS", + "rpc": ["http://node.masnet.ai:8545"], + "faucets": [], + "nativeCurrency": { + "name": "Master Bank", + "symbol": "MAS", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://masterbank.org", + "shortName": "mas", + "chainId": 220315, + "networkId": 220315, + "icon": "mas", + "explorers": [ + { + "name": "explorer masnet", + "url": "https://explorer.masnet.ai", + "standard": "EIP3091" + } + ] + }, + { + "name": "Taf ECO Chain Mainnet", + "chain": "Taf ECO Chain", + "icon": "taf", + "rpc": ["https://mainnet.tafchain.com/v1"], + "faucets": [], + "nativeCurrency": { + "name": "Taf ECO Chain Mainnet", + "symbol": "TAFECO", + "decimals": 18 + }, + "infoURL": "https://www.tafchain.com", + "shortName": "TAFECO", + "chainId": 224168, + "networkId": 224168, + "explorers": [ + { + "name": "Taf ECO Chain Mainnet", + "url": "https://ecoscan.tafchain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "HashKey Chain Testnet", + "chain": "HashKey", + "rpc": ["https://testnet.hashkeychain/rpc"], + "faucets": ["https://testnet.hashkeychain/faucet"], + "nativeCurrency": { + "name": "HashKey Token", + "symbol": "tHSK", + "decimals": 18 + }, + "infoURL": "https://www.hashkey.com", + "shortName": "hsktest", + "chainId": 230315, + "networkId": 230315, + "icon": "hsk", + "explorers": [ + { + "name": "HashKey Chain Testnet Explorer", + "url": "https://testnet.hashkeyscan.io", + "standard": "none" + } + ] + }, + { + "name": "Haymo Testnet", + "chain": "tHYM", + "rpc": ["https://testnet1.haymo.network"], + "faucets": [], + "nativeCurrency": { "name": "HAYMO", "symbol": "HYM", "decimals": 18 }, + "infoURL": "https://haymoswap.web.app/", + "shortName": "hym", + "chainId": 234666, + "networkId": 234666 + }, + { + "name": "ARTIS sigma1", + "chain": "ARTIS", + "rpc": ["https://rpc.sigma1.artis.network"], + "faucets": [], + "nativeCurrency": { + "name": "ARTIS sigma1 Ether", + "symbol": "ATS", + "decimals": 18 + }, + "infoURL": "https://artis.eco", + "shortName": "ats", + "chainId": 246529, + "networkId": 246529, + "slip44": 246529 + }, + { + "name": "ARTIS Testnet tau1", + "chain": "ARTIS", + "rpc": ["https://rpc.tau1.artis.network"], + "faucets": [], + "nativeCurrency": { + "name": "ARTIS tau1 Ether", + "symbol": "tATS", + "decimals": 18 + }, + "infoURL": "https://artis.network", + "shortName": "atstau", + "chainId": 246785, + "networkId": 246785 + }, + { + "name": "Saakuru Testnet", + "chain": "Saakuru", + "icon": "saakuru", + "rpc": ["https://rpc-testnet.saakuru.network"], + "faucets": [], + "nativeCurrency": { "name": "OAS", "symbol": "OAS", "decimals": 18 }, + "infoURL": "https://saakuru.network", + "shortName": "saakuru-testnet", + "chainId": 247253, + "networkId": 247253, + "explorers": [ + { + "name": "saakuru-explorer-testnet", + "url": "https://explorer-testnet.saakuru.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "CMP-Mainnet", + "chain": "CMP", + "rpc": [ + "https://mainnet.block.caduceus.foundation", + "wss://mainnet.block.caduceus.foundation" + ], + "faucets": [], + "nativeCurrency": { + "name": "Caduceus Token", + "symbol": "CMP", + "decimals": 18 + }, + "infoURL": "https://caduceus.foundation/", + "shortName": "cmp-mainnet", + "chainId": 256256, + "networkId": 256256, + "explorers": [ + { + "name": "Mainnet Scan", + "url": "https://mainnet.scan.caduceus.foundation", + "standard": "none" + } + ] + }, + { + "name": "Gear Zero Network Testnet", + "chain": "GearZero", + "rpc": ["https://gzn-test.linksme.info"], + "faucets": [], + "nativeCurrency": { + "name": "Gear Zero Network Native Token", + "symbol": "GZN", + "decimals": 18 + }, + "infoURL": "https://token.gearzero.ca/testnet", + "shortName": "gz-testnet", + "chainId": 266256, + "networkId": 266256, + "slip44": 266256, + "explorers": [] + }, + { + "name": "Social Smart Chain Mainnet", + "chain": "SoChain", + "rpc": ["https://socialsmartchain.digitalnext.business"], + "faucets": [], + "nativeCurrency": { "name": "SoChain", "symbol": "$OC", "decimals": 18 }, + "infoURL": "https://digitalnext.business/SocialSmartChain", + "shortName": "SoChain", + "chainId": 281121, + "networkId": 281121, + "explorers": [] + }, + { + "name": "Filecoin - Calibration testnet", + "chain": "FIL", + "icon": "filecoin", + "rpc": [ + "https://api.calibration.node.glif.io/rpc/v1", + "https://rpc.ankr.com/filecoin_testnet", + "https://filecoin-calibration.chainstacklabs.com/rpc/v1", + "https://filecoin-calibration.chainup.net/rpc/v1" + ], + "faucets": ["https://faucet.calibration.fildev.network/"], + "nativeCurrency": { + "name": "testnet filecoin", + "symbol": "tFIL", + "decimals": 18 + }, + "infoURL": "https://filecoin.io", + "shortName": "filecoin-calibration", + "chainId": 314159, + "networkId": 314159, + "slip44": 1, + "explorers": [ + { + "name": "Filscan - Calibration", + "url": "https://calibration.filscan.io", + "standard": "none" }, - "infoURL": "https://quarkblockchain.org/", - "shortName": "qki", - "chainId": 20181205, - "networkId": 20181205 - }, - { - "name": "Auxilium Network Mainnet", - "chain": "AUX", - "rpc": ["https://rpc.auxilium.global"], - "faucets": [], - "nativeCurrency": { - "name": "Auxilium coin", - "symbol": "AUX", - "decimals": 18 + { + "name": "Filscout - Calibration", + "url": "https://calibration.filscout.com/en", + "standard": "none" }, - "infoURL": "https://auxilium.global", - "shortName": "auxi", - "chainId": 28945486, - "networkId": 28945486, - "slip44": 344 - }, - { - "name": "Joys Digital Mainnet", - "chain": "JOYS", - "rpc": ["https://node.joys.digital"], - "faucets": [], - "nativeCurrency": { "name": "JOYS", "symbol": "JOYS", "decimals": 18 }, - "infoURL": "https://joys.digital", - "shortName": "JOYS", - "chainId": 35855456, - "networkId": 35855456 - }, - { - "name": "Aquachain", - "chain": "AQUA", - "rpc": ["https://c.onical.org", "https://tx.aquacha.in/api"], - "faucets": ["https://aquacha.in/faucet"], - "nativeCurrency": { - "name": "Aquachain Ether", - "symbol": "AQUA", - "decimals": 18 + { + "name": "Filfox - Calibration", + "url": "https://calibration.filfox.info", + "standard": "none" }, - "infoURL": "https://aquachain.github.io", - "shortName": "aqua", - "chainId": 61717561, - "networkId": 61717561, - "slip44": 61717561 - }, - { - "name": "Joys Digital TestNet", - "chain": "TOYS", - "rpc": ["https://toys.joys.cash/"], - "faucets": ["https://faucet.joys.digital/"], - "nativeCurrency": { "name": "TOYS", "symbol": "TOYS", "decimals": 18 }, - "infoURL": "https://joys.digital", - "shortName": "TOYS", - "chainId": 99415706, - "networkId": 99415706 - }, - { - "name": "Gather Mainnet Network", - "chain": "GTH", - "rpc": ["https://mainnet.gather.network"], - "faucets": [], - "nativeCurrency": { "name": "Gather", "symbol": "GTH", "decimals": 18 }, - "infoURL": "https://gather.network", - "shortName": "GTH", - "chainId": 192837465, - "networkId": 192837465, - "explorers": [ - { - "name": "Blockscout", - "url": "https://explorer.gather.network", - "standard": "none" - } - ] - }, - { - "name": "Neon EVM DevNet", - "chain": "Solana", - "rpc": ["https://proxy.devnet.neonlabs.org/solana"], - "faucets": ["https://neonswap.live/#/get-tokens"], - "icon": "neon", - "nativeCurrency": { "name": "Neon", "symbol": "NEON", "decimals": 18 }, - "infoURL": "https://neon-labs.org", - "shortName": "neonevm-devnet", - "chainId": 245022926, - "networkId": 245022926, - "explorers": [ - { - "name": "native", - "url": "https://devnet.explorer.neon-labs.org", - "standard": "EIP3091" - }, - { - "name": "neonscan", - "url": "https://devnet.neonscan.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "Neon EVM MainNet", - "chain": "Solana", - "rpc": ["https://proxy.mainnet.neonlabs.org/solana"], - "faucets": [], - "icon": "neon", - "nativeCurrency": { "name": "Neon", "symbol": "NEON", "decimals": 18 }, - "infoURL": "https://neon-labs.org", - "shortName": "neonevm-mainnet", - "chainId": 245022934, - "networkId": 245022934, - "explorers": [ - { - "name": "native", - "url": "https://mainnet.explorer.neon-labs.org", - "standard": "EIP3091" - }, - { - "name": "neonscan", - "url": "https://mainnet.neonscan.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "Neon EVM TestNet", - "chain": "Solana", - "rpc": ["https://proxy.testnet.neonlabs.org/solana"], - "faucets": [], - "icon": "neon", - "nativeCurrency": { "name": "Neon", "symbol": "NEON", "decimals": 18 }, - "infoURL": "https://neon-labs.org", - "shortName": "neonevm-testnet", - "chainId": 245022940, - "networkId": 245022940, - "explorers": [ - { - "name": "native", - "url": "https://testnet.explorer.neon-labs.org", - "standard": "EIP3091" - }, - { - "name": "neonscan", - "url": "https://testnet.neonscan.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "OneLedger Mainnet", - "chain": "OLT", - "icon": "oneledger", - "rpc": ["https://mainnet-rpc.oneledger.network"], - "faucets": [], - "nativeCurrency": { "name": "OLT", "symbol": "OLT", "decimals": 18 }, - "infoURL": "https://oneledger.io", - "shortName": "oneledger", - "chainId": 311752642, - "networkId": 311752642, - "explorers": [ - { - "name": "OneLedger Block Explorer", - "url": "https://mainnet-explorer.oneledger.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "Gather Testnet Network", - "chain": "GTH", - "rpc": ["https://testnet.gather.network"], - "faucets": [], - "nativeCurrency": { "name": "Gather", "symbol": "GTH", "decimals": 18 }, - "infoURL": "https://gather.network", - "shortName": "tGTH", - "chainId": 356256156, - "networkId": 356256156, - "explorers": [ - { - "name": "Blockscout", - "url": "https://testnet-explorer.gather.network", - "standard": "none" - } - ] - }, - { - "name": "Gather Devnet Network", - "chain": "GTH", - "rpc": ["https://devnet.gather.network"], - "faucets": [], - "nativeCurrency": { "name": "Gather", "symbol": "GTH", "decimals": 18 }, - "infoURL": "https://gather.network", - "shortName": "dGTH", - "chainId": 486217935, - "networkId": 486217935, - "explorers": [ - { - "name": "Blockscout", - "url": "https://devnet-explorer.gather.network", - "standard": "none" - } - ] - }, - { - "name": "IPOS Network", - "chain": "IPOS", - "rpc": ["https://rpc.iposlab.com", "https://rpc2.iposlab.com"], - "faucets": [], - "nativeCurrency": { - "name": "IPOS Network Ether", - "symbol": "IPOS", - "decimals": 18 + { + "name": "Glif Explorer - Calibration", + "url": "https://explorer.glif.io/?network=calibration", + "standard": "none" }, - "infoURL": "https://iposlab.com", - "shortName": "ipos", - "chainId": 1122334455, - "networkId": 1122334455 - }, - { - "name": "Aurora Mainnet", - "chain": "NEAR", - "rpc": ["https://mainnet.aurora.dev"], - "faucets": [], - "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, - "infoURL": "https://aurora.dev", - "shortName": "aurora", - "chainId": 1313161554, - "networkId": 1313161554, - "explorers": [ - { - "name": "aurorascan.dev", - "url": "https://aurorascan.dev", - "standard": "EIP3091" - } - ] - }, - { - "name": "Aurora Testnet", - "chain": "NEAR", - "rpc": ["https://testnet.aurora.dev/"], - "faucets": [], - "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, - "infoURL": "https://aurora.dev", - "shortName": "aurora-testnet", - "chainId": 1313161555, - "networkId": 1313161555, - "explorers": [ - { - "name": "aurorascan.dev", - "url": "https://testnet.aurorascan.dev", - "standard": "EIP3091" - } - ] - }, - { - "name": "Aurora Betanet", - "chain": "NEAR", - "rpc": ["https://betanet.aurora.dev/"], - "faucets": [], - "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, - "infoURL": "https://aurora.dev", - "shortName": "aurora-betanet", - "chainId": 1313161556, - "networkId": 1313161556 - }, - { - "name": "Harmony Mainnet Shard 0", - "chain": "Harmony", - "rpc": ["https://api.harmony.one", "https://api.s0.t.hmny.io"], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], - "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-s0", - "chainId": 1666600000, - "networkId": 1666600000, - "explorers": [ - { - "name": "Harmony Block Explorer", - "url": "https://explorer.harmony.one", - "standard": "EIP3091" - } - ] - }, - { - "name": "Harmony Mainnet Shard 1", - "chain": "Harmony", - "rpc": ["https://api.s1.t.hmny.io"], - "faucets": [], - "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-s1", - "chainId": 1666600001, - "networkId": 1666600001 - }, - { - "name": "Harmony Mainnet Shard 2", - "chain": "Harmony", - "rpc": ["https://api.s2.t.hmny.io"], - "faucets": [], - "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-s2", - "chainId": 1666600002, - "networkId": 1666600002 - }, - { - "name": "Harmony Mainnet Shard 3", - "chain": "Harmony", - "rpc": ["https://api.s3.t.hmny.io"], - "faucets": [], - "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-s3", - "chainId": 1666600003, - "networkId": 1666600003 - }, - { - "name": "Harmony Testnet Shard 0", - "chain": "Harmony", - "rpc": ["https://api.s0.b.hmny.io"], - "faucets": ["https://faucet.pops.one"], - "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-b-s0", - "chainId": 1666700000, - "networkId": 1666700000, - "explorers": [ - { - "name": "Harmony Testnet Block Explorer", - "url": "https://explorer.pops.one", - "standard": "EIP3091" - } - ] - }, - { - "name": "Harmony Testnet Shard 1", - "chain": "Harmony", - "rpc": ["https://api.s1.b.hmny.io"], - "faucets": [], - "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-b-s1", - "chainId": 1666700001, - "networkId": 1666700001 - }, - { - "name": "Harmony Testnet Shard 2", - "chain": "Harmony", - "rpc": ["https://api.s2.b.hmny.io"], - "faucets": [], - "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-b-s2", - "chainId": 1666700002, - "networkId": 1666700002 - }, - { - "name": "Harmony Testnet Shard 3", - "chain": "Harmony", - "rpc": ["https://api.s3.b.hmny.io"], - "faucets": [], - "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-b-s3", - "chainId": 1666700003, - "networkId": 1666700003 - }, - { - "name": "DataHopper", - "chain": "HOP", - "rpc": ["https://23.92.21.121:8545"], - "faucets": [], - "nativeCurrency": { - "name": "DataHoppers", - "symbol": "HOP", - "decimals": 18 + { "name": "Beryx", "url": "https://beryx.zondax.ch", "standard": "none" } + ] + }, + { + "name": "TTcoin Smart Chain Mainnet", + "chain": "TSC", + "icon": "tscscan", + "rpc": ["https://mainnet-rpc.tscscan.com"], + "faucets": ["https://faucet.tscscan.com"], + "nativeCurrency": { "name": "TTcoin", "symbol": "TC", "decimals": 18 }, + "infoURL": "https://ttcoin.info/", + "shortName": "tc", + "chainId": 330844, + "networkId": 330844, + "explorers": [ + { + "name": "TTcoin Smart Chain Explorer", + "url": "https://tscscan.com", + "standard": "EIP3091", + "icon": "tscscan" + } + ] + }, + { + "name": "Aves Testnet", + "chain": "AVST", + "rpc": ["https://test.rpc.avescoin.io"], + "faucets": [], + "nativeCurrency": { "name": "AvesT", "symbol": "AVST", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://ethereum.org", + "shortName": "avst", + "chainId": 333331, + "networkId": 333331, + "icon": "aves", + "explorers": [ + { + "name": "avescan", + "url": "https://testnet.avescoin.io", + "icon": "avescan", + "standard": "EIP3091" + } + ] + }, + { + "name": "Oone Chain Testnet", + "chain": "OONE", + "rpc": ["https://blockchain-test.adigium.world"], + "faucets": ["https://apps-test.adigium.com/faucet"], + "nativeCurrency": { "name": "Oone", "symbol": "tOONE", "decimals": 18 }, + "infoURL": "https://oone.world", + "shortName": "oonetest", + "chainId": 333777, + "networkId": 333777, + "explorers": [ + { + "name": "expedition", + "url": "https://explorer-test.adigium.world", + "standard": "none" + } + ] + }, + { + "name": "Polis Testnet", + "chain": "Sparta", + "icon": "polis", + "rpc": ["https://sparta-rpc.polis.tech"], + "faucets": ["https://faucet.polis.tech"], + "nativeCurrency": { "name": "tPolis", "symbol": "tPOLIS", "decimals": 18 }, + "infoURL": "https://polis.tech", + "shortName": "sparta", + "chainId": 333888, + "networkId": 333888 + }, + { + "name": "Polis Mainnet", + "chain": "Olympus", + "icon": "polis", + "rpc": ["https://rpc.polis.tech"], + "faucets": ["https://faucet.polis.tech"], + "nativeCurrency": { "name": "Polis", "symbol": "POLIS", "decimals": 18 }, + "infoURL": "https://polis.tech", + "shortName": "olympus", + "chainId": 333999, + "networkId": 333999 + }, + { + "name": "Bitfinity Network Testnet", + "chain": "BFT", + "rpc": ["https://testnet.bitfinity.network"], + "faucets": ["https://bitfinity.network/faucet"], + "nativeCurrency": { "name": "BITFINITY", "symbol": "BFT", "decimals": 18 }, + "infoURL": "https://bitfinity.network", + "shortName": "Bitfinity", + "chainId": 355113, + "networkId": 355113, + "explorers": [ + { + "name": "Bitfinity Block Explorer", + "url": "https://explorer.bitfinity.network", + "icon": "bitfinity", + "standard": "EIP3091" + } + ] + }, + { + "name": "HAPchain Testnet", + "chain": "HAPchain", + "rpc": ["https://jsonrpc-test.hap.land"], + "faucets": [], + "nativeCurrency": { "name": "HAP", "symbol": "HAP", "decimals": 18 }, + "infoURL": "https://hap.land", + "shortName": "hap-testnet", + "chainId": 373737, + "networkId": 373737, + "icon": "hap", + "explorers": [ + { + "name": "HAP EVM Explorer (Blockscout)", + "url": "https://blockscout-test.hap.land", + "standard": "none", + "icon": "hap" + } + ] + }, + { + "name": "Metal C-Chain", + "chain": "Metal", + "rpc": ["https://api.metalblockchain.org/ext/bc/C/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Metal", "symbol": "METAL", "decimals": 18 }, + "infoURL": "https://www.metalblockchain.org/", + "shortName": "metal", + "chainId": 381931, + "networkId": 381931, + "slip44": 9005, + "explorers": [ + { + "name": "metalscan", + "url": "https://metalscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Metal Tahoe C-Chain", + "chain": "Metal", + "rpc": ["https://tahoe.metalblockchain.org/ext/bc/C/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Metal", "symbol": "METAL", "decimals": 18 }, + "infoURL": "https://www.metalblockchain.org/", + "shortName": "Tahoe", + "chainId": 381932, + "networkId": 381932, + "slip44": 9005, + "explorers": [ + { + "name": "metalscan", + "url": "https://tahoe.metalscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Tipboxcoin Mainnet", + "chain": "TPBX", + "icon": "tipboxcoinIcon", + "rpc": ["https://mainnet-rpc.tipboxcoin.net"], + "faucets": ["https://faucet.tipboxcoin.net"], + "nativeCurrency": { + "name": "Tipboxcoin", + "symbol": "TPBX", + "decimals": 18 + }, + "infoURL": "https://tipboxcoin.net", + "shortName": "TPBXm", + "chainId": 404040, + "networkId": 404040, + "explorers": [ + { + "name": "Tipboxcoin", + "url": "https://tipboxcoin.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Kekchain", + "chain": "kek", + "rpc": ["https://mainnet.kekchain.com"], + "faucets": [], + "nativeCurrency": { "name": "KEK", "symbol": "KEK", "decimals": 18 }, + "infoURL": "https://kekchain.com", + "shortName": "KEK", + "chainId": 420420, + "networkId": 103090, + "icon": "kek", + "explorers": [ + { + "name": "blockscout", + "url": "https://mainnet-explorer.kekchain.com", + "icon": "kek", + "standard": "EIP3091" + } + ] + }, + { + "name": "Kekchain (kektest)", + "chain": "kek", + "rpc": ["https://testnet.kekchain.com"], + "faucets": [], + "nativeCurrency": { "name": "tKEK", "symbol": "tKEK", "decimals": 18 }, + "infoURL": "https://kekchain.com", + "shortName": "tKEK", + "chainId": 420666, + "networkId": 1, + "icon": "kek", + "explorers": [ + { + "name": "blockscout", + "url": "https://testnet-explorer.kekchain.com", + "icon": "kek", + "standard": "EIP3091" + } + ] + }, + { + "name": "Arbitrum Rinkeby", + "title": "Arbitrum Testnet Rinkeby", + "chainId": 421611, + "shortName": "arb-rinkeby", + "chain": "ETH", + "networkId": 421611, + "nativeCurrency": { + "name": "Arbitrum Rinkeby Ether", + "symbol": "ETH", + "decimals": 18 + }, + "rpc": ["https://rinkeby.arbitrum.io/rpc"], + "faucets": ["http://fauceth.komputing.org?chain=421611&address=${ADDRESS}"], + "infoURL": "https://arbitrum.io", + "explorers": [ + { + "name": "arbiscan-testnet", + "url": "https://testnet.arbiscan.io", + "standard": "EIP3091" }, - "infoURL": "https://www.DataHopper.com", - "shortName": "hop", - "chainId": 2021121117, - "networkId": 2021121117 - }, - { - "name": "Pirl", - "chain": "PIRL", - "rpc": ["https://wallrpc.pirl.io"], - "faucets": [], - "nativeCurrency": { - "name": "Pirl Ether", - "symbol": "PIRL", - "decimals": 18 + { + "name": "arbitrum-rinkeby", + "url": "https://rinkeby-explorer.arbitrum.io", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-4", + "bridges": [{ "url": "https://bridge.arbitrum.io" }] + } + }, + { + "name": "Arbitrum Goerli", + "title": "Arbitrum Goerli Rollup Testnet", + "chainId": 421613, + "shortName": "arb-goerli", + "chain": "ETH", + "networkId": 421613, + "nativeCurrency": { + "name": "Arbitrum Goerli Ether", + "symbol": "AGOR", + "decimals": 18 + }, + "rpc": ["https://goerli-rollup.arbitrum.io/rpc/"], + "faucets": [], + "infoURL": "https://arbitrum.io/", + "explorers": [ + { + "name": "Arbitrum Goerli Rollup Explorer", + "url": "https://goerli-rollup-explorer.arbitrum.io", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-5", + "bridges": [{ "url": "https://bridge.arbitrum.io/" }] + } + }, + { + "name": "Fastex Chain testnet", + "chain": "FTN", + "title": "Fastex Chain testnet", + "rpc": ["https://rpc.testnet.fastexchain.com"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "FTN", "symbol": "FTN", "decimals": 18 }, + "infoURL": "https://fastex.com", + "shortName": "fastexTestnet", + "chainId": 424242, + "networkId": 424242, + "explorers": [ + { + "name": "blockscout", + "url": "https://testnet.ftnscan.com", + "standard": "none" + } + ] + }, + { + "name": "Markr Go", + "chain": "Unified", + "icon": "markrgo", + "rpc": ["https://rpc.markr.io/ext/"], + "faucets": [], + "nativeCurrency": { "name": "Avalanche", "symbol": "AVAX", "decimals": 18 }, + "infoURL": "https://www.markr.io/", + "shortName": "markr-go", + "chainId": 431140, + "networkId": 431140, + "explorers": [], + "status": "incubating" + }, + { + "name": "Dexalot Subnet Testnet", + "chain": "DEXALOT", + "icon": "dexalot", + "rpc": ["https://subnets.avax.network/dexalot/testnet/rpc"], + "faucets": ["https://faucet.avax.network/?subnet=dexalot"], + "nativeCurrency": { "name": "Dexalot", "symbol": "ALOT", "decimals": 18 }, + "infoURL": "https://dexalot.com", + "shortName": "dexalot-testnet", + "chainId": 432201, + "networkId": 432201, + "explorers": [ + { + "name": "Avalanche Subnet Testnet Explorer", + "url": "https://subnets-test.avax.network/dexalot", + "standard": "EIP3091" + } + ] + }, + { + "name": "Dexalot Subnet", + "chain": "DEXALOT", + "icon": "dexalot", + "rpc": ["https://subnets.avax.network/dexalot/mainnet/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Dexalot", "symbol": "ALOT", "decimals": 18 }, + "infoURL": "https://dexalot.com", + "shortName": "dexalot", + "chainId": 432204, + "networkId": 432204, + "explorers": [ + { + "name": "Avalanche Subnet Explorer", + "url": "https://subnets.avax.network/dexalot", + "standard": "EIP3091" + } + ] + }, + { + "name": "Weelink Testnet", + "chain": "WLK", + "rpc": ["https://weelinknode1c.gw002.oneitfarm.com"], + "faucets": ["https://faucet.weelink.gw002.oneitfarm.com"], + "nativeCurrency": { + "name": "Weelink Chain Token", + "symbol": "tWLK", + "decimals": 18 + }, + "infoURL": "https://weelink.cloud", + "shortName": "wlkt", + "chainId": 444900, + "networkId": 444900, + "explorers": [ + { + "name": "weelink-testnet", + "url": "https://weelink.cloud/#/blockView/overview", + "standard": "none" + } + ] + }, + { + "name": "Patex Sepolia Testnet", + "chain": "ETH", + "rpc": ["https://test-rpc.patex.io/"], + "faucets": [], + "nativeCurrency": { + "name": "Sepolia Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://patex.io/", + "shortName": "psep", + "chainId": 471100, + "networkId": 471100 + }, + { + "name": "OpenChain Mainnet", + "chain": "OpenChain", + "rpc": ["https://baas-rpc.luniverse.io:18545?lChainId=1641349324562974539"], + "faucets": [], + "nativeCurrency": { "name": "OpenCoin", "symbol": "OPC", "decimals": 10 }, + "infoURL": "https://www.openchain.live", + "shortName": "oc", + "chainId": 474142, + "networkId": 474142, + "explorers": [ + { + "name": "SIDE SCAN", + "url": "https://sidescan.luniverse.io/1641349324562974539", + "standard": "none" + } + ] + }, + { + "name": "CMP-Testnet", + "chain": "CMP", + "rpc": [ + "https://galaxy.block.caduceus.foundation", + "wss://galaxy.block.caduceus.foundation" + ], + "faucets": ["https://dev.caduceus.foundation/testNetwork"], + "nativeCurrency": { + "name": "Caduceus Testnet Token", + "symbol": "CMP", + "decimals": 18 + }, + "infoURL": "https://caduceus.foundation/", + "shortName": "cmp", + "chainId": 512512, + "networkId": 512512, + "explorers": [ + { + "name": "Galaxy Scan", + "url": "https://galaxy.scan.caduceus.foundation", + "standard": "none" + } + ] + }, + { + "name": "ethereum Fair", + "chainId": 513100, + "networkId": 513100, + "shortName": "ethf", + "chain": "ETHF", + "nativeCurrency": { + "name": "EthereumFair", + "symbol": "ETHF", + "decimals": 18 + }, + "rpc": ["https://rpc.etherfair.org"], + "faucets": [], + "explorers": [ + { + "name": "etherfair", + "url": "https://www.oklink.com/ethf", + "standard": "EIP3091" + } + ], + "infoURL": "https://etherfair.org" + }, + { + "name": "Scroll Sepolia Testnet", + "chain": "ETH", + "status": "incubating", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://scroll.io", + "shortName": "scr-sepolia", + "chainId": 534351, + "networkId": 534351, + "explorers": [], + "parent": { "type": "L2", "chain": "eip155-11155111", "bridges": [] } + }, + { + "name": "Scroll", + "chain": "ETH", + "status": "incubating", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://scroll.io", + "shortName": "scr", + "chainId": 534352, + "networkId": 534352, + "explorers": [], + "parent": { "type": "L2", "chain": "eip155-1", "bridges": [] } + }, + { + "name": "Scroll Alpha Testnet", + "chain": "ETH", + "status": "active", + "rpc": ["https://alpha-rpc.scroll.io/l2"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://scroll.io", + "shortName": "scr-alpha", + "chainId": 534353, + "networkId": 534353, + "explorers": [ + { + "name": "Scroll Alpha Testnet Block Explorer", + "url": "https://blockscout.scroll.io", + "standard": "EIP3091" }, - "infoURL": "https://pirl.io", - "shortName": "pirl", - "chainId": 3125659152, - "networkId": 3125659152, - "slip44": 164 - }, - { - "name": "OneLedger Testnet Frankenstein", - "chain": "OLT", - "icon": "oneledger", - "rpc": ["https://frankenstein-rpc.oneledger.network"], - "faucets": ["https://frankenstein-faucet.oneledger.network"], - "nativeCurrency": { "name": "OLT", "symbol": "OLT", "decimals": 18 }, - "infoURL": "https://oneledger.io", - "shortName": "frankenstein", - "chainId": 4216137055, - "networkId": 4216137055, - "explorers": [ - { - "name": "OneLedger Block Explorer", - "url": "https://frankenstein-explorer.oneledger.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "Palm Testnet", - "chain": "Palm", - "icon": "palm", - "rpc": ["https://palm-testnet.infura.io/v3/${INFURA_API_KEY}"], - "faucets": [], - "nativeCurrency": { "name": "PALM", "symbol": "PALM", "decimals": 18 }, - "infoURL": "https://palm.io", - "shortName": "tpalm", - "chainId": 11297108099, - "networkId": 11297108099, - "explorers": [ - { - "name": "Palm Testnet Explorer", - "url": "https://explorer.palm-uat.xyz", - "standard": "EIP3091", - "icon": "palm" - } - ] - }, - { - "name": "Palm", - "chain": "Palm", - "icon": "palm", - "rpc": ["https://palm-mainnet.infura.io/v3/${INFURA_API_KEY}"], - "faucets": [], - "nativeCurrency": { "name": "PALM", "symbol": "PALM", "decimals": 18 }, - "infoURL": "https://palm.io", - "shortName": "palm", - "chainId": 11297108109, - "networkId": 11297108109, - "explorers": [ - { - "name": "Palm Explorer", - "url": "https://explorer.palm.io", - "standard": "EIP3091", - "icon": "palm" - } - ] - }, - { - "name": "Ntity Mainnet", - "chain": "Ntity", - "rpc": ["https://rpc.ntity.io"], - "faucets": [], - "nativeCurrency": { "name": "Ntity", "symbol": "NTT", "decimals": 18 }, - "infoURL": "https://ntity.io", - "shortName": "ntt", - "chainId": 197710212030, - "networkId": 197710212030, - "icon": "ntity", - "explorers": [ - { - "name": "Ntity Blockscout", - "url": "https://blockscout.ntity.io", - "icon": "ntity", - "standard": "EIP3091" - } - ] - }, - { - "name": "Haradev Testnet", - "chain": "Ntity", - "rpc": ["https://blockchain.haradev.com"], - "faucets": [], - "nativeCurrency": { - "name": "Ntity Haradev", - "symbol": "NTTH", - "decimals": 18 + { + "name": "Scroll Alpha Testnet Block Explorer", + "url": "https://scrollscan.co", + "standard": "EIP3091" + } + ], + "parent": { "type": "L2", "chain": "eip155-5", "bridges": [] } + }, + { + "name": "Scroll Pre-Alpha Testnet", + "chain": "ETH", + "status": "deprecated", + "rpc": ["https://prealpha-rpc.scroll.io/l2"], + "faucets": ["https://prealpha.scroll.io/faucet"], + "nativeCurrency": { "name": "Ether", "symbol": "TSETH", "decimals": 18 }, + "infoURL": "https://scroll.io", + "shortName": "scr-prealpha", + "chainId": 534354, + "networkId": 534354, + "explorers": [ + { + "name": "Scroll L2 Block Explorer", + "url": "https://l2scan.scroll.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "BeanEco SmartChain", + "title": "BESC Mainnet", + "chain": "BESC", + "rpc": ["https://mainnet-rpc.bescscan.io"], + "faucets": ["faucet.bescscan.ion"], + "nativeCurrency": { + "name": "BeanEco SmartChain", + "symbol": "BESC", + "decimals": 18 + }, + "infoURL": "besceco.finance", + "shortName": "BESC", + "chainId": 535037, + "networkId": 535037, + "explorers": [ + { + "name": "bescscan", + "url": "https://Bescscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bear Network Chain Mainnet", + "chain": "BRNKC", + "icon": "brnkc", + "rpc": [ + "https://brnkc-mainnet.bearnetwork.net", + "https://brnkc-mainnet1.bearnetwork.net" + ], + "faucets": [], + "nativeCurrency": { + "name": "Bear Network Chain Native Token", + "symbol": "BRNKC", + "decimals": 18 + }, + "infoURL": "https://bearnetwork.net", + "shortName": "BRNKC", + "chainId": 641230, + "networkId": 641230, + "explorers": [ + { + "name": "brnkscan", + "url": "https://brnkscan.bearnetwork.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Vision - Vpioneer Test Chain", + "chain": "Vision-Vpioneer", + "rpc": ["https://vpioneer.infragrid.v.network/ethereum/compatible"], + "faucets": ["https://vpioneerfaucet.visionscan.org"], + "nativeCurrency": { "name": "VS", "symbol": "VS", "decimals": 18 }, + "infoURL": "https://visionscan.org", + "shortName": "vpioneer", + "chainId": 666666, + "networkId": 666666, + "slip44": 60 + }, + { + "name": "Bear Network Chain Testnet", + "chain": "BRNKCTEST", + "icon": "brnkc", + "rpc": ["https://brnkc-test.bearnetwork.net"], + "faucets": ["https://faucet.bearnetwork.net"], + "nativeCurrency": { + "name": "Bear Network Chain Testnet Token", + "symbol": "tBRNKC", + "decimals": 18 + }, + "infoURL": "https://bearnetwork.net", + "shortName": "BRNKCTEST", + "chainId": 751230, + "networkId": 751230, + "explorers": [ + { + "name": "brnktestscan", + "url": "https://brnktest-scan.bearnetwork.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "OctaSpace", + "chain": "OCTA", + "rpc": ["https://rpc.octa.space", "wss://rpc.octa.space"], + "faucets": [], + "nativeCurrency": { "name": "OctaSpace", "symbol": "OCTA", "decimals": 18 }, + "infoURL": "https://octa.space", + "shortName": "octa", + "chainId": 800001, + "networkId": 800001, + "icon": "octaspace", + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.octa.space", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "CURVE Mainnet", + "chain": "CURVE", + "icon": "curveIcon", + "rpc": ["https://mainnet-rpc.curvescan.io"], + "faucets": [], + "nativeCurrency": { "name": "Curve", "symbol": "CURVE", "decimals": 18 }, + "infoURL": "https://curvescan.io", + "shortName": "CURVEm", + "chainId": 827431, + "networkId": 827431, + "explorers": [ + { + "name": "CURVE Mainnet", + "url": "https://curvescan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "4GoodNetwork", + "chain": "4GN", + "rpc": ["https://chain.deptofgood.com"], + "faucets": [], + "nativeCurrency": { "name": "APTA", "symbol": "APTA", "decimals": 18 }, + "infoURL": "https://bloqs4good.com", + "shortName": "bloqs4good", + "chainId": 846000, + "networkId": 846000 + }, + { + "name": "Vision - Mainnet", + "chain": "Vision", + "rpc": ["https://infragrid.v.network/ethereum/compatible"], + "faucets": [], + "nativeCurrency": { "name": "VS", "symbol": "VS", "decimals": 18 }, + "infoURL": "https://www.v.network", + "explorers": [ + { + "name": "Visionscan", + "url": "https://www.visionscan.org", + "standard": "EIP3091" + } + ], + "shortName": "vision", + "chainId": 888888, + "networkId": 888888, + "slip44": 60 + }, + { + "name": "Posichain Mainnet Shard 0", + "chain": "PSC", + "rpc": ["https://api.posichain.org", "https://api.s0.posichain.org"], + "faucets": ["https://faucet.posichain.org/"], + "nativeCurrency": { + "name": "Posichain Native Token", + "symbol": "POSI", + "decimals": 18 + }, + "infoURL": "https://posichain.org", + "shortName": "psc-s0", + "chainId": 900000, + "networkId": 900000, + "explorers": [ + { + "name": "Posichain Explorer", + "url": "https://explorer.posichain.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Posichain Testnet Shard 0", + "chain": "PSC", + "rpc": ["https://api.s0.t.posichain.org"], + "faucets": ["https://faucet.posichain.org/"], + "nativeCurrency": { + "name": "Posichain Native Token", + "symbol": "POSI", + "decimals": 18 + }, + "infoURL": "https://posichain.org", + "shortName": "psc-t-s0", + "chainId": 910000, + "networkId": 910000, + "explorers": [ + { + "name": "Posichain Explorer Testnet", + "url": "https://explorer-testnet.posichain.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Posichain Devnet Shard 0", + "chain": "PSC", + "rpc": ["https://api.s0.d.posichain.org"], + "faucets": ["https://faucet.posichain.org/"], + "nativeCurrency": { + "name": "Posichain Native Token", + "symbol": "POSI", + "decimals": 18 + }, + "infoURL": "https://posichain.org", + "shortName": "psc-d-s0", + "chainId": 920000, + "networkId": 920000, + "explorers": [ + { + "name": "Posichain Explorer Devnet", + "url": "https://explorer-devnet.posichain.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Posichain Devnet Shard 1", + "chain": "PSC", + "rpc": ["https://api.s1.d.posichain.org"], + "faucets": ["https://faucet.posichain.org/"], + "nativeCurrency": { + "name": "Posichain Native Token", + "symbol": "POSI", + "decimals": 18 + }, + "infoURL": "https://posichain.org", + "shortName": "psc-d-s1", + "chainId": 920001, + "networkId": 920001, + "explorers": [ + { + "name": "Posichain Explorer Devnet", + "url": "https://explorer-devnet.posichain.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "FNCY Testnet", + "chain": "FNCY", + "rpc": ["https://fncy-testnet-seed.fncy.world"], + "faucets": ["https://faucet-testnet.fncy.world"], + "nativeCurrency": { "name": "FNCY", "symbol": "FNCY", "decimals": 18 }, + "infoURL": "https://fncyscan-testnet.fncy.world", + "shortName": "tFNCY", + "chainId": 923018, + "networkId": 923018, + "icon": "fncy", + "explorers": [ + { + "name": "fncy scan testnet", + "url": "https://fncyscan-testnet.fncy.world", + "icon": "fncy", + "standard": "EIP3091" + } + ] + }, + { + "name": "Eluvio Content Fabric", + "chain": "Eluvio", + "rpc": [ + "https://host-76-74-28-226.contentfabric.io/eth/", + "https://host-76-74-28-232.contentfabric.io/eth/", + "https://host-76-74-29-2.contentfabric.io/eth/", + "https://host-76-74-29-8.contentfabric.io/eth/", + "https://host-76-74-29-34.contentfabric.io/eth/", + "https://host-76-74-29-35.contentfabric.io/eth/", + "https://host-154-14-211-98.contentfabric.io/eth/", + "https://host-154-14-192-66.contentfabric.io/eth/", + "https://host-60-240-133-202.contentfabric.io/eth/", + "https://host-64-235-250-98.contentfabric.io/eth/" + ], + "faucets": [], + "nativeCurrency": { "name": "ELV", "symbol": "ELV", "decimals": 18 }, + "infoURL": "https://eluv.io", + "shortName": "elv", + "chainId": 955305, + "networkId": 955305, + "slip44": 1011, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.eluv.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Etho Protocol", + "chain": "ETHO", + "rpc": ["https://rpc.ethoprotocol.com"], + "faucets": [], + "nativeCurrency": { + "name": "Etho Protocol", + "symbol": "ETHO", + "decimals": 18 + }, + "infoURL": "https://ethoprotocol.com", + "shortName": "etho", + "chainId": 1313114, + "networkId": 1313114, + "slip44": 1313114, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.ethoprotocol.com", + "standard": "none" + } + ] + }, + { + "name": "Xerom", + "chain": "XERO", + "rpc": ["https://rpc.xerom.org"], + "faucets": [], + "nativeCurrency": { + "name": "Xerom Ether", + "symbol": "XERO", + "decimals": 18 + }, + "infoURL": "https://xerom.org", + "shortName": "xero", + "chainId": 1313500, + "networkId": 1313500 + }, + { + "name": "Kintsugi", + "title": "Kintsugi merge testnet", + "chain": "ETH", + "rpc": ["https://rpc.kintsugi.themerge.dev"], + "faucets": [ + "http://fauceth.komputing.org?chain=1337702&address=${ADDRESS}", + "https://faucet.kintsugi.themerge.dev" + ], + "nativeCurrency": { + "name": "kintsugi Ethere", + "symbol": "kiETH", + "decimals": 18 + }, + "infoURL": "https://kintsugi.themerge.dev/", + "shortName": "kintsugi", + "chainId": 1337702, + "networkId": 1337702, + "explorers": [ + { + "name": "kintsugi explorer", + "url": "https://explorer.kintsugi.themerge.dev", + "standard": "EIP3091" + } + ] + }, + { + "name": "Kiln", + "chain": "ETH", + "rpc": ["https://rpc.kiln.themerge.dev"], + "faucets": [ + "https://faucet.kiln.themerge.dev", + "https://kiln-faucet.pk910.de", + "https://kilnfaucet.com" + ], + "nativeCurrency": { + "name": "Testnet ETH", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://kiln.themerge.dev/", + "shortName": "kiln", + "chainId": 1337802, + "networkId": 1337802, + "icon": "ethereum", + "explorers": [ + { + "name": "Kiln Explorer", + "url": "https://explorer.kiln.themerge.dev", + "icon": "ethereum", + "standard": "EIP3091" + } + ] + }, + { + "name": "Zhejiang", + "chain": "ETH", + "rpc": ["https://rpc.zhejiang.ethpandaops.io"], + "faucets": [ + "https://faucet.zhejiang.ethpandaops.io", + "https://zhejiang-faucet.pk910.de" + ], + "nativeCurrency": { + "name": "Testnet ETH", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://zhejiang.ethpandaops.io", + "shortName": "zhejiang", + "chainId": 1337803, + "networkId": 1337803, + "icon": "ethereum", + "explorers": [ + { + "name": "Zhejiang Explorer", + "url": "https://zhejiang.beaconcha.in", + "icon": "ethereum", + "standard": "EIP3091" + } + ] + }, + { + "name": "Plian Mainnet Main", + "chain": "Plian", + "rpc": ["https://mainnet.plian.io/pchain"], + "faucets": [], + "nativeCurrency": { "name": "Plian Token", "symbol": "PI", "decimals": 18 }, + "infoURL": "https://plian.org/", + "shortName": "plian-mainnet", + "chainId": 2099156, + "networkId": 2099156, + "explorers": [ + { + "name": "piscan", + "url": "https://piscan.plian.org/pchain", + "standard": "EIP3091" + } + ] + }, + { + "name": "PlatON Dev Testnet Deprecated", + "chain": "PlatON", + "rpc": [ + "https://devnetopenapi2.platon.network/rpc", + "wss://devnetopenapi2.platon.network/ws" + ], + "faucets": ["https://devnet2faucet.platon.network/faucet"], + "nativeCurrency": { "name": "LAT", "symbol": "lat", "decimals": 18 }, + "infoURL": "https://www.platon.network", + "shortName": "platondev", + "chainId": 2203181, + "networkId": 1, + "icon": "platon", + "status": "deprecated", + "explorers": [ + { + "name": "PlatON explorer", + "url": "https://devnetscan.platon.network", + "standard": "none" + } + ] + }, + { + "name": "PlatON Dev Testnet2", + "chain": "PlatON", + "rpc": [ + "https://devnet2openapi.platon.network/rpc", + "wss://devnet2openapi.platon.network/ws" + ], + "faucets": ["https://devnet2faucet.platon.network/faucet"], + "nativeCurrency": { "name": "LAT", "symbol": "lat", "decimals": 18 }, + "infoURL": "https://www.platon.network", + "shortName": "platondev2", + "chainId": 2206132, + "networkId": 1, + "icon": "platon", + "explorers": [ + { + "name": "PlatON explorer", + "url": "https://devnet2scan.platon.network", + "standard": "none" + } + ] + }, + { + "name": "Filecoin - Butterfly testnet", + "chain": "FIL", + "status": "incubating", + "rpc": [], + "faucets": ["https://faucet.butterfly.fildev.network"], + "nativeCurrency": { + "name": "testnet filecoin", + "symbol": "tFIL", + "decimals": 18 + }, + "infoURL": "https://filecoin.io", + "shortName": "filecoin-butterfly", + "icon": "filecoin", + "chainId": 3141592, + "networkId": 3141592, + "slip44": 1, + "explorers": [] + }, + { + "name": "Worlds Caldera", + "chain": "WCal", + "rpc": ["https://worlds-test.calderachain.xyz/http"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://caldera.xyz/", + "shortName": "worldscal", + "chainId": 4281033, + "networkId": 4281033, + "icon": "ethereum", + "explorers": [] + }, + { + "name": "MXC Wannsee zkEVM Testnet", + "chain": "MXC zkEVM", + "icon": "mxc", + "rpc": ["https://wannsee-rpc.mxc.com"], + "faucets": [], + "nativeCurrency": { + "name": "MXC Wannsee zkEVM Testnet", + "symbol": "MXC", + "decimals": 18 + }, + "infoURL": "https://wannsee.mxc.com/docs/intro", + "shortName": "MXC", + "chainId": 5167003, + "networkId": 5167003, + "explorers": [ + { + "name": "MXC Wannsee zkEVM Testnet", + "url": "https://wannsee-explorer.mxc.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Imversed Mainnet", + "chain": "Imversed", + "rpc": [ + "https://jsonrpc.imversed.network", + "https://ws-jsonrpc.imversed.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Imversed Token", + "symbol": "IMV", + "decimals": 18 + }, + "infoURL": "https://imversed.com", + "shortName": "imversed", + "chainId": 5555555, + "networkId": 5555555, + "icon": "imversed", + "explorers": [ + { + "name": "Imversed EVM explorer (Blockscout)", + "url": "https://txe.imversed.network", + "icon": "imversed", + "standard": "EIP3091" }, - "infoURL": "https://ntity.io", - "shortName": "ntt-haradev", - "chainId": 197710212031, - "networkId": 197710212031, - "icon": "ntity", - "explorers": [ - { - "name": "Ntity Haradev Blockscout", - "url": "https://blockscout.haradev.com", - "icon": "ntity", - "standard": "EIP3091" - } - ] - }, - { - "name": "Molereum Network", - "chain": "ETH", - "rpc": ["https://molereum.jdubedition.com"], - "faucets": [], - "nativeCurrency": { - "name": "Molereum Ether", - "symbol": "MOLE", - "decimals": 18 + { + "name": "Imversed Cosmos Explorer (Big Dipper)", + "url": "https://tex-c.imversed.com", + "icon": "imversed", + "standard": "none" + } + ] + }, + { + "name": "Imversed Testnet", + "chain": "Imversed", + "rpc": [ + "https://jsonrpc-test.imversed.network", + "https://ws-jsonrpc-test.imversed.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Imversed Token", + "symbol": "IMV", + "decimals": 18 + }, + "infoURL": "https://imversed.com", + "shortName": "imversed-testnet", + "chainId": 5555558, + "networkId": 5555558, + "icon": "imversed", + "explorers": [ + { + "name": "Imversed EVM Explorer (Blockscout)", + "url": "https://txe-test.imversed.network", + "icon": "imversed", + "standard": "EIP3091" }, - "infoURL": "https://github.com/Jdubedition/molereum", - "shortName": "mole", - "chainId": 6022140761023, - "networkId": 6022140761023 - }, - { - "name": "Godwoken Testnet (V1)", - "chain": "GWT", - "rpc": ["https://godwoken-testnet-web3-v1-rpc.ckbapp.dev"], - "faucets": ["https://homura.github.io/light-godwoken"], - "nativeCurrency": { "name": "CKB", "symbol": "CKB", "decimals": 8 }, - "infoURL": "https://www.nervos.org", - "shortName": "gw-testnet-v1-deprecated", - "chainId": 868455272153094, - "networkId": 868455272153094, - "status": "deprecated", - "explorers": [ - { - "name": "GWScan Block Explorer", - "url": "https://v1.aggron.gwscan.com", - "standard": "none" - } - ] - }, - { - "name": "Ambrosus Main Net", - "chain": "Ambrosus", - "network": "mainnet", - "rpc": [ - "https://network.ambrosus.io" - ], - "nativeCurrency": { - "name": "Amber", - "symbol": "AMB", - "decimals": 18 + { + "name": "Imversed Cosmos Explorer (Big Dipper)", + "url": "https://tex-t.imversed.com", + "icon": "imversed", + "standard": "none" + } + ] + }, + { + "name": "Saakuru Mainnet", + "chain": "Saakuru", + "icon": "saakuru", + "rpc": ["https://rpc.saakuru.network"], + "faucets": [], + "nativeCurrency": { "name": "OAS", "symbol": "OAS", "decimals": 18 }, + "infoURL": "https://saakuru.network", + "shortName": "saakuru", + "chainId": 7225878, + "networkId": 7225878, + "explorers": [ + { + "name": "saakuru-explorer", + "url": "https://explorer.saakuru.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "OpenVessel", + "chain": "VSL", + "icon": "vsl", + "rpc": ["https://mainnet-external.openvessel.io"], + "faucets": [], + "nativeCurrency": { + "name": "Vessel ETH", + "symbol": "VETH", + "decimals": 18 + }, + "infoURL": "https://www.openvessel.io", + "shortName": "vsl", + "chainId": 7355310, + "networkId": 7355310, + "explorers": [ + { + "name": "openvessel-mainnet", + "url": "https://mainnet-explorer.openvessel.io", + "standard": "none" + } + ] + }, + { + "name": "QL1 Testnet", + "chain": "QOM", + "status": "incubating", + "rpc": ["https://rpc.testnet.qom.one"], + "faucets": ["https://faucet.qom.one"], + "nativeCurrency": { + "name": "Shiba Predator", + "symbol": "QOM", + "decimals": 18 + }, + "infoURL": "https://qom.one", + "shortName": "tqom", + "chainId": 7668378, + "networkId": 7668378, + "icon": "qom", + "explorers": [ + { + "name": "QL1 Testnet Explorer", + "url": "https://testnet.qom.one", + "icon": "qom", + "standard": "EIP3091" + } + ] + }, + { + "name": "Musicoin", + "chain": "MUSIC", + "rpc": ["https://mewapi.musicoin.tw"], + "faucets": [], + "nativeCurrency": { "name": "Musicoin", "symbol": "MUSIC", "decimals": 18 }, + "infoURL": "https://musicoin.tw", + "shortName": "music", + "chainId": 7762959, + "networkId": 7762959, + "slip44": 184 + }, + { + "name": "Zora", + "chain": "ETH", + "rpc": ["https://rpc.zora.co/"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://zora.co", + "shortName": "zora", + "chainId": 7777777, + "networkId": 7777777, + "explorers": [ + { + "name": "Zora Network Explorer", + "url": "https://explorer.zora.co", + "standard": "EIP3091" + } + ] + }, + { + "name": "Plian Mainnet Subchain 1", + "chain": "Plian", + "rpc": ["https://mainnet.plian.io/child_0"], + "faucets": [], + "nativeCurrency": { "name": "Plian Token", "symbol": "PI", "decimals": 18 }, + "infoURL": "https://plian.org", + "shortName": "plian-mainnet-l2", + "chainId": 8007736, + "networkId": 8007736, + "explorers": [ + { + "name": "piscan", + "url": "https://piscan.plian.org/child_0", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-2099156", "type": "L2" } + }, + { + "name": "HAPchain", + "chain": "HAPchain", + "rpc": ["https://jsonrpc.hap.land"], + "faucets": [], + "nativeCurrency": { "name": "HAP", "symbol": "HAP", "decimals": 18 }, + "infoURL": "https://hap.land", + "shortName": "hap", + "chainId": 8794598, + "networkId": 8794598, + "icon": "hap", + "explorers": [ + { + "name": "HAP EVM Explorer (Blockscout)", + "url": "https://blockscout.hap.land", + "standard": "none", + "icon": "hap" + } + ] + }, + { + "name": "Quarix Testnet", + "chain": "Quarix", + "status": "incubating", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Q", "symbol": "Q", "decimals": 18 }, + "infoURL": "", + "shortName": "quarix-testnet", + "chainId": 8888881, + "networkId": 8888881, + "icon": "quarix", + "explorers": [] + }, + { + "name": "Quarix", + "chain": "Quarix", + "status": "incubating", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Q", "symbol": "Q", "decimals": 18 }, + "infoURL": "", + "shortName": "quarix", + "chainId": 8888888, + "networkId": 8888888, + "icon": "quarix", + "explorers": [] + }, + { + "name": "Plian Testnet Subchain 1", + "chain": "Plian", + "rpc": ["https://testnet.plian.io/child_test"], + "faucets": [], + "nativeCurrency": { + "name": "Plian Token", + "symbol": "TPI", + "decimals": 18 + }, + "infoURL": "https://plian.org/", + "shortName": "plian-testnet-l2", + "chainId": 10067275, + "networkId": 10067275, + "explorers": [ + { + "name": "piscan", + "url": "https://testnet.plian.org/child_test", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-16658437", "type": "L2" } + }, + { + "name": "Soverun Mainnet", + "chain": "SVRN", + "icon": "soverun", + "rpc": ["https://mainnet-rpc.soverun.com"], + "faucets": ["https://faucet.soverun.com"], + "nativeCurrency": { "name": "Soverun", "symbol": "SVRN", "decimals": 18 }, + "infoURL": "https://soverun.com", + "shortName": "SVRNm", + "chainId": 10101010, + "networkId": 10101010, + "explorers": [ + { + "name": "Soverun", + "url": "https://explorer.soverun.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Sepolia", + "title": "Ethereum Testnet Sepolia", + "chain": "ETH", + "rpc": [ + "https://rpc.sepolia.org", + "https://rpc2.sepolia.org", + "https://rpc-sepolia.rockx.com" + ], + "faucets": [ + "http://fauceth.komputing.org?chain=11155111&address=${ADDRESS}" + ], + "nativeCurrency": { + "name": "Sepolia Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://sepolia.otterscan.io", + "shortName": "sep", + "chainId": 11155111, + "networkId": 11155111, + "explorers": [ + { + "name": "etherscan-sepolia", + "url": "https://sepolia.etherscan.io", + "standard": "EIP3091" }, - "infoURL": "https://ambrosus.io", - "shortName": "amb", - "chainId": 16718, - "networkId": 16718, - "explorers": [ - { - "name": "Ambrosus explorer", - "url": "https://explorer.ambrosus.io", - "standard": "none" - } - ] - }, - { - "name": "Ambrosus Dev Net", - "chain": "Ambrosus", - "network": "devnet", - "rpc": [ - "https://network.ambrosus-dev.io" - ], - "nativeCurrency": { - "name": "Amber", - "symbol": "AMB", - "decimals": 18 + { + "name": "otterscan-sepolia", + "url": "https://sepolia.otterscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "PepChain Churchill", + "chain": "PEP", + "rpc": ["https://churchill-rpc.pepchain.io"], + "faucets": [], + "nativeCurrency": { + "name": "PepChain Churchill Ether", + "symbol": "TPEP", + "decimals": 18 + }, + "infoURL": "https://pepchain.io", + "shortName": "tpep", + "chainId": 13371337, + "networkId": 13371337 + }, + { + "name": "Anduschain Mainnet", + "chain": "anduschain", + "rpc": ["https://rpc.anduschain.io/rpc", "wss://rpc.anduschain.io/ws"], + "faucets": [], + "nativeCurrency": { "name": "DAON", "symbol": "DEB", "decimals": 18 }, + "infoURL": "https://anduschain.io/", + "shortName": "anduschain-mainnet", + "chainId": 14288640, + "networkId": 14288640, + "explorers": [ + { + "name": "anduschain explorer", + "url": "https://explorer.anduschain.io", + "icon": "daon", + "standard": "none" + } + ] + }, + { + "name": "Plian Testnet Main", + "chain": "Plian", + "rpc": ["https://testnet.plian.io/testnet"], + "faucets": [], + "nativeCurrency": { + "name": "Plian Testnet Token", + "symbol": "TPI", + "decimals": 18 + }, + "infoURL": "https://plian.org", + "shortName": "plian-testnet", + "chainId": 16658437, + "networkId": 16658437, + "explorers": [ + { + "name": "piscan", + "url": "https://testnet.plian.org/testnet", + "standard": "EIP3091" + } + ] + }, + { + "name": "IOLite", + "chain": "ILT", + "rpc": ["https://net.iolite.io"], + "faucets": [], + "nativeCurrency": { + "name": "IOLite Ether", + "symbol": "ILT", + "decimals": 18 + }, + "infoURL": "https://iolite.io", + "shortName": "ilt", + "chainId": 18289463, + "networkId": 18289463 + }, + { + "name": "SmartMesh Mainnet", + "chain": "Spectrum", + "rpc": ["https://jsonapi1.smartmesh.cn"], + "faucets": [], + "nativeCurrency": { + "name": "SmartMesh Native Token", + "symbol": "SMT", + "decimals": 18 + }, + "infoURL": "https://smartmesh.io", + "shortName": "spectrum", + "chainId": 20180430, + "networkId": 1, + "explorers": [ + { "name": "spectrum", "url": "https://spectrum.pub", "standard": "none" } + ] + }, + { + "name": "quarkblockchain", + "chain": "QKI", + "rpc": ["https://hz.rpc.qkiscan.cn", "https://jp.rpc.qkiscan.io"], + "faucets": [], + "nativeCurrency": { + "name": "quarkblockchain Native Token", + "symbol": "QKI", + "decimals": 18 + }, + "infoURL": "https://quarkblockchain.org/", + "shortName": "qki", + "chainId": 20181205, + "networkId": 20181205 + }, + { + "name": "Excelon Mainnet", + "chain": "XLON", + "icon": "xlon", + "rpc": ["https://edgewallet1.xlon.org/"], + "faucets": [], + "nativeCurrency": { "name": "Excelon", "symbol": "xlon", "decimals": 18 }, + "infoURL": "https://xlon.org", + "shortName": "xlon", + "chainId": 22052002, + "networkId": 22052002, + "explorers": [ + { + "name": "Excelon explorer", + "url": "https://explorer.excelon.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Excoincial Chain Volta-Testnet", + "chain": "TEXL", + "icon": "exl", + "rpc": ["https://testnet-rpc.exlscan.com"], + "faucets": ["https://faucet.exlscan.com"], + "nativeCurrency": { "name": "TExlcoin", "symbol": "TEXL", "decimals": 18 }, + "infoURL": "", + "shortName": "exlvolta", + "chainId": 27082017, + "networkId": 27082017, + "explorers": [ + { + "name": "exlscan", + "url": "https://testnet-explorer.exlscan.com", + "icon": "exl", + "standard": "EIP3091" + } + ] + }, + { + "name": "Excoincial Chain Mainnet", + "chain": "EXL", + "icon": "exl", + "rpc": ["https://rpc.exlscan.com"], + "faucets": [], + "nativeCurrency": { "name": "Exlcoin", "symbol": "EXL", "decimals": 18 }, + "infoURL": "", + "shortName": "exl", + "chainId": 27082022, + "networkId": 27082022, + "explorers": [ + { + "name": "exlscan", + "url": "https://exlscan.com", + "icon": "exl", + "standard": "EIP3091" + } + ] + }, + { + "name": "Auxilium Network Mainnet", + "chain": "AUX", + "rpc": ["https://rpc.auxilium.global"], + "faucets": [], + "nativeCurrency": { + "name": "Auxilium coin", + "symbol": "AUX", + "decimals": 18 + }, + "infoURL": "https://auxilium.global", + "shortName": "auxi", + "chainId": 28945486, + "networkId": 28945486, + "slip44": 344 + }, + { + "name": "Flachain Mainnet", + "chain": "FLX", + "icon": "flacoin", + "rpc": ["https://flachain.flaexchange.top/"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "Flacoin", "symbol": "FLA", "decimals": 18 }, + "infoURL": "https://www.flaexchange.top", + "shortName": "fla", + "chainId": 29032022, + "networkId": 29032022, + "explorers": [ + { + "name": "FLXExplorer", + "url": "https://explorer.flaexchange.top", + "standard": "EIP3091" + } + ] + }, + { + "name": "Filecoin - Local testnet", + "chain": "FIL", + "status": "incubating", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "testnet filecoin", + "symbol": "tFIL", + "decimals": 18 + }, + "infoURL": "https://filecoin.io", + "shortName": "filecoin-local", + "icon": "filecoin", + "chainId": 31415926, + "networkId": 31415926, + "slip44": 1, + "explorers": [] + }, + { + "name": "Joys Digital Mainnet", + "chain": "JOYS", + "rpc": ["https://node.joys.digital"], + "faucets": [], + "nativeCurrency": { "name": "JOYS", "symbol": "JOYS", "decimals": 18 }, + "infoURL": "https://joys.digital", + "shortName": "JOYS", + "chainId": 35855456, + "networkId": 35855456 + }, + { + "name": "maistestsubnet", + "chain": "MAI", + "rpc": [ + "http://174.138.9.169:9650/ext/bc/VUKSzFZKckx4PoZF9gX5QAqLPxbLzvu1vcssPG5QuodaJtdHT/rpc" + ], + "faucets": [], + "nativeCurrency": { + "name": "maistestsubnet", + "symbol": "MAI", + "decimals": 18 + }, + "infoURL": "", + "shortName": "mais", + "chainId": 43214913, + "networkId": 43214913, + "explorers": [ + { + "name": "maistesntet", + "url": "http://174.138.9.169:3006/?network=maistesntet", + "standard": "none" + } + ] + }, + { + "name": "Aquachain", + "chain": "AQUA", + "rpc": ["https://c.onical.org", "https://tx.aquacha.in/api"], + "faucets": ["https://aquacha.in/faucet"], + "nativeCurrency": { + "name": "Aquachain Ether", + "symbol": "AQUA", + "decimals": 18 + }, + "infoURL": "https://aquachain.github.io", + "shortName": "aqua", + "chainId": 61717561, + "networkId": 61717561, + "slip44": 61717561 + }, + { + "name": "Autonity Bakerloo (Thames) Testnet", + "chain": "AUT", + "rpc": [ + "https://rpc1.bakerloo.autonity.org/", + "wss://rpc1.bakerloo.autonity.org/ws/" + ], + "faucets": ["https://faucet.autonity.org/"], + "nativeCurrency": { + "name": "Bakerloo Auton", + "symbol": "ATN", + "decimals": 18 + }, + "infoURL": "https://autonity.org/", + "shortName": "bakerloo-0", + "chainId": 65010000, + "networkId": 65010000, + "icon": "autonity", + "explorers": [ + { + "name": "autonity-blockscout", + "url": "https://bakerloo.autonity.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Autonity Piccadilly (Thames) Testnet", + "chain": "AUT", + "rpc": [ + "https://rpc1.piccadilly.autonity.org/", + "wss://rpc1.piccadilly.autonity.org/ws/" + ], + "faucets": ["https://faucet.autonity.org/"], + "nativeCurrency": { + "name": "Piccadilly Auton", + "symbol": "ATN", + "decimals": 18 + }, + "infoURL": "https://autonity.org/", + "shortName": "piccadilly-0", + "chainId": 65100000, + "networkId": 65100000, + "icon": "autonity", + "explorers": [ + { + "name": "autonity-blockscout", + "url": "https://piccadilly.autonity.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "T.E.A.M Blockchain", + "chain": "TEAM", + "icon": "team", + "rpc": ["https://rpc.teamblockchain.team"], + "faucets": [], + "nativeCurrency": { "name": "TEAM", "symbol": "$TEAM", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://teamblockchain.team", + "shortName": "team", + "chainId": 88888888, + "networkId": 88888888, + "explorers": [ + { + "name": "teamscan", + "url": "https://teamblockchain.team", + "standard": "EIP3091" + } + ] + }, + { + "name": "Joys Digital TestNet", + "chain": "TOYS", + "rpc": ["https://toys.joys.cash/"], + "faucets": ["https://faucet.joys.digital/"], + "nativeCurrency": { "name": "TOYS", "symbol": "TOYS", "decimals": 18 }, + "infoURL": "https://joys.digital", + "shortName": "TOYS", + "chainId": 99415706, + "networkId": 99415706 + }, + { + "name": "Gather Mainnet Network", + "chain": "GTH", + "rpc": ["https://mainnet.gather.network"], + "faucets": [], + "nativeCurrency": { "name": "Gather", "symbol": "GTH", "decimals": 18 }, + "infoURL": "https://gather.network", + "shortName": "GTH", + "chainId": 192837465, + "networkId": 192837465, + "icon": "gather", + "explorers": [ + { + "name": "Blockscout", + "url": "https://explorer.gather.network", + "icon": "gather", + "standard": "none" + } + ] + }, + { + "name": "Kanazawa", + "title": "Meld Testnet Kanazawa", + "chain": "Kanazawa", + "rpc": ["https://subnets.avax.network/meld/testnet/rpc"], + "faucets": [], + "features": [], + "nativeCurrency": { "name": "gMeld", "symbol": "gMELD", "decimals": 18 }, + "icon": "meld", + "infoURL": "https://meld.com", + "shortName": "kanazawa", + "chainId": 222000222, + "networkId": 222000222, + "explorers": [ + { + "name": "explorer", + "url": "https://subnets-test.avax.network/meld", + "icon": "meld", + "standard": "EIP3091" + } + ] + }, + { + "name": "Neon EVM DevNet", + "chain": "Solana", + "rpc": ["https://devnet.neonevm.org"], + "faucets": ["https://neonfaucet.org"], + "icon": "neon", + "nativeCurrency": { "name": "Neon", "symbol": "NEON", "decimals": 18 }, + "infoURL": "https://neon-labs.org", + "shortName": "neonevm-devnet", + "chainId": 245022926, + "networkId": 245022926, + "explorers": [ + { + "name": "native", + "url": "https://devnet.explorer.neon-labs.org", + "standard": "EIP3091" }, - "infoURL": "https://ambrosus.io", - "shortName": "amb", - "chainId": 30746, - "networkId": 30746, - "explorers": [ - { - "name": "Ambrosus explorer", - "url": "https://explorer.ambrosus-dev.io", - "standard": "none" - } - ] - }, - { - "name": "Ambrosus Test Net", - "chain": "Ambrosus", - "network": "testnet", - "rpc": [ - "https://network.ambrosus-test.io" - ], - "nativeCurrency": { - "name": "Amber", - "symbol": "AMB", - "decimals": 18 + { + "name": "neonscan", + "url": "https://devnet.neonscan.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Neon EVM MainNet", + "chain": "Solana", + "rpc": ["https://mainnet.neonevm.org"], + "faucets": [], + "icon": "neon", + "nativeCurrency": { "name": "Neon", "symbol": "NEON", "decimals": 18 }, + "infoURL": "https://neon-labs.org", + "shortName": "neonevm-mainnet", + "chainId": 245022934, + "networkId": 245022934, + "explorers": [ + { + "name": "native", + "url": "https://mainnet.explorer.neon-labs.org", + "standard": "EIP3091" }, - "infoURL": "https://ambrosus.io", - "shortName": "amb", - "chainId": 22040, - "networkId": 22040, - "explorers": [ - { - "name": "Ambrosus explorer", - "url": "https://explorer.ambrosus-test.io", - "standard": "none" - } - ] + { + "name": "neonscan", + "url": "https://mainnet.neonscan.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Neon EVM TestNet", + "chain": "Solana", + "rpc": ["https://testnet.neonevm.org"], + "faucets": [], + "icon": "neon", + "nativeCurrency": { "name": "Neon", "symbol": "NEON", "decimals": 18 }, + "infoURL": "https://neon-labs.org", + "shortName": "neonevm-testnet", + "chainId": 245022940, + "networkId": 245022940, + "explorers": [ + { + "name": "native", + "url": "https://testnet.explorer.neon-labs.org", + "standard": "EIP3091" + }, + { + "name": "neonscan", + "url": "https://testnet.neonscan.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Razor Skale Chain", + "chain": "Razor Schain", + "icon": "razornetwork", + "rpc": ["https://mainnet.skalenodes.com/v1/turbulent-unique-scheat"], + "faucets": ["https://faucet.razorscan.io/"], + "nativeCurrency": { "name": "sFuel", "symbol": "SFUEL", "decimals": 18 }, + "infoURL": "https://razor.network", + "shortName": "razor", + "chainId": 278611351, + "networkId": 278611351, + "explorers": [ + { + "name": "turbulent-unique-scheat", + "url": "https://turbulent-unique-scheat.explorer.mainnet.skalenodes.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "OneLedger Mainnet", + "chain": "OLT", + "icon": "oneledger", + "rpc": ["https://mainnet-rpc.oneledger.network"], + "faucets": [], + "nativeCurrency": { "name": "OLT", "symbol": "OLT", "decimals": 18 }, + "infoURL": "https://oneledger.io", + "shortName": "oneledger", + "chainId": 311752642, + "networkId": 311752642, + "explorers": [ + { + "name": "OneLedger Block Explorer", + "url": "https://mainnet-explorer.oneledger.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Meld", + "title": "Meld Mainnet", + "chain": "MELD", + "rpc": ["https://subnets.avax.network/meld/mainnet/rpc"], + "faucets": [], + "features": [], + "nativeCurrency": { "name": "gMeld", "symbol": "gMELD", "decimals": 18 }, + "icon": "meld", + "infoURL": "https://meld.com", + "shortName": "meld", + "chainId": 333000333, + "networkId": 333000333, + "explorers": [ + { + "name": "explorer", + "url": "https://subnets.avax.network/meld", + "icon": "meld", + "standard": "EIP3091" + } + ] + }, + { + "name": "Calypso NFT Hub (SKALE Testnet)", + "title": "Calypso NFT Hub Testnet", + "chain": "staging-utter-unripe-menkar", + "rpc": ["https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar"], + "faucets": ["https://sfuel.dirtroad.dev/staging"], + "nativeCurrency": { "name": "sFUEL", "symbol": "sFUEL", "decimals": 18 }, + "infoURL": "https://calypsohub.network/", + "shortName": "calypso-testnet", + "chainId": 344106930, + "networkId": 344106930, + "explorers": [ + { + "name": "Blockscout", + "url": "https://staging-utter-unripe-menkar.explorer.staging-v3.skalenodes.com", + "icon": "calypso", + "standard": "EIP3091" + } + ] + }, + { + "name": "Gather Testnet Network", + "chain": "GTH", + "rpc": ["https://testnet.gather.network"], + "faucets": [], + "nativeCurrency": { "name": "Gather", "symbol": "GTH", "decimals": 18 }, + "infoURL": "https://gather.network", + "shortName": "tGTH", + "chainId": 356256156, + "networkId": 356256156, + "icon": "gather", + "explorers": [ + { + "name": "Blockscout", + "url": "https://testnet-explorer.gather.network", + "icon": "gather", + "standard": "none" + } + ] + }, + { + "name": "Gather Devnet Network", + "chain": "GTH", + "rpc": ["https://devnet.gather.network"], + "faucets": [], + "nativeCurrency": { "name": "Gather", "symbol": "GTH", "decimals": 18 }, + "infoURL": "https://gather.network", + "shortName": "dGTH", + "chainId": 486217935, + "networkId": 486217935, + "explorers": [ + { + "name": "Blockscout", + "url": "https://devnet-explorer.gather.network", + "standard": "none" + } + ] + }, + { + "name": "Nebula Staging", + "chain": "staging-faint-slimy-achird", + "rpc": [ + "https://staging-v3.skalenodes.com/v1/staging-faint-slimy-achird", + "wss://staging-v3.skalenodes.com/v1/ws/staging-faint-slimy-achird" + ], + "faucets": [], + "nativeCurrency": { "name": "sFUEL", "symbol": "sFUEL", "decimals": 18 }, + "infoURL": "https://nebulachain.io/", + "shortName": "nebula-staging", + "chainId": 503129905, + "networkId": 503129905, + "explorers": [ + { + "name": "nebula", + "url": "https://staging-faint-slimy-achird.explorer.staging-v3.skalenodes.com", + "icon": "nebula", + "standard": "EIP3091" + } + ] + }, + { + "name": "IPOS Network", + "chain": "IPOS", + "rpc": ["https://rpc.iposlab.com", "https://rpc2.iposlab.com"], + "faucets": [], + "nativeCurrency": { + "name": "IPOS Network Ether", + "symbol": "IPOS", + "decimals": 18 + }, + "infoURL": "https://iposlab.com", + "shortName": "ipos", + "chainId": 1122334455, + "networkId": 1122334455 + }, + { + "name": "CyberdeckNet", + "chain": "cyberdeck", + "rpc": ["http://cybeth1.cyberdeck.eu:8545"], + "faucets": [], + "nativeCurrency": { "name": "Cyb", "symbol": "CYB", "decimals": 18 }, + "infoURL": "https://cyberdeck.eu", + "shortName": "cyb", + "chainId": 1146703430, + "networkId": 1146703430, + "icon": "cyberdeck", + "status": "active", + "explorers": [ + { + "name": "CybEthExplorer", + "url": "http://cybeth1.cyberdeck.eu:8000", + "icon": "cyberdeck", + "standard": "none" + } + ] + }, + { + "name": "HUMAN Protocol", + "title": "HUMAN Protocol", + "chain": "wan-red-ain", + "rpc": ["https://mainnet.skalenodes.com/v1/wan-red-ain"], + "faucets": ["https://dashboard.humanprotocol.org/faucet"], + "nativeCurrency": { "name": "sFUEL", "symbol": "sFUEL", "decimals": 18 }, + "infoURL": "https://www.humanprotocol.org", + "shortName": "human-mainnet", + "chainId": 1273227453, + "networkId": 1273227453, + "explorers": [ + { + "name": "Blockscout", + "url": "https://wan-red-ain.explorer.mainnet.skalenodes.com", + "icon": "human", + "standard": "EIP3091" + } + ] + }, + { + "name": "Aurora Mainnet", + "chain": "NEAR", + "rpc": ["https://mainnet.aurora.dev"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://aurora.dev", + "shortName": "aurora", + "chainId": 1313161554, + "networkId": 1313161554, + "explorers": [ + { + "name": "aurorascan.dev", + "url": "https://aurorascan.dev", + "standard": "EIP3091" + } + ] + }, + { + "name": "Aurora Testnet", + "chain": "NEAR", + "rpc": ["https://testnet.aurora.dev/"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://aurora.dev", + "shortName": "aurora-testnet", + "chainId": 1313161555, + "networkId": 1313161555, + "explorers": [ + { + "name": "aurorascan.dev", + "url": "https://testnet.aurorascan.dev", + "standard": "EIP3091" + } + ] + }, + { + "name": "Aurora Betanet", + "chain": "NEAR", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://aurora.dev", + "shortName": "aurora-betanet", + "chainId": 1313161556, + "networkId": 1313161556 + }, + { + "name": "Chaos (SKALE Testnet)", + "title": "Chaos Testnet", + "chain": "staging-fast-active-bellatrix", + "rpc": [ + "https://staging-v3.skalenodes.com/v1/staging-fast-active-bellatrix" + ], + "faucets": ["https://sfuel.skale.network/staging/chaos"], + "nativeCurrency": { "name": "sFUEL", "symbol": "sFUEL", "decimals": 18 }, + "infoURL": "https://docs.skale.network/develop/", + "shortName": "chaos-tenet", + "chainId": 1351057110, + "networkId": 1351057110, + "explorers": [ + { + "name": "Blockscout", + "url": "https://staging-fast-active-bellatrix.explorer.staging-v3.skalenodes.com", + "icon": "chaos", + "standard": "EIP3091" + } + ] + }, + { + "name": "RaptorChain", + "chain": "RPTR", + "rpc": ["https://rpc.raptorchain.io/web3"], + "faucets": [], + "nativeCurrency": { "name": "Raptor", "symbol": "RPTR", "decimals": 18 }, + "features": [{ "name": "EIP155" }], + "infoURL": "https://raptorchain.io", + "shortName": "rptr", + "chainId": 1380996178, + "networkId": 1380996178, + "icon": "raptorchain", + "explorers": [ + { + "name": "RaptorChain Explorer", + "url": "https://explorer.raptorchain.io", + "icon": "raptorchain_explorer", + "standard": "EIP3091" + } + ] + }, + { + "name": "Nebula Mainnet", + "chain": "green-giddy-denebola", + "rpc": [ + "https://mainnet.skalenodes.com/v1/green-giddy-denebola", + "wss://mainnet-proxy.skalenodes.com/v1/ws/green-giddy-denebola" + ], + "faucets": [], + "nativeCurrency": { "name": "sFUEL", "symbol": "sFUEL", "decimals": 18 }, + "infoURL": "https://nebulachain.io/", + "shortName": "nebula-mainnet", + "chainId": 1482601649, + "networkId": 1482601649, + "explorers": [ + { + "name": "nebula", + "url": "https://green-giddy-denebola.explorer.mainnet.skalenodes.com", + "icon": "nebula", + "standard": "EIP3091" + } + ] + }, + { + "name": "Calypso NFT Hub (SKALE)", + "title": "Calypso NFT Hub Mainnet", + "chain": "honorable-steel-rasalhague", + "rpc": ["https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague"], + "faucets": ["https://sfuel.dirtroad.dev"], + "nativeCurrency": { "name": "sFUEL", "symbol": "sFUEL", "decimals": 18 }, + "infoURL": "https://calypsohub.network/", + "shortName": "calypso-mainnet", + "chainId": 1564830818, + "networkId": 1564830818, + "explorers": [ + { + "name": "Blockscout", + "url": "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com", + "icon": "calypso", + "standard": "EIP3091" + } + ] + }, + { + "name": "Harmony Mainnet Shard 0", + "chain": "Harmony", + "rpc": ["https://api.harmony.one", "https://api.s0.t.hmny.io"], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-s0", + "chainId": 1666600000, + "networkId": 1666600000, + "explorers": [ + { + "name": "Harmony Block Explorer", + "url": "https://explorer.harmony.one", + "standard": "EIP3091" + } + ] + }, + { + "name": "Harmony Mainnet Shard 1", + "chain": "Harmony", + "rpc": ["https://api.s1.t.hmny.io"], + "faucets": [], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-s1", + "chainId": 1666600001, + "networkId": 1666600001 + }, + { + "name": "Harmony Mainnet Shard 2", + "chain": "Harmony", + "rpc": ["https://api.s2.t.hmny.io"], + "faucets": [], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-s2", + "chainId": 1666600002, + "networkId": 1666600002 + }, + { + "name": "Harmony Mainnet Shard 3", + "chain": "Harmony", + "rpc": ["https://api.s3.t.hmny.io"], + "faucets": [], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-s3", + "chainId": 1666600003, + "networkId": 1666600003 + }, + { + "name": "Harmony Testnet Shard 0", + "chain": "Harmony", + "rpc": ["https://api.s0.b.hmny.io"], + "faucets": ["https://faucet.pops.one"], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-b-s0", + "chainId": 1666700000, + "networkId": 1666700000, + "explorers": [ + { + "name": "Harmony Testnet Block Explorer", + "url": "https://explorer.pops.one", + "standard": "EIP3091" + } + ] + }, + { + "name": "Harmony Testnet Shard 1", + "chain": "Harmony", + "rpc": ["https://api.s1.b.hmny.io"], + "faucets": [], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-b-s1", + "chainId": 1666700001, + "networkId": 1666700001 + }, + { + "name": "Harmony Testnet Shard 2", + "chain": "Harmony", + "rpc": ["https://api.s2.b.hmny.io"], + "faucets": [], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-b-s2", + "chainId": 1666700002, + "networkId": 1666700002 + }, + { + "name": "Harmony Testnet Shard 3", + "chain": "Harmony", + "rpc": ["https://api.s3.b.hmny.io"], + "faucets": [], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-b-s3", + "chainId": 1666700003, + "networkId": 1666700003 + }, + { + "name": "Harmony Devnet Shard 0", + "chain": "Harmony", + "rpc": ["https://api.s1.ps.hmny.io", "https://api.s1.ps.hmny.io"], + "faucets": ["http://dev.faucet.easynode.one/"], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-ps-s0", + "chainId": 1666900000, + "networkId": 1666900000, + "explorers": [ + { + "name": "Harmony Block Explorer", + "url": "https://explorer.ps.hmny.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "DataHopper", + "chain": "HOP", + "rpc": ["https://23.92.21.121:8545"], + "faucets": [], + "nativeCurrency": { + "name": "DataHoppers", + "symbol": "HOP", + "decimals": 18 + }, + "infoURL": "https://www.DataHopper.com", + "shortName": "hop", + "chainId": 2021121117, + "networkId": 2021121117 + }, + { + "name": "Europa SKALE Chain", + "chain": "europa", + "icon": "europa", + "rpc": [ + "https://mainnet.skalenodes.com/v1/elated-tan-skat", + "wss://mainnet.skalenodes.com/v1/elated-tan-skat" + ], + "faucets": [ + "https://ruby.exchange/faucet.html", + "https://sfuel.mylilius.com/" + ], + "nativeCurrency": { "name": "sFUEL", "symbol": "sFUEL", "decimals": 18 }, + "infoURL": "https://europahub.network/", + "shortName": "europa", + "chainId": 2046399126, + "networkId": 2046399126, + "explorers": [ + { + "name": "Blockscout", + "url": "https://elated-tan-skat.explorer.mainnet.skalenodes.com", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://ruby.exchange/bridge.html" }] } + }, + { + "name": "Pirl", + "chain": "PIRL", + "rpc": ["https://wallrpc.pirl.io"], + "faucets": [], + "nativeCurrency": { + "name": "Pirl Ether", + "symbol": "PIRL", + "decimals": 18 + }, + "infoURL": "https://pirl.io", + "shortName": "pirl", + "chainId": 3125659152, + "networkId": 3125659152, + "slip44": 164 + }, + { + "name": "OneLedger Testnet Frankenstein", + "chain": "OLT", + "icon": "oneledger", + "rpc": ["https://frankenstein-rpc.oneledger.network"], + "faucets": ["https://frankenstein-faucet.oneledger.network"], + "nativeCurrency": { "name": "OLT", "symbol": "OLT", "decimals": 18 }, + "infoURL": "https://oneledger.io", + "shortName": "frankenstein", + "chainId": 4216137055, + "networkId": 4216137055, + "explorers": [ + { + "name": "OneLedger Block Explorer", + "url": "https://frankenstein-explorer.oneledger.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Palm Testnet", + "chain": "Palm", + "icon": "palm", + "rpc": ["https://palm-testnet.infura.io/v3/${INFURA_API_KEY}"], + "faucets": [], + "nativeCurrency": { "name": "PALM", "symbol": "PALM", "decimals": 18 }, + "infoURL": "https://palm.io", + "shortName": "tpalm", + "chainId": 11297108099, + "networkId": 11297108099, + "explorers": [ + { + "name": "Palm Testnet Explorer", + "url": "https://explorer.palm-uat.xyz", + "standard": "EIP3091" + } + ] + }, + { + "name": "Palm", + "chain": "Palm", + "icon": "palm", + "rpc": ["https://palm-mainnet.infura.io/v3/${INFURA_API_KEY}"], + "faucets": [], + "nativeCurrency": { "name": "PALM", "symbol": "PALM", "decimals": 18 }, + "infoURL": "https://palm.io", + "shortName": "palm", + "chainId": 11297108109, + "networkId": 11297108109, + "explorers": [ + { + "name": "Palm Explorer", + "url": "https://explorer.palm.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Alphabet Mainnet", + "chain": "Alphabet Network", + "icon": "alphabetnetwork", + "rpc": [ + "https://londonpublic.alphabetnetwork.org", + "wss://londonpublic.alphabetnetwork.org/ws/", + "https://main-rpc.com", + "wss://main-rpc.com/ws/" + ], + "faucets": [], + "nativeCurrency": { "name": "ALT", "symbol": "ALT", "decimals": 18 }, + "infoURL": "https://alphabetnetwork.org", + "shortName": "alphabet", + "chainId": 111222333444, + "networkId": 111222333444, + "explorers": [ + { + "name": "Alphabet Explorer", + "url": "https://scan.alphabetnetwork.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ntity Mainnet", + "chain": "Ntity", + "rpc": ["https://rpc.ntity.io"], + "faucets": [], + "nativeCurrency": { "name": "Ntity", "symbol": "NTT", "decimals": 18 }, + "infoURL": "https://ntity.io", + "shortName": "ntt", + "chainId": 197710212030, + "networkId": 197710212030, + "icon": "ntity", + "explorers": [ + { + "name": "Ntity Blockscout", + "url": "https://blockscout.ntity.io", + "icon": "ntity", + "standard": "EIP3091" + } + ] + }, + { + "name": "Haradev Testnet", + "chain": "Ntity", + "rpc": ["https://blockchain.haradev.com"], + "faucets": [], + "nativeCurrency": { + "name": "Ntity Haradev", + "symbol": "NTTH", + "decimals": 18 + }, + "infoURL": "https://ntity.io", + "shortName": "ntt-haradev", + "chainId": 197710212031, + "networkId": 197710212031, + "icon": "ntity", + "explorers": [ + { + "name": "Ntity Haradev Blockscout", + "url": "https://blockscout.haradev.com", + "icon": "ntity", + "standard": "EIP3091" + } + ] + }, + { + "name": "Zeniq", + "chain": "ZENIQ", + "rpc": ["https://smart.zeniq.network:9545"], + "faucets": ["https://faucet.zeniq.net/"], + "nativeCurrency": { "name": "Zeniq", "symbol": "ZENIQ", "decimals": 18 }, + "infoURL": "https://www.zeniq.dev/", + "shortName": "zeniq", + "chainId": 383414847825, + "networkId": 383414847825, + "explorers": [ + { + "name": "zeniq-smart-chain-explorer", + "url": "https://smart.zeniq.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "PDC Mainnet", + "chain": "IPDC", + "rpc": ["https://mainnet.ipdc.io/"], + "faucets": [], + "nativeCurrency": { "name": "PDC", "symbol": "PDC", "decimals": 18 }, + "infoURL": "https://ipdc.io", + "shortName": "ipdc", + "chainId": 666301171999, + "networkId": 666301171999, + "explorers": [ + { + "name": "ipdcscan", + "url": "https://scan.ipdc.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Molereum Network", + "chain": "ETH", + "rpc": ["https://molereum.jdubedition.com"], + "faucets": [], + "nativeCurrency": { + "name": "Molereum Ether", + "symbol": "MOLE", + "decimals": 18 + }, + "infoURL": "https://github.com/Jdubedition/molereum", + "shortName": "mole", + "chainId": 6022140761023, + "networkId": 6022140761023 + }, + { + "name": "Godwoken Testnet (V1)", + "chain": "GWT", + "rpc": ["https://godwoken-testnet-web3-v1-rpc.ckbapp.dev"], + "faucets": ["https://homura.github.io/light-godwoken"], + "nativeCurrency": { "name": "CKB", "symbol": "CKB", "decimals": 8 }, + "infoURL": "https://www.nervos.org", + "shortName": "gw-testnet-v1-deprecated", + "chainId": 868455272153094, + "networkId": 868455272153094, + "status": "deprecated", + "explorers": [ + { + "name": "GWScan Block Explorer", + "url": "https://v1.aggron.gwscan.com", + "standard": "none" + } + ] + } ] diff --git a/configs/chains/sourcify-chains.ts b/configs/chains/sourcify-chains.ts index 13477ae77..33d8ff39d 100644 --- a/configs/chains/sourcify-chains.ts +++ b/configs/chains/sourcify-chains.ts @@ -1,421 +1,934 @@ -import * as dotenv from 'dotenv'; -import path from 'path'; +import * as chainsRaw from "./chains.json"; +import * as dotenv from "dotenv"; +import path from "path"; +import { SourcifyEventManager } from "./common/SourcifyEventManager/SourcifyEventManager"; +import { + SourcifyChain, + SourcifyChainMap, + SourcifyChainExtension, + Chain, +} from "@ethereum-sourcify/lib-sourcify"; +import { etherscanAPIs } from "./config"; +import { ValidationError } from "./common/errors"; +import { logger } from "./common/loggerLoki"; +import { FetchRequest } from "ethers"; -dotenv.config({ path: path.resolve(__dirname, "..", "..", "..", "environments/.env") }); +const allChains = chainsRaw as Chain[]; -const ETHERSCAN_REGEX = (/at txn\s+ c.chainId).includes(chainId) + ) { + continue; + } + const err = `Corrupt chains file (chains.json): multiple chains have the same chainId: ${chainId}`; + throw new Error(err); + } + + if (chainId in sourcifyChainsExtensions) { + const sourcifyExtension = sourcifyChainsExtensions[chainId]; + // sourcifyExtension is spread later to overwrite chain values, rpc specifically + const sourcifyChain = new SourcifyChain({ + ...chain, + ...sourcifyExtension, + }); + sourcifyChainsMap[chainId] = sourcifyChain; + } +} + +const sourcifyChainsArray = getSortedChainsArray(sourcifyChainsMap); +const supportedChainsArray = sourcifyChainsArray.filter( + (chain) => chain.supported +); +// convert supportedChainArray to a map where the key is the chainId +const supportedChainsMap = supportedChainsArray.reduce( + (map, chain) => ((map[chain.chainId.toString()] = chain), map), + {} +); +const monitoredChainArray = sourcifyChainsArray.filter( + (chain) => chain.monitored +); +// convert monitoredChainArray to a map where the key is the chainId +const monitoredChainsMap = monitoredChainArray.reduce( + (map, chain) => ((map[chain.chainId.toString()] = chain), map), + {} +); + +// Gets the chainsMap, sorts the chains, returns Chain array. +export function getSortedChainsArray( + chainMap: SourcifyChainMap +): SourcifyChain[] { + function getPrimarySortKey(chain: any) { + return chain.name || chain.title; + } + + const chainsArray = Object.values(chainMap); + // Have Ethereum chains on top. + const ethereumChainIds = [1, 5, 11155111, 3, 4, 42]; + const ethereumChains = ethereumChainIds.map((id) => { + // Use long form name for Ethereum netorks e.g. "Ethereum Testnet Goerli" instead of "Goerli" + chainMap[id].name = chainMap[id].title || chainMap[id].name; + return chainMap[id]; + }); + // Others, sorted alphabetically + const otherChains = chainsArray + .filter((chain) => ![1, 5, 11155111, 3, 4, 42].includes(chain.chainId)) + .sort((a, b) => + getPrimarySortKey(a) > getPrimarySortKey(b) + ? 1 + : getPrimarySortKey(b) > getPrimarySortKey(a) + ? -1 + : 0 + ); + + const sortedChains = ethereumChains.concat(otherChains); + return sortedChains; +} + +/** + * To check if a chain is supported for verification. + * Note that there might be chains not supported for verification anymore but still exist as a SourcifyChain e.g. Ropsten. + */ +export function checkSupportedChainId(chainId: string) { + if (!(chainId in sourcifyChainsMap && sourcifyChainsMap[chainId].supported)) { + throw new ValidationError( + `Chain ${chainId} not supported for verification!` + ); + } + + return true; +} + +/** + * To check if a chain exists as a SourcifyChain. + * Note that there might be chains not supported for verification anymore but still exist as a SourcifyChain e.g. Ropsten. + */ +export function checkSourcifyChainId(chainId: string) { + if ( + !(chainId in sourcifyChainsMap && sourcifyChainsMap[chainId]) && + chainId != "0" + ) { + throw new Error(`Chain ${chainId} is not a Sourcify chain!`); + } + + return true; +} + +export { + sourcifyChainsMap, + sourcifyChainsArray, + supportedChainsMap, + supportedChainsArray, + monitoredChainsMap, + monitoredChainArray, + LOCAL_CHAINS, +}; diff --git a/environments/.env.dev b/environments/.env.dev index 808880acb..d3980b1f2 100644 --- a/environments/.env.dev +++ b/environments/.env.dev @@ -4,7 +4,7 @@ SOLC_REPO=/tmp/solc-bin/linux-amd64 SOLJSON_REPO=/tmp/solc-bin/soljson SERVER_PORT=5555 SESSION_SECRET=yoursessionsecret -IPFS_GATEWAY=http://ipfs.io/ipfs/ +IPFS_GATEWAY=https://ipfs.io/ipfs/ # Repository web server config REPOSITORY_SERVER_URL=http://localhost:10000 @@ -52,11 +52,11 @@ IPFS_API_EXTERNAL_PORT=5002 SERVER_URL=https://staging.sourcify.dev/server # Custom nodes -NODE_ADDRESS= -NODE_PORT_MAINNET= -NODE_PORT_RINKEBY= -NODE_PORT_GOERLI= -NODE_PORT_SEPOLIA= +NODE_URL_MAINNET= +NODE_URL_GOERLI= +NODE_URL_SEPOLIA= +CF_ACCESS_CLIENT_ID= +CF_ACCESS_CLIENT_SECRET= # Other config TESTING=false @@ -68,5 +68,28 @@ ALCHEMY_ID=xxx ALCHEMY_ID_OPTIMISM= # Optional, if not set will use ALCHEMY_ID ALCHEMY_ID_ARBITRUM= -# Needed for the Import from Etherscan functionality -ETHERSCAN_API_KEY= \ No newline at end of file +# Optional, Needed for the Import from Etherscan functionality for each Etherscan instance +ETHERSCAN_API_KEY= +ARBISCAN_API_KEY= +POLYGONSCAN_API_KEY= +BSCSCAN_API_KEY= +SNOWTRACE_API_KEY= +CELOSCAN_API_KEY= +MOONSCAN_MOONBEAM_API_KEY= +MOONSCAN_MOONRIVER_API_KEY= +BOBASCAN_API_KEY= +GNOSISSCAN_API_KEY= +OPTIMISMSCAN_API_KEY= +CRONOSCAN_API_KEY= + +# Needed to call create2 APIs, format is: TOKEN1,TOKEN2,... +CREATE2_CLIENT_TOKENS= + +GRAFANA_PATH=/home/gather/staging/data/grafana +GRAFANA_HTTP_USER=xxx +GRAFANA_HTTP_PASS=xxx +GRAFANA_EXTERNAL_PORT=3000 +GRAFANA_LOKI_EXTERNAL_PORT=3100 +GRAFANA_PROMETHEUS_EXTERNAL_PORT=9090 +# Use if you'll have a running Loki instance, otherwise leave blank +# GRAFANA_LOKI_URL=http://localhost:3100 \ No newline at end of file diff --git a/environments/.env.latest b/environments/.env.latest index d6dee480b..f50c69c25 100644 --- a/environments/.env.latest +++ b/environments/.env.latest @@ -1,10 +1,10 @@ # Server config -REPOSITORY_PATH=../../data/repository +SERVER_PORT=80 SOLC_REPO=/home/data/solc-bin/linux-amd64 SOLJSON_REPO=/home/data/solc-bin/soljson -SERVER_PORT=80 SESSION_SECRET=xxx IPFS_GATEWAY=http://ipfs-latest:8080/ipfs/ +REPOSITORY_PATH=../../data/repository # Repository web server config REPOSITORY_SERVER_PORT=80 @@ -53,11 +53,11 @@ IPFS_API_EXTERNAL_PORT=5002 SERVER_URL=https://staging.sourcify.dev/server # Custom nodes -NODE_ADDRESS=http://10.10.42.102 -NODE_PORT_MAINNET=8541 -NODE_PORT_RINKEBY=8544 -NODE_PORT_GOERLI=8545 -NODE_PORT_SEPOLIA=8546 +NODE_URL_MAINNET=https://rpc.mainnet.ethpandaops.io +NODE_URL_GOERLI=https://rpc.goerli.ethpandaops.io +NODE_URL_SEPOLIA=https://rpc.sepolia.ethpandaops.io +CF_ACCESS_CLIENT_ID=xxx +CF_ACCESS_CLIENT_SECRET=xxx # Other config TESTING=false @@ -67,4 +67,27 @@ INFURA_ID=xxx ALCHEMY_ID=xxx ALCHEMY_ID_OPTIMISM=xxx ALCHEMY_ID_ARBITRUM=xxx -ETHERSCAN_API_KEY=xxx \ No newline at end of file + +# Etherscan API keys +ETHERSCAN_API_KEY=xxx +ARBISCAN_API_KEY=xxx +POLYGONSCAN_API_KEY=xxx +BSCSCAN_API_KEY=xxx +SNOWTRACE_API_KEY=xxx +CELOSCAN_API_KEY=xxx +MOONSCAN_MOONBEAM_API_KEY=xxx +MOONSCAN_MOONRIVER_API_KEY=xxx +BOBASCAN_API_KEY=xxx +GNOSISSCAN_API_KEY=xxx +OPTIMISMSCAN_API_KEY=xxx +CRONOSCAN_API_KEY=xxx + +CREATE2_CLIENT_TOKENS=xxx + +GRAFANA_PATH=/home/gather/staging/data/grafana +GRAFANA_HTTP_USER=xxx +GRAFANA_HTTP_PASS=xxx +GRAFANA_EXTERNAL_PORT=13000 +GRAFANA_LOKI_EXTERNAL_PORT=13100 +GRAFANA_PROMETHEUS_EXTERNAL_PORT=9090 +GRAFANA_LOKI_URL=http://grafana-loki-latest:3100 \ No newline at end of file diff --git a/environments/.env.secrets.gpg b/environments/.env.secrets.gpg index 7d3b40e7b..8d3c645df 100644 Binary files a/environments/.env.secrets.gpg and b/environments/.env.secrets.gpg differ diff --git a/environments/.env.stable b/environments/.env.stable index 9e7f2c6de..8019a3f8b 100644 --- a/environments/.env.stable +++ b/environments/.env.stable @@ -50,11 +50,11 @@ IPFS_API_EXTERNAL_PORT=5003 SERVER_URL=https://sourcify.dev/server # Custom nodes -NODE_ADDRESS=http://10.10.42.102 -NODE_PORT_MAINNET=8541 -NODE_PORT_RINKEBY=8544 -NODE_PORT_GOERLI=8545 -NODE_PORT_SEPOLIA=8546 +NODE_URL_MAINNET=https://rpc.mainnet.ethpandaops.io +NODE_URL_GOERLI=https://rpc.goerli.ethpandaops.io +NODE_URL_SEPOLIA=https://rpc.sepolia.ethpandaops.io +CF_ACCESS_CLIENT_ID=xxx +CF_ACCESS_CLIENT_SECRET=xxx # Other config TESTING=false @@ -64,4 +64,27 @@ INFURA_ID=xxx ALCHEMY_ID=xxx ALCHEMY_ID_OPTIMISM=xxx ALCHEMY_ID_ARBITRUM=xxx -ETHERSCAN_API_KEY=xxx \ No newline at end of file + +# Etherscan API keys +ETHERSCAN_API_KEY=xxx +ARBISCAN_API_KEY=xxx +POLYGONSCAN_API_KEY=xxx +BSCSCAN_API_KEY=xxx +SNOWTRACE_API_KEY=xxx +CELOSCAN_API_KEY=xxx +MOONSCAN_MOONBEAM_API_KEY=xxx +MOONSCAN_MOONRIVER_API_KEY=xxx +BOBASCAN_API_KEY=xxx +GNOSISSCAN_API_KEY=xxx +OPTIMISMSCAN_API_KEY=xxx +CRONOSCAN_API_KEY=xxx + +CREATE2_CLIENT_TOKENS=xxx + +GRAFANA_PATH=/home/sourcify/production/data/grafana +GRAFANA_HTTP_USER=xxx +GRAFANA_HTTP_PASS=xxx +GRAFANA_EXTERNAL_PORT=13000 +GRAFANA_LOKI_EXTERNAL_PORT=13100 +GRAFANA_PROMETHEUS_EXTERNAL_PORT=9090 +GRAFANA_LOKI_URL=http://grafana-loki-stable:3100 \ No newline at end of file diff --git a/environments/grafana.yaml b/environments/grafana.yaml new file mode 100644 index 000000000..27e72e957 --- /dev/null +++ b/environments/grafana.yaml @@ -0,0 +1,110 @@ +version: "3.7" + +x-project-base: &project-base + env_file: + - .env + restart: always + networks: + - source-verify + +networks: + source-verify: + +volumes: + prometheus-data: + driver: local + loki-data: + driver: local + +services: + loki: + container_name: grafana-loki-${TAG} + image: grafana/loki:2.8.2 + ports: + - "${GRAFANA_LOKI_EXTERNAL_PORT}:3100" + volumes: + - ./loki-config.yaml:/etc/loki/local-config.yaml + - loki-data:/loki/ # Persist loki filesystem storage, outside the sourcify/ folder + command: -config.file=/etc/loki/local-config.yaml + networks: + - source-verify + restart: always + + promtail: + container_name: grafana-promtail-${TAG} + image: grafana/promtail:2.8.2 + volumes: + - /var/log:/var/log + - ./promtail-config.yaml:/etc/promtail/config.yml + command: -config.file=/etc/promtail/config.yml + networks: + - source-verify + restart: always + + grafana: + container_name: grafana-grafana-${TAG} + image: grafana/grafana:9.5.3 + ports: + - "${GRAFANA_EXTERNAL_PORT}:3000" + networks: + - source-verify + volumes: + - type: bind + source: ${GRAFANA_PATH} + target: /var/lib/grafana + environment: + - HTTP_USER="${GRAFANA_HTTP_USER}" + - HTTP_PASS="${GRAFANA_HTTP_PASS}" + restart: always + + prometheus: + image: prom/prometheus:latest + container_name: grafana-prometheus-${TAG} + ports: + - "${GRAFANA_PROMETHEUS_EXTERNAL_PORT}:9090" + volumes: + - /etc/prometheus:/etc/prometheus + - prometheus-data:/prometheus + restart: unless-stopped + command: + - "--config.file=/etc/prometheus/prometheus.yml" + networks: + - source-verify + + cadvisor: + image: gcr.io/cadvisor/cadvisor:v0.47.0 + container_name: grafana-cadvisor-${TAG} + volumes: + - /:/rootfs:ro + - /var/run:/var/run:ro + - /sys:/sys:ro + - /var/lib/docker/:/var/lib/docker:ro + - /dev/disk/:/dev/disk:ro + devices: + - /dev/kmsg + restart: unless-stopped + privileged: true + networks: + - source-verify + + node_exporter: + image: quay.io/prometheus/node-exporter:latest + container_name: grafana-node_exporter-${TAG} + command: + - "--path.rootfs=/host" + pid: host + restart: unless-stopped + volumes: + - "/:/host:ro,rslave" + networks: + - source-verify + + nginx_exporter: + image: nginx/nginx-prometheus-exporter:0.10.0 + container_name: grafana-nginx_exporter-${TAG} + command: + - -nginx.scrape-uri + - https://sourcify.dev/nginx_status + restart: unless-stopped + networks: + - source-verify diff --git a/environments/ipfs.yaml b/environments/ipfs.yaml index 02b3c4ebd..629556a5c 100644 --- a/environments/ipfs.yaml +++ b/environments/ipfs.yaml @@ -26,7 +26,7 @@ services: volumes: - type: bind source: $REPOSITORY_PATH - target: /root/.ipfs/repository + target: /repository - type: bind source: ../services/ipfs/ipfs-${TAG}.key - target: /app/ipfs-${TAG}.key + target: /sourcify/ipfs-${TAG}.key diff --git a/environments/loki-config.yaml b/environments/loki-config.yaml new file mode 100644 index 000000000..c5d1b7f0e --- /dev/null +++ b/environments/loki-config.yaml @@ -0,0 +1,52 @@ +auth_enabled: false + +server: + http_listen_port: 3100 + +common: + path_prefix: /loki + storage: + filesystem: + chunks_directory: /loki/chunks + rules_directory: /loki/rules + replication_factor: 1 + ring: + kvstore: + store: inmemory + +schema_config: + configs: + - from: 2020-10-24 + store: boltdb-shipper + object_store: filesystem + schema: v11 + index: + prefix: index_ + period: 24h + +# Avoid too many outstanding requests https://github.com/grafana/loki/issues/5123 +query_scheduler: + max_outstanding_requests_per_tenant: 4096 +frontend: + max_outstanding_per_tenant: 4096 +query_range: + parallelise_shardable_queries: true +limits_config: + split_queries_by_interval: 15m + max_query_parallelism: 32 + +ruler: + alertmanager_url: http://localhost:9093 + +# By default, Loki will send anonymous, but uniquely-identifiable usage and configuration +# analytics to Grafana Labs. These statistics are sent to https://stats.grafana.org/ +# +# Statistics help us better understand how Loki is used, and they show us performance +# levels for most users. This helps us prioritize features and documentation. +# For more information on what's sent, look at +# https://github.com/grafana/loki/blob/main/pkg/usagestats/stats.go +# Refer to the buildReport method to see what goes into a report. +# +# If you would like to disable reporting, uncomment the following lines: +analytics: + reporting_enabled: false \ No newline at end of file diff --git a/environments/promtail-config.yaml b/environments/promtail-config.yaml new file mode 100644 index 000000000..3ab5f8a73 --- /dev/null +++ b/environments/promtail-config.yaml @@ -0,0 +1,25 @@ +server: + http_listen_port: 9080 + +positions: + filename: /var/log/positions.yaml # default + +clients: + - url: http://loki:3100/loki/api/v1/push + +scrape_configs: +- job_name: system + static_configs: + - targets: + - localhost + labels: + job: varlogs + __path__: /var/log/*log +- job_name: nginx + static_configs: + - targets: + - localhost + labels: + job: nginx + __path__: /var/log/nginx/*log + host: promtail \ No newline at end of file diff --git a/environments/server.yaml b/environments/server.yaml index 25e7030bf..161685645 100644 --- a/environments/server.yaml +++ b/environments/server.yaml @@ -26,11 +26,9 @@ services: - type: bind source: $SOLC_REPO_HOST target: $SOLC_REPO - read_only: true - type: bind source: $SOLJSON_REPO_HOST target: $SOLJSON_REPO - read_only: true healthcheck: test: ["CMD", "curl", "-f", "http://localhost:${SERVER_PORT}/health"] interval: 30s diff --git a/h5ai-nginx b/h5ai-nginx index 90230ef96..35418954f 160000 --- a/h5ai-nginx +++ b/h5ai-nginx @@ -1 +1 @@ -Subproject commit 90230ef963d2a51e473fbbc6fb993b9ad1cb8942 +Subproject commit 35418954f6cd11023a2a644b5fb9db0e5cc7a981 diff --git a/lerna.json b/lerna.json index 55ccd8ed7..387a127c1 100644 --- a/lerna.json +++ b/lerna.json @@ -9,6 +9,6 @@ "npmClientArgs": ["--no-package-lock"] } }, - "packages": [".", "ui", "services/*"], + "packages": [".", "ui", "packages/*"], "version": "0.1.5" } diff --git a/openapi.yaml b/openapi.yaml new file mode 100644 index 000000000..7fc61cb32 --- /dev/null +++ b/openapi.yaml @@ -0,0 +1,58 @@ +openapi: "3.0.0" +info: + version: 1.0.0 + title: Sourcify API + description: API to interact with Sourcify + license: + name: MIT + url: https://github.com/ethereum/sourcify/blob/master/LICENSE +servers: + - url: https://sourcify.dev/server + description: Production server + - url: https://staging.sourcify.dev/server + description: Staging server + - url: http://localhost:5555 + description: Local development server address on default port 5555. +paths: + /session/data: + $ref: "src/server/controllers/verification/session-state/data.session-state.paths.yaml#/paths/~1session~1data" + /session/clear: + $ref: "src/server/controllers/verification/session-state/clear.session-state.paths.yaml#/paths/~1session~1clear" + /session/input-files: + $ref: "src/server/controllers/verification/session-state/input-files.session-state.paths.yaml#/paths/~1session~1input-files" + /session/input-contract: + $ref: "src/server/controllers/verification/session-state/input-contract.session-state.paths.yaml#/paths/~1session~1input-contract" + /verify: + $ref: "src/server/controllers/verification/verify/stateless/verify.stateless.paths.yaml#/paths/~1verify" + /session/verify-checked: + $ref: "src/server/controllers/verification/verify/session/verify.session.paths.yaml#/paths/~1session~1verify-checked" + /verify/solc-json: + $ref: "src/server/controllers/verification/solc-json/stateless/solc-json.stateless.paths.yaml#/paths/~1verify~1solc-json" + /session/input-solc-json: + $ref: "src/server/controllers/verification/solc-json/session/solc-json.session.paths.yaml#/paths/~1session~1input-solc-json" + /verify/create2: + $ref: "src/server/controllers/verification/create2/stateless/create2.stateless.paths.yaml#/paths/~1verify~1create2" + /session/verify/create2: + $ref: "src/server/controllers/verification/create2/session/create2.session.paths.yaml#/paths/~1session~1verify~1create2" + /session/verify/create2/compile: + $ref: "src/server/controllers/verification/create2/session/compile.create2.session.paths.yaml#/paths/~1session~1verify~1create2~1compile" + /verify/etherscan: + $ref: "src/server/controllers/verification/etherscan/stateless/etherscan.stateless.paths.yaml#/paths/~1verify~1etherscan" + /session/verify/etherscan: + $ref: "src/server/controllers/verification/etherscan/session/etherscan.session.paths.yaml#/paths/~1session~1verify~1etherscan" + /check-all-by-addresses: + $ref: "src/server/controllers/repository/check-all-by-addresses.stateless.paths.yaml#/paths/~1check-all-by-addresses" + /check-by-addresses: + $ref: "src/server/controllers/repository/check-by-addresses.stateless.paths.yaml#/paths/~1check-by-addresses" + /files/contracts/{chain}: + $ref: "src/server/controllers/repository/get-contract-addresses-all.stateless.paths.yaml#/paths/~1files~1contracts~1{chain}" + /contracts/{full_match | partial_match}/{chain}/{address}/{filePath}: + $ref: "src/server/controllers/repository/get-file-static.stateless.paths.yaml#/paths/~1contracts~1{full_match | partial_match}~1{chain}~1{address}~1{filePath}" + /files/tree/any/{chain}/{address}: + $ref: "src/server/controllers/repository/get-file-tree-all.stateless.paths.yaml#/paths/~1files~1tree~1any~1{chain}~1{address}" + /files/tree/{chain}/{address}: + $ref: "src/server/controllers/repository/get-file-tree-full.stateless.paths.yaml#/paths/~1files~1tree~1{chain}~1{address}" + /files/any/{chain}/{address}: + $ref: "src/server/controllers/repository/get-source-files-all.stateless.paths.yaml#/paths/~1files~1any~1{chain}~1{address}" + /files/{chain}/{address}: + $ref: "src/server/controllers/repository/get-source-files-full.stateless.paths.yaml#/paths/~1files~1{chain}~1{address}" diff --git a/package-lock.json b/package-lock.json index 72ae3520b..b89a664f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,85 +9,131 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "@ethereum-sourcify/core": "*", - "@ethereum-sourcify/validation": "*", - "@ethereum-sourcify/verification": "*", + "@ethereum-sourcify/bytecode-utils": "*", + "@ethereum-sourcify/lib-sourcify": "*", "@types/node-fetch": "^2.5.7", + "abitype": "0.8.0", "bunyan": "^1.8.12", "commander": "^9.0.0", "cors": "^2.8.5", + "directory-tree": "^3.5.1", "dotenv": "^8.2.0", - "ethers": "^5.0.14", + "ethers": "^6.6.2", "express": "^4.17.1", - "express-fileupload": "^1.2.0", + "express-fileupload": "^1.4.0", + "express-openapi-validator": "^5.0.4", "express-session": "^1.17.1", - "express-validator": "^6.6.1", "http-status-codes": "^2.1.4", + "ipfs-http-client": "^56.0.3", + "ipfs-http-gateway": "0.9.3", + "json-refs": "^3.0.15", "memorystore": "^1.6.7", - "multihashes": "^3.0.1", "node-fetch": "2.6.6", + "puppeteer": "^20.7.4", "serve-index": "^1.9.1", - "web3": "^1.2.11" + "solc": "^0.8.17", + "swagger-ui-express": "^4.6.3", + "winston": "^3.8.2", + "winston-loki": "^6.0.6", + "yamljs": "^0.3.0" }, "devDependencies": { "@types/bunyan": "^1.8.6", "@types/cors": "^2.8.7", "@types/dotenv": "^8.2.0", "@types/express": "^4.17.13", - "@types/express-fileupload": "^1.1.4", "@types/express-session": "^1.17.3", "@types/node": "^16.11.36", "@types/rimraf": "^3.0.2", "@types/serve-index": "^1.7.30", + "@types/swagger-ui-express": "^4.1.3", + "@types/yamljs": "^0.2.31", "@typescript-eslint/eslint-plugin": "^5.7.0", "@typescript-eslint/parser": "^5.7.0", + "c8": "^8.0.0", "chai": "^4.2.0", "chai-http": "^4.3.0", + "codecov": "^3.8.3", "eslint": "^8.5.0", "eslint-config-prettier": "^8.5.0", "ganache": "^7.0.2", "ipfs-core": "^0.12.2", - "ipfs-unixfs": "^1.0.0", "ipld-dag-pb": "^0.18.2", "lerna": "^3.22.1", "mocha": "^7.0.0", "mochawesome": "^7.1.2", + "npm-run-all": "^4.1.5", + "open-cli": "^7.1.0", + "prettier": "^2.7.1", "rimraf": "^3.0.2", "ts-node": "^9.0.0", - "typescript": "^4.0.5", + "typescript": "^4.9.3", "typestrict": "^1.0.2" } }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.9.2", + "license": "MIT" + }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "9.1.2", + "license": "MIT", + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.6", + "call-me-maybe": "^1.0.1", + "js-yaml": "^4.1.0" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser/node_modules/argparse": { + "version": "2.0.1", + "license": "Python-2.0" + }, + "node_modules/@apidevtools/json-schema-ref-parser/node_modules/js-yaml": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/@assemblyscript/loader": { "version": "0.9.4", "dev": true, "license": "Apache-2.0" }, "node_modules/@babel/code-frame": { - "version": "7.16.7", - "dev": true, + "version": "7.22.5", "license": "MIT", "dependencies": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "dev": true, + "version": "7.22.5", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.17.12", - "dev": true, + "version": "7.22.5", "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.22.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -95,100 +141,79 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/@chainsafe/libp2p-noise": { + "version": "4.1.2", "dev": true, "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "@stablelib/chacha20poly1305": "^1.0.1", + "@stablelib/hkdf": "^1.0.1", + "@stablelib/sha256": "^1.0.1", + "@stablelib/x25519": "^1.0.1", + "debug": "^4.3.1", + "it-buffer": "^0.1.3", + "it-length-prefixed": "^5.0.3", + "it-pair": "^1.0.0", + "it-pb-rpc": "^0.1.11", + "it-pipe": "^1.1.0", + "libp2p-crypto": "^0.19.7", + "peer-id": "^0.15.3", + "protobufjs": "^6.11.2", + "uint8arrays": "^3.0.0" } }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, + "node_modules/@colors/colors": { + "version": "1.5.0", "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=0.1.90" } }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" } }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@chainsafe/libp2p-noise": { - "version": "4.1.2", + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", "dev": true, "license": "MIT", - "dependencies": { - "@stablelib/chacha20poly1305": "^1.0.1", - "@stablelib/hkdf": "^1.0.1", - "@stablelib/sha256": "^1.0.1", - "@stablelib/x25519": "^1.0.1", - "debug": "^4.3.1", - "it-buffer": "^0.1.3", - "it-length-prefixed": "^5.0.3", - "it-pair": "^1.0.0", - "it-pb-rpc": "^0.1.11", - "it-pipe": "^1.1.0", - "libp2p-crypto": "^0.19.7", - "peer-id": "^0.15.3", - "protobufjs": "^6.11.2", - "uint8arrays": "^3.0.0" + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "1.2.3", + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.9.0", + "espree": "^9.6.0", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -197,815 +222,472 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@ethereum-sourcify/core": { - "resolved": "services/core", - "link": true + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/js": { + "version": "8.44.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } }, - "node_modules/@ethereum-sourcify/validation": { - "resolved": "services/validation", + "node_modules/@ethereum-sourcify/bytecode-utils": { + "resolved": "packages/bytecode-utils", "link": true }, - "node_modules/@ethereum-sourcify/verification": { - "resolved": "services/verification", + "node_modules/@ethereum-sourcify/lib-sourcify": { + "resolved": "packages/lib-sourcify", "link": true }, - "node_modules/@ethereumjs/common": { - "version": "2.6.4", - "license": "MIT", + "node_modules/@evocateur/libnpmaccess": { + "version": "3.1.2", + "dev": true, + "license": "ISC", "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" + "@evocateur/npm-registry-fetch": "^4.0.0", + "aproba": "^2.0.0", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "npm-package-arg": "^6.1.0" } }, - "node_modules/@ethereumjs/tx": { - "version": "3.5.1", - "license": "MPL-2.0", + "node_modules/@evocateur/libnpmpublish": { + "version": "1.2.2", + "dev": true, + "license": "ISC", "dependencies": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" + "@evocateur/npm-registry-fetch": "^4.0.0", + "aproba": "^2.0.0", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "lodash.clonedeep": "^4.5.0", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "semver": "^5.5.1", + "ssri": "^6.0.1" } }, - "node_modules/@ethersproject/abi": { - "version": "5.6.2", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@evocateur/libnpmpublish/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@evocateur/npm-registry-fetch": { + "version": "4.0.0", + "dev": true, + "license": "ISC", "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "JSONStream": "^1.3.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.1.2" } }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@evocateur/pacote": { + "version": "9.6.5", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" + "@evocateur/npm-registry-fetch": "^4.0.0", + "bluebird": "^3.5.3", + "cacache": "^12.0.3", + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.5.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.4.4", + "npm-pick-manifest": "^3.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.3", + "safe-buffer": "^5.2.0", + "semver": "^5.7.0", + "ssri": "^6.0.1", + "tar": "^4.4.10", + "unique-filename": "^1.1.1", + "which": "^1.3.1" } }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@evocateur/pacote/node_modules/mkdirp": { + "version": "0.5.6", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, - "node_modules/@ethersproject/address": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@evocateur/pacote/node_modules/rimraf": { + "version": "2.7.1", + "dev": true, + "license": "ISC", "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" } }, - "node_modules/@ethersproject/base64": { - "version": "5.6.0", + "node_modules/@evocateur/pacote/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, "funding": [ { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + "type": "github", + "url": "https://github.com/sponsors/feross" }, { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" } ], - "license": "MIT", + "license": "MIT" + }, + "node_modules/@evocateur/pacote/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@evocateur/pacote/node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", "dependencies": { - "@ethersproject/bytes": "^5.6.0" + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "node_modules/@ethersproject/basex": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/accept": { + "version": "5.0.2", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/properties": "^5.6.0" + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" } }, - "node_modules/@ethersproject/bignumber": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/ammo": { + "version": "5.0.1", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" + "@hapi/hoek": "9.x.x" } }, - "node_modules/@ethersproject/bytes": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/b64": { + "version": "5.0.0", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/logger": "^5.6.0" + "@hapi/hoek": "9.x.x" } }, - "node_modules/@ethersproject/constants": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/boom": { + "version": "9.1.4", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/bignumber": "^5.6.0" + "@hapi/hoek": "9.x.x" } }, - "node_modules/@ethersproject/contracts": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/bounce": { + "version": "2.0.0", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/abi": "^5.6.0", - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0" + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" } }, - "node_modules/@ethersproject/hash": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/bourne": { + "version": "2.1.0", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/call": { + "version": "8.0.1", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" } }, - "node_modules/@ethersproject/hdnode": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/catbox": { + "version": "11.1.1", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/basex": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/pbkdf2": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/sha2": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0", - "@ethersproject/strings": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/wordlists": "^5.6.0" + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x", + "@hapi/podium": "4.x.x", + "@hapi/validate": "1.x.x" } }, - "node_modules/@ethersproject/json-wallets": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/catbox-memory": { + "version": "5.0.1", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/hdnode": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/pbkdf2": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.0", - "@ethersproject/strings": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" } }, - "node_modules/@ethersproject/keccak256": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/content": { + "version": "5.0.2", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" + "@hapi/boom": "9.x.x" } }, - "node_modules/@ethersproject/logger": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT" + "node_modules/@hapi/cryptiles": { + "version": "5.1.0", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/boom": "9.x.x" + }, + "engines": { + "node": ">=12.0.0" + } }, - "node_modules/@ethersproject/networks": { - "version": "5.6.2", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/file": { + "version": "2.0.0", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/hapi": { + "version": "20.3.0", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/logger": "^5.6.0" + "@hapi/accept": "^5.0.1", + "@hapi/ammo": "^5.0.1", + "@hapi/boom": "^9.1.0", + "@hapi/bounce": "^2.0.0", + "@hapi/call": "^8.0.0", + "@hapi/catbox": "^11.1.1", + "@hapi/catbox-memory": "^5.0.0", + "@hapi/heavy": "^7.0.1", + "@hapi/hoek": "^9.0.4", + "@hapi/mimos": "^6.0.0", + "@hapi/podium": "^4.1.1", + "@hapi/shot": "^5.0.5", + "@hapi/somever": "^3.0.0", + "@hapi/statehood": "^7.0.3", + "@hapi/subtext": "^7.1.0", + "@hapi/teamwork": "^5.1.0", + "@hapi/topo": "^5.0.0", + "@hapi/validate": "^1.1.1" + }, + "engines": { + "node": ">=12.0.0" } }, - "node_modules/@ethersproject/pbkdf2": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/heavy": { + "version": "7.0.1", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/sha2": "^5.6.0" + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x", + "@hapi/validate": "1.x.x" } }, - "node_modules/@ethersproject/properties": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/iron": { + "version": "6.0.0", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/logger": "^5.6.0" + "@hapi/b64": "5.x.x", + "@hapi/boom": "9.x.x", + "@hapi/bourne": "2.x.x", + "@hapi/cryptiles": "5.x.x", + "@hapi/hoek": "9.x.x" } }, - "node_modules/@ethersproject/providers": { - "version": "5.6.6", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/mimos": { + "version": "6.0.0", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/basex": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/sha2": "^5.6.0", - "@ethersproject/strings": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0", - "bech32": "1.1.4", - "ws": "7.4.6" + "@hapi/hoek": "9.x.x", + "mime-db": "1.x.x" } }, - "node_modules/@ethersproject/random": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/rlp": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/sha2": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/nigel": { + "version": "4.0.2", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "hash.js": "1.1.7" + "@hapi/hoek": "^9.0.4", + "@hapi/vise": "^4.0.0" + }, + "engines": { + "node": ">=12.0.0" } }, - "node_modules/@ethersproject/signing-key": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/pez": { + "version": "5.1.0", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" + "@hapi/b64": "5.x.x", + "@hapi/boom": "9.x.x", + "@hapi/content": "^5.0.2", + "@hapi/hoek": "9.x.x", + "@hapi/nigel": "4.x.x" } }, - "node_modules/@ethersproject/solidity": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/podium": { + "version": "4.1.3", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/sha2": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "@hapi/hoek": "9.x.x", + "@hapi/teamwork": "5.x.x", + "@hapi/validate": "1.x.x" } }, - "node_modules/@ethersproject/strings": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/shot": { + "version": "5.0.5", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" + "@hapi/hoek": "9.x.x", + "@hapi/validate": "1.x.x" } }, - "node_modules/@ethersproject/transactions": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/somever": { + "version": "3.0.1", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" + "@hapi/bounce": "2.x.x", + "@hapi/hoek": "9.x.x" } }, - "node_modules/@ethersproject/units": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/statehood": { + "version": "7.0.4", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" + "@hapi/boom": "9.x.x", + "@hapi/bounce": "2.x.x", + "@hapi/bourne": "2.x.x", + "@hapi/cryptiles": "5.x.x", + "@hapi/hoek": "9.x.x", + "@hapi/iron": "6.x.x", + "@hapi/validate": "1.x.x" } }, - "node_modules/@ethersproject/wallet": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/hdnode": "^5.6.0", - "@ethersproject/json-wallets": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/wordlists": "^5.6.0" - } - }, - "node_modules/@ethersproject/web": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "node_modules/@hapi/subtext": { + "version": "7.1.0", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "@hapi/boom": "9.x.x", + "@hapi/bourne": "2.x.x", + "@hapi/content": "^5.0.2", + "@hapi/file": "2.x.x", + "@hapi/hoek": "9.x.x", + "@hapi/pez": "^5.1.0", + "@hapi/wreck": "17.x.x" } }, - "node_modules/@ethersproject/wordlists": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "node_modules/@hapi/teamwork": { + "version": "5.1.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12.0.0" } }, - "node_modules/@evocateur/libnpmaccess": { - "version": "3.1.2", - "dev": true, - "license": "ISC", + "node_modules/@hapi/topo": { + "version": "5.1.0", + "license": "BSD-3-Clause", "dependencies": { - "@evocateur/npm-registry-fetch": "^4.0.0", - "aproba": "^2.0.0", - "figgy-pudding": "^3.5.1", - "get-stream": "^4.0.0", - "npm-package-arg": "^6.1.0" + "@hapi/hoek": "^9.0.0" } }, - "node_modules/@evocateur/libnpmpublish": { - "version": "1.2.2", - "dev": true, - "license": "ISC", + "node_modules/@hapi/validate": { + "version": "1.1.3", + "license": "BSD-3-Clause", "dependencies": { - "@evocateur/npm-registry-fetch": "^4.0.0", - "aproba": "^2.0.0", - "figgy-pudding": "^3.5.1", - "get-stream": "^4.0.0", - "lodash.clonedeep": "^4.5.0", - "normalize-package-data": "^2.4.0", - "npm-package-arg": "^6.1.0", - "semver": "^5.5.1", - "ssri": "^6.0.1" + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0" } }, - "node_modules/@evocateur/libnpmpublish/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@evocateur/npm-registry-fetch": { + "node_modules/@hapi/vise": { "version": "4.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "bluebird": "^3.5.1", - "figgy-pudding": "^3.4.1", - "JSONStream": "^1.3.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "npm-package-arg": "^6.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/@evocateur/pacote": { - "version": "9.6.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@evocateur/npm-registry-fetch": "^4.0.0", - "bluebird": "^3.5.3", - "cacache": "^12.0.3", - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "get-stream": "^4.1.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "minimatch": "^3.0.4", - "minipass": "^2.3.5", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "normalize-package-data": "^2.5.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.4.4", - "npm-pick-manifest": "^3.0.0", - "osenv": "^0.1.5", - "promise-inflight": "^1.0.1", - "promise-retry": "^1.1.1", - "protoduck": "^5.0.1", - "rimraf": "^2.6.3", - "safe-buffer": "^5.2.0", - "semver": "^5.7.0", - "ssri": "^6.0.1", - "tar": "^4.4.10", - "unique-filename": "^1.1.1", - "which": "^1.3.1" - } - }, - "node_modules/@evocateur/pacote/node_modules/mkdirp": { - "version": "0.5.6", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/@evocateur/pacote/node_modules/rimraf": { - "version": "2.7.1", - "dev": true, - "license": "ISC", + "license": "BSD-3-Clause", "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/@evocateur/pacote/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "@hapi/hoek": "9.x.x" } }, - "node_modules/@evocateur/pacote/node_modules/which": { - "version": "1.3.1", - "dev": true, - "license": "ISC", + "node_modules/@hapi/wreck": { + "version": "17.2.0", + "license": "BSD-3-Clause", "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "@hapi/boom": "9.x.x", + "@hapi/bourne": "2.x.x", + "@hapi/hoek": "9.x.x" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", + "version": "0.11.10", "dev": true, "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", "dev": true, @@ -1022,7 +704,7 @@ } }, "node_modules/@ipld/car/node_modules/@ipld/dag-cbor": { - "version": "7.0.1", + "version": "7.0.3", "dev": true, "license": "(Apache-2.0 AND MIT)", "dependencies": { @@ -1032,7 +714,14 @@ }, "node_modules/@ipld/dag-cbor": { "version": "6.0.15", - "dev": true, + "license": "(Apache-2.0 AND MIT)", + "dependencies": { + "cborg": "^1.5.4", + "multiformats": "^9.5.4" + } + }, + "node_modules/@ipld/dag-json": { + "version": "8.0.11", "license": "(Apache-2.0 AND MIT)", "dependencies": { "cborg": "^1.5.4", @@ -1040,13 +729,46 @@ } }, "node_modules/@ipld/dag-pb": { - "version": "2.1.16", - "dev": true, + "version": "2.1.18", "license": "(Apache-2.0 AND MIT)", "dependencies": { "multiformats": "^9.5.4" } }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "license": "MIT" + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.4", "dev": true, @@ -1073,7 +795,7 @@ } }, "node_modules/@lerna/add/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true, "license": "ISC", "bin": { @@ -1114,7 +836,7 @@ } }, "node_modules/@lerna/bootstrap/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true, "license": "ISC", "bin": { @@ -1161,178 +883,188 @@ "node": ">= 6.9.0" } }, - "node_modules/@lerna/child-process/node_modules/ansi-styles": { - "version": "3.2.1", + "node_modules/@lerna/clean": { + "version": "3.21.0", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "@lerna/command": "3.21.0", + "@lerna/filter-options": "3.20.0", + "@lerna/prompt": "3.18.5", + "@lerna/pulse-till-done": "3.13.0", + "@lerna/rimraf-dir": "3.16.5", + "p-map": "^2.1.0", + "p-map-series": "^1.0.0", + "p-waterfall": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">= 6.9.0" } }, - "node_modules/@lerna/child-process/node_modules/chalk": { - "version": "2.4.2", + "node_modules/@lerna/cli": { + "version": "3.18.5", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@lerna/global-options": "3.13.0", + "dedent": "^0.7.0", + "npmlog": "^4.1.2", + "yargs": "^14.2.2" }, "engines": { - "node": ">=4" + "node": ">= 6.9.0" } }, - "node_modules/@lerna/child-process/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/@lerna/cli/node_modules/ansi-regex": { + "version": "4.1.1", "dev": true, "license": "MIT", - "dependencies": { - "color-name": "1.1.3" + "engines": { + "node": ">=6" } }, - "node_modules/@lerna/child-process/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@lerna/child-process/node_modules/escape-string-regexp": { - "version": "1.0.5", + "node_modules/@lerna/cli/node_modules/cliui": { + "version": "5.0.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" + "license": "ISC", + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, - "node_modules/@lerna/child-process/node_modules/has-flag": { + "node_modules/@lerna/cli/node_modules/find-up": { "version": "3.0.0", "dev": true, "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/@lerna/child-process/node_modules/supports-color": { - "version": "5.5.0", + "node_modules/@lerna/cli/node_modules/locate-path": { + "version": "3.0.0", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/@lerna/clean": { - "version": "3.21.0", + "node_modules/@lerna/cli/node_modules/p-limit": { + "version": "2.3.0", "dev": true, "license": "MIT", "dependencies": { - "@lerna/command": "3.21.0", - "@lerna/filter-options": "3.20.0", - "@lerna/prompt": "3.18.5", - "@lerna/pulse-till-done": "3.13.0", - "@lerna/rimraf-dir": "3.16.5", - "p-map": "^2.1.0", - "p-map-series": "^1.0.0", - "p-waterfall": "^1.0.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">= 6.9.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@lerna/cli": { - "version": "3.18.5", + "node_modules/@lerna/cli/node_modules/p-locate": { + "version": "3.0.0", "dev": true, "license": "MIT", "dependencies": { - "@lerna/global-options": "3.13.0", - "dedent": "^0.7.0", - "npmlog": "^4.1.2", - "yargs": "^14.2.2" + "p-limit": "^2.0.0" }, "engines": { - "node": ">= 6.9.0" + "node": ">=6" } }, - "node_modules/@lerna/collect-uncommitted": { - "version": "3.16.5", + "node_modules/@lerna/cli/node_modules/path-exists": { + "version": "3.0.0", "dev": true, "license": "MIT", - "dependencies": { - "@lerna/child-process": "3.16.5", - "chalk": "^2.3.1", - "figgy-pudding": "^3.5.1", - "npmlog": "^4.1.2" - }, "engines": { - "node": ">= 6.9.0" + "node": ">=4" } }, - "node_modules/@lerna/collect-uncommitted/node_modules/ansi-styles": { - "version": "3.2.1", + "node_modules/@lerna/cli/node_modules/string-width": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/@lerna/collect-uncommitted/node_modules/chalk": { - "version": "2.4.2", + "node_modules/@lerna/cli/node_modules/strip-ansi": { + "version": "5.2.0", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-regex": "^4.1.0" }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/@lerna/collect-uncommitted/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/@lerna/cli/node_modules/wrap-ansi": { + "version": "5.1.0", "dev": true, "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/@lerna/collect-uncommitted/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@lerna/collect-uncommitted/node_modules/escape-string-regexp": { - "version": "1.0.5", + "node_modules/@lerna/cli/node_modules/yargs": { + "version": "14.2.3", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.8.0" + "dependencies": { + "cliui": "^5.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^15.0.1" } }, - "node_modules/@lerna/collect-uncommitted/node_modules/has-flag": { - "version": "3.0.0", + "node_modules/@lerna/cli/node_modules/yargs-parser": { + "version": "15.0.3", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, - "node_modules/@lerna/collect-uncommitted/node_modules/supports-color": { - "version": "5.5.0", + "node_modules/@lerna/collect-uncommitted": { + "version": "3.16.5", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "@lerna/child-process": "3.16.5", + "chalk": "^2.3.1", + "figgy-pudding": "^3.5.1", + "npmlog": "^4.1.2" }, "engines": { - "node": ">=4" + "node": ">= 6.9.0" } }, "node_modules/@lerna/collect-updates": { @@ -1400,7 +1132,7 @@ } }, "node_modules/@lerna/conventional-commits/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true, "license": "ISC", "bin": { @@ -1456,6 +1188,15 @@ "node": ">= 6" } }, + "node_modules/@lerna/create/node_modules/@types/glob": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "node_modules/@lerna/create/node_modules/array-union": { "version": "1.0.2", "dev": true, @@ -1674,7 +1415,7 @@ } }, "node_modules/@lerna/create/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true, "license": "ISC", "bin": { @@ -1842,7 +1583,7 @@ } }, "node_modules/@lerna/has-npm-version/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true, "license": "ISC", "bin": { @@ -1945,70 +1686,6 @@ "node": ">= 6.9.0" } }, - "node_modules/@lerna/listable/node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@lerna/listable/node_modules/chalk": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@lerna/listable/node_modules/color-convert": { - "version": "1.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@lerna/listable/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@lerna/listable/node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@lerna/listable/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@lerna/listable/node_modules/supports-color": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@lerna/log-packed": { "version": "3.16.0", "dev": true, @@ -2166,7 +1843,7 @@ } }, "node_modules/@lerna/package-graph/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true, "license": "ISC", "bin": { @@ -2185,7 +1862,7 @@ } }, "node_modules/@lerna/prerelease-id-from-version/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true, "license": "ISC", "bin": { @@ -2236,6 +1913,15 @@ "node": ">= 6" } }, + "node_modules/@lerna/project/node_modules/@types/glob": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "node_modules/@lerna/project/node_modules/array-union": { "version": "1.0.2", "dev": true, @@ -2537,7 +2223,7 @@ } }, "node_modules/@lerna/publish/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true, "license": "ISC", "bin": { @@ -2594,6 +2280,14 @@ "node": ">= 6.9.0" } }, + "node_modules/@lerna/rimraf-dir/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/@lerna/rimraf-dir/node_modules/rimraf": { "version": "2.7.1", "dev": true, @@ -2753,61 +2447,8 @@ "node": ">= 6.9.0" } }, - "node_modules/@lerna/version/node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@lerna/version/node_modules/chalk": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@lerna/version/node_modules/color-convert": { - "version": "1.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@lerna/version/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@lerna/version/node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@lerna/version/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/@lerna/version/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true, "license": "ISC", "bin": { @@ -2822,17 +2463,6 @@ "node": ">=6" } }, - "node_modules/@lerna/version/node_modules/supports-color": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@lerna/write-log-file": { "version": "3.13.0", "dev": true, @@ -2846,21 +2476,59 @@ } }, "node_modules/@motrix/nat-api": { - "version": "0.3.2", + "version": "0.3.4", "dev": true, "license": "MIT", "dependencies": { - "async": "^3.2.0", - "debug": "^4.3.1", + "async": "^3.2.4", + "debug": "^4.3.4", "default-gateway": "^6.0.3", - "request": "^2.88.2", + "node-fetch": "^2.6.9", "unordered-array-remove": "^1.0.2", - "xml2js": "^0.4.23" + "xml2js": "^0.5.0" }, "engines": { "node": ">=10.0.0" } }, + "node_modules/@motrix/nat-api/node_modules/node-fetch": { + "version": "2.6.12", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@motrix/nat-api/node_modules/tr46": { + "version": "0.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@motrix/nat-api/node_modules/webidl-conversions": { + "version": "3.0.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/@motrix/nat-api/node_modules/whatwg-url": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/@mrmlnc/readdir-enhanced": { "version": "2.2.1", "dev": true, @@ -2873,10 +2541,6 @@ "node": ">=4" } }, - "node_modules/@multiformats/base-x": { - "version": "4.0.1", - "license": "MIT" - }, "node_modules/@multiformats/murmur3": { "version": "1.1.3", "dev": true, @@ -2886,8 +2550,22 @@ "murmurhash3js-revisited": "^3.0.0" } }, + "node_modules/@napi-rs/snappy-darwin-arm64": { + "version": "7.1.1", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@noble/ed25519": { - "version": "1.6.0", + "version": "1.7.3", "dev": true, "funding": [ { @@ -2898,8 +2576,7 @@ "license": "MIT" }, "node_modules/@noble/secp256k1": { - "version": "1.5.5", - "dev": true, + "version": "1.7.1", "funding": [ { "type": "individual", @@ -2949,29 +2626,89 @@ } }, "node_modules/@octokit/core": { - "version": "3.6.0", + "version": "5.0.0", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.0.0", + "@octokit/request": "^8.0.2", + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^11.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/core/node_modules/@octokit/auth-token": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/core/node_modules/@octokit/endpoint": { + "version": "9.0.0", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@octokit/types": "^11.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/core/node_modules/@octokit/openapi-types": { + "version": "18.0.0", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@octokit/core/node_modules/@octokit/request": { + "version": "8.0.4", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@octokit/endpoint": "^9.0.0", + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^11.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" } }, "node_modules/@octokit/core/node_modules/@octokit/request-error": { - "version": "2.1.0", + "version": "5.0.0", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@octokit/types": "^6.0.3", + "@octokit/types": "^11.0.0", "deprecation": "^2.0.0", "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/core/node_modules/@octokit/types": { + "version": "11.1.0", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@octokit/openapi-types": "^18.0.0" } }, "node_modules/@octokit/core/node_modules/universal-user-agent": { @@ -2996,14 +2733,76 @@ "license": "ISC" }, "node_modules/@octokit/graphql": { - "version": "4.8.0", + "version": "7.0.1", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", + "@octokit/request": "^8.0.1", + "@octokit/types": "^11.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/graphql/node_modules/@octokit/endpoint": { + "version": "9.0.0", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@octokit/types": "^11.0.0", + "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/graphql/node_modules/@octokit/openapi-types": { + "version": "18.0.0", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@octokit/graphql/node_modules/@octokit/request": { + "version": "8.0.4", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@octokit/endpoint": "^9.0.0", + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^11.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/graphql/node_modules/@octokit/request-error": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@octokit/types": "^11.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/graphql/node_modules/@octokit/types": { + "version": "11.1.0", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@octokit/openapi-types": "^18.0.0" } }, "node_modules/@octokit/graphql/node_modules/universal-user-agent": { @@ -3013,7 +2812,7 @@ "peer": true }, "node_modules/@octokit/openapi-types": { - "version": "11.2.0", + "version": "12.11.0", "dev": true, "license": "MIT" }, @@ -3105,7 +2904,7 @@ } }, "node_modules/@octokit/request/node_modules/node-fetch": { - "version": "2.6.7", + "version": "2.6.12", "dev": true, "license": "MIT", "dependencies": { @@ -3171,36 +2970,31 @@ } }, "node_modules/@octokit/types": { - "version": "6.34.0", + "version": "6.41.0", "dev": true, "license": "MIT", "dependencies": { - "@octokit/openapi-types": "^11.2.0" + "@octokit/openapi-types": "^12.11.0" } }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.1", @@ -3209,36 +3003,131 @@ }, "node_modules/@protobufjs/float": { "version": "1.0.2", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/@protobufjs/path": { "version": "1.1.2", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", - "dev": true, "license": "BSD-3-Clause" }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", + "node_modules/@puppeteer/browsers": { + "version": "1.4.3", + "license": "Apache-2.0", + "dependencies": { + "debug": "4.3.4", + "extract-zip": "2.0.1", + "progress": "2.0.3", + "proxy-agent": "6.2.1", + "tar-fs": "3.0.3", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.1" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=16.3.0" + }, + "peerDependencies": { + "typescript": ">= 4.7.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@puppeteer/browsers/node_modules/cliui": { + "version": "8.0.1", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@puppeteer/browsers/node_modules/emoji-regex": { + "version": "8.0.0", + "license": "MIT" + }, + "node_modules/@puppeteer/browsers/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", "license": "MIT", "engines": { - "node": ">=6" + "node": ">=8" } }, + "node_modules/@puppeteer/browsers/node_modules/string-width": { + "version": "4.2.3", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@puppeteer/browsers/node_modules/y18n": { + "version": "5.0.8", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/@puppeteer/browsers/node_modules/yargs": { + "version": "17.7.1", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@puppeteer/browsers/node_modules/yargs-parser": { + "version": "21.1.1", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@sideway/address": { + "version": "4.1.4", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "license": "BSD-3-Clause" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "license": "BSD-3-Clause" + }, "node_modules/@socket.io/component-emitter": { "version": "3.1.0", "dev": true, @@ -3337,7 +3226,7 @@ } }, "node_modules/@stablelib/random": { - "version": "1.0.1", + "version": "1.0.2", "dev": true, "license": "MIT", "dependencies": { @@ -3361,35 +3250,29 @@ "license": "MIT" }, "node_modules/@stablelib/x25519": { - "version": "1.0.2", + "version": "1.0.3", "dev": true, "license": "MIT", "dependencies": { "@stablelib/keyagreement": "^1.0.1", - "@stablelib/random": "^1.0.1", + "@stablelib/random": "^1.0.2", "@stablelib/wipe": "^1.0.1" } }, - "node_modules/@szmarczak/http-timer": { + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "license": "MIT" + }, + "node_modules/@tootallnate/once": { "version": "1.1.2", + "dev": true, "license": "MIT", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, "engines": { - "node": ">=6" - } - }, - "node_modules/@types/bn.js": { - "version": "4.11.6", - "license": "MIT", - "dependencies": { - "@types/node": "*" + "node": ">= 6" } }, "node_modules/@types/body-parser": { "version": "1.19.2", - "dev": true, "license": "MIT", "dependencies": { "@types/connect": "*", @@ -3404,22 +3287,13 @@ "@types/node": "*" } }, - "node_modules/@types/busboy": { - "version": "0.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/chai": { - "version": "4.3.1", + "version": "4.3.5", "dev": true, "license": "MIT" }, "node_modules/@types/connect": { "version": "3.4.35", - "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" @@ -3431,12 +3305,15 @@ "license": "MIT" }, "node_modules/@types/cors": { - "version": "2.8.12", + "version": "2.8.13", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@types/node": "*" + } }, "node_modules/@types/debug": { - "version": "4.1.7", + "version": "4.1.8", "dev": true, "license": "MIT", "dependencies": { @@ -3452,37 +3329,27 @@ } }, "node_modules/@types/express": { - "version": "4.17.13", - "dev": true, + "version": "4.17.17", "license": "MIT", "dependencies": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", + "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, - "node_modules/@types/express-fileupload": { - "version": "1.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/busboy": "^0", - "@types/express": "*" - } - }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.28", - "dev": true, + "version": "4.17.35", "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", - "@types/range-parser": "*" + "@types/range-parser": "*", + "@types/send": "*" } }, "node_modules/@types/express-session": { - "version": "1.17.4", + "version": "1.17.7", "dev": true, "license": "MIT", "dependencies": { @@ -3490,31 +3357,37 @@ } }, "node_modules/@types/glob": { - "version": "7.2.0", + "version": "8.1.0", "dev": true, "license": "MIT", "dependencies": { - "@types/minimatch": "*", + "@types/minimatch": "^5.1.2", "@types/node": "*" } }, - "node_modules/@types/json-schema": { - "version": "7.0.11", + "node_modules/@types/http-errors": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", "dev": true, "license": "MIT" }, + "node_modules/@types/json-schema": { + "version": "7.0.12", + "license": "MIT" + }, "node_modules/@types/long": { "version": "4.0.2", - "dev": true, "license": "MIT" }, "node_modules/@types/mime": { "version": "1.3.2", - "dev": true, "license": "MIT" }, "node_modules/@types/minimatch": { - "version": "3.0.5", + "version": "5.1.2", "dev": true, "license": "MIT" }, @@ -3528,12 +3401,19 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/multer": { + "version": "1.4.7", + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, "node_modules/@types/node": { - "version": "16.11.36", + "version": "16.18.38", "license": "MIT" }, "node_modules/@types/node-fetch": { - "version": "2.6.1", + "version": "2.6.4", "license": "MIT", "dependencies": { "@types/node": "*", @@ -3545,21 +3425,12 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/qs": { "version": "6.9.7", - "dev": true, "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.4", - "dev": true, "license": "MIT" }, "node_modules/@types/retry": { @@ -3576,19 +3447,19 @@ "@types/node": "*" } }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", + "node_modules/@types/semver": { + "version": "7.5.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "0.17.1", "license": "MIT", "dependencies": { + "@types/mime": "^1", "@types/node": "*" } }, - "node_modules/@types/semver": { - "version": "7.3.12", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz", - "integrity": "sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==", - "dev": true - }, "node_modules/@types/serve-index": { "version": "1.9.1", "dev": true, @@ -3598,16 +3469,16 @@ } }, "node_modules/@types/serve-static": { - "version": "1.13.10", - "dev": true, + "version": "1.15.2", "license": "MIT", "dependencies": { - "@types/mime": "^1", + "@types/http-errors": "*", + "@types/mime": "*", "@types/node": "*" } }, "node_modules/@types/superagent": { - "version": "3.8.7", + "version": "4.1.13", "dev": true, "license": "MIT", "dependencies": { @@ -3615,18 +3486,45 @@ "@types/node": "*" } }, + "node_modules/@types/swagger-ui-express": { + "version": "4.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/triple-beam": { + "version": "1.3.2", + "license": "MIT" + }, + "node_modules/@types/yamljs": { + "version": "0.2.31", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.25.0", + "version": "5.62.0", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "5.25.0", - "@typescript-eslint/type-utils": "5.25.0", - "@typescript-eslint/utils": "5.25.0", + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "regexpp": "^3.2.0", + "natural-compare-lite": "^1.4.0", "semver": "^7.3.7", "tsutils": "^3.21.0" }, @@ -3648,13 +3546,13 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.25.0", + "version": "5.62.0", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "5.25.0", - "@typescript-eslint/types": "5.25.0", - "@typescript-eslint/typescript-estree": "5.25.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", "debug": "^4.3.4" }, "engines": { @@ -3674,12 +3572,12 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.25.0", + "version": "5.62.0", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.25.0", - "@typescript-eslint/visitor-keys": "5.25.0" + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3690,11 +3588,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.25.0", + "version": "5.62.0", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "5.25.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -3715,7 +3614,7 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.25.0", + "version": "5.62.0", "dev": true, "license": "MIT", "engines": { @@ -3727,12 +3626,12 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.25.0", + "version": "5.62.0", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "5.25.0", - "@typescript-eslint/visitor-keys": "5.25.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -3753,16 +3652,18 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.25.0", + "version": "5.62.0", "dev": true, "license": "MIT", "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.25.0", - "@typescript-eslint/types": "5.25.0", - "@typescript-eslint/typescript-estree": "5.25.0", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "semver": "^7.3.7" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3776,11 +3677,11 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.25.0", + "version": "5.62.0", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.25.0", + "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -3809,16 +3710,24 @@ "node": ">=6" } }, - "node_modules/@zxing/text-encoding": { - "version": "0.9.0", - "license": "(Unlicense OR Apache-2.0)", - "optional": true - }, "node_modules/abbrev": { "version": "1.1.1", "dev": true, "license": "ISC" }, + "node_modules/abitype": { + "version": "0.8.0", + "license": "MIT", + "peerDependencies": { + "typescript": ">=4.9.4", + "zod": "^3 >=3.19.1" + }, + "peerDependenciesMeta": { + "zod": { + "optional": true + } + } + }, "node_modules/abort-controller": { "version": "3.0.0", "dev": true, @@ -3854,6 +3763,18 @@ "node": ">=10" } }, + "node_modules/abstract-leveldown/node_modules/level-supports": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/abstract-logging": { + "version": "2.0.1", + "license": "MIT" + }, "node_modules/accepts": { "version": "1.3.8", "license": "MIT", @@ -3866,8 +3787,7 @@ } }, "node_modules/acorn": { - "version": "8.7.1", - "dev": true, + "version": "8.10.0", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -3884,8 +3804,15 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/aes-js": { - "version": "3.0.0", + "version": "4.0.0-beta.5", "license": "MIT" }, "node_modules/agent-base": { @@ -3932,6 +3859,7 @@ }, "node_modules/ajv": { "version": "6.12.6", + "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -3944,6 +3872,39 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "license": "MIT" + }, "node_modules/ansi-colors": { "version": "3.2.3", "dev": true, @@ -3962,24 +3923,19 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, + "version": "3.2.1", "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, "node_modules/any-promise": { @@ -3997,7 +3953,7 @@ } }, "node_modules/anymatch": { - "version": "3.1.2", + "version": "3.1.3", "dev": true, "license": "ISC", "dependencies": { @@ -4008,6 +3964,10 @@ "node": ">= 8" } }, + "node_modules/append-field": { + "version": "1.0.0", + "license": "MIT" + }, "node_modules/aproba": { "version": "2.0.0", "dev": true, @@ -4022,8 +3982,13 @@ "readable-stream": "^2.0.6" } }, + "node_modules/are-we-there-yet/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "license": "MIT", "dependencies": { @@ -4036,11 +4001,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/are-we-there-yet/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, "node_modules/are-we-there-yet/node_modules/string_decoder": { "version": "1.1.1", "dev": true, @@ -4055,9 +4015,38 @@ "license": "MIT" }, "node_modules/argparse": { - "version": "2.0.1", + "version": "1.0.10", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/args": { + "version": "5.0.3", + "license": "MIT", + "dependencies": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/args/node_modules/camelcase": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/argv": { + "version": "0.0.2", "dev": true, - "license": "Python-2.0" + "engines": { + "node": ">=0.6.10" + } }, "node_modules/arr-diff": { "version": "4.0.0", @@ -4083,6 +4072,25 @@ "node": ">=0.10.0" } }, + "node_modules/array-back": { + "version": "3.1.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-differ": { "version": "2.1.0", "dev": true, @@ -4143,6 +4151,24 @@ "node": ">=0.10.0" } }, + "node_modules/array.prototype.reduce": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/arrify": { "version": "1.0.1", "dev": true, @@ -4153,11 +4179,11 @@ }, "node_modules/asap": { "version": "2.0.6", - "dev": true, "license": "MIT" }, "node_modules/asn1": { "version": "0.2.6", + "dev": true, "license": "MIT", "dependencies": { "safer-buffer": "~2.1.0" @@ -4165,6 +4191,7 @@ }, "node_modules/asn1.js": { "version": "5.4.1", + "dev": true, "license": "MIT", "dependencies": { "bn.js": "^4.0.0", @@ -4173,8 +4200,14 @@ "safer-buffer": "^2.1.0" } }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "dev": true, + "license": "MIT" + }, "node_modules/assert-plus": { "version": "1.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=0.8" @@ -4196,14 +4229,26 @@ "node": ">=0.10.0" } }, + "node_modules/ast-types": { + "version": "0.13.4", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/async": { - "version": "3.2.3", - "dev": true, + "version": "3.2.4", "license": "MIT" }, - "node_modules/async-limiter": { - "version": "1.0.1", - "license": "MIT" + "node_modules/async-exit-hook": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } }, "node_modules/asynckit": { "version": "0.4.0", @@ -4225,8 +4270,16 @@ "dev": true, "license": "MIT" }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/available-typed-arrays": { "version": "1.0.5", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4237,18 +4290,23 @@ }, "node_modules/aws-sign2": { "version": "0.7.0", + "dev": true, "license": "Apache-2.0", "engines": { "node": "*" } }, "node_modules/aws4": { - "version": "1.11.0", + "version": "1.12.0", + "dev": true, "license": "MIT" }, + "node_modules/b4a": { + "version": "1.6.4", + "license": "ISC" + }, "node_modules/balanced-match": { "version": "1.0.2", - "devOptional": true, "license": "MIT" }, "node_modules/base": { @@ -4268,13 +4326,6 @@ "node": ">=0.10.0" } }, - "node_modules/base-x": { - "version": "3.0.9", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, "node_modules/base/node_modules/define-property": { "version": "1.0.0", "dev": true, @@ -4304,28 +4355,41 @@ ], "license": "MIT" }, + "node_modules/basic-ftp": { + "version": "5.0.3", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/batch": { "version": "0.6.1", "license": "MIT" }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "tweetnacl": "^0.14.3" } }, - "node_modules/bech32": { - "version": "1.1.4", - "license": "MIT" - }, "node_modules/before-after-hook": { - "version": "2.2.2", + "version": "2.2.3", "dev": true, "license": "Apache-2.0" }, + "node_modules/big-integer": { + "version": "1.6.51", + "dev": true, + "license": "Unlicense", + "engines": { + "node": ">=0.6" + } + }, "node_modules/bignumber.js": { - "version": "9.0.2", + "version": "9.1.1", + "dev": true, "license": "MIT", "engines": { "node": "*" @@ -4348,8 +4412,7 @@ } }, "node_modules/bl": { - "version": "5.0.0", - "dev": true, + "version": "5.1.0", "license": "MIT", "dependencies": { "buffer": "^6.0.3", @@ -4359,11 +4422,11 @@ }, "node_modules/blakejs": { "version": "1.2.1", + "dev": true, "license": "MIT" }, "node_modules/blob-to-it": { "version": "1.0.4", - "dev": true, "license": "ISC", "dependencies": { "browser-readablestream-to-it": "^1.0.3" @@ -4400,14 +4463,11 @@ }, "node_modules/bluebird": { "version": "3.7.2", - "license": "MIT" - }, - "node_modules/bn.js": { - "version": "4.12.0", + "dev": true, "license": "MIT" }, "node_modules/body-parser": { - "version": "1.20.0", + "version": "1.20.1", "license": "MIT", "dependencies": { "bytes": "3.1.2", @@ -4418,7 +4478,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.10.3", + "qs": "6.11.0", "raw-body": "2.5.1", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -4439,9 +4499,32 @@ "version": "2.0.0", "license": "MIT" }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", - "devOptional": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -4461,11 +4544,11 @@ }, "node_modules/brorand": { "version": "1.1.0", + "dev": true, "license": "MIT" }, "node_modules/browser-readablestream-to-it": { "version": "1.0.3", - "dev": true, "license": "ISC" }, "node_modules/browser-stdout": { @@ -4473,82 +4556,14 @@ "dev": true, "license": "ISC" }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "license": "MIT", - "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/browserify-cipher": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-rsa/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "license": "ISC", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "node_modules/bs58": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bs58check": { - "version": "2.1.2", - "license": "MIT", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "node_modules/btoa": { + "version": "1.2.1", + "license": "(MIT OR Apache-2.0)", + "bin": { + "btoa": "bin/btoa.js" + }, + "engines": { + "node": ">= 0.4.0" } }, "node_modules/btoa-lite": { @@ -4558,7 +4573,6 @@ }, "node_modules/buffer": { "version": "6.0.3", - "dev": true, "funding": [ { "type": "github", @@ -4579,23 +4593,22 @@ "ieee754": "^1.2.1" } }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/buffer-from": { "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "license": "MIT" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", "license": "MIT" }, "node_modules/bufferutil": { - "version": "4.0.6", + "version": "4.0.7", "hasInstallScript": true, "license": "MIT", + "optional": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -4617,6 +4630,20 @@ "dev": true, "license": "MIT" }, + "node_modules/bundle-name": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/bunyan": { "version": "1.8.15", "engines": [ @@ -4634,12 +4661,12 @@ } }, "node_modules/busboy": { - "version": "0.3.1", + "version": "1.6.0", "dependencies": { - "dicer": "0.3.0" + "streamsearch": "^1.1.0" }, "engines": { - "node": ">=4.5.0" + "node": ">=10.16.0" } }, "node_modules/byline": { @@ -4665,6 +4692,31 @@ "node": ">= 0.8" } }, + "node_modules/c8": { + "version": "8.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/cacache": { "version": "12.0.4", "dev": true, @@ -4728,53 +4780,6 @@ "node": ">=0.10.0" } }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/http-cache-semantics": { - "version": "4.1.0", - "license": "BSD-2-Clause" - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/normalize-url": { - "version": "4.5.1", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/call-bind": { "version": "1.0.2", "license": "MIT", @@ -4787,8 +4792,7 @@ } }, "node_modules/call-me-maybe": { - "version": "1.0.1", - "dev": true, + "version": "1.0.2", "license": "MIT" }, "node_modules/caller-callsite": { @@ -4823,7 +4827,6 @@ }, "node_modules/callsites": { "version": "3.1.0", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -4855,6 +4858,7 @@ }, "node_modules/caseless": { "version": "0.12.0", + "dev": true, "license": "Apache-2.0" }, "node_modules/catering": { @@ -4866,21 +4870,20 @@ } }, "node_modules/cborg": { - "version": "1.9.2", - "dev": true, + "version": "1.10.2", "license": "Apache-2.0", "bin": { "cborg": "cli.js" } }, "node_modules/chai": { - "version": "4.3.6", + "version": "4.3.7", "dev": true, "license": "MIT", "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", - "deep-eql": "^3.0.1", + "deep-eql": "^4.1.2", "get-func-name": "^2.0.0", "loupe": "^2.3.1", "pathval": "^1.1.1", @@ -4891,35 +4894,33 @@ } }, "node_modules/chai-http": { - "version": "4.3.0", + "version": "4.4.0", "dev": true, "license": "MIT", "dependencies": { "@types/chai": "4", - "@types/superagent": "^3.8.3", - "cookiejar": "^2.1.1", + "@types/superagent": "4.1.13", + "charset": "^1.0.1", + "cookiejar": "^2.1.4", "is-ip": "^2.0.0", "methods": "^1.1.2", - "qs": "^6.5.1", - "superagent": "^3.7.0" + "qs": "^6.11.2", + "superagent": "^8.0.9" }, "engines": { - "node": ">=4" + "node": ">=10" } }, "node_modules/chalk": { - "version": "4.1.2", - "dev": true, + "version": "2.4.2", "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4" } }, "node_modules/chardet": { @@ -4927,6 +4928,14 @@ "dev": true, "license": "MIT" }, + "node_modules/charset": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/check-error": { "version": "1.0.2", "dev": true, @@ -4968,8 +4977,19 @@ }, "node_modules/chownr": { "version": "1.1.4", + "dev": true, "license": "ISC" }, + "node_modules/chromium-bidi": { + "version": "0.4.16", + "license": "Apache-2.0", + "dependencies": { + "mitt": "3.0.0" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, "node_modules/ci-info": { "version": "2.0.0", "dev": true, @@ -5014,35 +5034,9 @@ "ieee754": "^1.1.13" } }, - "node_modules/cids/node_modules/multihashes": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^5.6.0", - "multibase": "^1.0.1", - "varint": "^5.0.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/cids/node_modules/varint": { - "version": "5.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, "node_modules/class-is": { "version": "1.1.0", + "dev": true, "license": "MIT" }, "node_modules/class-utils": { @@ -5165,45 +5159,39 @@ "license": "ISC" }, "node_modules/cliui": { - "version": "5.0.0", + "version": "7.0.4", "dev": true, "license": "ISC", "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.1", + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } + "license": "MIT" }, - "node_modules/cliui/node_modules/string-width": { - "version": "3.1.0", + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", "dev": true, "license": "MIT", - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "5.2.0", + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^4.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/clone": { @@ -5238,13 +5226,6 @@ "node": ">=0.10.0" } }, - "node_modules/clone-response": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, "node_modules/code-point-at": { "version": "1.1.0", "dev": true, @@ -5253,6 +5234,24 @@ "node": ">=0.10.0" } }, + "node_modules/codecov": { + "version": "3.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + }, + "bin": { + "codecov": "bin/codecov" + }, + "engines": { + "node": ">=4.0" + } + }, "node_modules/collection-visit": { "version": "1.0.0", "dev": true, @@ -5265,22 +5264,41 @@ "node": ">=0.10.0" } }, + "node_modules/color": { + "version": "3.2.1", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, "node_modules/color-convert": { - "version": "2.0.1", - "dev": true, + "version": "1.9.3", "license": "MIT", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "color-name": "1.1.3" } }, "node_modules/color-name": { - "version": "1.1.4", - "dev": true, + "version": "1.1.3", "license": "MIT" }, + "node_modules/color-string": { + "version": "1.9.1", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorspace": { + "version": "1.1.4", + "license": "MIT", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, "node_modules/columnify": { "version": "1.6.0", "dev": true, @@ -5303,8 +5321,52 @@ "node": ">= 0.8" } }, + "node_modules/command-exists": { + "version": "1.2.9", + "license": "MIT" + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "license": "MIT", + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "6.1.3", + "license": "MIT", + "dependencies": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/commander": { - "version": "9.2.0", + "version": "9.5.0", "license": "MIT", "engines": { "node": "^12.20.0 || >=14" @@ -5340,12 +5402,10 @@ }, "node_modules/component-emitter": { "version": "1.3.0", - "dev": true, "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", - "devOptional": true, "license": "MIT" }, "node_modules/concat-stream": { @@ -5386,17 +5446,8 @@ "node": ">= 0.6" } }, - "node_modules/content-hash": { - "version": "2.5.2", - "license": "ISC", - "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "node_modules/content-hash/node_modules/buffer": { - "version": "5.7.1", + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", "funding": [ { "type": "github", @@ -5411,73 +5462,10 @@ "url": "https://feross.org/support" } ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/content-hash/node_modules/cids": { - "version": "0.7.5", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/content-hash/node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "node_modules/content-hash/node_modules/multibase": { - "version": "0.6.1", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/content-hash/node_modules/multicodec": { - "version": "0.5.7", - "license": "MIT", - "dependencies": { - "varint": "^5.0.0" - } - }, - "node_modules/content-hash/node_modules/multihashes": { - "version": "0.4.21", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "node_modules/content-hash/node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/content-hash/node_modules/varint": { - "version": "5.0.2", "license": "MIT" }, "node_modules/content-type": { - "version": "1.0.4", + "version": "1.0.5", "license": "MIT", "engines": { "node": ">= 0.6" @@ -5550,7 +5538,7 @@ } }, "node_modules/conventional-changelog-writer/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true, "license": "ISC", "bin": { @@ -5737,6 +5725,11 @@ "node": ">=4" } }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "dev": true, + "license": "MIT" + }, "node_modules/cookie": { "version": "0.5.0", "license": "MIT", @@ -5749,7 +5742,7 @@ "license": "MIT" }, "node_modules/cookiejar": { - "version": "2.1.3", + "version": "2.1.4", "license": "MIT" }, "node_modules/copy-concurrently": { @@ -5829,14 +5822,6 @@ "node": ">=4" } }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, "node_modules/cosmiconfig/node_modules/import-fresh": { "version": "2.0.0", "dev": true, @@ -5849,18 +5834,6 @@ "node": ">=4" } }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "3.14.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/cosmiconfig/node_modules/resolve-from": { "version": "3.0.0", "dev": true, @@ -5869,57 +5842,52 @@ "node": ">=4" } }, - "node_modules/cosmiconfig/node_modules/sprintf-js": { - "version": "1.0.3", + "node_modules/create-require": { + "version": "1.1.1", "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/crc-32": { - "version": "1.2.2", - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } + "license": "MIT" }, - "node_modules/create-ecdh": { - "version": "4.0.4", + "node_modules/cross-fetch": { + "version": "4.0.0", "license": "MIT", "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" + "node-fetch": "^2.6.12" } }, - "node_modules/create-hash": { - "version": "1.2.0", + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.6.12", "license": "MIT", "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/create-hmac": { - "version": "1.1.7", + "node_modules/cross-fetch/node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/cross-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/cross-fetch/node_modules/whatwg-url": { + "version": "5.0.0", "license": "MIT", "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" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "node_modules/create-require": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, "node_modules/cross-spawn": { "version": "7.0.3", "dev": true, @@ -5933,24 +5901,29 @@ "node": ">= 8" } }, - "node_modules/crypto-browserify": { - "version": "3.12.0", + "node_modules/crypto-random-string": { + "version": "4.0.0", + "dev": true, "license": "MIT", "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "type-fest": "^1.0.1" }, "engines": { - "node": "*" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/currently-unhandled": { @@ -5965,16 +5938,16 @@ } }, "node_modules/cyclist": { - "version": "1.0.1", + "version": "1.0.2", "dev": true, "license": "MIT" }, - "node_modules/d": { - "version": "1.0.1", - "license": "ISC", + "node_modules/dag-jose": { + "version": "1.0.0", + "license": "(Apache-2.0 OR MIT)", "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "@ipld/dag-cbor": "^6.0.3", + "multiformats": "^9.0.2" } }, "node_modules/dargs": { @@ -5990,6 +5963,7 @@ }, "node_modules/dashdash": { "version": "1.14.1", + "dev": true, "license": "MIT", "dependencies": { "assert-plus": "^1.0.0" @@ -5998,6 +5972,13 @@ "node": ">=0.10" } }, + "node_modules/data-uri-to-buffer": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/datastore-core": { "version": "6.0.7", "dev": true, @@ -6047,6 +6028,23 @@ "level": "^7.0.0" } }, + "node_modules/datastore-level/node_modules/level": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "level-js": "^6.1.0", + "level-packager": "^6.0.1", + "leveldown": "^6.1.0" + }, + "engines": { + "node": ">=10.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/level" + } + }, "node_modules/datastore-pubsub": { "version": "1.0.0", "dev": true, @@ -6099,7 +6097,7 @@ } }, "node_modules/decamelize-keys": { - "version": "1.1.0", + "version": "1.1.1", "dev": true, "license": "MIT", "dependencies": { @@ -6108,6 +6106,9 @@ }, "engines": { "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/decamelize-keys/node_modules/map-obj": { @@ -6119,43 +6120,166 @@ } }, "node_modules/decode-uri-component": { - "version": "0.2.0", + "version": "0.2.2", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10" } }, - "node_modules/decompress-response": { - "version": "3.3.0", - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/dedent": { "version": "0.7.0", "dev": true, "license": "MIT" }, "node_modules/deep-eql": { - "version": "3.0.1", + "version": "4.1.3", "dev": true, "license": "MIT", "dependencies": { "type-detect": "^4.0.0" }, "engines": { - "node": ">=0.12" + "node": ">=6" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "license": "MIT", + "engines": { + "node": ">=4.0.0" } }, "node_modules/deep-is": { "version": "0.1.4", - "dev": true, "license": "MIT" }, + "node_modules/default-browser": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/execa": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-browser/node_modules/get-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/is-stream": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/mimic-fn": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/npm-run-path": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/onetime": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/path-key": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/default-gateway": { "version": "6.0.3", "dev": true, @@ -6200,6 +6324,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/default-gateway/node_modules/human-signals": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/default-gateway/node_modules/is-stream": { "version": "2.0.1", "dev": true, @@ -6244,18 +6376,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/default-gateway/node_modules/strip-final-newline": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/defaults": { - "version": "1.0.3", + "version": "1.0.4", "dev": true, "license": "MIT", "dependencies": { "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "license": "MIT" - }, "node_modules/deferred-leveldown": { "version": "7.0.0", "dev": true, @@ -6268,8 +6407,20 @@ "node": ">=10" } }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/define-properties": { - "version": "1.1.4", + "version": "1.2.0", + "dev": true, "license": "MIT", "dependencies": { "has-property-descriptors": "^1.0.0", @@ -6294,6 +6445,19 @@ "node": ">=0.10.0" } }, + "node_modules/degenerator": { + "version": "4.0.4", + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^1.14.3", + "esprima": "^4.0.1", + "vm2": "^3.9.19" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "license": "MIT", @@ -6326,14 +6490,6 @@ "dev": true, "license": "ISC" }, - "node_modules/des.js": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, "node_modules/destroy": { "version": "1.2.0", "license": "MIT", @@ -6350,24 +6506,18 @@ "node": ">=4" } }, + "node_modules/devtools-protocol": { + "version": "0.0.1135028", + "license": "BSD-3-Clause" + }, "node_modules/dezalgo": { "version": "1.0.4", - "dev": true, "license": "ISC", "dependencies": { "asap": "^2.0.0", "wrappy": "1" } }, - "node_modules/dicer": { - "version": "0.3.0", - "dependencies": { - "streamsearch": "0.1.2" - }, - "engines": { - "node": ">=4.5.0" - } - }, "node_modules/diff": { "version": "3.5.0", "dev": true, @@ -6376,15 +6526,6 @@ "node": ">=0.3.1" } }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, "node_modules/dir-glob": { "version": "3.0.1", "dev": true, @@ -6396,6 +6537,20 @@ "node": ">=8" } }, + "node_modules/directory-tree": { + "version": "3.5.1", + "license": "MIT", + "dependencies": { + "command-line-args": "^5.2.0", + "command-line-usage": "^6.1.1" + }, + "bin": { + "directory-tree": "bin/index.js" + }, + "engines": { + "node": ">=10.0" + } + }, "node_modules/dlv": { "version": "1.1.3", "dev": true, @@ -6403,7 +6558,6 @@ }, "node_modules/dns-over-http-resolver": { "version": "1.2.3", - "dev": true, "license": "MIT", "dependencies": { "debug": "^4.3.1", @@ -6412,7 +6566,7 @@ } }, "node_modules/dns-packet": { - "version": "5.3.1", + "version": "5.6.0", "dev": true, "license": "MIT", "dependencies": { @@ -6433,9 +6587,6 @@ "node": ">=6.0.0" } }, - "node_modules/dom-walk": { - "version": "0.1.2" - }, "node_modules/dot-prop": { "version": "4.2.1", "dev": true, @@ -6471,10 +6622,6 @@ "dev": true, "license": "MIT" }, - "node_modules/duplexer3": { - "version": "0.1.4", - "license": "BSD-3-Clause" - }, "node_modules/duplexify": { "version": "3.7.1", "dev": true, @@ -6486,8 +6633,13 @@ "stream-shift": "^1.0.0" } }, + "node_modules/duplexify/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/duplexify/node_modules/readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "license": "MIT", "dependencies": { @@ -6500,11 +6652,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/duplexify/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, "node_modules/duplexify/node_modules/string_decoder": { "version": "1.1.1", "dev": true, @@ -6515,6 +6662,7 @@ }, "node_modules/ecc-jsbn": { "version": "0.1.2", + "dev": true, "license": "MIT", "dependencies": { "jsbn": "~0.1.0", @@ -6523,15 +6671,28 @@ }, "node_modules/ecc-jsbn/node_modules/jsbn": { "version": "0.1.1", + "dev": true, "license": "MIT" }, "node_modules/ee-first": { "version": "1.1.1", "license": "MIT" }, + "node_modules/ejs": { + "version": "3.1.9", + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/electron-fetch": { - "version": "1.7.4", - "dev": true, + "version": "1.9.1", "license": "MIT", "dependencies": { "encoding": "^0.1.13" @@ -6542,6 +6703,7 @@ }, "node_modules/elliptic": { "version": "6.5.4", + "dev": true, "license": "MIT", "dependencies": { "bn.js": "^4.11.9", @@ -6553,11 +6715,20 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "dev": true, + "license": "MIT" + }, "node_modules/emoji-regex": { "version": "7.0.3", "dev": true, "license": "MIT" }, + "node_modules/enabled": { + "version": "2.0.0", + "license": "MIT" + }, "node_modules/encodeurl": { "version": "1.0.2", "license": "MIT", @@ -6567,7 +6738,6 @@ }, "node_modules/encoding": { "version": "0.1.13", - "devOptional": true, "license": "MIT", "dependencies": { "iconv-lite": "^0.6.2" @@ -6589,7 +6759,6 @@ }, "node_modules/encoding/node_modules/iconv-lite": { "version": "0.6.3", - "devOptional": true, "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -6606,19 +6775,19 @@ } }, "node_modules/engine.io-client": { - "version": "6.2.2", + "version": "6.5.1", "dev": true, "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", - "ws": "~8.2.3", + "engine.io-parser": "~5.1.0", + "ws": "~8.11.0", "xmlhttprequest-ssl": "~2.0.0" } }, "node_modules/engine.io-client/node_modules/ws": { - "version": "8.2.3", + "version": "8.11.0", "dev": true, "license": "MIT", "engines": { @@ -6638,7 +6807,7 @@ } }, "node_modules/engine.io-parser": { - "version": "5.0.4", + "version": "5.1.0", "dev": true, "license": "MIT", "engines": { @@ -6654,7 +6823,7 @@ } }, "node_modules/envinfo": { - "version": "7.8.1", + "version": "7.10.0", "dev": true, "license": "MIT", "bin": { @@ -6666,44 +6835,54 @@ }, "node_modules/err-code": { "version": "3.0.1", - "dev": true, "license": "MIT" }, "node_modules/error-ex": { "version": "1.3.2", - "dev": true, "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/es-abstract": { - "version": "1.20.1", + "version": "1.21.2", + "dev": true, "license": "MIT", "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", + "get-intrinsic": "^1.2.0", "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", + "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" }, "engines": { "node": ">= 0.4" @@ -6713,12 +6892,13 @@ } }, "node_modules/es-abstract/node_modules/object.assign": { - "version": "4.1.2", + "version": "4.1.4", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, "engines": { @@ -6728,8 +6908,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-to-primitive": { "version": "1.2.1", + "dev": true, "license": "MIT", "dependencies": { "is-callable": "^1.1.4", @@ -6743,28 +6942,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es5-ext": { - "version": "0.10.61", - "hasInstallScript": true, - "license": "ISC", - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "license": "MIT", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, "node_modules/es6-promise": { "version": "4.2.8", "dev": true, @@ -6778,17 +6955,8 @@ "node": ">=6" } }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "license": "ISC", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, "node_modules/escalade": { "version": "3.1.1", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -6799,56 +6967,118 @@ "license": "MIT" }, "node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, + "version": "1.0.5", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.14.3", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" } }, "node_modules/eslint": { - "version": "8.15.0", + "version": "8.44.0", "dev": true, "license": "MIT", "dependencies": { - "@eslint/eslintrc": "^1.2.3", - "@humanwhocodes/config-array": "^0.9.2", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.1.0", + "@eslint/js": "8.44.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.6.0", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" @@ -6861,10 +7091,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "version": "8.8.0", "dev": true, + "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -6884,41 +7113,80 @@ "node": ">=8.0.0" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", + "node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^2.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", "dev": true, - "license": "Apache-2.0", + "license": "Python-2.0" + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "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/eslint-visitor-keys": { - "version": "3.3.0", + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", + "version": "7.2.0", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -6927,6 +7195,9 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/estraverse": { @@ -6937,22 +7208,54 @@ "node": ">=4.0" } }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/espree": { - "version": "9.3.2", + "version": "9.6.0", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.7.1", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esprima": { "version": "4.0.1", - "dev": true, "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", @@ -6963,7 +7266,7 @@ } }, "node_modules/esquery": { - "version": "1.4.0", + "version": "1.5.0", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -7002,7 +7305,6 @@ }, "node_modules/estraverse": { "version": "4.3.0", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -7010,7 +7312,6 @@ }, "node_modules/esutils": { "version": "2.0.3", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" @@ -7023,102 +7324,12 @@ "node": ">= 0.6" } }, - "node_modules/eth-ens-namehash": { - "version": "2.0.8", - "license": "ISC", - "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "node_modules/eth-ens-namehash/node_modules/js-sha3": { - "version": "0.5.7", - "license": "MIT" - }, - "node_modules/eth-lib": { - "version": "0.1.29", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/eth-lib/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "node_modules/eth-lib/node_modules/ws": { - "version": "3.3.3", - "license": "MIT", - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "node_modules/ethereum-bloom-filters": { - "version": "1.0.10", - "license": "MIT", - "dependencies": { - "js-sha3": "^0.8.0" - } - }, - "node_modules/ethereum-cryptography": { - "version": "0.1.3", - "license": "MIT", - "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.4", - "license": "MPL-2.0", - "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-util/node_modules/@types/bn.js": { - "version": "5.1.0", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, "node_modules/ethers": { - "version": "5.6.6", + "version": "6.6.2", "funding": [ { "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + "url": "https://github.com/sponsors/ethers-io/" }, { "type": "individual", @@ -7127,54 +7338,51 @@ ], "license": "MIT", "dependencies": { - "@ethersproject/abi": "5.6.2", - "@ethersproject/abstract-provider": "5.6.0", - "@ethersproject/abstract-signer": "5.6.1", - "@ethersproject/address": "5.6.0", - "@ethersproject/base64": "5.6.0", - "@ethersproject/basex": "5.6.0", - "@ethersproject/bignumber": "5.6.1", - "@ethersproject/bytes": "5.6.1", - "@ethersproject/constants": "5.6.0", - "@ethersproject/contracts": "5.6.1", - "@ethersproject/hash": "5.6.0", - "@ethersproject/hdnode": "5.6.1", - "@ethersproject/json-wallets": "5.6.0", - "@ethersproject/keccak256": "5.6.0", - "@ethersproject/logger": "5.6.0", - "@ethersproject/networks": "5.6.2", - "@ethersproject/pbkdf2": "5.6.0", - "@ethersproject/properties": "5.6.0", - "@ethersproject/providers": "5.6.6", - "@ethersproject/random": "5.6.0", - "@ethersproject/rlp": "5.6.0", - "@ethersproject/sha2": "5.6.0", - "@ethersproject/signing-key": "5.6.1", - "@ethersproject/solidity": "5.6.0", - "@ethersproject/strings": "5.6.0", - "@ethersproject/transactions": "5.6.0", - "@ethersproject/units": "5.6.0", - "@ethersproject/wallet": "5.6.1", - "@ethersproject/web": "5.6.0", - "@ethersproject/wordlists": "5.6.0" - } - }, - "node_modules/ethjs-unit": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" + "@adraffy/ens-normalize": "1.9.2", + "@noble/hashes": "1.1.2", + "@noble/secp256k1": "1.7.1", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=14.0.0" } }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", + "node_modules/ethers/node_modules/@noble/hashes": { + "version": "1.1.2", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" + }, + "node_modules/ethers/node_modules/@types/node": { + "version": "18.15.13", "license": "MIT" }, + "node_modules/ethers/node_modules/ws": { + "version": "8.5.0", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/event-iterator": { "version": "2.0.0", "dev": true, @@ -7201,14 +7409,6 @@ "node": ">=0.8.x" } }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "node_modules/execa": { "version": "1.0.0", "dev": true, @@ -7250,7 +7450,7 @@ } }, "node_modules/execa/node_modules/semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true, "license": "ISC", "bin": { @@ -7418,12 +7618,12 @@ "license": "MIT" }, "node_modules/express": { - "version": "4.18.1", + "version": "4.18.2", "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.0", + "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.5.0", @@ -7442,7 +7642,7 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.10.3", + "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.18.0", @@ -7458,15 +7658,69 @@ } }, "node_modules/express-fileupload": { - "version": "1.3.1", + "version": "1.4.0", "license": "MIT", "dependencies": { - "busboy": "^0.3.1" + "busboy": "^1.6.0" }, "engines": { "node": ">=12.0.0" } }, + "node_modules/express-openapi-validator": { + "version": "5.0.4", + "license": "MIT", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "^9.1.2", + "@types/multer": "^1.4.7", + "ajv": "^8.11.2", + "ajv-draft-04": "^1.0.0", + "ajv-formats": "^2.1.1", + "content-type": "^1.0.5", + "lodash.clonedeep": "^4.5.0", + "lodash.get": "^4.4.2", + "lodash.uniq": "^4.5.0", + "lodash.zipobject": "^4.1.3", + "media-typer": "^1.1.0", + "multer": "^1.4.5-lts.1", + "ono": "^7.1.3", + "path-to-regexp": "^6.2.0" + } + }, + "node_modules/express-openapi-validator/node_modules/ajv": { + "version": "8.12.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/express-openapi-validator/node_modules/ajv-draft-04": { + "version": "1.0.0", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/express-openapi-validator/node_modules/json-schema-traverse": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/express-openapi-validator/node_modules/path-to-regexp": { + "version": "6.2.1", + "license": "MIT" + }, "node_modules/express-session": { "version": "1.17.3", "license": "MIT", @@ -7502,16 +7756,23 @@ "version": "2.0.0", "license": "MIT" }, - "node_modules/express-validator": { - "version": "6.14.0", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.21", - "validator": "^13.7.0" - }, - "engines": { - "node": ">= 8.0.0" - } + "node_modules/express-session/node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" }, "node_modules/express/node_modules/debug": { "version": "2.6.9", @@ -7524,19 +7785,40 @@ "version": "2.0.0", "license": "MIT" }, - "node_modules/ext": { - "version": "1.6.0", - "license": "ISC", + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "license": "BSD-3-Clause", "dependencies": { - "type": "^2.5.0" + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ext/node_modules/type": { - "version": "2.6.0", - "license": "ISC" + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" }, "node_modules/extend": { "version": "3.0.2", + "dev": true, "license": "MIT" }, "node_modules/extend-shallow": { @@ -7612,8 +7894,40 @@ "node": ">=0.10.0" } }, + "node_modules/extract-zip": { + "version": "2.0.1", + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/extsprintf": { "version": "1.3.0", + "dev": true, "engines": [ "node >=0.6.0" ], @@ -7624,12 +7938,11 @@ "license": "MIT" }, "node_modules/fast-fifo": { - "version": "1.1.0", - "dev": true, + "version": "1.3.0", "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.2.11", + "version": "3.3.0", "dev": true, "license": "MIT", "dependencies": { @@ -7656,10 +7969,34 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", + "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", + "license": "MIT" + }, + "node_modules/fast-redact": { + "version": "3.2.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "license": "MIT" + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", "dev": true, "license": "MIT" }, @@ -7669,13 +8006,24 @@ "license": "MIT" }, "node_modules/fastq": { - "version": "1.13.0", + "version": "1.15.0", "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fecha": { + "version": "4.2.3", + "license": "MIT" + }, "node_modules/figgy-pudding": { "version": "3.5.2", "dev": true, @@ -7692,14 +8040,6 @@ "node": ">=4" } }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/file-entry-cache": { "version": "6.0.1", "dev": true, @@ -7711,11 +8051,57 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/file-type": { + "version": "16.5.4", + "license": "MIT", + "dependencies": { + "readable-web-to-node-stream": "^3.0.0", + "strtok3": "^6.2.4", + "token-types": "^4.1.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, "node_modules/file-uri-to-path": { "version": "1.0.0", "dev": true, "license": "MIT" }, + "node_modules/filelist": { + "version": "1.0.4", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/fill-range": { "version": "7.0.1", "dev": true, @@ -7762,15 +8148,29 @@ "version": "2.0.0", "license": "MIT" }, - "node_modules/find-up": { + "node_modules/find-replace": { "version": "3.0.0", + "license": "MIT", + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^3.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat": { @@ -7796,8 +8196,12 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/flatstr": { + "version": "1.0.12", + "license": "MIT" + }, "node_modules/flatted": { - "version": "3.2.5", + "version": "3.2.7", "dev": true, "license": "ISC" }, @@ -7810,8 +8214,13 @@ "readable-stream": "^2.3.6" } }, + "node_modules/flush-write-stream/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/flush-write-stream/node_modules/readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "license": "MIT", "dependencies": { @@ -7824,11 +8233,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/flush-write-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, "node_modules/flush-write-stream/node_modules/string_decoder": { "version": "1.1.1", "dev": true, @@ -7837,13 +8241,36 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/fn.name": { + "version": "1.1.0", + "license": "MIT" + }, "node_modules/fnv1a": { "version": "1.1.1", "dev": true, "license": "MIT" }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/for-each": { "version": "0.3.3", + "dev": true, "license": "MIT", "dependencies": { "is-callable": "^1.1.3" @@ -7857,8 +8284,21 @@ "node": ">=0.10.0" } }, + "node_modules/foreground-child": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/forever-agent": { "version": "0.6.1", + "dev": true, "license": "Apache-2.0", "engines": { "node": "*" @@ -7877,9 +8317,14 @@ } }, "node_modules/formidable": { - "version": "1.2.6", - "dev": true, + "version": "2.1.2", "license": "MIT", + "dependencies": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + }, "funding": { "url": "https://ko-fi.com/tunnckoCore/commissions" } @@ -7918,8 +8363,13 @@ "readable-stream": "^2.0.0" } }, + "node_modules/from2/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/from2/node_modules/readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "license": "MIT", "dependencies": { @@ -7932,11 +8382,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/from2/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, "node_modules/from2/node_modules/string_decoder": { "version": "1.1.1", "dev": true, @@ -7947,7 +8392,6 @@ }, "node_modules/fs-extra": { "version": "8.1.0", - "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", @@ -7960,6 +8404,7 @@ }, "node_modules/fs-minipass": { "version": "1.2.7", + "dev": true, "license": "ISC", "dependencies": { "minipass": "^2.6.0" @@ -7976,8 +8421,13 @@ "readable-stream": "1 || 2" } }, + "node_modules/fs-write-stream-atomic/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/fs-write-stream-atomic/node_modules/readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "license": "MIT", "dependencies": { @@ -7990,11 +8440,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/fs-write-stream-atomic/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, "node_modules/fs-write-stream-atomic/node_modules/string_decoder": { "version": "1.1.1", "dev": true, @@ -8005,9 +8450,20 @@ }, "node_modules/fs.realpath": { "version": "1.0.0", - "dev": true, "license": "ISC" }, + "node_modules/fsevents": { + "version": "2.1.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/fsu": { "version": "1.1.1", "dev": true, @@ -8019,6 +8475,7 @@ }, "node_modules/function.prototype.name": { "version": "1.1.5", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -8033,28 +8490,37 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "node_modules/functions-have-names": { "version": "1.2.3", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/ganache": { - "version": "7.1.0", + "version": "7.9.0", + "bundleDependencies": [ + "@trufflesuite/bigint-buffer", + "keccak", + "leveldown", + "secp256k1" + ], "dev": true, "license": "MIT", "dependencies": { - "@trufflesuite/bigint-buffer": "1.1.9", + "@trufflesuite/bigint-buffer": "1.1.10", + "@trufflesuite/uws-js-unofficial": "20.10.0-unofficial.2", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "5.1.1", + "@types/seedrandom": "3.0.1", + "abstract-level": "1.0.3", + "abstract-leveldown": "7.2.0", + "async-eventemitter": "0.2.4", "emittery": "0.10.0", - "keccak": "3.0.1", + "keccak": "3.0.2", "leveldown": "6.1.0", - "secp256k1": "4.0.2" + "secp256k1": "4.0.3" }, "bin": { "ganache": "dist/node/cli.js", @@ -8066,15 +8532,120 @@ } }, "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer": { - "version": "1.1.9", + "version": "1.1.10", "dev": true, "hasInstallScript": true, + "inBundle": true, "license": "Apache-2.0", "dependencies": { - "node-gyp-build": "4.3.0" + "node-gyp-build": "4.4.0" }, "engines": { - "node": ">= 10.0.0" + "node": ">= 14.0.0" + } + }, + "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer/node_modules/node-gyp-build": { + "version": "4.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/ganache/node_modules/@trufflesuite/uws-js-unofficial": { + "version": "20.10.0-unofficial.2", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "ws": "8.2.3" + }, + "optionalDependencies": { + "bufferutil": "4.0.5", + "utf-8-validate": "5.0.7" + } + }, + "node_modules/ganache/node_modules/@types/bn.js": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ganache/node_modules/@types/lru-cache": { + "version": "5.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/@types/node": { + "version": "17.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/@types/seedrandom": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/abstract-level": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/ganache/node_modules/abstract-level/node_modules/level-supports": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/ganache/node_modules/abstract-leveldown": { + "version": "7.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3", + "catering": "^2.0.0", + "is-buffer": "^2.0.5", + "level-concat-iterator": "^3.0.0", + "level-supports": "^2.0.1", + "queue-microtask": "^1.2.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ganache/node_modules/async": { + "version": "2.6.4", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/ganache/node_modules/async-eventemitter": { + "version": "0.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^2.4.0" } }, "node_modules/ganache/node_modules/base64-js": { @@ -8094,16 +8665,13 @@ "url": "https://feross.org/support" } ], - "license": "MIT" - }, - "node_modules/ganache/node_modules/bn.js": { - "version": "4.12.0", - "dev": true, + "inBundle": true, "license": "MIT" }, "node_modules/ganache/node_modules/brorand": { "version": "1.1.0", "dev": true, + "inBundle": true, "license": "MIT" }, "node_modules/ganache/node_modules/buffer": { @@ -8123,6 +8691,7 @@ "url": "https://feross.org/support" } ], + "inBundle": true, "license": "MIT", "dependencies": { "base64-js": "^1.3.1", @@ -8145,6 +8714,7 @@ "node_modules/ganache/node_modules/catering": { "version": "2.1.0", "dev": true, + "inBundle": true, "license": "MIT", "dependencies": { "queue-tick": "^1.0.0" @@ -8156,6 +8726,7 @@ "node_modules/ganache/node_modules/elliptic": { "version": "6.5.4", "dev": true, + "inBundle": true, "license": "MIT", "dependencies": { "bn.js": "^4.11.9", @@ -8167,6 +8738,12 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "node_modules/ganache/node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, "node_modules/ganache/node_modules/emittery": { "version": "0.10.0", "dev": true, @@ -8181,6 +8758,7 @@ "node_modules/ganache/node_modules/hash.js": { "version": "1.1.7", "dev": true, + "inBundle": true, "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -8190,6 +8768,7 @@ "node_modules/ganache/node_modules/hmac-drbg": { "version": "1.0.1", "dev": true, + "inBundle": true, "license": "MIT", "dependencies": { "hash.js": "^1.0.3", @@ -8214,11 +8793,13 @@ "url": "https://feross.org/support" } ], + "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/ganache/node_modules/inherits": { "version": "2.0.4", "dev": true, + "inBundle": true, "license": "ISC" }, "node_modules/ganache/node_modules/is-buffer": { @@ -8238,96 +8819,116 @@ "url": "https://feross.org/support" } ], + "inBundle": true, "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/ganache/node_modules/keccak": { - "version": "3.0.1", + "version": "3.0.2", "dev": true, "hasInstallScript": true, + "inBundle": true, "license": "MIT", "dependencies": { "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" }, "engines": { "node": ">=10.0.0" } }, - "node_modules/ganache/node_modules/leveldown": { - "version": "6.1.0", + "node_modules/ganache/node_modules/level-concat-iterator": { + "version": "3.1.0", "dev": true, - "hasInstallScript": true, + "inBundle": true, "license": "MIT", "dependencies": { - "abstract-leveldown": "^7.2.0", - "napi-macros": "~2.0.0", - "node-gyp-build": "^4.3.0" + "catering": "^2.1.0" }, "engines": { - "node": ">=10.12.0" + "node": ">=10" } }, - "node_modules/ganache/node_modules/leveldown/node_modules/abstract-leveldown": { - "version": "7.2.0", + "node_modules/ganache/node_modules/level-supports": { + "version": "2.1.0", "dev": true, + "inBundle": true, "license": "MIT", - "dependencies": { - "buffer": "^6.0.3", - "catering": "^2.0.0", - "is-buffer": "^2.0.5", - "level-concat-iterator": "^3.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" - }, "engines": { "node": ">=10" } }, - "node_modules/ganache/node_modules/leveldown/node_modules/level-concat-iterator": { - "version": "3.1.0", + "node_modules/ganache/node_modules/level-transcoder": { + "version": "1.0.1", "dev": true, "license": "MIT", "dependencies": { - "catering": "^2.1.0" + "buffer": "^6.0.3", + "module-error": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">=12" } }, - "node_modules/ganache/node_modules/leveldown/node_modules/level-supports": { - "version": "2.1.0", + "node_modules/ganache/node_modules/leveldown": { + "version": "6.1.0", "dev": true, + "hasInstallScript": true, + "inBundle": true, "license": "MIT", + "dependencies": { + "abstract-leveldown": "^7.2.0", + "napi-macros": "~2.0.0", + "node-gyp-build": "^4.3.0" + }, "engines": { - "node": ">=10" + "node": ">=10.12.0" } }, + "node_modules/ganache/node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "license": "MIT" + }, "node_modules/ganache/node_modules/minimalistic-assert": { "version": "1.0.1", "dev": true, + "inBundle": true, "license": "ISC" }, "node_modules/ganache/node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "dev": true, + "inBundle": true, "license": "MIT" }, + "node_modules/ganache/node_modules/module-error": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/ganache/node_modules/napi-macros": { "version": "2.0.0", "dev": true, + "inBundle": true, "license": "MIT" }, "node_modules/ganache/node_modules/node-addon-api": { "version": "2.0.2", "dev": true, + "inBundle": true, "license": "MIT" }, "node_modules/ganache/node_modules/node-gyp-build": { "version": "4.3.0", "dev": true, + "inBundle": true, "license": "MIT", "bin": { "node-gyp-build": "bin.js", @@ -8352,20 +8953,57 @@ "url": "https://feross.org/support" } ], + "inBundle": true, "license": "MIT" }, "node_modules/ganache/node_modules/queue-tick": { "version": "1.0.0", "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/readable-stream": { + "version": "3.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ganache/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, "license": "MIT" }, "node_modules/ganache/node_modules/secp256k1": { - "version": "4.0.2", + "version": "4.0.3", "dev": true, "hasInstallScript": true, + "inBundle": true, "license": "MIT", "dependencies": { - "elliptic": "^6.5.2", + "elliptic": "^6.5.4", "node-addon-api": "^2.0.0", "node-gyp-build": "^4.2.0" }, @@ -8373,6 +9011,15 @@ "node": ">=10.0.0" } }, + "node_modules/ganache/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/ganache/node_modules/utf-8-validate": { "version": "5.0.7", "dev": true, @@ -8386,6 +9033,32 @@ "node": ">=6.14.2" } }, + "node_modules/ganache/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/ws": { + "version": "8.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/gauge": { "version": "2.7.4", "dev": true, @@ -8461,7 +9134,6 @@ }, "node_modules/get-caller-file": { "version": "2.0.5", - "dev": true, "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" @@ -8476,12 +9148,13 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.1", + "version": "1.2.1", "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8489,7 +9162,6 @@ }, "node_modules/get-iterator": { "version": "1.0.2", - "dev": true, "license": "MIT" }, "node_modules/get-pkg-repo": { @@ -8539,6 +9211,14 @@ "node": ">=0.10.0" } }, + "node_modules/get-pkg-repo/node_modules/get-stdin": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/get-pkg-repo/node_modules/indent-string": { "version": "2.1.0", "dev": true, @@ -8550,6 +9230,11 @@ "node": ">=0.10.0" } }, + "node_modules/get-pkg-repo/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/get-pkg-repo/node_modules/load-json-file": { "version": "1.1.0", "dev": true, @@ -8662,7 +9347,7 @@ } }, "node_modules/get-pkg-repo/node_modules/readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "license": "MIT", "dependencies": { @@ -8687,11 +9372,6 @@ "node": ">=0.10.0" } }, - "node_modules/get-pkg-repo/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, "node_modules/get-pkg-repo/node_modules/string_decoder": { "version": "1.1.1", "dev": true, @@ -8751,15 +9431,19 @@ } }, "node_modules/get-stdin": { - "version": "4.0.1", + "version": "9.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/get-stream": { "version": "4.1.0", + "dev": true, "license": "MIT", "dependencies": { "pump": "^3.0.0" @@ -8770,6 +9454,7 @@ }, "node_modules/get-symbol-description": { "version": "1.0.0", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -8782,6 +9467,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-uri": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^5.0.1", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/get-value": { "version": "2.0.6", "dev": true, @@ -8792,6 +9490,7 @@ }, "node_modules/getpass": { "version": "0.1.7", + "dev": true, "license": "MIT", "dependencies": { "assert-plus": "^1.0.0" @@ -8852,6 +9551,11 @@ "node": ">=0.10.0" } }, + "node_modules/git-raw-commits/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/git-raw-commits/node_modules/map-obj": { "version": "2.0.0", "dev": true, @@ -8900,7 +9604,7 @@ } }, "node_modules/git-raw-commits/node_modules/readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "license": "MIT", "dependencies": { @@ -8925,11 +9629,6 @@ "node": ">=4" } }, - "node_modules/git-raw-commits/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, "node_modules/git-raw-commits/node_modules/split2": { "version": "2.2.0", "dev": true, @@ -9103,7 +9802,7 @@ } }, "node_modules/git-semver-tags/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true, "license": "ISC", "bin": { @@ -9153,7 +9852,6 @@ }, "node_modules/glob": { "version": "7.2.3", - "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -9186,16 +9884,8 @@ "dev": true, "license": "BSD" }, - "node_modules/global": { - "version": "4.4.0", - "license": "MIT", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, "node_modules/globals": { - "version": "13.15.0", + "version": "13.20.0", "dev": true, "license": "MIT", "dependencies": { @@ -9208,6 +9898,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globalthis": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { "version": "11.1.0", "dev": true, @@ -9227,37 +9931,33 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/got": { - "version": "9.6.0", + "node_modules/gopd": { + "version": "1.0.1", + "dev": true, "license": "MIT", "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" + "get-intrinsic": "^1.1.3" }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/got/node_modules/p-cancelable": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=6" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/graceful-fs": { - "version": "4.2.10", + "version": "4.2.11", "license": "ISC" }, + "node_modules/graphemer": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/graphlib": { + "version": "2.1.8", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.15" + } + }, "node_modules/growl": { "version": "1.10.5", "dev": true, @@ -9299,8 +9999,19 @@ "uglify-js": "^3.1.4" } }, + "node_modules/hapi-pino": { + "version": "8.5.0", + "license": "MIT", + "dependencies": { + "@hapi/hoek": "^9.0.0", + "abstract-logging": "^2.0.0", + "pino": "^6.0.0", + "pino-pretty": "^4.0.0" + } + }, "node_modules/har-schema": { "version": "2.0.0", + "dev": true, "license": "ISC", "engines": { "node": ">=4" @@ -9308,6 +10019,7 @@ }, "node_modules/har-validator": { "version": "5.1.5", + "dev": true, "license": "MIT", "dependencies": { "ajv": "^6.12.3", @@ -9337,21 +10049,22 @@ }, "node_modules/has-bigints": { "version": "1.0.2", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { - "version": "4.0.0", - "dev": true, + "version": "3.0.0", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/has-property-descriptors": { "version": "1.0.0", + "dev": true, "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.1" @@ -9360,11 +10073,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbol-support-x": { - "version": "1.4.2", + "node_modules/has-proto": { + "version": "1.0.1", "license": "MIT", "engines": { - "node": "*" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-symbols": { @@ -9377,18 +10093,9 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-to-string-tag-x": { - "version": "1.4.1", - "license": "MIT", - "dependencies": { - "has-symbol-support-x": "^1.4.1" - }, - "engines": { - "node": "*" - } - }, "node_modules/has-tostringtag": { "version": "1.0.0", + "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" @@ -9468,20 +10175,9 @@ "node": ">=0.10.0" } }, - "node_modules/hash-base": { - "version": "3.1.0", - "license": "MIT", - "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", + "dev": true, "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -9506,8 +10202,16 @@ "dev": true, "license": "MIT" }, + "node_modules/hexoid": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/hmac-drbg": { "version": "1.0.1", + "dev": true, "license": "MIT", "dependencies": { "hash.js": "^1.0.3", @@ -9520,6 +10224,11 @@ "dev": true, "license": "ISC" }, + "node_modules/html-escaper": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, "node_modules/http-cache-semantics": { "version": "3.8.1", "dev": true, @@ -9539,10 +10248,6 @@ "node": ">= 0.8" } }, - "node_modules/http-https": { - "version": "1.0.0", - "license": "ISC" - }, "node_modules/http-proxy-agent": { "version": "2.1.0", "dev": true, @@ -9570,6 +10275,7 @@ }, "node_modules/http-signature": { "version": "1.2.0", + "dev": true, "license": "MIT", "dependencies": { "assert-plus": "^1.0.0", @@ -9606,11 +10312,11 @@ } }, "node_modules/human-signals": { - "version": "2.1.0", + "version": "4.3.1", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=10.17.0" + "node": ">=14.18.0" } }, "node_modules/humanize-ms": { @@ -9631,23 +10337,6 @@ "node": ">=0.10.0" } }, - "node_modules/idna-uts46-hx": { - "version": "2.3.1", - "license": "MIT", - "dependencies": { - "punycode": "2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/ieee754": { "version": "1.2.1", "funding": [ @@ -9672,7 +10361,7 @@ "license": "MIT" }, "node_modules/ignore": { - "version": "5.2.0", + "version": "5.2.4", "dev": true, "license": "MIT", "engines": { @@ -9687,11 +10376,6 @@ "minimatch": "^3.0.4" } }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" - }, "node_modules/immutable": { "version": "3.8.2", "dev": true, @@ -9702,7 +10386,6 @@ }, "node_modules/import-fresh": { "version": "3.3.0", - "dev": true, "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -9753,7 +10436,6 @@ }, "node_modules/inflight": { "version": "1.0.6", - "devOptional": true, "license": "ISC", "dependencies": { "once": "^1.3.0", @@ -9785,7 +10467,7 @@ } }, "node_modules/init-package-json/node_modules/semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true, "license": "ISC", "bin": { @@ -9823,59 +10505,6 @@ "node": ">=6" } }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "1.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/inquirer/node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/inquirer/node_modules/strip-ansi": { "version": "5.2.0", "dev": true, @@ -9887,17 +10516,6 @@ "node": ">=6" } }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/interface-blockstore": { "version": "2.0.3", "dev": true, @@ -9908,25 +10526,24 @@ } }, "node_modules/interface-datastore": { - "version": "6.1.0", - "dev": true, + "version": "6.1.1", "license": "MIT", "dependencies": { - "interface-store": "^2.0.1", + "interface-store": "^2.0.2", "nanoid": "^3.0.2", "uint8arrays": "^3.0.0" } }, "node_modules/interface-store": { "version": "2.0.2", - "dev": true, "license": "(Apache-2.0 OR MIT)" }, "node_modules/internal-slot": { - "version": "1.0.3", + "version": "1.0.5", + "dev": true, "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.0", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" }, @@ -9935,8 +10552,7 @@ } }, "node_modules/ip": { - "version": "1.1.5", - "dev": true, + "version": "1.1.8", "license": "MIT" }, "node_modules/ip-address": { @@ -9951,6 +10567,11 @@ "node": ">= 12" } }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.2", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/ip-regex": { "version": "2.1.0", "dev": true, @@ -9960,7 +10581,7 @@ } }, "node_modules/ipaddr.js": { - "version": "2.0.1", + "version": "2.1.0", "dev": true, "license": "MIT", "engines": { @@ -10131,33 +10752,7 @@ "uint8arrays": "^3.0.0" } }, - "node_modules/ipfs-core-utils/node_modules/ipfs-unixfs": { - "version": "6.0.7", - "dev": true, - "license": "Apache-2.0 OR MIT", - "dependencies": { - "err-code": "^3.0.1", - "protobufjs": "^6.10.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/ipfs-core/node_modules/ipfs-unixfs": { - "version": "6.0.7", - "dev": true, - "license": "Apache-2.0 OR MIT", - "dependencies": { - "err-code": "^3.0.1", - "protobufjs": "^6.10.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/ipfs-http-client": { + "node_modules/ipfs-core/node_modules/ipfs-http-client": { "version": "54.0.2", "dev": true, "license": "(Apache-2.0 OR MIT)", @@ -10186,6 +10781,137 @@ "npm": ">=3.0.0" } }, + "node_modules/ipfs-http-client": { + "version": "56.0.3", + "license": "(Apache-2.0 OR MIT)", + "dependencies": { + "@ipld/dag-cbor": "^7.0.0", + "@ipld/dag-json": "^8.0.1", + "@ipld/dag-pb": "^2.1.3", + "any-signal": "^3.0.0", + "dag-jose": "^1.0.0", + "debug": "^4.1.1", + "err-code": "^3.0.1", + "ipfs-core-types": "^0.10.3", + "ipfs-core-utils": "^0.14.3", + "ipfs-utils": "^9.0.6", + "it-first": "^1.0.6", + "it-last": "^1.0.4", + "merge-options": "^3.0.4", + "multiaddr": "^10.0.0", + "multiformats": "^9.5.1", + "parse-duration": "^1.0.0", + "stream-to-it": "^0.2.2", + "uint8arrays": "^3.0.0" + }, + "engines": { + "node": ">=15.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ipfs-http-client/node_modules/@ipld/dag-cbor": { + "version": "7.0.3", + "license": "(Apache-2.0 AND MIT)", + "dependencies": { + "cborg": "^1.6.0", + "multiformats": "^9.5.4" + } + }, + "node_modules/ipfs-http-client/node_modules/any-signal": { + "version": "3.0.1", + "license": "MIT" + }, + "node_modules/ipfs-http-client/node_modules/ipfs-core-types": { + "version": "0.10.3", + "license": "(Apache-2.0 OR MIT)", + "dependencies": { + "@ipld/dag-pb": "^2.1.3", + "interface-datastore": "^6.0.2", + "ipfs-unixfs": "^6.0.3", + "multiaddr": "^10.0.0", + "multiformats": "^9.5.1" + } + }, + "node_modules/ipfs-http-client/node_modules/ipfs-core-utils": { + "version": "0.14.3", + "license": "MIT", + "dependencies": { + "any-signal": "^3.0.0", + "blob-to-it": "^1.0.1", + "browser-readablestream-to-it": "^1.0.1", + "debug": "^4.1.1", + "err-code": "^3.0.1", + "ipfs-core-types": "^0.10.3", + "ipfs-unixfs": "^6.0.3", + "ipfs-utils": "^9.0.6", + "it-all": "^1.0.4", + "it-map": "^1.0.4", + "it-peekable": "^1.0.2", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "multiaddr": "^10.0.0", + "multiaddr-to-uri": "^8.0.0", + "multiformats": "^9.5.1", + "nanoid": "^3.1.23", + "parse-duration": "^1.0.0", + "timeout-abort-controller": "^3.0.0", + "uint8arrays": "^3.0.0" + } + }, + "node_modules/ipfs-http-client/node_modules/timeout-abort-controller": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "retimer": "^3.0.0" + } + }, + "node_modules/ipfs-http-gateway": { + "version": "0.9.3", + "license": "(Apache-2.0 OR MIT)", + "dependencies": { + "@hapi/ammo": "^5.0.1", + "@hapi/boom": "^9.1.0", + "@hapi/hapi": "^20.0.0", + "debug": "^4.1.1", + "hapi-pino": "^8.3.0", + "ipfs-core-types": "^0.10.3", + "ipfs-http-response": "^2.0.3", + "is-ipfs": "^6.0.1", + "it-last": "^1.0.4", + "it-to-stream": "^1.0.0", + "joi": "^17.2.1", + "multiformats": "^9.5.1", + "uint8arrays": "^3.0.0", + "uri-to-multiaddr": "^6.0.0" + } + }, + "node_modules/ipfs-http-gateway/node_modules/ipfs-core-types": { + "version": "0.10.3", + "license": "(Apache-2.0 OR MIT)", + "dependencies": { + "@ipld/dag-pb": "^2.1.3", + "interface-datastore": "^6.0.2", + "ipfs-unixfs": "^6.0.3", + "multiaddr": "^10.0.0", + "multiformats": "^9.5.1" + } + }, + "node_modules/ipfs-http-response": { + "version": "2.0.3", + "license": "MIT", + "dependencies": { + "debug": "^4.3.1", + "ejs": "^3.1.6", + "file-type": "^16.0.0", + "filesize": "^8.0.0", + "it-buffer": "^0.1.1", + "it-concat": "^2.0.0", + "it-reader": "^3.0.0", + "it-to-stream": "^1.0.0", + "mime-types": "^2.1.30", + "p-try-each": "^1.0.1" + } + }, "node_modules/ipfs-repo": { "version": "13.0.7", "dev": true, @@ -10239,29 +10965,28 @@ } }, "node_modules/ipfs-unixfs": { - "version": "1.0.3", - "dev": true, - "license": "MIT", + "version": "6.0.9", + "license": "Apache-2.0 OR MIT", "dependencies": { - "err-code": "^2.0.0", - "protons": "^1.2.0" + "err-code": "^3.0.1", + "protobufjs": "^6.10.2" }, "engines": { - "node": ">=10.0.0", - "npm": ">=4.0.0" + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, "node_modules/ipfs-unixfs-exporter": { - "version": "7.0.8", + "version": "7.0.11", "dev": true, "license": "Apache-2.0 OR MIT", "dependencies": { - "@ipld/dag-cbor": "^6.0.4", + "@ipld/dag-cbor": "^7.0.2", "@ipld/dag-pb": "^2.0.2", "@multiformats/murmur3": "^1.0.3", "err-code": "^3.0.1", "hamt-sharding": "^2.0.0", - "interface-blockstore": "^1.0.0", + "interface-blockstore": "^2.0.3", "ipfs-unixfs": "^6.0.0", "it-last": "^1.0.5", "multiformats": "^9.4.2", @@ -10272,40 +10997,17 @@ "npm": ">=7.0.0" } }, - "node_modules/ipfs-unixfs-exporter/node_modules/interface-blockstore": { - "version": "1.0.2", - "dev": true, - "license": "(Apache-2.0 OR MIT)", - "dependencies": { - "err-code": "^3.0.1", - "interface-store": "^1.0.2", - "it-all": "^1.0.5", - "it-drain": "^1.0.4", - "it-filter": "^1.0.2", - "it-take": "^1.0.1", - "multiformats": "^9.0.4" - } - }, - "node_modules/ipfs-unixfs-exporter/node_modules/interface-store": { - "version": "1.0.2", - "dev": true, - "license": "(Apache-2.0 OR MIT)" - }, - "node_modules/ipfs-unixfs-exporter/node_modules/ipfs-unixfs": { - "version": "6.0.7", + "node_modules/ipfs-unixfs-exporter/node_modules/@ipld/dag-cbor": { + "version": "7.0.3", "dev": true, - "license": "Apache-2.0 OR MIT", + "license": "(Apache-2.0 AND MIT)", "dependencies": { - "err-code": "^3.0.1", - "protobufjs": "^6.10.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "cborg": "^1.6.0", + "multiformats": "^9.5.4" } }, "node_modules/ipfs-unixfs-importer": { - "version": "9.0.8", + "version": "9.0.10", "dev": true, "license": "Apache-2.0 OR MIT", "dependencies": { @@ -10314,7 +11016,7 @@ "bl": "^5.0.0", "err-code": "^3.0.1", "hamt-sharding": "^2.0.0", - "interface-blockstore": "^1.0.0", + "interface-blockstore": "^2.0.3", "ipfs-unixfs": "^6.0.0", "it-all": "^1.0.5", "it-batch": "^1.0.8", @@ -10330,76 +11032,68 @@ "npm": ">=7.0.0" } }, - "node_modules/ipfs-unixfs-importer/node_modules/interface-blockstore": { - "version": "1.0.2", - "dev": true, - "license": "(Apache-2.0 OR MIT)", - "dependencies": { - "err-code": "^3.0.1", - "interface-store": "^1.0.2", - "it-all": "^1.0.5", - "it-drain": "^1.0.4", - "it-filter": "^1.0.2", - "it-take": "^1.0.1", - "multiformats": "^9.0.4" - } - }, - "node_modules/ipfs-unixfs-importer/node_modules/interface-store": { - "version": "1.0.2", - "dev": true, - "license": "(Apache-2.0 OR MIT)" - }, - "node_modules/ipfs-unixfs-importer/node_modules/ipfs-unixfs": { - "version": "6.0.7", - "dev": true, - "license": "Apache-2.0 OR MIT", - "dependencies": { - "err-code": "^3.0.1", - "protobufjs": "^6.10.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/ipfs-unixfs/node_modules/err-code": { - "version": "2.0.3", - "dev": true, - "license": "MIT" - }, "node_modules/ipfs-utils": { - "version": "9.0.6", - "dev": true, - "license": "MIT", + "version": "9.0.14", + "license": "Apache-2.0 OR MIT", "dependencies": { "any-signal": "^3.0.0", + "browser-readablestream-to-it": "^1.0.0", "buffer": "^6.0.1", "electron-fetch": "^1.7.2", "err-code": "^3.0.1", "is-electron": "^2.2.0", "iso-url": "^1.1.5", + "it-all": "^1.0.4", "it-glob": "^1.0.1", "it-to-stream": "^1.0.0", "merge-options": "^3.0.4", "nanoid": "^3.1.20", "native-fetch": "^3.0.0", - "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "react-native-fetch-api": "^2.0.0", + "node-fetch": "^2.6.8", + "react-native-fetch-api": "^3.0.0", "stream-to-it": "^0.2.2" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, "node_modules/ipfs-utils/node_modules/any-signal": { "version": "3.0.1", - "dev": true, "license": "MIT" }, "node_modules/ipfs-utils/node_modules/node-fetch": { - "name": "@achingbrain/node-fetch", - "version": "2.6.7", - "dev": true, + "version": "2.6.12", "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, "engines": { "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/ipfs-utils/node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/ipfs-utils/node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/ipfs-utils/node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, "node_modules/ipld-dag-pb": { @@ -10493,15 +11187,14 @@ "node": ">=0.10.0" } }, - "node_modules/is-arguments": { - "version": "1.1.1", + "node_modules/is-array-buffer": { + "version": "3.0.2", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10509,11 +11202,11 @@ }, "node_modules/is-arrayish": { "version": "0.2.1", - "dev": true, "license": "MIT" }, "node_modules/is-bigint": { "version": "1.0.4", + "dev": true, "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" @@ -10535,6 +11228,7 @@ }, "node_modules/is-boolean-object": { "version": "1.1.2", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -10570,7 +11264,8 @@ } }, "node_modules/is-callable": { - "version": "1.2.4", + "version": "1.2.7", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -10591,7 +11286,7 @@ } }, "node_modules/is-core-module": { - "version": "2.9.0", + "version": "2.12.1", "dev": true, "license": "MIT", "dependencies": { @@ -10614,6 +11309,7 @@ }, "node_modules/is-date-object": { "version": "1.0.5", + "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -10646,14 +11342,27 @@ "node": ">=0.10.0" } }, + "node_modules/is-docker": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-domain-name": { "version": "1.0.1", "dev": true, "license": "ISC" }, "node_modules/is-electron": { - "version": "2.2.1", - "dev": true, + "version": "2.2.2", "license": "MIT" }, "node_modules/is-extendable": { @@ -10705,23 +11414,6 @@ "node": ">=4" } }, - "node_modules/is-function": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-glob": { "version": "4.0.3", "dev": true, @@ -10733,12 +11425,21 @@ "node": ">=0.10.0" } }, - "node_modules/is-hex-prefixed": { + "node_modules/is-inside-container": { "version": "1.0.0", + "dev": true, "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-ip": { @@ -10754,7 +11455,6 @@ }, "node_modules/is-ipfs": { "version": "6.0.2", - "dev": true, "license": "MIT", "dependencies": { "iso-url": "^1.1.3", @@ -10775,6 +11475,7 @@ }, "node_modules/is-negative-zero": { "version": "2.0.2", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -10793,6 +11494,7 @@ }, "node_modules/is-number-object": { "version": "1.0.7", + "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -10812,16 +11514,16 @@ "node": ">=0.10.0" } }, - "node_modules/is-object": { - "version": "1.0.2", + "node_modules/is-path-inside": { + "version": "3.0.3", + "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, "node_modules/is-plain-obj": { "version": "2.1.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -10837,6 +11539,7 @@ }, "node_modules/is-regex": { "version": "1.1.4", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -10849,15 +11552,9 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-retry-allowed": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2" @@ -10867,15 +11564,16 @@ } }, "node_modules/is-ssh": { - "version": "1.3.3", + "version": "1.4.0", "dev": true, "license": "MIT", "dependencies": { - "protocols": "^1.1.0" + "protocols": "^2.0.1" } }, "node_modules/is-stream": { "version": "1.1.0", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -10883,6 +11581,7 @@ }, "node_modules/is-string": { "version": "1.0.7", + "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -10896,6 +11595,7 @@ }, "node_modules/is-symbol": { "version": "1.0.4", + "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" @@ -10919,13 +11619,14 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.9", + "version": "1.1.10", + "dev": true, "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", "for-each": "^0.3.3", + "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" }, "engines": { @@ -10937,6 +11638,7 @@ }, "node_modules/is-typedarray": { "version": "1.0.0", + "dev": true, "license": "MIT" }, "node_modules/is-utf8": { @@ -10946,6 +11648,7 @@ }, "node_modules/is-weakref": { "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2" @@ -10962,8 +11665,34 @@ "node": ">=0.10.0" } }, + "node_modules/is-wsl": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-wsl/node_modules/is-docker": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/isarray": { - "version": "1.0.0", + "version": "2.0.5", + "dev": true, "license": "MIT" }, "node_modules/isexe": { @@ -10994,7 +11723,6 @@ }, "node_modules/iso-url": { "version": "1.2.1", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -11010,22 +11738,63 @@ }, "node_modules/isstream": { "version": "0.1.2", + "dev": true, "license": "MIT" }, - "node_modules/isurl": { - "version": "1.0.0", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, "license": "MIT", "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 4" + "node": ">=8" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/it-all": { "version": "1.0.6", - "dev": true, "license": "ISC" }, "node_modules/it-batch": { @@ -11035,13 +11804,19 @@ }, "node_modules/it-buffer": { "version": "0.1.3", - "dev": true, "license": "MPL-2.0", "dependencies": { "bl": "^5.0.0", "buffer": "^6.0.3" } }, + "node_modules/it-concat": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "bl": "^5.0.0" + } + }, "node_modules/it-drain": { "version": "1.0.5", "dev": true, @@ -11054,18 +11829,20 @@ }, "node_modules/it-first": { "version": "1.0.7", - "dev": true, "license": "ISC" }, "node_modules/it-glob": { "version": "1.0.2", - "dev": true, "license": "ISC", "dependencies": { "@types/minimatch": "^3.0.4", "minimatch": "^3.0.4" } }, + "node_modules/it-glob/node_modules/@types/minimatch": { + "version": "3.0.5", + "license": "MIT" + }, "node_modules/it-handshake": { "version": "2.0.0", "dev": true, @@ -11078,7 +11855,6 @@ }, "node_modules/it-last": { "version": "1.0.6", - "dev": true, "license": "ISC" }, "node_modules/it-length": { @@ -11098,7 +11874,6 @@ }, "node_modules/it-map": { "version": "1.0.6", - "dev": true, "license": "ISC" }, "node_modules/it-merge": { @@ -11126,7 +11901,7 @@ } }, "node_modules/it-parallel-batch": { - "version": "1.0.10", + "version": "1.0.11", "dev": true, "license": "ISC", "dependencies": { @@ -11145,7 +11920,6 @@ }, "node_modules/it-peekable": { "version": "1.0.3", - "dev": true, "license": "ISC" }, "node_modules/it-pipe": { @@ -11163,7 +11937,6 @@ }, "node_modules/it-reader": { "version": "3.0.0", - "dev": true, "license": "MIT", "dependencies": { "bl": "^5.0.0" @@ -11195,14 +11968,6 @@ "p-defer": "^3.0.0" } }, - "node_modules/it-tar/node_modules/it-concat": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "bl": "^5.0.0" - } - }, "node_modules/it-to-buffer": { "version": "2.0.2", "dev": true, @@ -11213,7 +11978,6 @@ }, "node_modules/it-to-stream": { "version": "1.0.0", - "dev": true, "license": "MIT", "dependencies": { "buffer": "^6.0.3", @@ -11235,21 +11999,118 @@ "ws": "^7.3.1" } }, + "node_modules/jake": { + "version": "10.8.7", + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "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/jake/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jake/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jmespath": { + "version": "0.15.0", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/joi": { + "version": "17.9.2", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/joycon": { + "version": "2.2.5", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/js-sha3": { "version": "0.8.0", "license": "MIT" }, "node_modules/js-tokens": { "version": "4.0.0", - "dev": true, "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.0", - "dev": true, + "version": "3.14.1", "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -11260,10 +12121,6 @@ "dev": true, "license": "MIT" }, - "node_modules/json-buffer": { - "version": "3.0.0", - "license": "MIT" - }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "dev": true, @@ -11271,15 +12128,43 @@ }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "dev": true, "license": "MIT" }, + "node_modules/json-refs": { + "version": "3.0.15", + "license": "MIT", + "dependencies": { + "commander": "~4.1.1", + "graphlib": "^2.1.8", + "js-yaml": "^3.13.1", + "lodash": "^4.17.15", + "native-promise-only": "^0.8.1", + "path-loader": "^1.0.10", + "slash": "^3.0.0", + "uri-js": "^4.2.2" + }, + "bin": { + "json-refs": "bin/json-refs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/json-refs/node_modules/commander": { + "version": "4.1.1", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/json-schema": { "version": "0.4.0", + "dev": true, "license": "(AFL-2.1 OR BSD-3-Clause)" }, "node_modules/json-schema-traverse": { "version": "0.4.1", + "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { @@ -11289,6 +12174,7 @@ }, "node_modules/json-stringify-safe": { "version": "5.0.1", + "dev": true, "license": "ISC" }, "node_modules/jsonfile": { @@ -11323,6 +12209,7 @@ }, "node_modules/jsprim": { "version": "1.4.2", + "dev": true, "license": "MIT", "dependencies": { "assert-plus": "1.0.0", @@ -11334,44 +12221,6 @@ "node": ">=0.6.0" } }, - "node_modules/jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - } - }, - "node_modules/jszip/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/jszip/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/jszip/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/just-debounce-it": { "version": "1.5.0", "dev": true, @@ -11395,31 +12244,11 @@ "randombytes": "^2.1.0" } }, - "node_modules/keccak": { - "version": "3.0.2", - "hasInstallScript": true, - "license": "MIT", - "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/keypair": { "version": "1.0.4", "dev": true, "license": "BSD / GPL" }, - "node_modules/keyv": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.0" - } - }, "node_modules/kind-of": { "version": "6.0.3", "dev": true, @@ -11428,6 +12257,10 @@ "node": ">=0.10.0" } }, + "node_modules/kuler": { + "version": "2.0.0", + "license": "MIT" + }, "node_modules/lerna": { "version": "3.22.1", "dev": true, @@ -11459,23 +12292,6 @@ "node": ">= 6.9.0" } }, - "node_modules/level": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "level-js": "^6.1.0", - "level-packager": "^6.0.1", - "leveldown": "^6.1.0" - }, - "engines": { - "node": ">=10.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/level" - } - }, "node_modules/level-codec": { "version": "10.0.0", "dev": true, @@ -11542,14 +12358,6 @@ "node": ">=10" } }, - "node_modules/level-supports": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/leveldown": { "version": "6.1.1", "dev": true, @@ -11564,6 +12372,11 @@ "node": ">=10.12.0" } }, + "node_modules/leveldown/node_modules/napi-macros": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/levelup": { "version": "5.1.1", "dev": true, @@ -11580,6 +12393,21 @@ "node": ">=10" } }, + "node_modules/levelup/node_modules/level-supports": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/leven": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/levn": { "version": "0.4.1", "dev": true, @@ -12015,17 +12843,8 @@ "p-timeout": "^4.1.0" } }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dependencies": { - "immediate": "~3.0.5" - } - }, "node_modules/lines-and-columns": { "version": "1.2.4", - "dev": true, "license": "MIT" }, "node_modules/load-json-file": { @@ -12052,15 +12871,17 @@ } }, "node_modules/locate-path": { - "version": "3.0.0", + "version": "6.0.0", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -12072,14 +12893,16 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "license": "MIT" + }, "node_modules/lodash.clonedeep": { "version": "4.5.0", - "dev": true, "license": "MIT" }, "node_modules/lodash.get": { "version": "4.4.2", - "dev": true, "license": "MIT" }, "node_modules/lodash.isempty": { @@ -12146,7 +12969,10 @@ }, "node_modules/lodash.uniq": { "version": "4.5.0", - "dev": true, + "license": "MIT" + }, + "node_modules/lodash.zipobject": { + "version": "4.1.3", "license": "MIT" }, "node_modules/log-symbols": { @@ -12160,73 +12986,20 @@ "node": ">=8" } }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "1.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols/node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "5.5.0", - "dev": true, + "node_modules/logform": { + "version": "2.5.1", "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" + "@colors/colors": "1.5.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" } }, "node_modules/long": { "version": "4.0.0", - "dev": true, "license": "Apache-2.0" }, "node_modules/loose-envify": { @@ -12253,20 +13026,13 @@ } }, "node_modules/loupe": { - "version": "2.3.4", + "version": "2.3.6", "dev": true, "license": "MIT", "dependencies": { "get-func-name": "^2.0.0" } }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/lru-cache": { "version": "5.1.1", "dev": true, @@ -12281,7 +13047,7 @@ "license": "MIT" }, "node_modules/macos-release": { - "version": "2.5.0", + "version": "2.5.1", "dev": true, "license": "MIT", "engines": { @@ -12293,29 +13059,31 @@ }, "node_modules/mafmt": { "version": "10.0.0", - "dev": true, "license": "MIT", "dependencies": { "multiaddr": "^10.0.0" } }, "node_modules/make-dir": { - "version": "1.3.0", + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "pify": "^3.0.0" + "semver": "^6.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/pify": { - "version": "3.0.0", + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, "node_modules/make-error": { @@ -12371,20 +13139,11 @@ "node": ">=0.10.0" } }, - "node_modules/md5.js": { - "version": "1.3.5", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, "node_modules/media-typer": { - "version": "0.3.0", + "version": "1.1.0", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/memorystore": { @@ -12410,6 +13169,12 @@ "version": "2.1.2", "license": "ISC" }, + "node_modules/memorystream": { + "version": "0.3.1", + "engines": { + "node": ">= 0.10.0" + } + }, "node_modules/meow": { "version": "8.1.2", "dev": true, @@ -12493,6 +13258,20 @@ "node": ">=10" } }, + "node_modules/meow/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/meow/node_modules/p-locate": { "version": "4.1.0", "dev": true, @@ -12521,14 +13300,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/meow/node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/meow/node_modules/read-pkg": { "version": "5.2.0", "dev": true, @@ -12584,7 +13355,7 @@ } }, "node_modules/meow/node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true, "license": "ISC", "bin": { @@ -12621,7 +13392,6 @@ }, "node_modules/merge-options": { "version": "3.0.4", - "dev": true, "license": "MIT", "dependencies": { "is-plain-obj": "^2.1.0" @@ -12662,17 +13432,6 @@ "node": ">=8.6" } }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, "node_modules/mime": { "version": "1.6.0", "license": "MIT", @@ -12708,19 +13467,6 @@ "node": ">=4" } }, - "node_modules/mimic-response": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, "node_modules/min-indent": { "version": "1.0.1", "dev": true, @@ -12731,15 +13477,16 @@ }, "node_modules/minimalistic-assert": { "version": "1.0.1", + "dev": true, "license": "ISC" }, "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", + "dev": true, "license": "MIT" }, "node_modules/minimatch": { "version": "3.1.2", - "devOptional": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -12749,8 +13496,11 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "license": "MIT" + "version": "1.2.8", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/minimist-options": { "version": "4.1.0", @@ -12775,6 +13525,7 @@ }, "node_modules/minipass": { "version": "2.9.0", + "dev": true, "license": "ISC", "dependencies": { "safe-buffer": "^5.1.2", @@ -12783,6 +13534,7 @@ }, "node_modules/minizlib": { "version": "1.3.3", + "dev": true, "license": "MIT", "dependencies": { "minipass": "^2.9.0" @@ -12822,8 +13574,13 @@ "typedarray": "^0.0.6" } }, + "node_modules/mississippi/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/mississippi/node_modules/readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "license": "MIT", "dependencies": { @@ -12836,11 +13593,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/mississippi/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, "node_modules/mississippi/node_modules/string_decoder": { "version": "1.1.1", "dev": true, @@ -12858,6 +13610,10 @@ "xtend": "~4.0.1" } }, + "node_modules/mitt": { + "version": "3.0.0", + "license": "MIT" + }, "node_modules/mixin-deep": { "version": "1.3.2", "dev": true, @@ -12872,6 +13628,7 @@ }, "node_modules/mkdirp": { "version": "1.0.4", + "dev": true, "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" @@ -12880,8 +13637,13 @@ "node": ">=10" } }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "license": "MIT" + }, "node_modules/mkdirp-promise": { "version": "5.0.1", + "dev": true, "license": "ISC", "dependencies": { "mkdirp": "*" @@ -12940,12 +13702,14 @@ "node": ">=6" } }, - "node_modules/mocha/node_modules/argparse": { - "version": "1.0.10", + "node_modules/mocha/node_modules/cliui": { + "version": "5.0.0", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "sprintf-js": "~1.0.2" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, "node_modules/mocha/node_modules/debug": { @@ -12956,12 +13720,15 @@ "ms": "^2.1.1" } }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "1.0.5", + "node_modules/mocha/node_modules/find-up": { + "version": "3.0.0", "dev": true, "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, "engines": { - "node": ">=0.8.0" + "node": ">=6" } }, "node_modules/mocha/node_modules/glob": { @@ -12980,14 +13747,6 @@ "node": "*" } }, - "node_modules/mocha/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/mocha/node_modules/js-yaml": { "version": "3.13.1", "dev": true, @@ -13000,6 +13759,18 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/mocha/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/mocha/node_modules/minimatch": { "version": "3.0.4", "dev": true, @@ -13027,10 +13798,38 @@ "dev": true, "license": "MIT" }, - "node_modules/mocha/node_modules/sprintf-js": { - "version": "1.0.3", + "node_modules/mocha/node_modules/p-limit": { + "version": "2.3.0", "dev": true, - "license": "BSD-3-Clause" + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, "node_modules/mocha/node_modules/string-width": { "version": "3.1.0", @@ -13086,6 +13885,19 @@ "which": "bin/which" } }, + "node_modules/mocha/node_modules/wrap-ansi": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/mocha/node_modules/yargs": { "version": "13.3.2", "dev": true, @@ -13154,16 +13966,64 @@ "marge": "bin/cli.js" } }, + "node_modules/mochawesome-report-generator/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/mochawesome-report-generator/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "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/mochawesome-report-generator/node_modules/cliui": { - "version": "7.0.4", + "version": "8.0.1", "dev": true, "license": "ISC", "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, + "node_modules/mochawesome-report-generator/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/mochawesome-report-generator/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, "node_modules/mochawesome-report-generator/node_modules/dateformat": { "version": "4.6.3", "dev": true, @@ -13190,6 +14050,14 @@ "node": ">=12" } }, + "node_modules/mochawesome-report-generator/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/mochawesome-report-generator/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "dev": true, @@ -13222,28 +14090,23 @@ "node": ">=8" } }, - "node_modules/mochawesome-report-generator/node_modules/universalify": { - "version": "2.0.0", + "node_modules/mochawesome-report-generator/node_modules/supports-color": { + "version": "7.2.0", "dev": true, "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">= 10.0.0" + "node": ">=8" } }, - "node_modules/mochawesome-report-generator/node_modules/wrap-ansi": { - "version": "7.0.0", + "node_modules/mochawesome-report-generator/node_modules/universalify": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">= 10.0.0" } }, "node_modules/mochawesome-report-generator/node_modules/y18n": { @@ -13255,41 +14118,101 @@ } }, "node_modules/mochawesome-report-generator/node_modules/yargs": { - "version": "17.5.1", + "version": "17.7.2", "dev": true, "license": "MIT", "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "yargs-parser": "^21.1.1" }, "engines": { "node": ">=12" } }, "node_modules/mochawesome-report-generator/node_modules/yargs-parser": { - "version": "21.0.1", + "version": "21.1.1", "dev": true, "license": "ISC", "engines": { "node": ">=12" } }, + "node_modules/mochawesome/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/mochawesome/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "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/mochawesome/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/mochawesome/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, "node_modules/mochawesome/node_modules/diff": { - "version": "5.0.0", + "version": "5.1.0", "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, - "node_modules/mock-fs": { - "version": "4.14.0", - "license": "MIT" + "node_modules/mochawesome/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/mochawesome/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, "node_modules/modify-values": { "version": "1.0.1", @@ -13300,7 +14223,7 @@ } }, "node_modules/moment": { - "version": "2.29.3", + "version": "2.29.4", "license": "MIT", "optional": true, "engines": { @@ -13358,13 +14281,82 @@ "rimraf": "bin.js" } }, + "node_modules/mri": { + "version": "1.1.4", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/ms": { "version": "2.1.2", "license": "MIT" }, + "node_modules/multer": { + "version": "1.4.5-lts.1", + "license": "MIT", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/multer/node_modules/concat-stream": { + "version": "1.6.2", + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/multer/node_modules/isarray": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/multer/node_modules/mkdirp": { + "version": "0.5.6", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/multer/node_modules/readable-stream": { + "version": "2.3.8", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/multer/node_modules/string_decoder": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/multiaddr": { "version": "10.0.1", - "dev": true, "license": "MIT", "dependencies": { "dns-over-http-resolver": "^1.2.3", @@ -13377,7 +14369,6 @@ }, "node_modules/multiaddr-to-uri": { "version": "8.0.0", - "dev": true, "license": "MIT", "dependencies": { "multiaddr": "^10.0.0" @@ -13385,7 +14376,6 @@ }, "node_modules/multiaddr/node_modules/ip-regex": { "version": "4.3.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -13393,7 +14383,6 @@ }, "node_modules/multiaddr/node_modules/is-ip": { "version": "3.1.0", - "dev": true, "license": "MIT", "dependencies": { "ip-regex": "^4.0.0" @@ -13415,6 +14404,14 @@ "npm": ">=6.0.0" } }, + "node_modules/multibase/node_modules/base-x": { + "version": "3.0.9", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, "node_modules/multibase/node_modules/buffer": { "version": "5.7.1", "dev": true, @@ -13488,40 +14485,50 @@ "license": "MIT" }, "node_modules/multiformats": { - "version": "9.6.5", + "version": "9.9.0", "license": "(Apache-2.0 AND MIT)" }, "node_modules/multihashes": { - "version": "3.1.2", + "version": "1.0.1", + "dev": true, "license": "MIT", "dependencies": { - "multibase": "^3.1.0", - "uint8arrays": "^2.0.5", - "varint": "^6.0.0" + "buffer": "^5.6.0", + "multibase": "^1.0.1", + "varint": "^5.0.0" }, "engines": { "node": ">=10.0.0", "npm": ">=6.0.0" } }, - "node_modules/multihashes/node_modules/multibase": { - "version": "3.1.2", + "node_modules/multihashes/node_modules/buffer": { + "version": "5.7.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT", "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/multihashes/node_modules/uint8arrays": { - "version": "2.1.10", - "license": "MIT", - "dependencies": { - "multiformats": "^9.4.2" - } + "node_modules/multihashes/node_modules/varint": { + "version": "5.0.2", + "dev": true, + "license": "MIT" }, "node_modules/multihashing-async": { "version": "0.8.2", @@ -13568,25 +14575,6 @@ "dev": true, "license": "MIT" }, - "node_modules/multihashing-async/node_modules/multihashes": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^5.6.0", - "multibase": "^1.0.1", - "varint": "^5.0.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multihashing-async/node_modules/varint": { - "version": "5.0.2", - "dev": true, - "license": "MIT" - }, "node_modules/multimatch": { "version": "3.0.0", "dev": true, @@ -13712,17 +14700,18 @@ } }, "node_modules/nan": { - "version": "2.15.0", + "version": "2.17.0", "devOptional": true, "license": "MIT" }, - "node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "license": "MIT" - }, "node_modules/nanoid": { - "version": "3.3.4", - "dev": true, + "version": "3.3.6", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" @@ -13752,11 +14741,6 @@ "node": ">=0.10.0" } }, - "node_modules/napi-macros": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, "node_modules/native-abort-controller": { "version": "1.0.4", "dev": true, @@ -13767,17 +14751,25 @@ }, "node_modules/native-fetch": { "version": "3.0.0", - "dev": true, "license": "MIT", "peerDependencies": { "node-fetch": "*" } }, + "node_modules/native-promise-only": { + "version": "0.8.1", + "license": "MIT" + }, "node_modules/natural-compare": { "version": "1.4.0", "dev": true, "license": "MIT" }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, "node_modules/ncp": { "version": "2.0.0", "license": "MIT", @@ -13800,16 +14792,11 @@ }, "node_modules/netmask": { "version": "2.0.2", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4.0" } }, - "node_modules/next-tick": { - "version": "1.1.0", - "license": "ISC" - }, "node_modules/nice-try": { "version": "1.0.5", "dev": true, @@ -13827,6 +14814,7 @@ }, "node_modules/node-addon-api": { "version": "2.0.2", + "dev": true, "license": "MIT" }, "node_modules/node-environment-flags": { @@ -13839,7 +14827,7 @@ } }, "node_modules/node-environment-flags/node_modules/semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true, "license": "ISC", "bin": { @@ -13918,7 +14906,8 @@ } }, "node_modules/node-gyp-build": { - "version": "4.4.0", + "version": "4.6.0", + "devOptional": true, "license": "MIT", "bin": { "node-gyp-build": "bin.js", @@ -13949,7 +14938,7 @@ } }, "node_modules/node-gyp/node_modules/semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true, "license": "ISC", "bin": { @@ -13991,7 +14980,7 @@ } }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true, "license": "ISC", "bin": { @@ -14068,7 +15057,7 @@ } }, "node_modules/npm-package-arg/node_modules/semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true, "license": "ISC", "bin": { @@ -14096,13 +15085,98 @@ } }, "node_modules/npm-pick-manifest/node_modules/semver": { - "version": "5.7.1", + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", "dev": true, "license": "ISC", "bin": { "semver": "bin/semver" } }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/npm-run-path": { "version": "2.0.2", "dev": true, @@ -14141,24 +15215,9 @@ "node": ">=0.10.0" } }, - "node_modules/number-to-bn": { - "version": "1.7.0", - "license": "MIT", - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "license": "MIT" - }, "node_modules/oauth-sign": { "version": "0.9.0", + "dev": true, "license": "Apache-2.0", "engines": { "node": "*" @@ -14255,7 +15314,7 @@ } }, "node_modules/object-inspect": { - "version": "1.12.0", + "version": "1.12.3", "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -14263,6 +15322,7 @@ }, "node_modules/object-keys": { "version": "1.1.1", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -14294,13 +15354,15 @@ } }, "node_modules/object.getownpropertydescriptors": { - "version": "2.1.3", + "version": "2.1.6", "dev": true, "license": "MIT", "dependencies": { + "array.prototype.reduce": "^1.0.5", "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.2.0", + "es-abstract": "^1.21.2", + "safe-array-concat": "^1.0.0" }, "engines": { "node": ">= 0.8" @@ -14320,13 +15382,6 @@ "node": ">=0.10.0" } }, - "node_modules/oboe": { - "version": "2.1.5", - "license": "BSD", - "dependencies": { - "http-https": "^1.0.0" - } - }, "node_modules/observable-webworkers": { "version": "1.0.0", "dev": true, @@ -14361,6 +15416,13 @@ "wrappy": "1" } }, + "node_modules/one-time": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "fn.name": "1.x.x" + } + }, "node_modules/onetime": { "version": "2.0.1", "dev": true, @@ -14372,6 +15434,489 @@ "node": ">=4" } }, + "node_modules/ono": { + "version": "7.1.3", + "license": "MIT", + "dependencies": { + "@jsdevtools/ono": "7.1.3" + } + }, + "node_modules/open": { + "version": "9.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "file-type": "^18.2.1", + "get-stdin": "^9.0.0", + "meow": "^11.0.0", + "open": "^9.0.0", + "tempy": "^3.0.0" + }, + "bin": { + "open-cli": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/camelcase": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/camelcase-keys": { + "version": "8.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^7.0.0", + "map-obj": "^4.3.0", + "quick-lru": "^6.1.1", + "type-fest": "^2.13.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/camelcase-keys/node_modules/type-fest": { + "version": "2.19.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/decamelize": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/file-type": { + "version": "18.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-web-to-node-stream": "^3.0.2", + "strtok3": "^7.0.0", + "token-types": "^5.0.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "node_modules/open-cli/node_modules/find-up": { + "version": "6.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/hosted-git-info": { + "version": "5.2.1", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^7.5.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/open-cli/node_modules/indent-string": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/locate-path": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/lru-cache": { + "version": "7.18.3", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/open-cli/node_modules/meow": { + "version": "11.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.2", + "camelcase-keys": "^8.0.2", + "decamelize": "^6.0.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^4.0.1", + "read-pkg-up": "^9.1.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^3.1.0", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/normalize-package-data": { + "version": "4.0.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^5.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/open-cli/node_modules/p-limit": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/p-locate": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/parse-json": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/path-exists": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/open-cli/node_modules/peek-readable": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/open-cli/node_modules/quick-lru": { + "version": "6.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/read-pkg": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^2.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/read-pkg-up": { + "version": "9.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^6.3.0", + "read-pkg": "^7.1.0", + "type-fest": "^2.5.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "2.19.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/open-cli/node_modules/read-pkg/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/open-cli/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "3.0.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/open-cli/node_modules/read-pkg/node_modules/type-fest": { + "version": "2.19.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/redent": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/strip-indent": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/strtok3": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/open-cli/node_modules/token-types": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/open-cli/node_modules/trim-newlines": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/type-fest": { + "version": "3.13.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/open-cli/node_modules/yargs-parser": { + "version": "21.1.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/open-cli/node_modules/yocto-queue": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/opener": { "version": "1.5.2", "dev": true, @@ -14381,16 +15926,16 @@ } }, "node_modules/optionator": { - "version": "0.9.1", + "version": "0.9.3", "dev": true, "license": "MIT", "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -14418,7 +15963,6 @@ }, "node_modules/os-tmpdir": { "version": "1.0.2", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -14458,7 +16002,6 @@ }, "node_modules/p-defer": { "version": "3.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -14466,7 +16009,6 @@ }, "node_modules/p-fifo": { "version": "1.0.0", - "dev": true, "license": "MIT", "dependencies": { "fast-fifo": "^1.0.0", @@ -14475,34 +16017,38 @@ }, "node_modules/p-finally": { "version": "1.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/p-limit": { - "version": "2.3.0", + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "3.0.0", + "version": "5.0.0", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^2.0.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-map": { @@ -14601,12 +16147,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-some": { - "version": "5.0.0", + "node_modules/p-settle/node_modules/p-limit": { + "version": "2.3.0", "dev": true, "license": "MIT", "dependencies": { - "aggregate-error": "^3.0.0", + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-some": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0", "p-cancelable": "^2.0.0" }, "engines": { @@ -14632,6 +16192,10 @@ "node": ">=6" } }, + "node_modules/p-try-each": { + "version": "1.0.1", + "license": "MIT" + }, "node_modules/p-waterfall": { "version": "1.0.0", "dev": true, @@ -14643,8 +16207,97 @@ "node": ">=4" } }, + "node_modules/pac-proxy-agent": { + "version": "6.0.3", + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "pac-resolver": "^6.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/agent-base": { + "version": "7.1.0", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/http-proxy-agent": { + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.1", + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/ip": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/pac-proxy-agent/node_modules/socks": { + "version": "2.7.1", + "license": "MIT", + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/pac-proxy-agent/node_modules/socks-proxy-agent": { + "version": "8.0.1", + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.1", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "6.0.2", + "license": "MIT", + "dependencies": { + "degenerator": "^4.0.4", + "ip": "^1.1.8", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/pako": { "version": "1.0.11", + "dev": true, "license": "(MIT AND Zlib)" }, "node_modules/parallel-transform": { @@ -14657,8 +16310,13 @@ "readable-stream": "^2.1.5" } }, + "node_modules/parallel-transform/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/parallel-transform/node_modules/readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "license": "MIT", "dependencies": { @@ -14671,11 +16329,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/parallel-transform/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, "node_modules/parallel-transform/node_modules/string_decoder": { "version": "1.1.1", "dev": true, @@ -14686,7 +16339,6 @@ }, "node_modules/parent-module": { "version": "1.0.1", - "dev": true, "license": "MIT", "dependencies": { "callsites": "^3.0.0" @@ -14695,20 +16347,8 @@ "node": ">=6" } }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "license": "ISC", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, "node_modules/parse-duration": { - "version": "1.0.2", - "dev": true, + "version": "1.1.0", "license": "MIT" }, "node_modules/parse-github-repo-url": { @@ -14716,10 +16356,6 @@ "dev": true, "license": "MIT" }, - "node_modules/parse-headers": { - "version": "2.0.5", - "license": "MIT" - }, "node_modules/parse-json": { "version": "4.0.0", "dev": true, @@ -14733,7 +16369,7 @@ } }, "node_modules/parse-path": { - "version": "4.0.3", + "version": "4.0.4", "dev": true, "license": "MIT", "dependencies": { @@ -14743,8 +16379,13 @@ "query-string": "^6.13.8" } }, + "node_modules/parse-path/node_modules/protocols": { + "version": "1.4.8", + "dev": true, + "license": "MIT" + }, "node_modules/parse-url": { - "version": "6.0.0", + "version": "6.0.5", "dev": true, "license": "MIT", "dependencies": { @@ -14754,6 +16395,11 @@ "protocols": "^1.4.0" } }, + "node_modules/parse-url/node_modules/protocols": { + "version": "1.4.8", + "dev": true, + "license": "MIT" + }, "node_modules/parseurl": { "version": "1.3.3", "license": "MIT", @@ -14775,16 +16421,15 @@ "license": "MIT" }, "node_modules/path-exists": { - "version": "3.0.0", + "version": "4.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "devOptional": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -14798,6 +16443,56 @@ "node": ">=8" } }, + "node_modules/path-loader": { + "version": "1.0.12", + "license": "MIT", + "dependencies": { + "native-promise-only": "^0.8.1", + "superagent": "^7.1.6" + } + }, + "node_modules/path-loader/node_modules/form-data": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/path-loader/node_modules/mime": { + "version": "2.6.0", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/path-loader/node_modules/superagent": { + "version": "7.1.6", + "license": "MIT", + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.3", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.0.1", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.10.3", + "readable-stream": "^3.6.0", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, "node_modules/path-parse": { "version": "1.0.7", "dev": true, @@ -14809,7 +16504,6 @@ }, "node_modules/path-type": { "version": "4.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -14823,18 +16517,15 @@ "node": "*" } }, - "node_modules/pbkdf2": { - "version": "3.1.2", + "node_modules/peek-readable": { + "version": "4.1.0", "license": "MIT", - "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": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" } }, "node_modules/peer-id": { @@ -14891,8 +16582,13 @@ "node": ">=5.10.0" } }, + "node_modules/pend": { + "version": "1.2.0", + "license": "MIT" + }, "node_modules/performance-now": { "version": "2.1.0", + "dev": true, "license": "MIT" }, "node_modules/picomatch": { @@ -14906,6 +16602,17 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pidtree": { + "version": "0.3.1", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/pify": { "version": "4.0.1", "dev": true, @@ -14933,6 +16640,112 @@ "node": ">=0.10.0" } }, + "node_modules/pino": { + "version": "6.14.0", + "license": "MIT", + "dependencies": { + "fast-redact": "^3.0.0", + "fast-safe-stringify": "^2.0.8", + "flatstr": "^1.0.12", + "pino-std-serializers": "^3.1.0", + "process-warning": "^1.0.0", + "quick-format-unescaped": "^4.0.3", + "sonic-boom": "^1.0.2" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-pretty": { + "version": "4.8.0", + "license": "MIT", + "dependencies": { + "@hapi/bourne": "^2.0.0", + "args": "^5.0.1", + "chalk": "^4.0.0", + "dateformat": "^4.5.1", + "fast-safe-stringify": "^2.0.7", + "jmespath": "^0.15.0", + "joycon": "^2.2.5", + "pump": "^3.0.0", + "readable-stream": "^3.6.0", + "rfdc": "^1.3.0", + "split2": "^3.1.1", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "pino-pretty": "bin.js" + } + }, + "node_modules/pino-pretty/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pino-pretty/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "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/pino-pretty/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/pino-pretty/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/pino-pretty/node_modules/dateformat": { + "version": "4.6.3", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/pino-pretty/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pino-pretty/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pino-std-serializers": { + "version": "3.2.0", + "license": "MIT" + }, "node_modules/pkg-dir": { "version": "3.0.0", "dev": true, @@ -14944,6 +16757,62 @@ "node": ">=6" } }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/posix-character-classes": { "version": "0.1.1", "dev": true, @@ -14960,15 +16829,22 @@ "node": ">= 0.8.0" } }, - "node_modules/prepend-http": { - "version": "2.0.0", + "node_modules/prettier": { + "version": "2.8.8", + "dev": true, "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, "engines": { - "node": ">=4" + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, "node_modules/private-ip": { - "version": "2.3.3", + "version": "2.3.4", "dev": true, "license": "MIT", "dependencies": { @@ -14997,17 +16873,21 @@ "node": ">=8" } }, - "node_modules/process": { - "version": "0.11.10", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/process-nextick-args": { "version": "2.0.1", "license": "MIT" }, + "node_modules/process-warning": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/promise-inflight": { "version": "1.0.1", "dev": true, @@ -15085,8 +16965,7 @@ "license": "ISC" }, "node_modules/protobufjs": { - "version": "6.11.2", - "dev": true, + "version": "6.11.3", "hasInstallScript": true, "license": "BSD-3-Clause", "dependencies": { @@ -15115,7 +16994,7 @@ "license": "MIT" }, "node_modules/protocols": { - "version": "1.4.8", + "version": "2.0.1", "dev": true, "license": "MIT" }, @@ -15184,26 +17063,103 @@ "node": ">= 0.10" } }, - "node_modules/pseudomap": { - "version": "1.0.2", - "license": "ISC" + "node_modules/proxy-agent": { + "version": "6.2.1", + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^6.0.3", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": ">= 14" + } }, - "node_modules/psl": { - "version": "1.8.0", + "node_modules/proxy-agent/node_modules/agent-base": { + "version": "7.1.0", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/http-proxy-agent": { + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.1", + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/ip": { + "version": "2.0.0", "license": "MIT" }, - "node_modules/public-encrypt": { - "version": "4.0.3", + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/proxy-agent/node_modules/socks": { + "version": "2.7.1", "license": "MIT", "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/proxy-agent/node_modules/socks-proxy-agent": { + "version": "8.0.1", + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.1", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "license": "ISC" + }, + "node_modules/psl": { + "version": "1.9.0", + "dev": true, + "license": "MIT" + }, "node_modules/pump": { "version": "3.0.0", "license": "MIT", @@ -15232,12 +17188,113 @@ } }, "node_modules/punycode": { - "version": "2.1.1", + "version": "2.3.0", "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/puppeteer": { + "version": "20.8.0", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "1.4.3", + "cosmiconfig": "8.2.0", + "puppeteer-core": "20.8.0" + }, + "engines": { + "node": ">=16.3.0" + } + }, + "node_modules/puppeteer-core": { + "version": "20.8.0", + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "1.4.3", + "chromium-bidi": "0.4.16", + "cross-fetch": "4.0.0", + "debug": "4.3.4", + "devtools-protocol": "0.0.1135028", + "ws": "8.13.0" + }, + "engines": { + "node": ">=16.3.0" + }, + "peerDependencies": { + "typescript": ">= 4.7.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/puppeteer-core/node_modules/ws": { + "version": "8.13.0", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/puppeteer/node_modules/argparse": { + "version": "2.0.1", + "license": "Python-2.0" + }, + "node_modules/puppeteer/node_modules/cosmiconfig": { + "version": "8.2.0", + "license": "MIT", + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/puppeteer/node_modules/js-yaml": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/puppeteer/node_modules/parse-json": { + "version": "5.2.0", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/q": { "version": "1.5.1", "dev": true, @@ -15248,7 +17305,7 @@ } }, "node_modules/qs": { - "version": "6.10.3", + "version": "6.11.2", "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" @@ -15296,6 +17353,14 @@ ], "license": "MIT" }, + "node_modules/queue-tick": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "license": "MIT" + }, "node_modules/quick-lru": { "version": "4.0.1", "dev": true, @@ -15329,19 +17394,12 @@ }, "node_modules/randombytes": { "version": "2.1.0", + "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, - "node_modules/randomfill": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, "node_modules/range-parser": { "version": "1.2.1", "license": "MIT", @@ -15368,8 +17426,7 @@ "license": "MIT" }, "node_modules/react-native-fetch-api": { - "version": "2.0.0", - "dev": true, + "version": "3.0.0", "license": "MIT", "dependencies": { "p-defer": "^3.0.0" @@ -15493,6 +17550,14 @@ "node": ">=4" } }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/read-pkg/node_modules/load-json-file": { "version": "4.0.0", "dev": true, @@ -15527,7 +17592,7 @@ } }, "node_modules/readable-stream": { - "version": "3.6.0", + "version": "3.6.2", "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -15538,6 +17603,20 @@ "node": ">= 6" } }, + "node_modules/readable-web-to-node-stream": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/readdir-scoped-modules": { "version": "1.1.0", "dev": true, @@ -15562,7 +17641,6 @@ }, "node_modules/receptacle": { "version": "1.3.2", - "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.1" @@ -15580,6 +17658,13 @@ "node": ">=8" } }, + "node_modules/reduce-flatten": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/regex-not": { "version": "1.0.2", "dev": true, @@ -15593,12 +17678,13 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.4.3", + "version": "1.5.0", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -15607,17 +17693,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/repeat-element": { "version": "1.1.4", "dev": true, @@ -15647,6 +17722,7 @@ }, "node_modules/request": { "version": "2.88.2", + "dev": true, "license": "Apache-2.0", "dependencies": { "aws-sign2": "~0.7.0", @@ -15676,6 +17752,7 @@ }, "node_modules/request/node_modules/form-data": { "version": "2.3.3", + "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", @@ -15688,6 +17765,7 @@ }, "node_modules/request/node_modules/qs": { "version": "6.5.3", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.6" @@ -15695,6 +17773,7 @@ }, "node_modules/request/node_modules/uuid": { "version": "3.4.0", + "dev": true, "license": "MIT", "bin": { "uuid": "bin/uuid" @@ -15702,7 +17781,13 @@ }, "node_modules/require-directory": { "version": "2.1.1", - "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -15714,11 +17799,11 @@ "license": "ISC" }, "node_modules/resolve": { - "version": "1.22.0", + "version": "1.22.2", "dev": true, "license": "MIT", "dependencies": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.11.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -15750,7 +17835,6 @@ }, "node_modules/resolve-from": { "version": "4.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -15761,13 +17845,6 @@ "dev": true, "license": "MIT" }, - "node_modules/responselike": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, "node_modules/restore-cursor": { "version": "2.0.0", "dev": true, @@ -15790,7 +17867,6 @@ }, "node_modules/retimer": { "version": "3.0.0", - "dev": true, "license": "MIT" }, "node_modules/retry": { @@ -15810,6 +17886,10 @@ "node": ">=0.10.0" } }, + "node_modules/rfdc": { + "version": "1.3.0", + "license": "MIT" + }, "node_modules/rimraf": { "version": "3.0.2", "dev": true, @@ -15824,27 +17904,112 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ripemd160": { - "version": "2.0.2", + "node_modules/run-applescript": { + "version": "5.0.0", + "dev": true, "license": "MIT", "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/rlp": { - "version": "2.2.7", - "license": "MPL-2.0", + "node_modules/run-applescript/node_modules/execa": { + "version": "5.1.1", + "dev": true, + "license": "MIT", "dependencies": { - "bn.js": "^5.2.0" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, - "bin": { - "rlp": "bin/rlp" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/rlp/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" + "node_modules/run-applescript/node_modules/get-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/human-signals": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/run-applescript/node_modules/is-stream": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/run-applescript/node_modules/npm-run-path": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-applescript/node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/strip-final-newline": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, "node_modules/run-async": { "version": "2.4.1", @@ -15922,22 +18087,30 @@ "npm": ">=2.0.0" } }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, + "node_modules/safe-array-concat": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "version": "5.1.2", "license": "MIT" }, "node_modules/safe-json-stringify": { @@ -15953,6 +18126,26 @@ "ret": "~0.1.10" } }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-stable-stringify": { + "version": "2.4.3", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "license": "MIT" @@ -15970,12 +18163,9 @@ "dev": true, "license": "ISC" }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "license": "MIT" - }, "node_modules/secp256k1": { "version": "4.0.3", + "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -15988,7 +18178,7 @@ } }, "node_modules/semver": { - "version": "7.3.7", + "version": "7.5.4", "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -16126,20 +18316,6 @@ "node": ">= 0.8.0" } }, - "node_modules/servify": { - "version": "0.1.12", - "license": "MIT", - "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/set-blocking": { "version": "2.0.0", "dev": true, @@ -16194,25 +18370,10 @@ "node": ">=0.10.0" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "license": "MIT" - }, "node_modules/setprototypeof": { "version": "1.2.0", "license": "ISC" }, - "node_modules/sha.js": { - "version": "2.4.11", - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, "node_modules/shallow-clone": { "version": "3.0.1", "dev": true, @@ -16243,6 +18404,14 @@ "node": ">=8" } }, + "node_modules/shell-quote": { + "version": "1.8.1", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/side-channel": { "version": "1.0.4", "license": "MIT", @@ -16273,36 +18442,19 @@ "dev": true, "license": "MIT" }, - "node_modules/simple-concat": { - "version": "1.0.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/simple-get": { - "version": "2.8.2", + "node_modules/simple-swizzle": { + "version": "0.2.2", "license": "MIT", "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "is-arrayish": "^0.3.1" } }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "license": "MIT" + }, "node_modules/slash": { "version": "3.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -16318,7 +18470,6 @@ }, "node_modules/smart-buffer": { "version": "4.2.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 6.0.0", @@ -16515,22 +18666,49 @@ "node": ">=0.10.0" } }, + "node_modules/snappy": { + "version": "7.1.1", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@napi-rs/snappy-android-arm-eabi": "7.1.1", + "@napi-rs/snappy-android-arm64": "7.1.1", + "@napi-rs/snappy-darwin-arm64": "7.1.1", + "@napi-rs/snappy-darwin-x64": "7.1.1", + "@napi-rs/snappy-freebsd-x64": "7.1.1", + "@napi-rs/snappy-linux-arm-gnueabihf": "7.1.1", + "@napi-rs/snappy-linux-arm64-gnu": "7.1.1", + "@napi-rs/snappy-linux-arm64-musl": "7.1.1", + "@napi-rs/snappy-linux-x64-gnu": "7.1.1", + "@napi-rs/snappy-linux-x64-musl": "7.1.1", + "@napi-rs/snappy-win32-arm64-msvc": "7.1.1", + "@napi-rs/snappy-win32-ia32-msvc": "7.1.1", + "@napi-rs/snappy-win32-x64-msvc": "7.1.1" + } + }, "node_modules/socket.io-client": { - "version": "4.5.1", + "version": "4.7.1", "dev": true, "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", - "engine.io-client": "~6.2.1", - "socket.io-parser": "~4.2.0" + "engine.io-client": "~6.5.1", + "socket.io-parser": "~4.2.4" }, "engines": { "node": ">=10.0.0" } }, "node_modules/socket.io-parser": { - "version": "4.2.0", + "version": "4.2.4", "dev": true, "license": "MIT", "dependencies": { @@ -16585,6 +18763,52 @@ "es6-promise": "^4.0.3" } }, + "node_modules/socks/node_modules/ip": { + "version": "1.1.5", + "dev": true, + "license": "MIT" + }, + "node_modules/solc": { + "version": "0.8.20", + "license": "MIT", + "dependencies": { + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solc.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/solc/node_modules/commander": { + "version": "8.3.0", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/solc/node_modules/semver": { + "version": "5.7.2", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/sonic-boom": { + "version": "1.4.1", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0", + "flatstr": "^1.0.12" + } + }, "node_modules/sort-keys": { "version": "4.2.0", "dev": true, @@ -16601,7 +18825,7 @@ }, "node_modules/source-map": { "version": "0.6.1", - "dev": true, + "devOptional": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -16639,7 +18863,7 @@ "license": "ISC" }, "node_modules/spdx-correct": { - "version": "3.1.1", + "version": "3.2.0", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -16662,7 +18886,7 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.11", + "version": "3.0.13", "dev": true, "license": "CC0-1.0" }, @@ -16698,19 +18922,18 @@ }, "node_modules/split2": { "version": "3.2.2", - "dev": true, "license": "ISC", "dependencies": { "readable-stream": "^3.0.0" } }, "node_modules/sprintf-js": { - "version": "1.1.2", - "dev": true, + "version": "1.0.3", "license": "BSD-3-Clause" }, "node_modules/sshpk": { "version": "1.17.0", + "dev": true, "license": "MIT", "dependencies": { "asn1": "~0.2.3", @@ -16734,6 +18957,7 @@ }, "node_modules/sshpk/node_modules/jsbn": { "version": "0.1.1", + "dev": true, "license": "MIT" }, "node_modules/ssri": { @@ -16749,6 +18973,13 @@ "dev": true, "license": "MIT" }, + "node_modules/stack-trace": { + "version": "0.0.10", + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/static-extend": { "version": "0.1.2", "dev": true, @@ -16858,6 +19089,14 @@ "stream-shift": "^1.0.0" } }, + "node_modules/stream-events": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "stubs": "^3.0.0" + } + }, "node_modules/stream-shift": { "version": "1.0.1", "dev": true, @@ -16865,7 +19104,6 @@ }, "node_modules/stream-to-it": { "version": "0.2.4", - "dev": true, "license": "MIT", "dependencies": { "get-iterator": "^1.0.2" @@ -16880,9 +19118,17 @@ } }, "node_modules/streamsearch": { - "version": "0.1.2", + "version": "1.1.0", "engines": { - "node": ">=0.8.0" + "node": ">=10.0.0" + } + }, + "node_modules/streamx": { + "version": "2.15.0", + "license": "MIT", + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" } }, "node_modules/strict-uri-encode": { @@ -16900,6 +19146,24 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/string-width": { "version": "2.1.1", "dev": true, @@ -16931,25 +19195,59 @@ "node": ">=4" } }, + "node_modules/string.prototype.padend": { + "version": "3.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/string.prototype.trimend": { - "version": "1.0.5", + "version": "1.0.6", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.5", + "version": "1.0.6", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -16957,7 +19255,6 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -16983,22 +19280,14 @@ } }, "node_modules/strip-final-newline": { - "version": "2.0.0", + "version": "3.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=6" - } - }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "is-hex-prefixed": "1.0.0" + "node": ">=12" }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/strip-indent": { @@ -17014,7 +19303,6 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -17039,83 +19327,78 @@ "node": ">=4" } }, - "node_modules/superagent": { - "version": "3.8.3", - "dev": true, + "node_modules/strtok3": { + "version": "6.3.0", "license": "MIT", "dependencies": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.2.0", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.3.5" + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.1.0" }, "engines": { - "node": ">= 4.0" + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" } }, - "node_modules/superagent/node_modules/debug": { - "version": "3.2.7", + "node_modules/stubs": { + "version": "3.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/superagent": { + "version": "8.0.9", "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.1.2", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" } }, "node_modules/superagent/node_modules/form-data": { - "version": "2.5.1", + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" }, "engines": { - "node": ">= 0.12" - } - }, - "node_modules/superagent/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "node": ">= 6" } }, - "node_modules/superagent/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/superagent/node_modules/string_decoder": { - "version": "1.1.1", + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" } }, "node_modules/supports-color": { - "version": "7.2.0", - "dev": true, + "version": "5.5.0", "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -17129,127 +19412,53 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/swarm-js": { - "version": "0.1.40", - "license": "MIT", - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "node_modules/swarm-js/node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/swarm-js/node_modules/fs-extra": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/swarm-js/node_modules/get-stream": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } + "node_modules/swagger-ui-dist": { + "version": "5.1.0", + "license": "Apache-2.0" }, - "node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", + "node_modules/swagger-ui-express": { + "version": "4.6.3", "license": "MIT", "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" + "swagger-ui-dist": ">=4.11.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/is-plain-obj": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/swarm-js/node_modules/p-cancelable": { - "version": "0.3.0", - "license": "MIT", - "engines": { - "node": ">=4" + "node": ">= v0.10.32" + }, + "peerDependencies": { + "express": ">=4.0.0 || >=5.0.0-beta" } }, - "node_modules/swarm-js/node_modules/p-timeout": { - "version": "1.2.1", + "node_modules/table-layout": { + "version": "1.0.2", "license": "MIT", "dependencies": { - "p-finally": "^1.0.0" + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8.0.0" } }, - "node_modules/swarm-js/node_modules/prepend-http": { - "version": "1.0.4", + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/swarm-js/node_modules/url-parse-lax": { - "version": "1.0.0", + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", "license": "MIT", - "dependencies": { - "prepend-http": "^1.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/tar": { "version": "4.4.19", + "dev": true, "license": "ISC", "dependencies": { "chownr": "^1.1.4", @@ -17264,8 +19473,27 @@ "node": ">=4.5" } }, + "node_modules/tar-fs": { + "version": "3.0.3", + "license": "MIT", + "dependencies": { + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^3.1.0" + } + }, + "node_modules/tar-stream": { + "version": "3.1.6", + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, "node_modules/tar/node_modules/mkdirp": { "version": "0.5.6", + "dev": true, "license": "MIT", "dependencies": { "minimist": "^1.2.6" @@ -17274,6 +19502,25 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/tar/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/tcomb": { "version": "3.2.29", "dev": true, @@ -17287,6 +19534,57 @@ "tcomb": "^3.0.0" } }, + "node_modules/teeny-request": { + "version": "7.1.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/teeny-request/node_modules/agent-base": { + "version": "6.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/teeny-request/node_modules/http-proxy-agent": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/teeny-request/node_modules/https-proxy-agent": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/temp-dir": { "version": "1.0.0", "dev": true, @@ -17311,6 +19609,17 @@ "node": ">=4" } }, + "node_modules/temp-write/node_modules/make-dir": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/temp-write/node_modules/pify": { "version": "3.0.0", "dev": true, @@ -17327,6 +19636,66 @@ "uuid": "bin/uuid" } }, + "node_modules/tempy": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-stream": "^3.0.0", + "temp-dir": "^3.0.0", + "type-fest": "^2.12.2", + "unique-string": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/is-stream": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/temp-dir": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "2.19.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/text-extensions": { "version": "1.9.0", "dev": true, @@ -17335,6 +19704,10 @@ "node": ">=0.10" } }, + "node_modules/text-hex": { + "version": "1.0.0", + "license": "MIT" + }, "node_modules/text-table": { "version": "0.2.0", "dev": true, @@ -17361,7 +19734,6 @@ }, "node_modules/through": { "version": "2.3.8", - "dev": true, "license": "MIT" }, "node_modules/through2": { @@ -17386,13 +19758,6 @@ "lodash.throttle": "^4.1.1" } }, - "node_modules/timed-out": { - "version": "4.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/timeout-abort-controller": { "version": "1.1.1", "dev": true, @@ -17408,16 +19773,26 @@ "license": "MIT" }, "node_modules/timestamp-nano": { - "version": "1.0.0", + "version": "1.0.1", "dev": true, "license": "MIT", "engines": { "node": ">= 4.5.0" } }, + "node_modules/titleize": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/tmp": { "version": "0.0.33", - "dev": true, "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" @@ -17453,13 +19828,6 @@ "node": ">=0.10.0" } }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/to-regex": { "version": "3.0.2", "dev": true, @@ -17492,8 +19860,24 @@ "node": ">=0.6" } }, + "node_modules/token-types": { + "version": "4.2.1", + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/tough-cookie": { "version": "2.5.0", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.28", @@ -17519,6 +19903,13 @@ "node": ">=8" } }, + "node_modules/triple-beam": { + "version": "1.4.1", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/truncate-utf8-bytes": { "version": "1.0.2", "dev": true, @@ -17561,8 +19952,7 @@ } }, "node_modules/tslib": { - "version": "1.14.1", - "dev": true, + "version": "2.4.0", "license": "0BSD" }, "node_modules/tslint": { @@ -17595,56 +19985,6 @@ "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev" } }, - "node_modules/tslint/node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslint/node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/tslint/node_modules/chalk": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslint/node_modules/color-convert": { - "version": "1.9.3", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/tslint/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/tslint/node_modules/commander": { "version": "2.20.3", "dev": true, @@ -17660,37 +20000,6 @@ "node": ">=0.3.1" } }, - "node_modules/tslint/node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/tslint/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslint/node_modules/js-yaml": { - "version": "3.14.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/tslint/node_modules/mkdirp": { "version": "0.5.6", "dev": true, @@ -17704,7 +20013,7 @@ } }, "node_modules/tslint/node_modules/semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true, "license": "ISC", "peer": true, @@ -17712,24 +20021,12 @@ "semver": "bin/semver" } }, - "node_modules/tslint/node_modules/sprintf-js": { - "version": "1.0.3", + "node_modules/tslint/node_modules/tslib": { + "version": "1.14.1", "dev": true, - "license": "BSD-3-Clause", + "license": "0BSD", "peer": true }, - "node_modules/tslint/node_modules/supports-color": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/tslint/node_modules/tsutils": { "version": "2.29.0", "dev": true, @@ -17756,8 +20053,14 @@ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, "node_modules/tunnel-agent": { "version": "0.6.0", + "dev": true, "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" @@ -17768,12 +20071,9 @@ }, "node_modules/tweetnacl": { "version": "0.14.5", + "dev": true, "license": "Unlicense" }, - "node_modules/type": { - "version": "1.2.0", - "license": "ISC" - }, "node_modules/type-check": { "version": "0.4.0", "dev": true, @@ -17815,21 +20115,32 @@ "node": ">= 0.6" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "dev": true, - "license": "MIT" + "node_modules/type-is/node_modules/media-typer": { + "version": "0.3.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", + "node_modules/typed-array-length": { + "version": "1.0.4", + "dev": true, "license": "MIT", "dependencies": { - "is-typedarray": "^1.0.0" + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typedarray": { + "version": "0.0.6", + "license": "MIT" + }, "node_modules/typescript": { - "version": "4.6.4", - "dev": true, + "version": "4.9.5", "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -17848,6 +20159,11 @@ "tslint-sonarts": "^1.8.0" } }, + "node_modules/typestrict/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, "node_modules/typestrict/node_modules/tslint-microsoft-contrib": { "version": "5.2.1", "dev": true, @@ -17902,8 +20218,15 @@ "node": ">=4.2.0" } }, + "node_modules/typical": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/uglify-js": { - "version": "3.15.5", + "version": "3.17.4", "dev": true, "license": "BSD-2-Clause", "optional": true, @@ -17933,17 +20256,12 @@ } }, "node_modules/uint8arrays": { - "version": "3.0.0", - "dev": true, + "version": "3.1.1", "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } }, - "node_modules/ultron": { - "version": "1.1.1", - "license": "MIT" - }, "node_modules/umask": { "version": "1.1.0", "dev": true, @@ -17951,6 +20269,7 @@ }, "node_modules/unbox-primitive": { "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -17962,6 +20281,36 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "license": "MIT", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/unbzip2-stream/node_modules/buffer": { + "version": "5.7.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/union-value": { "version": "1.0.1", "dev": true, @@ -18000,6 +20349,20 @@ "imurmurhash": "^0.1.4" } }, + "node_modules/unique-string": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/universal-user-agent": { "version": "4.0.1", "dev": true, @@ -18071,6 +20434,19 @@ "node": ">=0.10.0" } }, + "node_modules/unset-value/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/untildify": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/upath": { "version": "1.2.0", "dev": true, @@ -18087,30 +20463,45 @@ "punycode": "^2.1.0" } }, - "node_modules/urix": { - "version": "0.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", + "node_modules/uri-to-multiaddr": { + "version": "6.0.0", "license": "MIT", "dependencies": { - "prepend-http": "^2.0.0" + "is-ip": "^3.1.0", + "multiaddr": "^10.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/url-set-query": { - "version": "1.0.0", - "license": "MIT" + "node_modules/uri-to-multiaddr/node_modules/ip-regex": { + "version": "4.3.0", + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/url-to-options": { - "version": "1.0.1", + "node_modules/uri-to-multiaddr/node_modules/is-ip": { + "version": "3.1.0", "license": "MIT", + "dependencies": { + "ip-regex": "^4.0.0" + }, "engines": { - "node": ">= 4" + "node": ">=8" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/urlgrey": { + "version": "1.0.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "fast-url-parser": "^1.1.3" } }, "node_modules/ursa-optional": { @@ -18135,9 +20526,10 @@ } }, "node_modules/utf-8-validate": { - "version": "5.0.9", + "version": "5.0.10", "hasInstallScript": true, "license": "MIT", + "optional": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -18145,27 +20537,11 @@ "node": ">=6.14.2" } }, - "node_modules/utf8": { - "version": "3.0.0", - "license": "MIT" - }, "node_modules/utf8-byte-length": { "version": "1.0.4", "dev": true, "license": "WTFPL" }, - "node_modules/util": { - "version": "0.12.4", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "license": "MIT" @@ -18193,10 +20569,18 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", + "node_modules/v8-to-istanbul": { + "version": "9.1.0", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } }, "node_modules/validate-npm-package-license": { "version": "3.0.4", @@ -18216,7 +20600,8 @@ } }, "node_modules/validator": { - "version": "13.7.0", + "version": "13.9.0", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.10" @@ -18252,6 +20637,7 @@ }, "node_modules/verror": { "version": "1.10.0", + "dev": true, "engines": [ "node >=0.6.0" ], @@ -18262,371 +20648,26 @@ "extsprintf": "^1.2.0" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/web-encoding": { - "version": "1.1.5", - "license": "MIT", - "dependencies": { - "util": "^0.12.3" - }, - "optionalDependencies": { - "@zxing/text-encoding": "0.9.0" - } - }, - "node_modules/web3": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "node_modules/web3-core": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-helpers": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-method": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-promievent": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-promievent/node_modules/eventemitter3": { - "version": "4.0.4", - "license": "MIT" - }, - "node_modules/web3-core-requestmanager": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-subscriptions": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-subscriptions/node_modules/eventemitter3": { - "version": "4.0.4", - "license": "MIT" - }, - "node_modules/web3-core/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "node_modules/web3-eth": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-abi": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-abi/node_modules/@ethersproject/abi": { - "version": "5.0.7", + "node_modules/vm2": { + "version": "3.9.19", "license": "MIT", "dependencies": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "node_modules/web3-eth-accounts": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" + "acorn": "^8.7.0", + "acorn-walk": "^8.2.0" }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", - "license": "MIT", "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/web3-eth-contract": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-ens": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-iban": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "node_modules/web3-net": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-http": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ipc": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws/node_modules/eventemitter3": { - "version": "4.0.4", - "license": "MIT" - }, - "node_modules/web3-shh": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" + "vm2": "bin/vm2" }, "engines": { - "node": ">=8.0.0" + "node": ">=6.0" } }, - "node_modules/web3-utils": { - "version": "1.7.3", - "license": "LGPL-3.0", + "node_modules/wcwidth": { + "version": "1.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" + "defaults": "^1.0.3" } }, "node_modules/webidl-conversions": { @@ -18634,32 +20675,6 @@ "dev": true, "license": "BSD-2-Clause" }, - "node_modules/websocket": { - "version": "1.0.34", - "license": "Apache-2.0", - "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", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/websocket/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, "node_modules/whatwg-url": { "version": "7.1.0", "dev": true, @@ -18698,6 +20713,7 @@ }, "node_modules/which-boxed-primitive": { "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", @@ -18711,20 +20727,21 @@ } }, "node_modules/which-module": { - "version": "2.0.0", + "version": "2.0.1", "dev": true, "license": "ISC" }, "node_modules/which-typed-array": { - "version": "1.1.8", + "version": "1.1.10", + "dev": true, "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", "for-each": "^0.3.3", + "gopd": "^1.0.1", "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" + "is-typed-array": "^1.1.10" }, "engines": { "node": ">= 0.4" @@ -18755,9 +20772,63 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/winston": { + "version": "3.10.0", + "license": "MIT", + "dependencies": { + "@colors/colors": "1.5.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.5.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-loki": { + "version": "6.0.6", + "license": "MIT", + "dependencies": { + "async-exit-hook": "2.0.1", + "btoa": "^1.2.1", + "protobufjs": "^6.8.8", + "winston-transport": "^4.3.0" + }, + "optionalDependencies": { + "snappy": "7.1.1" + } + }, + "node_modules/winston-transport": { + "version": "4.5.0", + "license": "MIT", + "dependencies": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 6.4.0" + } + }, + "node_modules/winston/node_modules/is-stream": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/word-wrap": { "version": "1.2.3", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -18768,73 +20839,87 @@ "dev": true, "license": "MIT" }, - "node_modules/wrap-ansi": { - "version": "5.1.0", - "dev": true, + "node_modules/wordwrapjs": { + "version": "4.0.1", "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" }, "engines": { - "node": ">=6" + "node": ">=8.0.0" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "4.1.1", - "dev": true, + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", "license": "MIT", "engines": { - "node": ">=6" + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, + "version": "4.3.0", "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "1.9.3", - "dev": true, + "version": "2.0.1", "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.3", - "dev": true, + "version": "1.1.4", "license": "MIT" }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "3.1.0", - "dev": true, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", "license": "MIT", - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "5.2.0", - "dev": true, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", "license": "MIT", "dependencies": { - "ansi-regex": "^4.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/wrappy": { @@ -18888,7 +20973,7 @@ } }, "node_modules/write-json-file/node_modules/semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true, "license": "ISC", "bin": { @@ -18926,6 +21011,17 @@ "node": ">=0.10.0" } }, + "node_modules/write-pkg/node_modules/make-dir": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/write-pkg/node_modules/pify": { "version": "3.0.0", "dev": true, @@ -18963,6 +21059,7 @@ }, "node_modules/ws": { "version": "7.4.6", + "dev": true, "license": "MIT", "engines": { "node": ">=8.3.0" @@ -18980,64 +21077,8 @@ } } }, - "node_modules/xhr": { - "version": "2.6.0", - "license": "MIT", - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xhr-request": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "node_modules/xhr-request-promise": { - "version": "0.1.3", - "license": "MIT", - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "node_modules/xhr-request/node_modules/query-string": { - "version": "5.1.1", - "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/xhr-request/node_modules/strict-uri-encode": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/xhr2-cookies": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "cookiejar": "^2.1.1" - } - }, "node_modules/xml2js": { - "version": "0.4.23", + "version": "0.5.0", "dev": true, "license": "MIT", "dependencies": { @@ -19080,33 +21121,38 @@ "dev": true, "license": "ISC" }, - "node_modules/yaeti": { - "version": "0.0.6", - "license": "MIT", - "engines": { - "node": ">=0.10.32" - } - }, "node_modules/yallist": { "version": "3.1.1", + "dev": true, "license": "ISC" }, + "node_modules/yamljs": { + "version": "0.3.0", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "glob": "^7.0.5" + }, + "bin": { + "json2yaml": "bin/json2yaml", + "yaml2json": "bin/yaml2json" + } + }, "node_modules/yargs": { - "version": "14.2.3", + "version": "16.2.0", "dev": true, "license": "MIT", "dependencies": { - "cliui": "^5.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^15.0.1" + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" } }, "node_modules/yargs-parser": { @@ -19138,10 +21184,76 @@ "node": ">=6" } }, - "node_modules/yargs-unparser/node_modules/string-width": { - "version": "3.1.0", + "node_modules/yargs-unparser/node_modules/cliui": { + "version": "5.0.0", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/yargs-unparser/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs-unparser/node_modules/string-width": { + "version": "3.1.0", + "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -19162,6 +21274,19 @@ "node": ">=6" } }, + "node_modules/yargs-unparser/node_modules/wrap-ansi": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/yargs-unparser/node_modules/yargs": { "version": "13.3.2", "dev": true, @@ -19188,45 +21313,46 @@ "decamelize": "^1.2.0" } }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "4.1.1", + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/yargs/node_modules/string-width": { - "version": "3.1.0", + "version": "4.2.3", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "5.2.0", + "node_modules/yargs/node_modules/y18n": { + "version": "5.0.8", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, + "license": "ISC", "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "15.0.3", - "dev": true, - "license": "ISC", + "node_modules/yauzl": { + "version": "2.10.0", + "license": "MIT", "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" } }, "node_modules/yn": { @@ -19237,495 +21363,362 @@ "node": ">=6" } }, - "services/core": { - "name": "@ethereum-sourcify/core", - "version": "0.2.10", + "node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, "license": "MIT", - "dependencies": { - "bunyan": "^1.8.15", - "cbor": "^5.1.0", - "directory-tree": "^2.2.4", - "node-fetch": "^2.6.1", - "rimraf": "^3.0.2", - "semver": "^7.3.7", - "web3": "^1.3.0" - }, - "bin": { - "sourcify-core": "build/index.js" + "engines": { + "node": ">=10" }, - "devDependencies": { - "@types/bunyan": "^1.8.6", - "@types/cbor": "^5.0.1", - "@types/node-fetch": "^2.5.7", - "@types/rimraf": "^3.0.2", - "@types/semver": "^7.3.10", - "typescript": "^4.0.2" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/@ethereumjs/common": { - "version": "2.6.4", + "packages/bytecode-utils": { + "name": "@ethereum-sourcify/bytecode-utils", + "version": "1.1.0", "license": "MIT", "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" - } - }, - "services/core/node_modules/@ethereumjs/tx": { - "version": "3.5.1", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" + "@ethersproject/bytes": "^5.7.0", + "@types/node": "^18.11.9", + "bs58": "^5.0.0", + "cbor-x": "^1.4.1" + }, + "devDependencies": { + "@ava/typescript": "^1.1.1", + "@typescript-eslint/eslint-plugin": "^4.0.1", + "@typescript-eslint/parser": "^4.0.1", + "ava": "^3.12.1", + "c8": "^8.0.0", + "codecov": "^3.5.0", + "cz-conventional-changelog": "^3.3.0", + "eslint": "^7.8.0", + "eslint-config-prettier": "^6.11.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-functional": "^3.0.2", + "eslint-plugin-import": "^2.22.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.1.1", + "ts-node": "^9.0.0", + "typescript": "^4.9.3" + }, + "engines": { + "node": ">=10" } }, - "services/core/node_modules/@ethersproject/abi": { - "version": "5.0.7", + "packages/bytecode-utils/node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true, "license": "MIT", - "dependencies": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" + "engines": { + "node": ">=0.10.0" } }, - "services/core/node_modules/@ethersproject/abstract-provider": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/@ava/typescript": { + "version": "1.1.1", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=13.5.0" } }, - "services/core/node_modules/@ethersproject/abstract-signer": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/@babel/code-frame": { + "version": "7.12.11", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" + "@babel/highlight": "^7.10.4" } }, - "services/core/node_modules/@ethersproject/address": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "dev": true, "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" + "engines": { + "node": ">=6.9.0" } }, - "services/core/node_modules/@ethersproject/base64": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/@babel/highlight": { + "version": "7.22.5", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.6.0" + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "services/core/node_modules/@ethersproject/bignumber": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "services/core/node_modules/@ethersproject/bytes": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.6.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "services/core/node_modules/@ethersproject/constants": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0" + "engines": { + "node": ">=0.8.0" } }, - "services/core/node_modules/@ethersproject/hash": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "engines": { + "node": ">=4" } }, - "services/core/node_modules/@ethersproject/keccak256": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "services/core/node_modules/@ethersproject/logger": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true, "license": "MIT" }, - "services/core/node_modules/@ethersproject/networks": { - "version": "5.6.2", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } + "packages/bytecode-utils/node_modules/@cbor-extract/cbor-extract-darwin-arm64": { + "version": "2.1.1", + "cpu": [ + "arm64" ], "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } + "optional": true, + "os": [ + "darwin" + ] }, - "services/core/node_modules/@ethersproject/properties": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/@commitlint/config-validator": { + "version": "17.4.4", + "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/logger": "^5.6.0" + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v14" } }, - "services/core/node_modules/@ethersproject/rlp": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/@commitlint/execute-rule": { + "version": "17.4.0", + "dev": true, "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" + "optional": true, + "engines": { + "node": ">=v14" } }, - "services/core/node_modules/@ethersproject/signing-key": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/@commitlint/load": { + "version": "17.5.0", + "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" + "@commitlint/config-validator": "^17.4.4", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.4.4", + "@commitlint/types": "^17.4.4", + "@types/node": "*", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + }, + "engines": { + "node": ">=v14" } }, - "services/core/node_modules/@ethersproject/strings": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/@commitlint/load/node_modules/cosmiconfig-typescript-loader": { + "version": "4.3.0", + "dev": true, "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" + "optional": true, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=7", + "ts-node": ">=10", + "typescript": ">=3" } }, - "services/core/node_modules/@ethersproject/transactions": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/@commitlint/load/node_modules/ts-node": { + "version": "10.9.1", + "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "services/core/node_modules/@ethersproject/web": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "@swc/wasm": { + "optional": true } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "services/core/node_modules/@sindresorhus/is": { - "version": "0.14.0", - "license": "MIT", - "engines": { - "node": ">=6" } }, - "services/core/node_modules/@szmarczak/http-timer": { - "version": "1.1.2", + "packages/bytecode-utils/node_modules/@commitlint/resolve-extends": { + "version": "17.4.4", + "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "defer-to-connect": "^1.0.1" + "@commitlint/config-validator": "^17.4.4", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" }, "engines": { - "node": ">=6" - } - }, - "services/core/node_modules/@types/bn.js": { - "version": "4.11.6", - "license": "MIT", - "dependencies": { - "@types/node": "*" + "node": ">=v14" } }, - "services/core/node_modules/@types/bunyan": { - "version": "1.8.8", + "packages/bytecode-utils/node_modules/@commitlint/types": { + "version": "17.4.4", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "@types/node": "*" + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" } }, - "services/core/node_modules/@types/cbor": { - "version": "5.0.1", + "packages/bytecode-utils/node_modules/@concordance/react": { + "version": "2.0.0", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@types/node": "*" + "arrify": "^1.0.1" + }, + "engines": { + "node": ">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0" } }, - "services/core/node_modules/@types/glob": { - "version": "7.2.0", + "packages/bytecode-utils/node_modules/@concordance/react/node_modules/arrify": { + "version": "1.0.1", "dev": true, "license": "MIT", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" + "engines": { + "node": ">=0.10.0" } }, - "services/core/node_modules/@types/minimatch": { - "version": "3.0.5", - "dev": true, - "license": "MIT" - }, - "services/core/node_modules/@types/node": { - "version": "17.0.34", - "license": "MIT" - }, - "services/core/node_modules/@types/node-fetch": { - "version": "2.6.1", + "packages/bytecode-utils/node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "services/core/node_modules/@types/pbkdf2": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "@types/node": "*" + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" } }, - "services/core/node_modules/@types/rimraf": { - "version": "3.0.2", + "packages/bytecode-utils/node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "@types/glob": "*", - "@types/node": "*" - } - }, - "services/core/node_modules/@types/secp256k1": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "@types/node": "*" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "services/core/node_modules/accepts": { - "version": "1.3.8", + "packages/bytecode-utils/node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "dev": true, "license": "MIT", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">= 0.6" + "node": "^10.12.0 || >=12.0.0" } }, - "services/core/node_modules/ajv": { + "packages/bytecode-utils/node_modules/@eslint/eslintrc/node_modules/ajv": { "version": "6.12.6", + "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -19738,585 +21731,567 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "services/core/node_modules/array-flatten": { - "version": "1.1.1", - "license": "MIT" - }, - "services/core/node_modules/asn1": { - "version": "0.2.6", + "packages/bytecode-utils/node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "dev": true, "license": "MIT", - "dependencies": { - "safer-buffer": "~2.1.0" + "engines": { + "node": ">= 4" } }, - "services/core/node_modules/asn1.js": { - "version": "5.4.1", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "services/core/node_modules/assert-plus": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "services/core/node_modules/async-limiter": { - "version": "1.0.1", - "license": "MIT" - }, - "services/core/node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" - }, - "services/core/node_modules/available-typed-arrays": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "services/core/node_modules/aws-sign2": { - "version": "0.7.0", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "services/core/node_modules/aws4": { - "version": "1.11.0", - "license": "MIT" - }, - "services/core/node_modules/balanced-match": { - "version": "1.0.2", + "packages/bytecode-utils/node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, "license": "MIT" }, - "services/core/node_modules/base-x": { - "version": "3.0.9", + "packages/bytecode-utils/node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "safe-buffer": "^5.0.1" + "@ethersproject/logger": "^5.7.0" } }, - "services/core/node_modules/base64-js": { - "version": "1.5.1", + "packages/bytecode-utils/node_modules/@ethersproject/logger": { + "version": "5.7.0", "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } ], "license": "MIT" }, - "services/core/node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "license": "BSD-3-Clause", + "packages/bytecode-utils/node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "services/core/node_modules/bignumber.js": { - "version": "9.0.2", - "license": "MIT", + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, "engines": { - "node": "*" + "node": ">=10.10.0" } }, - "services/core/node_modules/blakejs": { + "packages/bytecode-utils/node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", - "license": "MIT" - }, - "services/core/node_modules/bluebird": { - "version": "3.7.2", - "license": "MIT" - }, - "services/core/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" + "dev": true, + "license": "BSD-3-Clause" }, - "services/core/node_modules/body-parser": { - "version": "1.20.0", + "packages/bytecode-utils/node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "dev": true, "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=8" } }, - "services/core/node_modules/brace-expansion": { - "version": "1.1.11", + "packages/bytecode-utils/node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "engines": { + "node": ">=6.0.0" } }, - "services/core/node_modules/brorand": { - "version": "1.1.0", + "packages/bytecode-utils/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true, "license": "MIT" }, - "services/core/node_modules/browserify-aes": { - "version": "1.2.0", + "packages/bytecode-utils/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, "license": "MIT", "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" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, - "services/core/node_modules/browserify-cipher": { - "version": "1.0.1", + "packages/bytecode-utils/node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, "license": "MIT", "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "services/core/node_modules/browserify-des": { - "version": "1.0.2", + "packages/bytecode-utils/node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true, "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "engines": { + "node": ">= 8" } }, - "services/core/node_modules/browserify-rsa": { - "version": "4.1.0", + "packages/bytecode-utils/node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "services/core/node_modules/browserify-rsa/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "services/core/node_modules/browserify-sign": { - "version": "4.2.1", - "license": "ISC", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "packages/bytecode-utils/node_modules/@sindresorhus/is": { + "version": "0.14.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" } }, - "services/core/node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "services/core/node_modules/bs58": { - "version": "4.0.1", + "packages/bytecode-utils/node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "dev": true, "license": "MIT", "dependencies": { - "base-x": "^3.0.2" + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" } }, - "services/core/node_modules/bs58check": { - "version": "2.1.2", + "packages/bytecode-utils/node_modules/@tootallnate/once": { + "version": "1.1.2", + "dev": true, "license": "MIT", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "engines": { + "node": ">= 6" } }, - "services/core/node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "packages/bytecode-utils/node_modules/@tsconfig/node10": { + "version": "1.0.9", + "dev": true, "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } + "optional": true }, - "services/core/node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "license": "MIT" + "packages/bytecode-utils/node_modules/@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "license": "MIT", + "optional": true }, - "services/core/node_modules/buffer-xor": { + "packages/bytecode-utils/node_modules/@tsconfig/node14": { "version": "1.0.3", + "dev": true, + "license": "MIT", + "optional": true + }, + "packages/bytecode-utils/node_modules/@tsconfig/node16": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "optional": true + }, + "packages/bytecode-utils/node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true, "license": "MIT" }, - "services/core/node_modules/bufferutil": { - "version": "4.0.6", - "hasInstallScript": true, + "packages/bytecode-utils/node_modules/@types/json-schema": { + "version": "7.0.12", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/@types/json5": { + "version": "0.0.29", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/@types/node": { + "version": "18.16.19", + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "dev": true, "license": "MIT", "dependencies": { - "node-gyp-build": "^4.3.0" + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "engines": { - "node": ">=6.14.2" - } - }, - "services/core/node_modules/bunyan": { - "version": "1.8.15", - "engines": [ - "node >=0.10.0" - ], - "license": "MIT", - "bin": { - "bunyan": "bin/bunyan" + "node": "^10.12.0 || >=12.0.0" }, - "optionalDependencies": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^4.0.0", + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "services/core/node_modules/bytes": { - "version": "3.1.2", + "packages/bytecode-utils/node_modules/@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "dev": true, "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, "engines": { - "node": ">= 0.8" + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" } }, - "services/core/node_modules/cacheable-request": { - "version": "6.1.0", - "license": "MIT", + "packages/bytecode-utils/node_modules/@typescript-eslint/parser": { + "version": "4.33.0", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" }, "engines": { - "node": ">=8" + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "services/core/node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", + "packages/bytecode-utils/node_modules/@typescript-eslint/scope-manager": { + "version": "4.33.0", + "dev": true, "license": "MIT", "dependencies": { - "pump": "^3.0.0" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" }, "engines": { - "node": ">=8" + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "services/core/node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", + "packages/bytecode-utils/node_modules/@typescript-eslint/types": { + "version": "4.33.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "services/core/node_modules/call-bind": { - "version": "1.0.2", - "license": "MIT", + "packages/bytecode-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "services/core/node_modules/caseless": { - "version": "0.12.0", - "license": "Apache-2.0" - }, - "services/core/node_modules/cbor": { - "version": "5.2.0", + "packages/bytecode-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "dev": true, "license": "MIT", "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">=6.0.0" + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "services/core/node_modules/chownr": { - "version": "1.1.4", - "license": "ISC" - }, - "services/core/node_modules/cids": { - "version": "0.7.5", + "packages/bytecode-utils/node_modules/acorn": { + "version": "8.10.0", + "dev": true, "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" + "node": ">=0.4.0" } }, - "services/core/node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", + "packages/bytecode-utils/node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, "license": "MIT", - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "services/core/node_modules/cipher-base": { - "version": "1.0.4", + "packages/bytecode-utils/node_modules/acorn-walk": { + "version": "8.2.0", + "dev": true, "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "engines": { + "node": ">=0.4.0" } }, - "services/core/node_modules/class-is": { - "version": "1.1.0", - "license": "MIT" - }, - "services/core/node_modules/clone-response": { - "version": "1.0.2", + "packages/bytecode-utils/node_modules/agent-base": { + "version": "6.0.2", + "dev": true, "license": "MIT", "dependencies": { - "mimic-response": "^1.0.0" + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" } }, - "services/core/node_modules/combined-stream": { - "version": "1.0.8", + "packages/bytecode-utils/node_modules/aggregate-error": { + "version": "3.1.0", + "dev": true, "license": "MIT", "dependencies": { - "delayed-stream": "~1.0.0" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "services/core/node_modules/concat-map": { - "version": "0.0.1", - "license": "MIT" - }, - "services/core/node_modules/content-disposition": { - "version": "0.5.4", + "packages/bytecode-utils/node_modules/ajv": { + "version": "8.12.0", + "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "5.2.1" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">= 0.6" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "services/core/node_modules/content-hash": { - "version": "2.5.2", + "packages/bytecode-utils/node_modules/ansi-align": { + "version": "3.0.1", + "dev": true, "license": "ISC", "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "services/core/node_modules/content-type": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">= 0.6" + "string-width": "^4.1.0" } }, - "services/core/node_modules/cookie": { - "version": "0.5.0", + "packages/bytecode-utils/node_modules/ansi-colors": { + "version": "4.1.3", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "services/core/node_modules/cookie-signature": { - "version": "1.0.6", - "license": "MIT" - }, - "services/core/node_modules/cookiejar": { - "version": "2.1.3", - "license": "MIT" - }, - "services/core/node_modules/core-util-is": { - "version": "1.0.2", - "license": "MIT" - }, - "services/core/node_modules/cors": { - "version": "2.8.5", + "packages/bytecode-utils/node_modules/ansi-escapes": { + "version": "4.3.2", + "dev": true, "license": "MIT", "dependencies": { - "object-assign": "^4", - "vary": "^1" + "type-fest": "^0.21.3" }, "engines": { - "node": ">= 0.10" - } - }, - "services/core/node_modules/crc-32": { - "version": "1.2.2", - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" + "node": ">=8" }, - "engines": { - "node": ">=0.8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/create-ecdh": { - "version": "4.0.4", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" + "packages/bytecode-utils/node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/create-hash": { - "version": "1.2.0", + "packages/bytecode-utils/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "engines": { + "node": ">=8" } }, - "services/core/node_modules/create-hmac": { - "version": "1.1.7", + "packages/bytecode-utils/node_modules/ansi-styles": { + "version": "5.2.0", + "dev": true, "license": "MIT", - "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" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "services/core/node_modules/crypto-browserify": { - "version": "3.12.0", - "license": "MIT", + "packages/bytecode-utils/node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": "*" + "node": ">= 8" } }, - "services/core/node_modules/d": { - "version": "1.0.1", - "license": "ISC", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } + "packages/bytecode-utils/node_modules/arg": { + "version": "4.1.3", + "dev": true, + "license": "MIT" }, - "services/core/node_modules/dashdash": { - "version": "1.14.1", + "packages/bytecode-utils/node_modules/argparse": { + "version": "1.0.10", + "dev": true, "license": "MIT", "dependencies": { - "assert-plus": "^1.0.0" - }, + "sprintf-js": "~1.0.2" + } + }, + "packages/bytecode-utils/node_modules/argv": { + "version": "0.0.2", + "dev": true, "engines": { - "node": ">=0.10" + "node": ">=0.6.10" } }, - "services/core/node_modules/debug": { - "version": "2.6.9", + "packages/bytecode-utils/node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "dev": true, "license": "MIT", "dependencies": { - "ms": "2.0.0" + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/decode-uri-component": { - "version": "0.2.0", + "packages/bytecode-utils/node_modules/array-find-index": { + "version": "1.0.2", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=0.10.0" } }, - "services/core/node_modules/decompress-response": { - "version": "3.3.0", + "packages/bytecode-utils/node_modules/array-includes": { + "version": "3.1.6", + "dev": true, "license": "MIT", "dependencies": { - "mimic-response": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/defer-to-connect": { - "version": "1.1.3", - "license": "MIT" + "packages/bytecode-utils/node_modules/array-union": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "services/core/node_modules/define-properties": { - "version": "1.1.4", + "packages/bytecode-utils/node_modules/array.prototype.flat": { + "version": "1.3.1", + "dev": true, "license": "MIT", "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -20325,839 +22300,953 @@ "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/delayed-stream": { - "version": "1.0.0", + "packages/bytecode-utils/node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "dev": true, "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, "engines": { - "node": ">=0.4.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/depd": { - "version": "2.0.0", + "packages/bytecode-utils/node_modules/arrgv": { + "version": "1.0.2", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" - } - }, - "services/core/node_modules/des.js": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "node": ">=8.0.0" } }, - "services/core/node_modules/destroy": { - "version": "1.2.0", + "packages/bytecode-utils/node_modules/arrify": { + "version": "2.0.1", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=8" } }, - "services/core/node_modules/diffie-hellman": { - "version": "5.0.3", + "packages/bytecode-utils/node_modules/astral-regex": { + "version": "2.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "engines": { + "node": ">=8" } }, - "services/core/node_modules/directory-tree": { - "version": "2.3.1", - "license": "MIT", + "packages/bytecode-utils/node_modules/at-least-node": { + "version": "1.0.0", + "dev": true, + "license": "ISC", "engines": { - "node": ">=10.0" + "node": ">= 4.0.0" } }, - "services/core/node_modules/dom-walk": { - "version": "0.1.2" - }, - "services/core/node_modules/dtrace-provider": { - "version": "0.8.8", - "hasInstallScript": true, - "license": "BSD-2-Clause", - "optional": true, + "packages/bytecode-utils/node_modules/ava": { + "version": "3.15.0", + "dev": true, + "license": "MIT", "dependencies": { - "nan": "^2.14.0" + "@concordance/react": "^2.0.0", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "ansi-styles": "^5.0.0", + "arrgv": "^1.0.2", + "arrify": "^2.0.1", + "callsites": "^3.1.0", + "chalk": "^4.1.0", + "chokidar": "^3.4.3", + "chunkd": "^2.0.1", + "ci-info": "^2.0.0", + "ci-parallel-vars": "^1.0.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "code-excerpt": "^3.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.1", + "convert-source-map": "^1.7.0", + "currently-unhandled": "^0.4.1", + "debug": "^4.3.1", + "del": "^6.0.0", + "emittery": "^0.8.0", + "equal-length": "^1.0.0", + "figures": "^3.2.0", + "globby": "^11.0.1", + "ignore-by-default": "^2.0.0", + "import-local": "^3.0.2", + "indent-string": "^4.0.0", + "is-error": "^2.2.2", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "lodash": "^4.17.20", + "matcher": "^3.0.0", + "md5-hex": "^3.0.1", + "mem": "^8.0.0", + "ms": "^2.1.3", + "ora": "^5.2.0", + "p-event": "^4.2.0", + "p-map": "^4.0.0", + "picomatch": "^2.2.2", + "pkg-conf": "^3.1.0", + "plur": "^4.0.0", + "pretty-ms": "^7.0.1", + "read-pkg": "^5.2.0", + "resolve-cwd": "^3.0.0", + "slash": "^3.0.0", + "source-map-support": "^0.5.19", + "stack-utils": "^2.0.3", + "strip-ansi": "^6.0.0", + "supertap": "^2.0.0", + "temp-dir": "^2.0.0", + "trim-off-newlines": "^1.0.1", + "update-notifier": "^5.0.1", + "write-file-atomic": "^3.0.3", + "yargs": "^16.2.0" + }, + "bin": { + "ava": "cli.js" }, "engines": { - "node": ">=0.10" + "node": ">=10.18.0 <11 || >=12.14.0 <12.17.0 || >=12.17.0 <13 || >=14.0.0 <15 || >=15" } }, - "services/core/node_modules/duplexer3": { - "version": "0.1.4", - "license": "BSD-3-Clause" - }, - "services/core/node_modules/ecc-jsbn": { - "version": "0.1.2", + "packages/bytecode-utils/node_modules/available-typed-arrays": { + "version": "1.0.5", + "dev": true, "license": "MIT", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/ee-first": { - "version": "1.1.1", + "packages/bytecode-utils/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, "license": "MIT" }, - "services/core/node_modules/elliptic": { - "version": "6.5.4", - "license": "MIT", - "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" - } + "packages/bytecode-utils/node_modules/base-x": { + "version": "4.0.0", + "license": "MIT" }, - "services/core/node_modules/encodeurl": { - "version": "1.0.2", + "packages/bytecode-utils/node_modules/base64-js": { + "version": "1.5.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/binary-extensions": { + "version": "2.2.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "services/core/node_modules/end-of-stream": { - "version": "1.4.4", + "packages/bytecode-utils/node_modules/bl": { + "version": "4.1.0", + "dev": true, "license": "MIT", "dependencies": { - "once": "^1.4.0" + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" } }, - "services/core/node_modules/es-abstract": { - "version": "1.20.1", + "packages/bytecode-utils/node_modules/blueimp-md5": { + "version": "2.19.0", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/boxen": { + "version": "5.1.2", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/es-to-primitive": { - "version": "1.2.1", + "packages/bytecode-utils/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, "license": "MIT", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "services/core/node_modules/es5-ext": { - "version": "0.10.61", - "hasInstallScript": true, - "license": "ISC", + "packages/bytecode-utils/node_modules/braces": { + "version": "3.0.2", + "dev": true, + "license": "MIT", "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" + "fill-range": "^7.0.1" }, "engines": { - "node": ">=0.10" + "node": ">=8" } }, - "services/core/node_modules/es6-iterator": { - "version": "2.0.3", + "packages/bytecode-utils/node_modules/bs58": { + "version": "5.0.0", "license": "MIT", "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "base-x": "^4.0.0" } }, - "services/core/node_modules/es6-symbol": { - "version": "3.1.3", - "license": "ISC", + "packages/bytecode-utils/node_modules/buffer": { + "version": "5.7.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "services/core/node_modules/escape-html": { - "version": "1.0.3", + "packages/bytecode-utils/node_modules/buffer-from": { + "version": "1.1.2", + "dev": true, "license": "MIT" }, - "services/core/node_modules/etag": { - "version": "1.8.1", - "license": "MIT", + "packages/bytecode-utils/node_modules/c8": { + "version": "8.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "bin": { + "c8": "bin/c8.js" + }, "engines": { - "node": ">= 0.6" + "node": ">=12" } }, - "services/core/node_modules/eth-ens-namehash": { - "version": "2.0.8", - "license": "ISC", + "packages/bytecode-utils/node_modules/cacheable-request": { + "version": "6.1.0", + "dev": true, + "license": "MIT", "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" } }, - "services/core/node_modules/eth-ens-namehash/node_modules/js-sha3": { - "version": "0.5.7", - "license": "MIT" - }, - "services/core/node_modules/eth-lib": { - "version": "0.1.29", + "packages/bytecode-utils/node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/ethereum-bloom-filters": { - "version": "1.0.10", + "packages/bytecode-utils/node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "js-sha3": "^0.8.0" + "engines": { + "node": ">=8" } }, - "services/core/node_modules/ethereum-cryptography": { - "version": "0.1.3", + "packages/bytecode-utils/node_modules/cachedir": { + "version": "2.3.0", + "dev": true, "license": "MIT", - "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" + "engines": { + "node": ">=6" } }, - "services/core/node_modules/ethereumjs-util": { - "version": "7.1.4", - "license": "MPL-2.0", + "packages/bytecode-utils/node_modules/call-bind": { + "version": "1.0.2", + "dev": true, + "license": "MIT", "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" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" }, - "engines": { - "node": ">=10.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/ethereumjs-util/node_modules/@types/bn.js": { - "version": "5.1.0", + "packages/bytecode-utils/node_modules/callsites": { + "version": "3.1.0", + "dev": true, "license": "MIT", - "dependencies": { - "@types/node": "*" + "engines": { + "node": ">=6" } }, - "services/core/node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" + "packages/bytecode-utils/node_modules/camelcase": { + "version": "6.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "services/core/node_modules/ethjs-unit": { - "version": "0.1.6", + "packages/bytecode-utils/node_modules/cbor-extract": { + "version": "2.1.1", + "hasInstallScript": true, "license": "MIT", + "optional": true, "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" + "node-gyp-build-optional-packages": "5.0.3" }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "bin": { + "download-cbor-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@cbor-extract/cbor-extract-darwin-arm64": "2.1.1", + "@cbor-extract/cbor-extract-darwin-x64": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm64": "2.1.1", + "@cbor-extract/cbor-extract-linux-x64": "2.1.1", + "@cbor-extract/cbor-extract-win32-x64": "2.1.1" } }, - "services/core/node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "license": "MIT" - }, - "services/core/node_modules/eventemitter3": { - "version": "4.0.4", - "license": "MIT" + "packages/bytecode-utils/node_modules/cbor-x": { + "version": "1.5.3", + "license": "MIT", + "optionalDependencies": { + "cbor-extract": "^2.1.1" + } }, - "services/core/node_modules/evp_bytestokey": { - "version": "1.0.3", + "packages/bytecode-utils/node_modules/chalk": { + "version": "4.1.2", + "dev": true, "license": "MIT", "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "services/core/node_modules/express": { - "version": "4.18.1", + "packages/bytecode-utils/node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, "license": "MIT", "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "services/core/node_modules/ext": { - "version": "1.6.0", - "license": "ISC", + "packages/bytecode-utils/node_modules/chalk/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "type": "^2.5.0" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "services/core/node_modules/ext/node_modules/type": { - "version": "2.6.0", - "license": "ISC" + "packages/bytecode-utils/node_modules/chalk/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" }, - "services/core/node_modules/extend": { - "version": "3.0.2", + "packages/bytecode-utils/node_modules/chardet": { + "version": "0.7.0", + "dev": true, "license": "MIT" }, - "services/core/node_modules/extsprintf": { - "version": "1.3.0", - "engines": [ - "node >=0.6.0" + "packages/bytecode-utils/node_modules/chokidar": { + "version": "3.5.3", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } ], + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "packages/bytecode-utils/node_modules/chunkd": { + "version": "2.0.1", + "dev": true, "license": "MIT" }, - "services/core/node_modules/fast-deep-equal": { - "version": "3.1.3", + "packages/bytecode-utils/node_modules/ci-info": { + "version": "2.0.0", + "dev": true, "license": "MIT" }, - "services/core/node_modules/fast-json-stable-stringify": { - "version": "2.1.0", + "packages/bytecode-utils/node_modules/ci-parallel-vars": { + "version": "1.0.1", + "dev": true, "license": "MIT" }, - "services/core/node_modules/finalhandler": { - "version": "1.2.0", + "packages/bytecode-utils/node_modules/clean-stack": { + "version": "2.2.0", + "dev": true, "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, "engines": { - "node": ">= 0.8" + "node": ">=6" } }, - "services/core/node_modules/for-each": { - "version": "0.3.3", + "packages/bytecode-utils/node_modules/clean-yaml-object": { + "version": "0.1.0", + "dev": true, "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" + "engines": { + "node": ">=0.10.0" } }, - "services/core/node_modules/forever-agent": { - "version": "0.6.1", - "license": "Apache-2.0", + "packages/bytecode-utils/node_modules/cli-boxes": { + "version": "2.2.1", + "dev": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/form-data": { - "version": "3.0.1", + "packages/bytecode-utils/node_modules/cli-cursor": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "restore-cursor": "^3.1.0" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "services/core/node_modules/forwarded": { - "version": "0.2.0", + "packages/bytecode-utils/node_modules/cli-spinners": { + "version": "2.9.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/fresh": { - "version": "0.5.2", + "packages/bytecode-utils/node_modules/cli-truncate": { + "version": "2.1.0", + "dev": true, "license": "MIT", + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/fs-extra": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "packages/bytecode-utils/node_modules/cli-width": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10" } }, - "services/core/node_modules/fs-minipass": { - "version": "1.2.7", + "packages/bytecode-utils/node_modules/cliui": { + "version": "7.0.4", + "dev": true, "license": "ISC", "dependencies": { - "minipass": "^2.6.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "services/core/node_modules/fs.realpath": { - "version": "1.0.0", - "license": "ISC" - }, - "services/core/node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" + "packages/bytecode-utils/node_modules/clone": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } }, - "services/core/node_modules/function.prototype.name": { - "version": "1.1.5", + "packages/bytecode-utils/node_modules/clone-response": { + "version": "1.0.3", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" + "mimic-response": "^1.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/functions-have-names": { - "version": "1.2.3", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "services/core/node_modules/get-intrinsic": { - "version": "1.1.1", + "packages/bytecode-utils/node_modules/code-excerpt": { + "version": "3.0.0", + "dev": true, "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "convert-to-spaces": "^1.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "services/core/node_modules/get-stream": { - "version": "4.1.0", + "packages/bytecode-utils/node_modules/codecov": { + "version": "3.8.3", + "dev": true, "license": "MIT", "dependencies": { - "pump": "^3.0.0" + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + }, + "bin": { + "codecov": "bin/codecov" }, "engines": { - "node": ">=6" + "node": ">=4.0" } }, - "services/core/node_modules/get-symbol-description": { - "version": "1.0.0", + "packages/bytecode-utils/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "color-name": "1.1.3" } }, - "services/core/node_modules/getpass": { - "version": "0.1.7", + "packages/bytecode-utils/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/commitizen": { + "version": "4.3.0", + "dev": true, "license": "MIT", "dependencies": { - "assert-plus": "^1.0.0" + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + }, + "bin": { + "commitizen": "bin/commitizen", + "cz": "bin/git-cz", + "git-cz": "bin/git-cz" + }, + "engines": { + "node": ">= 12" } }, - "services/core/node_modules/glob": { - "version": "7.2.3", + "packages/bytecode-utils/node_modules/common-path-prefix": { + "version": "3.0.0", + "dev": true, + "license": "ISC" + }, + "packages/bytecode-utils/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/concordance": { + "version": "5.0.4", + "dev": true, "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "services/core/node_modules/global": { - "version": "4.4.0", - "license": "MIT", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" } }, - "services/core/node_modules/got": { - "version": "9.6.0", - "license": "MIT", + "packages/bytecode-utils/node_modules/configstore": { + "version": "5.0.1", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=8.6" + "node": ">=8" } }, - "services/core/node_modules/graceful-fs": { - "version": "4.2.10", + "packages/bytecode-utils/node_modules/conventional-commit-types": { + "version": "3.0.0", + "dev": true, "license": "ISC" }, - "services/core/node_modules/har-schema": { - "version": "2.0.0", - "license": "ISC", - "engines": { - "node": ">=4" - } + "packages/bytecode-utils/node_modules/convert-source-map": { + "version": "1.9.0", + "dev": true, + "license": "MIT" }, - "services/core/node_modules/har-validator": { - "version": "5.1.5", + "packages/bytecode-utils/node_modules/convert-to-spaces": { + "version": "1.0.2", + "dev": true, "license": "MIT", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, "engines": { - "node": ">=6" + "node": ">= 4" } }, - "services/core/node_modules/has": { - "version": "1.0.3", + "packages/bytecode-utils/node_modules/cosmiconfig": { + "version": "8.2.0", + "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "function-bind": "^1.1.1" + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" }, "engines": { - "node": ">= 0.4.0" - } - }, - "services/core/node_modules/has-bigints": { - "version": "1.0.2", - "license": "MIT", + "node": ">=14" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/d-fischer" } }, - "services/core/node_modules/has-property-descriptors": { - "version": "1.0.0", + "packages/bytecode-utils/node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0", + "optional": true + }, + "packages/bytecode-utils/node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "get-intrinsic": "^1.1.1" + "argparse": "^2.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "services/core/node_modules/has-symbol-support-x": { - "version": "1.4.2", + "packages/bytecode-utils/node_modules/create-require": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/cross-spawn": { + "version": "7.0.3", + "dev": true, "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, "engines": { - "node": "*" + "node": ">= 8" } }, - "services/core/node_modules/has-symbols": { - "version": "1.0.3", + "packages/bytecode-utils/node_modules/crypto-random-string": { + "version": "2.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "services/core/node_modules/has-to-string-tag-x": { - "version": "1.4.1", + "packages/bytecode-utils/node_modules/currently-unhandled": { + "version": "0.4.1", + "dev": true, "license": "MIT", "dependencies": { - "has-symbol-support-x": "^1.4.1" + "array-find-index": "^1.0.1" }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "services/core/node_modules/has-tostringtag": { - "version": "1.0.0", + "packages/bytecode-utils/node_modules/cz-conventional-changelog": { + "version": "3.3.0", + "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" }, "engines": { - "node": ">= 0.4" + "node": ">= 10" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optionalDependencies": { + "@commitlint/load": ">6.1.1" } }, - "services/core/node_modules/hash-base": { - "version": "3.1.0", + "packages/bytecode-utils/node_modules/cz-conventional-changelog/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "color-convert": "^1.9.0" }, "engines": { "node": ">=4" } }, - "services/core/node_modules/hash.js": { - "version": "1.1.7", + "packages/bytecode-utils/node_modules/cz-conventional-changelog/node_modules/chalk": { + "version": "2.4.2", + "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "services/core/node_modules/hmac-drbg": { - "version": "1.0.1", + "packages/bytecode-utils/node_modules/cz-conventional-changelog/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "engines": { + "node": ">=0.8.0" } }, - "services/core/node_modules/http-cache-semantics": { - "version": "4.1.0", - "license": "BSD-2-Clause" - }, - "services/core/node_modules/http-errors": { - "version": "2.0.0", + "packages/bytecode-utils/node_modules/cz-conventional-changelog/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, "engines": { - "node": ">= 0.8" + "node": ">=4" } }, - "services/core/node_modules/http-https": { - "version": "1.0.0", - "license": "ISC" - }, - "services/core/node_modules/http-signature": { - "version": "1.2.0", + "packages/bytecode-utils/node_modules/cz-conventional-changelog/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, "license": "MIT", "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" + "node": ">=4" } }, - "services/core/node_modules/iconv-lite": { - "version": "0.4.24", + "packages/bytecode-utils/node_modules/date-time": { + "version": "3.1.0", + "dev": true, "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "time-zone": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "services/core/node_modules/idna-uts46-hx": { - "version": "2.3.1", + "packages/bytecode-utils/node_modules/debug": { + "version": "4.3.4", + "dev": true, "license": "MIT", "dependencies": { - "punycode": "2.1.0" + "ms": "2.1.2" }, "engines": { - "node": ">=4.0.0" - } - }, - "services/core/node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "services/core/node_modules/ieee754": { - "version": "1.2.1", - "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": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } - ], - "license": "BSD-3-Clause" - }, - "services/core/node_modules/inflight": { - "version": "1.0.6", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" } }, - "services/core/node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" + "packages/bytecode-utils/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "dev": true, + "license": "MIT" }, - "services/core/node_modules/internal-slot": { - "version": "1.0.3", + "packages/bytecode-utils/node_modules/decompress-response": { + "version": "3.3.0", + "dev": true, "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "mimic-response": "^1.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=4" } }, - "services/core/node_modules/ipaddr.js": { - "version": "1.9.1", + "packages/bytecode-utils/node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/deep-extend": { + "version": "0.6.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.10" + "node": ">=4.0.0" } }, - "services/core/node_modules/is-arguments": { - "version": "1.1.1", + "packages/bytecode-utils/node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/deepmerge": { + "version": "4.3.1", + "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "services/core/node_modules/is-bigint": { + "packages/bytecode-utils/node_modules/defaults": { "version": "1.0.4", + "dev": true, "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" + "clone": "^1.0.2" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/is-boolean-object": { - "version": "1.1.2", + "packages/bytecode-utils/node_modules/defer-to-connect": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/define-properties": { + "version": "1.2.0", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "services/core/node_modules/is-callable": { - "version": "1.2.4", - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -21165,137 +23254,179 @@ "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/is-date-object": { - "version": "1.0.5", + "packages/bytecode-utils/node_modules/del": { + "version": "6.1.1", + "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/is-function": { - "version": "1.0.2", - "license": "MIT" - }, - "services/core/node_modules/is-generator-function": { - "version": "1.0.10", + "packages/bytecode-utils/node_modules/detect-file": { + "version": "1.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "services/core/node_modules/is-hex-prefixed": { - "version": "1.0.0", + "packages/bytecode-utils/node_modules/detect-indent": { + "version": "6.1.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=8" } }, - "services/core/node_modules/is-negative-zero": { - "version": "2.0.2", - "license": "MIT", + "packages/bytecode-utils/node_modules/diff": { + "version": "4.0.2", + "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.3.1" } }, - "services/core/node_modules/is-number-object": { - "version": "1.0.7", + "packages/bytecode-utils/node_modules/dir-glob": { + "version": "3.0.1", + "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "path-type": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "services/core/node_modules/is-object": { - "version": "1.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "packages/bytecode-utils/node_modules/doctrine": { + "version": "3.0.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "services/core/node_modules/is-plain-obj": { - "version": "1.1.0", + "packages/bytecode-utils/node_modules/dot-prop": { + "version": "5.3.0", + "dev": true, "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "services/core/node_modules/is-regex": { - "version": "1.1.4", + "packages/bytecode-utils/node_modules/duplexer3": { + "version": "0.1.5", + "dev": true, + "license": "BSD-3-Clause" + }, + "packages/bytecode-utils/node_modules/emittery": { + "version": "0.8.1", + "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "services/core/node_modules/is-retry-allowed": { - "version": "1.2.0", + "packages/bytecode-utils/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/end-of-stream": { + "version": "1.4.4", + "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "once": "^1.4.0" } }, - "services/core/node_modules/is-shared-array-buffer": { - "version": "1.0.2", + "packages/bytecode-utils/node_modules/enquirer": { + "version": "2.3.6", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "ansi-colors": "^4.1.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8.6" } }, - "services/core/node_modules/is-stream": { - "version": "1.1.0", + "packages/bytecode-utils/node_modules/equal-length": { + "version": "1.0.1", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "services/core/node_modules/is-string": { - "version": "1.0.7", + "packages/bytecode-utils/node_modules/error-ex": { + "version": "1.3.2", + "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "is-arrayish": "^0.2.1" } }, - "services/core/node_modules/is-symbol": { - "version": "1.0.4", + "packages/bytecode-utils/node_modules/es-abstract": { + "version": "1.21.2", + "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" }, "engines": { "node": ">= 0.4" @@ -21304,712 +23435,813 @@ "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/is-typed-array": { - "version": "1.1.9", + "packages/bytecode-utils/node_modules/es-set-tostringtag": { + "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/is-typedarray": { + "packages/bytecode-utils/node_modules/es-shim-unscopables": { "version": "1.0.0", - "license": "MIT" + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + } }, - "services/core/node_modules/is-weakref": { - "version": "1.0.2", + "packages/bytecode-utils/node_modules/es-to-primitive": { + "version": "1.2.1", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/isstream": { - "version": "0.1.2", - "license": "MIT" - }, - "services/core/node_modules/isurl": { - "version": "1.0.0", + "packages/bytecode-utils/node_modules/escalade": { + "version": "3.1.1", + "dev": true, "license": "MIT", - "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - }, "engines": { - "node": ">= 4" + "node": ">=6" } }, - "services/core/node_modules/js-sha3": { - "version": "0.8.0", - "license": "MIT" - }, - "services/core/node_modules/jsbn": { - "version": "0.1.1", - "license": "MIT" - }, - "services/core/node_modules/json-buffer": { - "version": "3.0.0", - "license": "MIT" - }, - "services/core/node_modules/json-schema": { - "version": "0.4.0", - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, - "services/core/node_modules/json-schema-traverse": { - "version": "0.4.1", - "license": "MIT" - }, - "services/core/node_modules/json-stringify-safe": { - "version": "5.0.1", - "license": "ISC" - }, - "services/core/node_modules/jsonfile": { - "version": "4.0.0", + "packages/bytecode-utils/node_modules/escape-goat": { + "version": "2.1.1", + "dev": true, "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": ">=8" } }, - "services/core/node_modules/jsprim": { - "version": "1.4.2", + "packages/bytecode-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, "engines": { - "node": ">=0.6.0" + "node": ">=8" } }, - "services/core/node_modules/keccak": { - "version": "3.0.2", - "hasInstallScript": true, + "packages/bytecode-utils/node_modules/eslint": { + "version": "7.32.0", + "dev": true, "license": "MIT", "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=10.0.0" + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "services/core/node_modules/keyv": { - "version": "3.1.0", + "packages/bytecode-utils/node_modules/eslint-config-prettier": { + "version": "6.15.0", + "dev": true, "license": "MIT", "dependencies": { - "json-buffer": "3.0.0" + "get-stdin": "^6.0.0" + }, + "bin": { + "eslint-config-prettier-check": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=3.14.1" } }, - "services/core/node_modules/lowercase-keys": { - "version": "1.0.1", + "packages/bytecode-utils/node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" } }, - "services/core/node_modules/md5.js": { - "version": "1.3.5", + "packages/bytecode-utils/node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "dev": true, "license": "MIT", "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "ms": "^2.1.1" } }, - "services/core/node_modules/media-typer": { - "version": "0.3.0", + "packages/bytecode-utils/node_modules/eslint-module-utils": { + "version": "2.8.0", + "dev": true, "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, "engines": { - "node": ">= 0.6" + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "services/core/node_modules/merge-descriptors": { - "version": "1.0.1", - "license": "MIT" - }, - "services/core/node_modules/methods": { - "version": "1.1.2", + "packages/bytecode-utils/node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.6" + "dependencies": { + "ms": "^2.1.1" } }, - "services/core/node_modules/miller-rabin": { - "version": "4.0.1", + "packages/bytecode-utils/node_modules/eslint-plugin-eslint-comments": { + "version": "3.2.0", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" }, - "bin": { - "miller-rabin": "bin/miller-rabin" + "engines": { + "node": ">=6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" } }, - "services/core/node_modules/mime": { - "version": "1.6.0", + "packages/bytecode-utils/node_modules/eslint-plugin-eslint-comments/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, "license": "MIT", - "bin": { - "mime": "cli.js" - }, "engines": { - "node": ">=4" + "node": ">=0.8.0" } }, - "services/core/node_modules/mime-db": { - "version": "1.52.0", + "packages/bytecode-utils/node_modules/eslint-plugin-functional": { + "version": "3.7.2", + "dev": true, "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "^4.9.1", + "array.prototype.flatmap": "^1.2.4", + "deepmerge": "^4.2.2", + "escape-string-regexp": "^4.0.0", + "object.fromentries": "^2.0.3" + }, "engines": { - "node": ">= 0.6" + "node": ">=10.18.0" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0", + "tsutils": "^3.0.0", + "typescript": "^3.4.1 || ^4.0.0" + }, + "peerDependenciesMeta": { + "tsutils": { + "optional": true + }, + "typescript": { + "optional": true + } } }, - "services/core/node_modules/mime-types": { - "version": "2.1.35", + "packages/bytecode-utils/node_modules/eslint-plugin-functional/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, "engines": { - "node": ">= 0.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/mimic-response": { - "version": "1.0.1", + "packages/bytecode-utils/node_modules/eslint-plugin-import": { + "version": "2.27.5", + "dev": true, "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, "engines": { "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "services/core/node_modules/min-document": { - "version": "2.19.0", + "packages/bytecode-utils/node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", "dependencies": { - "dom-walk": "^0.1.0" + "ms": "^2.1.1" } }, - "services/core/node_modules/minimalistic-assert": { - "version": "1.0.1", - "license": "ISC" - }, - "services/core/node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "license": "MIT" - }, - "services/core/node_modules/minimatch": { - "version": "3.1.2", - "license": "ISC", + "packages/bytecode-utils/node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "brace-expansion": "^1.1.7" + "esutils": "^2.0.2" }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "services/core/node_modules/minimist": { - "version": "1.2.6", - "license": "MIT" - }, - "services/core/node_modules/minipass": { - "version": "2.9.0", + "packages/bytecode-utils/node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "dev": true, "license": "ISC", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "services/core/node_modules/minizlib": { - "version": "1.3.3", - "license": "MIT", - "dependencies": { - "minipass": "^2.9.0" + "bin": { + "semver": "bin/semver.js" } }, - "services/core/node_modules/mkdirp": { - "version": "0.5.6", - "license": "MIT", + "packages/bytecode-utils/node_modules/eslint-scope": { + "version": "5.1.1", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "minimist": "^1.2.6" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, - "bin": { - "mkdirp": "bin/cmd.js" + "engines": { + "node": ">=8.0.0" } }, - "services/core/node_modules/mkdirp-promise": { - "version": "5.0.1", - "license": "ISC", + "packages/bytecode-utils/node_modules/eslint-utils": { + "version": "3.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "mkdirp": "*" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">=4" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "services/core/node_modules/mock-fs": { - "version": "4.14.0", - "license": "MIT" - }, - "services/core/node_modules/moment": { - "version": "2.29.3", - "license": "MIT", - "optional": true, + "packages/bytecode-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": "*" + "node": ">=10" } }, - "services/core/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "services/core/node_modules/multibase": { - "version": "0.6.1", + "packages/bytecode-utils/node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "dev": true, "license": "MIT", "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "services/core/node_modules/multicodec": { - "version": "0.5.7", + "packages/bytecode-utils/node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "varint": "^5.0.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/multihashes": { - "version": "0.4.21", + "packages/bytecode-utils/node_modules/eslint/node_modules/eslint-utils": { + "version": "2.1.0", + "dev": true, "license": "MIT", "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "services/core/node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" + "packages/bytecode-utils/node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" } }, - "services/core/node_modules/mv": { - "version": "2.1.1", + "packages/bytecode-utils/node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "dev": true, "license": "MIT", - "optional": true, - "dependencies": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, "engines": { - "node": ">=0.8.0" + "node": ">= 4" } }, - "services/core/node_modules/mv/node_modules/glob": { - "version": "6.0.4", - "license": "ISC", - "optional": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } + "packages/bytecode-utils/node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" }, - "services/core/node_modules/mv/node_modules/rimraf": { - "version": "2.4.5", - "license": "ISC", - "optional": true, + "packages/bytecode-utils/node_modules/espree": { + "version": "7.3.1", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "glob": "^6.0.1" + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "services/core/node_modules/nan": { - "version": "2.15.0", - "license": "MIT", - "optional": true - }, - "services/core/node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "license": "MIT" - }, - "services/core/node_modules/ncp": { - "version": "2.0.0", + "packages/bytecode-utils/node_modules/espree/node_modules/acorn": { + "version": "7.4.1", + "dev": true, "license": "MIT", - "optional": true, "bin": { - "ncp": "bin/ncp" - } - }, - "services/core/node_modules/negotiator": { - "version": "0.6.3", - "license": "MIT", + "acorn": "bin/acorn" + }, "engines": { - "node": ">= 0.6" + "node": ">=0.4.0" } }, - "services/core/node_modules/next-tick": { - "version": "1.1.0", - "license": "ISC" - }, - "services/core/node_modules/node-addon-api": { - "version": "2.0.2", - "license": "MIT" - }, - "services/core/node_modules/node-fetch": { - "version": "2.6.7", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, + "packages/bytecode-utils/node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "node": ">=4" } }, - "services/core/node_modules/node-gyp-build": { - "version": "4.4.0", - "license": "MIT", + "packages/bytecode-utils/node_modules/esprima": { + "version": "4.0.1", + "dev": true, + "license": "BSD-2-Clause", "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" } }, - "services/core/node_modules/nofilter": { - "version": "1.0.4", - "license": "MIT", + "packages/bytecode-utils/node_modules/esquery": { + "version": "1.5.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, "engines": { - "node": ">=8" + "node": ">=0.10" } }, - "services/core/node_modules/normalize-url": { - "version": "4.5.1", - "license": "MIT", + "packages/bytecode-utils/node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=8" + "node": ">=4.0" } }, - "services/core/node_modules/number-to-bn": { - "version": "1.7.0", - "license": "MIT", + "packages/bytecode-utils/node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=4.0" } }, - "services/core/node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "license": "MIT" + "packages/bytecode-utils/node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } }, - "services/core/node_modules/oauth-sign": { - "version": "0.9.0", - "license": "Apache-2.0", + "packages/bytecode-utils/node_modules/estraverse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": "*" + "node": ">=4.0" } }, - "services/core/node_modules/object-assign": { - "version": "4.1.1", - "license": "MIT", + "packages/bytecode-utils/node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, - "services/core/node_modules/object-inspect": { - "version": "1.12.0", + "packages/bytecode-utils/node_modules/expand-tilde": { + "version": "2.0.2", + "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "services/core/node_modules/object-keys": { - "version": "1.1.1", + "packages/bytecode-utils/node_modules/external-editor": { + "version": "3.1.0", + "dev": true, "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, "engines": { - "node": ">= 0.4" + "node": ">=4" } }, - "services/core/node_modules/object.assign": { - "version": "4.1.2", + "packages/bytecode-utils/node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/fast-diff": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0" + }, + "packages/bytecode-utils/node_modules/fast-glob": { + "version": "3.3.0", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8.6.0" } }, - "services/core/node_modules/oboe": { - "version": "2.1.5", - "license": "BSD", - "dependencies": { - "http-https": "^1.0.0" - } + "packages/bytecode-utils/node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" }, - "services/core/node_modules/on-finished": { - "version": "2.4.1", + "packages/bytecode-utils/node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/fast-url-parser": { + "version": "1.1.3", + "dev": true, "license": "MIT", "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" + "punycode": "^1.3.2" } }, - "services/core/node_modules/once": { - "version": "1.4.0", + "packages/bytecode-utils/node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/fastq": { + "version": "1.15.0", + "dev": true, "license": "ISC", "dependencies": { - "wrappy": "1" + "reusify": "^1.0.4" } }, - "services/core/node_modules/p-cancelable": { - "version": "1.1.0", + "packages/bytecode-utils/node_modules/figures": { + "version": "3.2.0", + "dev": true, "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/p-finally": { - "version": "1.0.0", + "packages/bytecode-utils/node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.8.0" } }, - "services/core/node_modules/p-timeout": { - "version": "1.2.1", + "packages/bytecode-utils/node_modules/file-entry-cache": { + "version": "6.0.1", + "dev": true, "license": "MIT", "dependencies": { - "p-finally": "^1.0.0" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=4" - } - }, - "services/core/node_modules/parse-asn1": { - "version": "5.1.6", - "license": "ISC", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "node": "^10.12.0 || >=12.0.0" } }, - "services/core/node_modules/parse-headers": { - "version": "2.0.5", - "license": "MIT" - }, - "services/core/node_modules/parseurl": { - "version": "1.3.3", + "packages/bytecode-utils/node_modules/fill-range": { + "version": "7.0.1", + "dev": true, "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "services/core/node_modules/path-is-absolute": { - "version": "1.0.1", + "packages/bytecode-utils/node_modules/find-node-modules": { + "version": "2.1.3", + "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "findup-sync": "^4.0.0", + "merge": "^2.1.1" } }, - "services/core/node_modules/path-to-regexp": { - "version": "0.1.7", + "packages/bytecode-utils/node_modules/find-root": { + "version": "1.1.0", + "dev": true, "license": "MIT" }, - "services/core/node_modules/pbkdf2": { - "version": "3.1.2", + "packages/bytecode-utils/node_modules/find-up": { + "version": "5.0.0", + "dev": true, "license": "MIT", "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" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=0.12" - } - }, - "services/core/node_modules/performance-now": { - "version": "2.1.0", - "license": "MIT" - }, - "services/core/node_modules/prepend-http": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/process": { - "version": "0.11.10", + "packages/bytecode-utils/node_modules/findup-sync": { + "version": "4.0.0", + "dev": true, "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + }, "engines": { - "node": ">= 0.6.0" + "node": ">= 8" } }, - "services/core/node_modules/proxy-addr": { - "version": "2.0.7", + "packages/bytecode-utils/node_modules/flat-cache": { + "version": "3.0.4", + "dev": true, "license": "MIT", "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" }, "engines": { - "node": ">= 0.10" + "node": "^10.12.0 || >=12.0.0" } }, - "services/core/node_modules/psl": { - "version": "1.8.0", - "license": "MIT" + "packages/bytecode-utils/node_modules/flatted": { + "version": "3.2.7", + "dev": true, + "license": "ISC" }, - "services/core/node_modules/public-encrypt": { - "version": "4.0.3", + "packages/bytecode-utils/node_modules/for-each": { + "version": "0.3.3", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "is-callable": "^1.1.3" } }, - "services/core/node_modules/pump": { - "version": "3.0.0", + "packages/bytecode-utils/node_modules/foreground-child": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "packages/bytecode-utils/node_modules/fs-extra": { + "version": "9.1.0", + "dev": true, "license": "MIT", "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "services/core/node_modules/punycode": { - "version": "2.1.1", + "packages/bytecode-utils/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "packages/bytecode-utils/node_modules/fsevents": { + "version": "2.3.2", + "dev": true, "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "services/core/node_modules/qs": { - "version": "6.10.3", - "license": "BSD-3-Clause", + "packages/bytecode-utils/node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/function.prototype.name": { + "version": "1.1.5", + "dev": true, + "license": "MIT", "dependencies": { - "side-channel": "^1.0.4" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" }, "engines": { - "node": ">=0.6" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/query-string": { - "version": "5.1.1", - "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "packages/bytecode-utils/node_modules/functional-red-black-tree": { + "version": "1.0.1", + "dev": true, + "license": "MIT" }, - "services/core/node_modules/randombytes": { - "version": "2.1.0", + "packages/bytecode-utils/node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/randomfill": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "packages/bytecode-utils/node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" } }, - "services/core/node_modules/range-parser": { + "packages/bytecode-utils/node_modules/get-intrinsic": { "version": "1.2.1", + "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.6" + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/raw-body": { - "version": "2.5.1", + "packages/bytecode-utils/node_modules/get-stdin": { + "version": "6.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, "engines": { - "node": ">= 0.8" + "node": ">=4" } }, - "services/core/node_modules/readable-stream": { - "version": "3.6.0", + "packages/bytecode-utils/node_modules/get-stream": { + "version": "4.1.0", + "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "pump": "^3.0.0" }, "engines": { - "node": ">= 6" + "node": ">=6" } }, - "services/core/node_modules/regexp.prototype.flags": { - "version": "1.4.3", + "packages/bytecode-utils/node_modules/get-symbol-description": { + "version": "1.0.0", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "get-intrinsic": "^1.1.1" }, "engines": { "node": ">= 0.4" @@ -22018,1001 +24250,780 @@ "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/request": { - "version": "2.88.2", - "license": "Apache-2.0", + "packages/bytecode-utils/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">= 6" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "services/core/node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "license": "MIT", + "packages/bytecode-utils/node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "is-glob": "^4.0.1" }, "engines": { - "node": ">= 0.12" - } - }, - "services/core/node_modules/request/node_modules/qs": { - "version": "6.5.3", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" + "node": ">= 6" } }, - "services/core/node_modules/responselike": { - "version": "1.0.2", + "packages/bytecode-utils/node_modules/global-dirs": { + "version": "0.1.1", + "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "lowercase-keys": "^1.0.0" + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" } }, - "services/core/node_modules/rimraf": { - "version": "3.0.2", - "license": "ISC", + "packages/bytecode-utils/node_modules/global-modules": { + "version": "1.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">=0.10.0" } }, - "services/core/node_modules/ripemd160": { - "version": "2.0.2", + "packages/bytecode-utils/node_modules/global-prefix": { + "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" } }, - "services/core/node_modules/rlp": { - "version": "2.2.7", - "license": "MPL-2.0", + "packages/bytecode-utils/node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", "dependencies": { - "bn.js": "^5.2.0" + "isexe": "^2.0.0" }, "bin": { - "rlp": "bin/rlp" + "which": "bin/which" } }, - "services/core/node_modules/rlp/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "services/core/node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "services/core/node_modules/safe-json-stringify": { - "version": "1.2.0", - "license": "MIT", - "optional": true - }, - "services/core/node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" - }, - "services/core/node_modules/scrypt-js": { - "version": "3.0.1", - "license": "MIT" - }, - "services/core/node_modules/secp256k1": { - "version": "4.0.3", - "hasInstallScript": true, + "packages/bytecode-utils/node_modules/globals": { + "version": "13.20.0", + "dev": true, "license": "MIT", "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=10.0.0" - } - }, - "services/core/node_modules/send": { - "version": "0.18.0", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "node": ">=8" }, - "engines": { - "node": ">= 0.8.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/send/node_modules/ms": { - "version": "2.1.3", - "license": "MIT" - }, - "services/core/node_modules/serve-static": { - "version": "1.15.0", + "packages/bytecode-utils/node_modules/globalthis": { + "version": "1.0.3", + "dev": true, "license": "MIT", "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" + "define-properties": "^1.1.3" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/servify": { - "version": "0.1.12", + "packages/bytecode-utils/node_modules/globby": { + "version": "11.1.0", + "dev": true, "license": "MIT", "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { - "node": ">=6" - } - }, - "services/core/node_modules/setimmediate": { - "version": "1.0.5", - "license": "MIT" - }, - "services/core/node_modules/setprototypeof": { - "version": "1.2.0", - "license": "ISC" - }, - "services/core/node_modules/sha.js": { - "version": "2.4.11", - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "node": ">=10" }, - "bin": { - "sha.js": "bin.js" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/side-channel": { - "version": "1.0.4", + "packages/bytecode-utils/node_modules/gopd": { + "version": "1.0.1", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "get-intrinsic": "^1.1.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/simple-concat": { - "version": "1.0.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "services/core/node_modules/simple-get": { - "version": "2.8.2", + "packages/bytecode-utils/node_modules/got": { + "version": "9.6.0", + "dev": true, "license": "MIT", "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" } }, - "services/core/node_modules/sshpk": { - "version": "1.17.0", + "packages/bytecode-utils/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "packages/bytecode-utils/node_modules/has": { + "version": "1.0.3", + "dev": true, "license": "MIT", "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" + "function-bind": "^1.1.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4.0" } }, - "services/core/node_modules/statuses": { - "version": "2.0.1", + "packages/bytecode-utils/node_modules/has-bigints": { + "version": "1.0.2", + "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/strict-uri-encode": { - "version": "1.1.0", + "packages/bytecode-utils/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "services/core/node_modules/string_decoder": { - "version": "1.3.0", + "packages/bytecode-utils/node_modules/has-property-descriptors": { + "version": "1.0.0", + "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/string.prototype.trimend": { - "version": "1.0.5", + "packages/bytecode-utils/node_modules/has-proto": { + "version": "1.0.1", + "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/string.prototype.trimstart": { - "version": "1.0.5", + "packages/bytecode-utils/node_modules/has-symbols": { + "version": "1.0.3", + "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/strip-hex-prefix": { + "packages/bytecode-utils/node_modules/has-tostringtag": { "version": "1.0.0", + "dev": true, "license": "MIT", "dependencies": { - "is-hex-prefixed": "1.0.0" + "has-symbols": "^1.0.2" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/swarm-js": { - "version": "0.1.40", + "packages/bytecode-utils/node_modules/has-yarn": { + "version": "2.1.0", + "dev": true, "license": "MIT", - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" + "engines": { + "node": ">=8" } }, - "services/core/node_modules/swarm-js/node_modules/get-stream": { - "version": "3.0.0", + "packages/bytecode-utils/node_modules/homedir-polyfill": { + "version": "1.0.3", + "dev": true, "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "services/core/node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", + "packages/bytecode-utils/node_modules/hosted-git-info": { + "version": "2.8.9", + "dev": true, + "license": "ISC" + }, + "packages/bytecode-utils/node_modules/html-escaper": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/http-cache-semantics": { + "version": "4.1.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "packages/bytecode-utils/node_modules/http-proxy-agent": { + "version": "4.0.1", + "dev": true, "license": "MIT", "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=4" + "node": ">= 6" } }, - "services/core/node_modules/swarm-js/node_modules/p-cancelable": { - "version": "0.3.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "services/core/node_modules/swarm-js/node_modules/prepend-http": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "services/core/node_modules/swarm-js/node_modules/url-parse-lax": { - "version": "1.0.0", + "packages/bytecode-utils/node_modules/https-proxy-agent": { + "version": "5.0.1", + "dev": true, "license": "MIT", "dependencies": { - "prepend-http": "^1.0.1" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, - "services/core/node_modules/tar": { - "version": "4.4.19", - "license": "ISC", + "packages/bytecode-utils/node_modules/iconv-lite": { + "version": "0.4.24", + "dev": true, + "license": "MIT", "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" + "safer-buffer": ">= 2.1.2 < 3" }, - "engines": { - "node": ">=4.5" - } - }, - "services/core/node_modules/timed-out": { - "version": "4.0.1", - "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "services/core/node_modules/to-readable-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=6" - } + "packages/bytecode-utils/node_modules/ieee754": { + "version": "1.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" }, - "services/core/node_modules/toidentifier": { - "version": "1.0.1", + "packages/bytecode-utils/node_modules/ignore": { + "version": "5.2.4", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.6" + "node": ">= 4" } }, - "services/core/node_modules/tough-cookie": { - "version": "2.5.0", - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, + "packages/bytecode-utils/node_modules/ignore-by-default": { + "version": "2.1.0", + "dev": true, + "license": "ISC", "engines": { - "node": ">=0.8" + "node": ">=10 <11 || >=12 <13 || >=14" } }, - "services/core/node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, - "services/core/node_modules/tunnel-agent": { - "version": "0.6.0", - "license": "Apache-2.0", + "packages/bytecode-utils/node_modules/ignore-walk": { + "version": "3.0.4", + "dev": true, + "license": "ISC", "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" + "minimatch": "^3.0.4" } }, - "services/core/node_modules/tweetnacl": { - "version": "0.14.5", - "license": "Unlicense" - }, - "services/core/node_modules/type": { - "version": "1.2.0", - "license": "ISC" - }, - "services/core/node_modules/type-is": { - "version": "1.6.18", + "packages/bytecode-utils/node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, "license": "MIT", "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/typedarray-to-buffer": { - "version": "3.1.5", + "packages/bytecode-utils/node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" + "engines": { + "node": ">=4" } }, - "services/core/node_modules/typescript": { - "version": "4.6.4", + "packages/bytecode-utils/node_modules/import-lazy": { + "version": "2.1.0", "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, + "license": "MIT", "engines": { - "node": ">=4.2.0" + "node": ">=4" } }, - "services/core/node_modules/ultron": { - "version": "1.1.1", - "license": "MIT" - }, - "services/core/node_modules/unbox-primitive": { - "version": "1.0.2", + "packages/bytecode-utils/node_modules/import-local": { + "version": "3.1.0", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/universalify": { - "version": "0.1.2", + "packages/bytecode-utils/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, "license": "MIT", "engines": { - "node": ">= 4.0.0" + "node": ">=0.8.19" } }, - "services/core/node_modules/unpipe": { - "version": "1.0.0", + "packages/bytecode-utils/node_modules/indent-string": { + "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" - } - }, - "services/core/node_modules/uri-js": { - "version": "4.4.1", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" + "node": ">=8" } }, - "services/core/node_modules/url-parse-lax": { - "version": "3.0.0", - "license": "MIT", + "packages/bytecode-utils/node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" + "once": "^1.3.0", + "wrappy": "1" } }, - "services/core/node_modules/url-set-query": { - "version": "1.0.0", - "license": "MIT" + "packages/bytecode-utils/node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "license": "ISC" }, - "services/core/node_modules/url-to-options": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 4" - } + "packages/bytecode-utils/node_modules/ini": { + "version": "1.3.8", + "dev": true, + "license": "ISC" }, - "services/core/node_modules/utf-8-validate": { - "version": "5.0.9", - "hasInstallScript": true, + "packages/bytecode-utils/node_modules/inquirer": { + "version": "8.2.5", + "dev": true, "license": "MIT", "dependencies": { - "node-gyp-build": "^4.3.0" + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=6.14.2" + "node": ">=12.0.0" } }, - "services/core/node_modules/utf8": { - "version": "3.0.0", - "license": "MIT" - }, - "services/core/node_modules/util": { - "version": "0.12.4", + "packages/bytecode-utils/node_modules/internal-slot": { + "version": "1.0.5", + "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" } }, - "services/core/node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" - }, - "services/core/node_modules/utils-merge": { - "version": "1.0.1", + "packages/bytecode-utils/node_modules/irregular-plurals": { + "version": "3.5.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4.0" + "node": ">=8" } }, - "services/core/node_modules/uuid": { - "version": "3.4.0", + "packages/bytecode-utils/node_modules/is-array-buffer": { + "version": "3.0.2", + "dev": true, "license": "MIT", - "bin": { - "uuid": "bin/uuid" + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/varint": { - "version": "5.0.2", + "packages/bytecode-utils/node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, "license": "MIT" }, - "services/core/node_modules/vary": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "services/core/node_modules/verror": { - "version": "1.10.0", - "engines": [ - "node >=0.6.0" - ], + "packages/bytecode-utils/node_modules/is-bigint": { + "version": "1.0.4", + "dev": true, "license": "MIT", "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "services/core/node_modules/web3": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" + "has-bigints": "^1.0.1" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/web3-bzz": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", + "packages/bytecode-utils/node_modules/is-binary-path": { + "version": "2.1.0", + "dev": true, + "license": "MIT", "dependencies": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" + "binary-extensions": "^2.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "services/core/node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "services/core/node_modules/web3-core": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/bytecode-utils/node_modules/is-boolean-object": { + "version": "1.1.2", + "dev": true, + "license": "MIT", "dependencies": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=8.0.0" - } - }, - "services/core/node_modules/web3-core-helpers": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" + "node": ">= 0.4" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/web3-core-method": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - }, + "packages/bytecode-utils/node_modules/is-callable": { + "version": "1.2.7", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/web3-core-promievent": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/bytecode-utils/node_modules/is-ci": { + "version": "2.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "eventemitter3": "4.0.4" + "ci-info": "^2.0.0" }, - "engines": { - "node": ">=8.0.0" + "bin": { + "is-ci": "bin.js" } }, - "services/core/node_modules/web3-core-requestmanager": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/bytecode-utils/node_modules/is-core-module": { + "version": "2.12.1", + "dev": true, + "license": "MIT", "dependencies": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" + "has": "^1.0.3" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/web3-core-subscriptions": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/bytecode-utils/node_modules/is-date-object": { + "version": "1.0.5", + "dev": true, + "license": "MIT", "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/web3-core/node_modules/@types/node": { - "version": "12.20.52", + "packages/bytecode-utils/node_modules/is-error": { + "version": "2.2.2", + "dev": true, "license": "MIT" }, - "services/core/node_modules/web3-eth": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, + "packages/bytecode-utils/node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "services/core/node_modules/web3-eth-abi": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - }, + "packages/bytecode-utils/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "services/core/node_modules/web3-eth-accounts": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/bytecode-utils/node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", "dependencies": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "services/core/node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", + "packages/bytecode-utils/node_modules/is-installed-globally": { + "version": "0.4.0", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", + "packages/bytecode-utils/node_modules/is-installed-globally/node_modules/global-dirs": { + "version": "3.0.1", + "dev": true, "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "services/core/node_modules/web3-eth-contract": { - "version": "1.7.3", - "license": "LGPL-3.0", "dependencies": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" + "ini": "2.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/web3-eth-ens": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - }, + "packages/bytecode-utils/node_modules/is-installed-globally/node_modules/ini": { + "version": "2.0.0", + "dev": true, + "license": "ISC", "engines": { - "node": ">=8.0.0" + "node": ">=10" } }, - "services/core/node_modules/web3-eth-iban": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" - }, + "packages/bytecode-utils/node_modules/is-interactive": { + "version": "1.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "services/core/node_modules/web3-eth-personal": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, + "packages/bytecode-utils/node_modules/is-negative-zero": { + "version": "2.0.2", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "services/core/node_modules/web3-net": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, + "packages/bytecode-utils/node_modules/is-npm": { + "version": "5.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/web3-providers-http": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" - }, + "packages/bytecode-utils/node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=0.12.0" } }, - "services/core/node_modules/web3-providers-ipc": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/bytecode-utils/node_modules/is-number-object": { + "version": "1.0.7", + "dev": true, + "license": "MIT", "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/web3-providers-ws": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" - }, + "packages/bytecode-utils/node_modules/is-obj": { + "version": "2.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "services/core/node_modules/web3-shh": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" - }, + "packages/bytecode-utils/node_modules/is-path-cwd": { + "version": "2.2.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=6" } }, - "services/core/node_modules/web3-utils": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, + "packages/bytecode-utils/node_modules/is-path-inside": { + "version": "3.0.3", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "services/core/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "services/core/node_modules/websocket": { - "version": "1.0.34", - "license": "Apache-2.0", - "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" - }, + "packages/bytecode-utils/node_modules/is-plain-object": { + "version": "5.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4.0.0" + "node": ">=0.10.0" } }, - "services/core/node_modules/whatwg-url": { - "version": "5.0.0", + "packages/bytecode-utils/node_modules/is-promise": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/is-regex": { + "version": "1.1.4", + "dev": true, "license": "MIT", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/which-boxed-primitive": { + "packages/bytecode-utils/node_modules/is-shared-array-buffer": { "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "call-bind": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/which-typed-array": { - "version": "1.1.8", + "packages/bytecode-utils/node_modules/is-string": { + "version": "1.0.7", + "dev": true, "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -23021,1667 +25032,1356 @@ "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/wrappy": { - "version": "1.0.2", - "license": "ISC" - }, - "services/core/node_modules/ws": { - "version": "3.3.3", + "packages/bytecode-utils/node_modules/is-symbol": { + "version": "1.0.4", + "dev": true, "license": "MIT", "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "services/core/node_modules/ws/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "services/core/node_modules/xhr": { - "version": "2.6.0", - "license": "MIT", - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "services/core/node_modules/xhr-request": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "services/core/node_modules/xhr-request-promise": { - "version": "0.1.3", - "license": "MIT", - "dependencies": { - "xhr-request": "^1.1.0" + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/xhr2-cookies": { - "version": "1.1.0", + "packages/bytecode-utils/node_modules/is-typed-array": { + "version": "1.1.10", + "dev": true, "license": "MIT", "dependencies": { - "cookiejar": "^2.1.1" - } - }, - "services/core/node_modules/xtend": { - "version": "4.0.2", - "license": "MIT", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=0.4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/core/node_modules/yaeti": { - "version": "0.0.6", + "packages/bytecode-utils/node_modules/is-typedarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/is-unicode-supported": { + "version": "0.1.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.32" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/core/node_modules/yallist": { - "version": "3.1.1", - "license": "ISC" + "packages/bytecode-utils/node_modules/is-utf8": { + "version": "0.2.1", + "dev": true, + "license": "MIT" }, - "services/validation": { - "name": "@ethereum-sourcify/validation", - "version": "0.2.10", + "packages/bytecode-utils/node_modules/is-weakref": { + "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { - "@ethereum-sourcify/core": "*", - "bunyan": "^1.8.15", - "commander": "^6.1.0", - "jszip": "^3.10.1", - "web3": "^1.2.11" - }, - "bin": { - "sourcify-validation": "build/index.js" + "call-bind": "^1.0.2" }, - "devDependencies": { - "@types/bunyan": "^1.8.6", - "@types/node": "^16.11.36", - "chai": "^4.2.0", - "chai-exec": "^2.1.1", - "mocha": "^8.1.3", - "rimraf": "^3.0.2", - "typescript": "^4.0.2" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/@ethereum-sourcify/core": { - "resolved": "services/core", - "link": true - }, - "services/validation/node_modules/@ethereumjs/common": { - "version": "2.6.4", + "packages/bytecode-utils/node_modules/is-windows": { + "version": "1.0.2", + "dev": true, "license": "MIT", - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" + "engines": { + "node": ">=0.10.0" } }, - "services/validation/node_modules/@ethereumjs/tx": { - "version": "3.5.1", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" - } + "packages/bytecode-utils/node_modules/is-yarn-global": { + "version": "0.3.0", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/@ethersproject/abi": { - "version": "5.0.7", - "license": "MIT", - "dependencies": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } + "packages/bytecode-utils/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" }, - "services/validation/node_modules/@ethersproject/abstract-provider": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" + "packages/bytecode-utils/node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" } }, - "services/validation/node_modules/@ethersproject/abstract-signer": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "packages/bytecode-utils/node_modules/istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" } }, - "services/validation/node_modules/@ethersproject/address": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "packages/bytecode-utils/node_modules/istanbul-reports": { + "version": "3.1.5", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "services/validation/node_modules/@ethersproject/base64": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/js-string-escape": { + "version": "1.0.1", + "dev": true, "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0" + "engines": { + "node": ">= 0.8" } }, - "services/validation/node_modules/@ethersproject/bignumber": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } + "packages/bytecode-utils/node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/@ethersproject/bytes": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/js-yaml": { + "version": "3.14.1", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.6.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "services/validation/node_modules/@ethersproject/constants": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0" - } + "packages/bytecode-utils/node_modules/json-buffer": { + "version": "3.0.0", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/@ethersproject/hash": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } + "packages/bytecode-utils/node_modules/json-parse-better-errors": { + "version": "1.0.2", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/@ethersproject/keccak256": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } + "packages/bytecode-utils/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/@ethersproject/logger": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, "license": "MIT" }, - "services/validation/node_modules/@ethersproject/networks": { - "version": "5.6.2", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } + "packages/bytecode-utils/node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/@ethersproject/properties": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/json5": { + "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.6.0" + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, - "services/validation/node_modules/@ethersproject/rlp": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "services/validation/node_modules/@ethersproject/signing-key": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/keyv": { + "version": "3.1.0", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" + "json-buffer": "3.0.0" } }, - "services/validation/node_modules/@ethersproject/strings": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/latest-version": { + "version": "5.1.0", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" } }, - "services/validation/node_modules/@ethersproject/transactions": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/bytecode-utils/node_modules/levn": { + "version": "0.4.1", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "services/validation/node_modules/@ethersproject/web": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } + "packages/bytecode-utils/node_modules/lines-and-columns": { + "version": "1.2.4", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/@jsdevtools/chai-exec": { - "version": "2.1.1", + "packages/bytecode-utils/node_modules/load-json-file": { + "version": "5.3.0", "dev": true, "license": "MIT", "dependencies": { - "@jsdevtools/ez-spawn": "^3.0.3" + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" }, "engines": { - "node": ">=10" + "node": ">=6" } }, - "services/validation/node_modules/@jsdevtools/ez-spawn": { - "version": "3.0.4", + "packages/bytecode-utils/node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "call-me-maybe": "^1.0.1", - "cross-spawn": "^7.0.3", - "string-argv": "^0.3.1", - "type-detect": "^4.0.8" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "services/validation/node_modules/@sindresorhus/is": { - "version": "0.14.0", + "packages/bytecode-utils/node_modules/load-json-file/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=4" } }, - "services/validation/node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, + "packages/bytecode-utils/node_modules/load-json-file/node_modules/type-fest": { + "version": "0.3.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=6" } }, - "services/validation/node_modules/@types/bn.js": { - "version": "4.11.6", + "packages/bytecode-utils/node_modules/locate-path": { + "version": "6.0.0", + "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*" + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/@types/bunyan": { - "version": "1.8.8", + "packages/bytecode-utils/node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/lodash.isplainobject": { + "version": "4.0.6", "dev": true, "license": "MIT", - "dependencies": { - "@types/node": "*" - } + "optional": true }, - "services/validation/node_modules/@types/node": { - "version": "16.11.36", + "packages/bytecode-utils/node_modules/lodash.map": { + "version": "4.6.0", + "dev": true, "license": "MIT" }, - "services/validation/node_modules/@types/pbkdf2": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } + "packages/bytecode-utils/node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/@types/secp256k1": { - "version": "4.0.3", + "packages/bytecode-utils/node_modules/lodash.mergewith": { + "version": "4.6.2", + "dev": true, "license": "MIT", - "dependencies": { - "@types/node": "*" - } + "optional": true }, - "services/validation/node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", + "packages/bytecode-utils/node_modules/lodash.truncate": { + "version": "4.4.2", "dev": true, - "license": "ISC" + "license": "MIT" }, - "services/validation/node_modules/accepts": { - "version": "1.3.8", + "packages/bytecode-utils/node_modules/lodash.uniq": { + "version": "4.5.0", + "dev": true, "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } + "optional": true }, - "services/validation/node_modules/ajv": { - "version": "6.12.6", + "packages/bytecode-utils/node_modules/log-symbols": { + "version": "4.1.0", + "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/ansi-colors": { - "version": "4.1.1", + "packages/bytecode-utils/node_modules/longest": { + "version": "2.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "services/validation/node_modules/ansi-regex": { - "version": "3.0.1", + "packages/bytecode-utils/node_modules/lowercase-keys": { + "version": "1.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "services/validation/node_modules/ansi-styles": { - "version": "4.3.0", + "packages/bytecode-utils/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "packages/bytecode-utils/node_modules/make-dir": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "semver": "^6.0.0" }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/anymatch": { - "version": "3.1.2", + "packages/bytecode-utils/node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", "dev": true, "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "packages/bytecode-utils/node_modules/make-error": { + "version": "1.3.6", + "dev": true, + "license": "ISC" + }, + "packages/bytecode-utils/node_modules/map-age-cleaner": { + "version": "0.1.3", + "dev": true, + "license": "MIT", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "p-defer": "^1.0.0" }, "engines": { - "node": ">= 8" + "node": ">=6" } }, - "services/validation/node_modules/argparse": { - "version": "2.0.1", + "packages/bytecode-utils/node_modules/matcher": { + "version": "3.0.0", "dev": true, - "license": "Python-2.0" - }, - "services/validation/node_modules/array-flatten": { - "version": "1.1.1", - "license": "MIT" - }, - "services/validation/node_modules/asn1": { - "version": "0.2.6", - "license": "MIT", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "services/validation/node_modules/asn1.js": { - "version": "5.4.1", "license": "MIT", "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "services/validation/node_modules/assert-plus": { - "version": "1.0.0", + "packages/bytecode-utils/node_modules/matcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/assertion-error": { - "version": "1.1.0", + "packages/bytecode-utils/node_modules/md5-hex": { + "version": "3.0.1", "dev": true, "license": "MIT", + "dependencies": { + "blueimp-md5": "^2.10.0" + }, "engines": { - "node": "*" + "node": ">=8" } }, - "services/validation/node_modules/async-limiter": { - "version": "1.0.1", - "license": "MIT" - }, - "services/validation/node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" - }, - "services/validation/node_modules/available-typed-arrays": { - "version": "1.0.5", + "packages/bytecode-utils/node_modules/mem": { + "version": "8.1.1", + "dev": true, "license": "MIT", + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sindresorhus/mem?sponsor=1" } }, - "services/validation/node_modules/aws-sign2": { - "version": "0.7.0", - "license": "Apache-2.0", + "packages/bytecode-utils/node_modules/memorystream": { + "version": "0.3.1", + "dev": true, "engines": { - "node": "*" + "node": ">= 0.10.0" } }, - "services/validation/node_modules/aws4": { - "version": "1.11.0", - "license": "MIT" - }, - "services/validation/node_modules/balanced-match": { - "version": "1.0.2", - "devOptional": true, + "packages/bytecode-utils/node_modules/merge": { + "version": "2.1.1", + "dev": true, "license": "MIT" }, - "services/validation/node_modules/base-x": { - "version": "3.0.9", + "packages/bytecode-utils/node_modules/merge2": { + "version": "1.4.1", + "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "^5.0.1" + "engines": { + "node": ">= 8" } }, - "services/validation/node_modules/base64-js": { - "version": "1.5.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "services/validation/node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "license": "BSD-3-Clause", + "packages/bytecode-utils/node_modules/micromatch": { + "version": "4.0.5", + "dev": true, + "license": "MIT", "dependencies": { - "tweetnacl": "^0.14.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" } }, - "services/validation/node_modules/bignumber.js": { - "version": "9.0.2", + "packages/bytecode-utils/node_modules/mimic-fn": { + "version": "3.1.0", + "dev": true, "license": "MIT", "engines": { - "node": "*" + "node": ">=8" } }, - "services/validation/node_modules/binary-extensions": { - "version": "2.2.0", + "packages/bytecode-utils/node_modules/mimic-response": { + "version": "1.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" } }, - "services/validation/node_modules/blakejs": { - "version": "1.2.1", - "license": "MIT" - }, - "services/validation/node_modules/bluebird": { - "version": "3.7.2", - "license": "MIT" - }, - "services/validation/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "services/validation/node_modules/body-parser": { - "version": "1.20.0", - "license": "MIT", + "packages/bytecode-utils/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": "*" } }, - "services/validation/node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", + "packages/bytecode-utils/node_modules/minimist": { + "version": "1.2.7", + "dev": true, "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", + "packages/bytecode-utils/node_modules/ms": { + "version": "2.1.3", + "dev": true, "license": "MIT" }, - "services/validation/node_modules/brace-expansion": { - "version": "1.1.11", - "devOptional": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "services/validation/node_modules/braces": { - "version": "3.0.2", + "packages/bytecode-utils/node_modules/mute-stream": { + "version": "0.0.8", "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } + "license": "ISC" }, - "services/validation/node_modules/brorand": { - "version": "1.1.0", + "packages/bytecode-utils/node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, "license": "MIT" }, - "services/validation/node_modules/browser-stdout": { - "version": "1.3.1", + "packages/bytecode-utils/node_modules/nice-try": { + "version": "1.0.5", "dev": true, - "license": "ISC" - }, - "services/validation/node_modules/browserify-aes": { - "version": "1.2.0", - "license": "MIT", - "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" - } + "license": "MIT" }, - "services/validation/node_modules/browserify-cipher": { - "version": "1.0.1", + "packages/bytecode-utils/node_modules/node-fetch": { + "version": "2.6.12", + "dev": true, "license": "MIT", "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "services/validation/node_modules/browserify-des": { - "version": "1.0.2", + "packages/bytecode-utils/node_modules/node-gyp-build-optional-packages": { + "version": "5.0.3", "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "optional": true, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" } }, - "services/validation/node_modules/browserify-rsa": { - "version": "4.1.0", - "license": "MIT", + "packages/bytecode-utils/node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "services/validation/node_modules/browserify-rsa/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "services/validation/node_modules/browserify-sign": { - "version": "4.2.1", + "packages/bytecode-utils/node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "dev": true, "license": "ISC", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "services/validation/node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "services/validation/node_modules/bs58": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.2" + "bin": { + "semver": "bin/semver" } }, - "services/validation/node_modules/bs58check": { - "version": "2.1.2", + "packages/bytecode-utils/node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "engines": { + "node": ">=0.10.0" } }, - "services/validation/node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "packages/bytecode-utils/node_modules/normalize-url": { + "version": "4.5.1", + "dev": true, "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "engines": { + "node": ">=8" } }, - "services/validation/node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "license": "MIT" - }, - "services/validation/node_modules/buffer-xor": { - "version": "1.0.3", - "license": "MIT" - }, - "services/validation/node_modules/bufferutil": { - "version": "4.0.6", - "hasInstallScript": true, + "packages/bytecode-utils/node_modules/npm-run-all": { + "version": "4.1.5", + "dev": true, "license": "MIT", "dependencies": { - "node-gyp-build": "^4.3.0" + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" }, - "engines": { - "node": ">=6.14.2" - } - }, - "services/validation/node_modules/bunyan": { - "version": "1.8.15", - "engines": [ - "node >=0.10.0" - ], - "license": "MIT", "bin": { - "bunyan": "bin/bunyan" + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" }, - "optionalDependencies": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "services/validation/node_modules/bytes": { - "version": "3.1.2", - "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">= 4" } }, - "services/validation/node_modules/cacheable-request": { - "version": "6.1.0", + "packages/bytecode-utils/node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, "license": "MIT", "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "services/validation/node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", + "packages/bytecode-utils/node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "dev": true, "license": "MIT", "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "services/validation/node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" } }, - "services/validation/node_modules/call-bind": { - "version": "1.0.2", + "packages/bytecode-utils/node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "dev": true, "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=4.8" } }, - "services/validation/node_modules/call-me-maybe": { - "version": "1.0.1", + "packages/bytecode-utils/node_modules/npm-run-all/node_modules/escape-string-regexp": { + "version": "1.0.5", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } }, - "services/validation/node_modules/camelcase": { - "version": "6.3.0", + "packages/bytecode-utils/node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "services/validation/node_modules/caseless": { - "version": "0.12.0", - "license": "Apache-2.0" - }, - "services/validation/node_modules/chai": { - "version": "4.3.6", + "packages/bytecode-utils/node_modules/npm-run-all/node_modules/load-json-file": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" }, "engines": { "node": ">=4" } }, - "services/validation/node_modules/chai-exec": { - "version": "2.1.1", + "packages/bytecode-utils/node_modules/npm-run-all/node_modules/parse-json": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "@jsdevtools/chai-exec": "2.1.1" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "services/validation/node_modules/chalk": { - "version": "4.1.2", + "packages/bytecode-utils/node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4" } }, - "services/validation/node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", + "packages/bytecode-utils/node_modules/npm-run-all/node_modules/path-type": { + "version": "3.0.0", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "pify": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "services/validation/node_modules/check-error": { - "version": "1.0.2", + "packages/bytecode-utils/node_modules/npm-run-all/node_modules/pify": { + "version": "3.0.0", "dev": true, "license": "MIT", "engines": { - "node": "*" + "node": ">=4" } }, - "services/validation/node_modules/chokidar": { - "version": "3.5.1", + "packages/bytecode-utils/node_modules/npm-run-all/node_modules/read-pkg": { + "version": "3.0.0", "dev": true, "license": "MIT", "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" }, "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.1" + "node": ">=4" } }, - "services/validation/node_modules/chownr": { - "version": "1.1.4", - "license": "ISC" + "packages/bytecode-utils/node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } }, - "services/validation/node_modules/cids": { - "version": "0.7.5", + "packages/bytecode-utils/node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "dev": true, "license": "MIT", "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" + "shebang-regex": "^1.0.0" }, "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" + "node": ">=0.10.0" } }, - "services/validation/node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", + "packages/bytecode-utils/node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" + "engines": { + "node": ">=0.10.0" } }, - "services/validation/node_modules/cipher-base": { - "version": "1.0.4", + "packages/bytecode-utils/node_modules/npm-run-all/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "engines": { + "node": ">=4" } }, - "services/validation/node_modules/class-is": { - "version": "1.1.0", - "license": "MIT" + "packages/bytecode-utils/node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } }, - "services/validation/node_modules/cliui": { - "version": "7.0.4", + "packages/bytecode-utils/node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", "dev": true, "license": "ISC", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "services/validation/node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", + "packages/bytecode-utils/node_modules/object-inspect": { + "version": "1.12.3", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "packages/bytecode-utils/node_modules/object-keys": { + "version": "1.1.1", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "services/validation/node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", + "packages/bytecode-utils/node_modules/object.assign": { + "version": "4.1.4", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", + "packages/bytecode-utils/node_modules/object.fromentries": { + "version": "2.0.6", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { - "node": ">=8" - } - }, - "services/validation/node_modules/clone-response": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/color-convert": { - "version": "2.0.1", + "packages/bytecode-utils/node_modules/object.values": { + "version": "1.1.6", "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { - "node": ">=7.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/color-name": { - "version": "1.1.4", + "packages/bytecode-utils/node_modules/once": { + "version": "1.4.0", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "wrappy": "1" + } }, - "services/validation/node_modules/combined-stream": { - "version": "1.0.8", + "packages/bytecode-utils/node_modules/onetime": { + "version": "5.1.2", + "dev": true, "license": "MIT", "dependencies": { - "delayed-stream": "~1.0.0" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">= 0.8" - } + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "services/validation/node_modules/commander": { - "version": "6.2.1", + "packages/bytecode-utils/node_modules/onetime/node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=6" } }, - "services/validation/node_modules/concat-map": { - "version": "0.0.1", - "devOptional": true, - "license": "MIT" - }, - "services/validation/node_modules/content-disposition": { - "version": "0.5.4", + "packages/bytecode-utils/node_modules/optionator": { + "version": "0.9.3", + "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "5.2.1" + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.8.0" } }, - "services/validation/node_modules/content-hash": { - "version": "2.5.2", - "license": "ISC", + "packages/bytecode-utils/node_modules/ora": { + "version": "5.4.1", + "dev": true, + "license": "MIT", "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/content-type": { - "version": "1.0.4", + "packages/bytecode-utils/node_modules/os-tmpdir": { + "version": "1.0.2", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "services/validation/node_modules/cookie": { - "version": "0.5.0", + "packages/bytecode-utils/node_modules/p-cancelable": { + "version": "1.1.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "services/validation/node_modules/cookie-signature": { - "version": "1.0.6", - "license": "MIT" - }, - "services/validation/node_modules/cookiejar": { - "version": "2.1.3", - "license": "MIT" - }, - "services/validation/node_modules/core-util-is": { - "version": "1.0.2", - "license": "MIT" + "packages/bytecode-utils/node_modules/p-defer": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "services/validation/node_modules/cors": { - "version": "2.8.5", + "packages/bytecode-utils/node_modules/p-event": { + "version": "4.2.0", + "dev": true, "license": "MIT", "dependencies": { - "object-assign": "^4", - "vary": "^1" + "p-timeout": "^3.1.0" }, "engines": { - "node": ">= 0.10" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/crc-32": { - "version": "1.2.2", - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" - }, + "packages/bytecode-utils/node_modules/p-finally": { + "version": "1.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.8" + "node": ">=4" } }, - "services/validation/node_modules/create-ecdh": { - "version": "4.0.4", + "packages/bytecode-utils/node_modules/p-limit": { + "version": "3.1.0", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/create-hash": { - "version": "1.2.0", + "packages/bytecode-utils/node_modules/p-locate": { + "version": "5.0.0", + "dev": true, "license": "MIT", "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/create-hmac": { - "version": "1.1.7", + "packages/bytecode-utils/node_modules/p-map": { + "version": "4.0.0", + "dev": true, "license": "MIT", "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" + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/cross-spawn": { - "version": "7.0.3", + "packages/bytecode-utils/node_modules/p-timeout": { + "version": "3.2.0", "dev": true, "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "p-finally": "^1.0.0" }, "engines": { - "node": ">= 8" + "node": ">=8" + } + }, + "packages/bytecode-utils/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" } }, - "services/validation/node_modules/crypto-browserify": { - "version": "3.12.0", + "packages/bytecode-utils/node_modules/package-json": { + "version": "6.5.0", + "dev": true, "license": "MIT", "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" }, "engines": { - "node": "*" + "node": ">=8" } }, - "services/validation/node_modules/d": { - "version": "1.0.1", + "packages/bytecode-utils/node_modules/package-json/node_modules/semver": { + "version": "6.3.1", + "dev": true, "license": "ISC", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "bin": { + "semver": "bin/semver.js" } }, - "services/validation/node_modules/dashdash": { - "version": "1.14.1", + "packages/bytecode-utils/node_modules/parent-module": { + "version": "1.0.1", + "dev": true, "license": "MIT", "dependencies": { - "assert-plus": "^1.0.0" + "callsites": "^3.0.0" }, "engines": { - "node": ">=0.10" + "node": ">=6" } }, - "services/validation/node_modules/debug": { - "version": "4.3.1", + "packages/bytecode-utils/node_modules/parse-json": { + "version": "5.2.0", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.1.2" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, "engines": { - "node": ">=6.0" + "node": ">=8" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/debug/node_modules/ms": { - "version": "2.1.2", + "packages/bytecode-utils/node_modules/parse-ms": { + "version": "2.1.0", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "services/validation/node_modules/decamelize": { - "version": "4.0.0", + "packages/bytecode-utils/node_modules/parse-passwd": { + "version": "1.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "services/validation/node_modules/decode-uri-component": { - "version": "0.2.0", + "packages/bytecode-utils/node_modules/path-exists": { + "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=8" } }, - "services/validation/node_modules/decompress-response": { - "version": "3.3.0", + "packages/bytecode-utils/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "services/validation/node_modules/deep-eql": { - "version": "3.0.1", + "packages/bytecode-utils/node_modules/path-key": { + "version": "3.1.1", "dev": true, "license": "MIT", - "dependencies": { - "type-detect": "^4.0.0" - }, "engines": { - "node": ">=0.12" + "node": ">=8" } }, - "services/validation/node_modules/defer-to-connect": { - "version": "1.1.3", + "packages/bytecode-utils/node_modules/path-parse": { + "version": "1.0.7", + "dev": true, "license": "MIT" }, - "services/validation/node_modules/define-properties": { - "version": "1.1.4", + "packages/bytecode-utils/node_modules/path-type": { + "version": "4.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, "engines": { - "node": ">= 0.4" + "node": ">=8" + } + }, + "packages/bytecode-utils/node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "services/validation/node_modules/delayed-stream": { - "version": "1.0.0", + "packages/bytecode-utils/node_modules/pidtree": { + "version": "0.3.1", + "dev": true, "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, "engines": { - "node": ">=0.4.0" + "node": ">=0.10" } }, - "services/validation/node_modules/depd": { - "version": "2.0.0", + "packages/bytecode-utils/node_modules/pify": { + "version": "4.0.1", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=6" } }, - "services/validation/node_modules/des.js": { - "version": "1.0.1", + "packages/bytecode-utils/node_modules/pkg-conf": { + "version": "3.1.0", + "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "engines": { + "node": ">=6" } }, - "services/validation/node_modules/destroy": { - "version": "1.2.0", + "packages/bytecode-utils/node_modules/pkg-conf/node_modules/find-up": { + "version": "3.0.0", + "dev": true, "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=6" } }, - "services/validation/node_modules/diff": { - "version": "5.0.0", + "packages/bytecode-utils/node_modules/pkg-conf/node_modules/locate-path": { + "version": "3.0.0", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, "engines": { - "node": ">=0.3.1" + "node": ">=6" } }, - "services/validation/node_modules/diffie-hellman": { - "version": "5.0.3", + "packages/bytecode-utils/node_modules/pkg-conf/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/dom-walk": { - "version": "0.1.2" - }, - "services/validation/node_modules/dtrace-provider": { - "version": "0.8.8", - "hasInstallScript": true, - "license": "BSD-2-Clause", - "optional": true, + "packages/bytecode-utils/node_modules/pkg-conf/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "nan": "^2.14.0" + "p-limit": "^2.0.0" }, "engines": { - "node": ">=0.10" + "node": ">=6" } }, - "services/validation/node_modules/duplexer3": { - "version": "0.1.4", - "license": "BSD-3-Clause" - }, - "services/validation/node_modules/ecc-jsbn": { - "version": "0.1.2", + "packages/bytecode-utils/node_modules/pkg-conf/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "engines": { + "node": ">=4" } }, - "services/validation/node_modules/ee-first": { - "version": "1.1.1", - "license": "MIT" - }, - "services/validation/node_modules/elliptic": { - "version": "6.5.4", + "packages/bytecode-utils/node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, "license": "MIT", "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" + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "services/validation/node_modules/emoji-regex": { - "version": "8.0.0", + "packages/bytecode-utils/node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", "dev": true, - "license": "MIT" - }, - "services/validation/node_modules/encodeurl": { - "version": "1.0.2", "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "services/validation/node_modules/end-of-stream": { - "version": "1.4.4", + "packages/bytecode-utils/node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, "license": "MIT", "dependencies": { - "once": "^1.4.0" + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "services/validation/node_modules/es-abstract": { - "version": "1.20.1", + "packages/bytecode-utils/node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" + "p-try": "^2.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/es-to-primitive": { - "version": "1.2.1", + "packages/bytecode-utils/node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, "license": "MIT", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "p-limit": "^2.2.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "services/validation/node_modules/es5-ext": { - "version": "0.10.61", - "hasInstallScript": true, - "license": "ISC", + "packages/bytecode-utils/node_modules/plur": { + "version": "4.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" + "irregular-plurals": "^3.2.0" }, "engines": { - "node": ">=0.10" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/es6-iterator": { - "version": "2.0.3", + "packages/bytecode-utils/node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, "license": "MIT", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "engines": { + "node": ">= 0.8.0" } }, - "services/validation/node_modules/es6-symbol": { - "version": "3.1.3", - "license": "ISC", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" + "packages/bytecode-utils/node_modules/prepend-http": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" } }, - "services/validation/node_modules/escalade": { - "version": "3.1.1", + "packages/bytecode-utils/node_modules/prettier": { + "version": "2.8.8", "dev": true, "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, "engines": { - "node": ">=6" + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "services/validation/node_modules/escape-html": { - "version": "1.0.3", - "license": "MIT" - }, - "services/validation/node_modules/escape-string-regexp": { - "version": "4.0.0", + "packages/bytecode-utils/node_modules/pretty-ms": { + "version": "7.0.1", "dev": true, "license": "MIT", + "dependencies": { + "parse-ms": "^2.1.0" + }, "engines": { "node": ">=10" }, @@ -24689,761 +26389,738 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/etag": { - "version": "1.8.1", + "packages/bytecode-utils/node_modules/progress": { + "version": "2.0.3", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=0.4.0" } }, - "services/validation/node_modules/eth-ens-namehash": { - "version": "2.0.8", - "license": "ISC", + "packages/bytecode-utils/node_modules/pump": { + "version": "3.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "services/validation/node_modules/eth-ens-namehash/node_modules/js-sha3": { - "version": "0.5.7", - "license": "MIT" + "packages/bytecode-utils/node_modules/punycode": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "services/validation/node_modules/eth-lib": { - "version": "0.1.29", + "packages/bytecode-utils/node_modules/pupa": { + "version": "2.1.1", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "services/validation/node_modules/ethereum-bloom-filters": { - "version": "1.0.10", - "license": "MIT", + "packages/bytecode-utils/node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/rc": { + "version": "1.2.8", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { - "js-sha3": "^0.8.0" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" } }, - "services/validation/node_modules/ethereum-cryptography": { - "version": "0.1.3", + "packages/bytecode-utils/node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "dev": true, "license": "MIT", - "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" + "engines": { + "node": ">=0.10.0" } }, - "services/validation/node_modules/ethereumjs-util": { - "version": "7.1.4", - "license": "MPL-2.0", + "packages/bytecode-utils/node_modules/read-pkg": { + "version": "5.2.0", + "dev": true, + "license": "MIT", "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" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=8" } }, - "services/validation/node_modules/ethereumjs-util/node_modules/@types/bn.js": { - "version": "5.1.0", + "packages/bytecode-utils/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "packages/bytecode-utils/node_modules/readable-stream": { + "version": "3.6.2", + "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "services/validation/node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "services/validation/node_modules/ethjs-unit": { - "version": "0.1.6", + "packages/bytecode-utils/node_modules/readdirp": { + "version": "3.6.0", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" + "picomatch": "^2.2.1" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=8.10.0" } }, - "services/validation/node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "license": "MIT" - }, - "services/validation/node_modules/eventemitter3": { - "version": "4.0.4", - "license": "MIT" - }, - "services/validation/node_modules/evp_bytestokey": { - "version": "1.0.3", + "packages/bytecode-utils/node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "dev": true, "license": "MIT", "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/express": { - "version": "4.18.1", + "packages/bytecode-utils/node_modules/regexpp": { + "version": "3.2.0", + "dev": true, "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, "engines": { - "node": ">= 0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "services/validation/node_modules/express/node_modules/debug": { - "version": "2.6.9", + "packages/bytecode-utils/node_modules/registry-auth-token": { + "version": "4.2.2", + "dev": true, "license": "MIT", "dependencies": { - "ms": "2.0.0" - } - }, - "services/validation/node_modules/express/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "services/validation/node_modules/ext": { - "version": "1.6.0", - "license": "ISC", - "dependencies": { - "type": "^2.5.0" + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" } }, - "services/validation/node_modules/ext/node_modules/type": { - "version": "2.6.0", - "license": "ISC" - }, - "services/validation/node_modules/extend": { - "version": "3.0.2", - "license": "MIT" - }, - "services/validation/node_modules/extsprintf": { - "version": "1.3.0", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" - }, - "services/validation/node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT" - }, - "services/validation/node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "license": "MIT" - }, - "services/validation/node_modules/fill-range": { - "version": "7.0.1", + "packages/bytecode-utils/node_modules/registry-url": { + "version": "5.1.0", "dev": true, "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "rc": "^1.2.8" }, "engines": { "node": ">=8" } }, - "services/validation/node_modules/finalhandler": { - "version": "1.2.0", + "packages/bytecode-utils/node_modules/require-directory": { + "version": "2.1.1", + "dev": true, "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "services/validation/node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", + "packages/bytecode-utils/node_modules/require-from-string": { + "version": "2.0.2", + "dev": true, "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">=0.10.0" } }, - "services/validation/node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "services/validation/node_modules/find-up": { - "version": "5.0.0", + "packages/bytecode-utils/node_modules/resolve": { + "version": "1.22.2", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": ">=10" + "bin": { + "resolve": "bin/resolve" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/flat": { - "version": "5.0.2", + "packages/bytecode-utils/node_modules/resolve-cwd": { + "version": "3.0.0", "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "services/validation/node_modules/for-each": { - "version": "0.3.3", "license": "MIT", "dependencies": { - "is-callable": "^1.1.3" - } - }, - "services/validation/node_modules/forever-agent": { - "version": "0.6.1", - "license": "Apache-2.0", + "resolve-from": "^5.0.0" + }, "engines": { - "node": "*" + "node": ">=8" } }, - "services/validation/node_modules/form-data": { - "version": "2.3.3", + "packages/bytecode-utils/node_modules/resolve-dir": { + "version": "1.0.1", + "dev": true, "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" }, "engines": { - "node": ">= 0.12" + "node": ">=0.10.0" } }, - "services/validation/node_modules/forwarded": { - "version": "0.2.0", + "packages/bytecode-utils/node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "services/validation/node_modules/fresh": { - "version": "0.5.2", + "packages/bytecode-utils/node_modules/resolve-global": { + "version": "1.0.0", + "dev": true, "license": "MIT", + "optional": true, + "dependencies": { + "global-dirs": "^0.1.1" + }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "services/validation/node_modules/fs-extra": { - "version": "4.0.3", + "packages/bytecode-utils/node_modules/responselike": { + "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "services/validation/node_modules/fs-minipass": { - "version": "1.2.7", - "license": "ISC", - "dependencies": { - "minipass": "^2.6.0" + "lowercase-keys": "^1.0.0" } }, - "services/validation/node_modules/fs.realpath": { - "version": "1.0.0", + "packages/bytecode-utils/node_modules/restore-cursor": { + "version": "3.1.0", "dev": true, - "license": "ISC" - }, - "services/validation/node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" - }, - "services/validation/node_modules/function.prototype.name": { - "version": "1.1.5", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "services/validation/node_modules/functions-have-names": { - "version": "1.2.3", + "packages/bytecode-utils/node_modules/reusify": { + "version": "1.0.4", + "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "services/validation/node_modules/get-caller-file": { - "version": "2.0.5", + "packages/bytecode-utils/node_modules/rimraf": { + "version": "3.0.2", "dev": true, "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "services/validation/node_modules/get-func-name": { - "version": "2.0.0", + "packages/bytecode-utils/node_modules/run-async": { + "version": "2.4.1", "dev": true, "license": "MIT", "engines": { - "node": "*" + "node": ">=0.12.0" } }, - "services/validation/node_modules/get-intrinsic": { - "version": "1.1.1", + "packages/bytecode-utils/node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "queue-microtask": "^1.2.2" } }, - "services/validation/node_modules/get-stream": { - "version": "4.1.0", - "license": "MIT", + "packages/bytecode-utils/node_modules/rxjs": { + "version": "7.8.1", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" + "tslib": "^2.1.0" } }, - "services/validation/node_modules/get-symbol-description": { + "packages/bytecode-utils/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/safe-regex-test": { "version": "1.0.0", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/getpass": { - "version": "0.1.7", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - } + "packages/bytecode-utils/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/glob": { - "version": "7.1.6", + "packages/bytecode-utils/node_modules/semver": { + "version": "7.5.4", "dev": true, "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "lru-cache": "^6.0.0" }, - "engines": { - "node": "*" + "bin": { + "semver": "bin/semver.js" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">=10" } }, - "services/validation/node_modules/glob-parent": { - "version": "5.1.2", + "packages/bytecode-utils/node_modules/semver-diff": { + "version": "3.1.1", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "semver": "^6.3.0" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "services/validation/node_modules/global": { - "version": "4.4.0", - "license": "MIT", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" + "packages/bytecode-utils/node_modules/semver-diff/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "services/validation/node_modules/got": { - "version": "9.6.0", + "packages/bytecode-utils/node_modules/serialize-error": { + "version": "7.0.1", + "dev": true, "license": "MIT", "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" + "type-fest": "^0.13.1" }, "engines": { - "node": ">=8.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/graceful-fs": { - "version": "4.2.10", - "license": "ISC" - }, - "services/validation/node_modules/growl": { - "version": "1.10.5", + "packages/bytecode-utils/node_modules/serialize-error/node_modules/type-fest": { + "version": "0.13.1", "dev": true, - "license": "MIT", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=4.x" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/har-schema": { + "packages/bytecode-utils/node_modules/shebang-command": { "version": "2.0.0", - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "services/validation/node_modules/har-validator": { - "version": "5.1.5", + "dev": true, "license": "MIT", "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "services/validation/node_modules/has": { - "version": "1.0.3", + "packages/bytecode-utils/node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, "engines": { - "node": ">= 0.4.0" + "node": ">=8" } }, - "services/validation/node_modules/has-bigints": { - "version": "1.0.2", + "packages/bytecode-utils/node_modules/shell-quote": { + "version": "1.8.1", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/has-flag": { - "version": "4.0.0", + "packages/bytecode-utils/node_modules/side-channel": { + "version": "1.0.4", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "services/validation/node_modules/has-property-descriptors": { - "version": "1.0.0", - "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/has-symbol-support-x": { - "version": "1.4.2", - "license": "MIT", - "engines": { - "node": "*" - } + "packages/bytecode-utils/node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" }, - "services/validation/node_modules/has-symbols": { - "version": "1.0.3", + "packages/bytecode-utils/node_modules/slash": { + "version": "3.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "services/validation/node_modules/has-to-string-tag-x": { - "version": "1.4.1", + "packages/bytecode-utils/node_modules/slice-ansi": { + "version": "3.0.0", + "dev": true, "license": "MIT", "dependencies": { - "has-symbol-support-x": "^1.4.1" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": "*" + "node": ">=8" } }, - "services/validation/node_modules/has-tostringtag": { - "version": "1.0.0", + "packages/bytecode-utils/node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "services/validation/node_modules/hash-base": { - "version": "3.1.0", + "packages/bytecode-utils/node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=4" + "node": ">=7.0.0" } }, - "services/validation/node_modules/hash.js": { - "version": "1.1.7", + "packages/bytecode-utils/node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "packages/bytecode-utils/node_modules/source-map-support": { + "version": "0.5.21", + "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "services/validation/node_modules/he": { - "version": "1.2.0", + "packages/bytecode-utils/node_modules/spdx-correct": { + "version": "3.2.0", "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "services/validation/node_modules/hmac-drbg": { - "version": "1.0.1", + "packages/bytecode-utils/node_modules/spdx-exceptions": { + "version": "2.3.0", + "dev": true, + "license": "CC-BY-3.0" + }, + "packages/bytecode-utils/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, "license": "MIT", "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "services/validation/node_modules/http-cache-semantics": { - "version": "4.1.0", - "license": "BSD-2-Clause" + "packages/bytecode-utils/node_modules/spdx-license-ids": { + "version": "3.0.13", + "dev": true, + "license": "CC0-1.0" }, - "services/validation/node_modules/http-errors": { - "version": "2.0.0", + "packages/bytecode-utils/node_modules/sprintf-js": { + "version": "1.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "packages/bytecode-utils/node_modules/stack-utils": { + "version": "2.0.6", + "dev": true, "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "escape-string-regexp": "^2.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">=10" } }, - "services/validation/node_modules/http-https": { - "version": "1.0.0", - "license": "ISC" + "packages/bytecode-utils/node_modules/stream-events": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "stubs": "^3.0.0" + } }, - "services/validation/node_modules/http-signature": { - "version": "1.2.0", + "packages/bytecode-utils/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, "license": "MIT", "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" + "safe-buffer": "~5.2.0" } }, - "services/validation/node_modules/iconv-lite": { - "version": "0.4.24", + "packages/bytecode-utils/node_modules/string-width": { + "version": "4.2.3", + "dev": true, "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "services/validation/node_modules/idna-uts46-hx": { - "version": "2.3.1", + "packages/bytecode-utils/node_modules/string.prototype.padend": { + "version": "3.1.4", + "dev": true, "license": "MIT", "dependencies": { - "punycode": "2.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { - "node": ">=4.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", + "packages/bytecode-utils/node_modules/string.prototype.trim": { + "version": "1.2.7", + "dev": true, "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "services/validation/node_modules/inflight": { + "packages/bytecode-utils/node_modules/string.prototype.trimend": { "version": "1.0.6", - "devOptional": true, - "license": "ISC", + "dev": true, + "license": "MIT", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" + "packages/bytecode-utils/node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "services/validation/node_modules/internal-slot": { - "version": "1.0.3", + "packages/bytecode-utils/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "services/validation/node_modules/ipaddr.js": { - "version": "1.9.1", + "packages/bytecode-utils/node_modules/strip-bom": { + "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.10" + "node": ">=8" } }, - "services/validation/node_modules/is-arguments": { - "version": "1.1.1", + "packages/bytecode-utils/node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/is-bigint": { - "version": "1.0.4", + "packages/bytecode-utils/node_modules/stubs": { + "version": "3.0.0", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/supertap": { + "version": "2.0.0", + "dev": true, "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" + "arrify": "^2.0.1", + "indent-string": "^4.0.0", + "js-yaml": "^3.14.0", + "serialize-error": "^7.0.1", + "strip-ansi": "^6.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "services/validation/node_modules/is-binary-path": { - "version": "2.1.0", + "packages/bytecode-utils/node_modules/supports-color": { + "version": "7.2.0", "dev": true, "license": "MIT", "dependencies": { - "binary-extensions": "^2.0.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "services/validation/node_modules/is-boolean-object": { - "version": "1.1.2", + "packages/bytecode-utils/node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, "engines": { "node": ">= 0.4" }, @@ -25451,2184 +27128,2623 @@ "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/is-callable": { - "version": "1.2.4", - "license": "MIT", - "engines": { - "node": ">= 0.4" + "packages/bytecode-utils/node_modules/table": { + "version": "6.8.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10.0.0" } }, - "services/validation/node_modules/is-date-object": { - "version": "1.0.5", + "packages/bytecode-utils/node_modules/table/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "services/validation/node_modules/is-extglob": { - "version": "2.1.1", + "packages/bytecode-utils/node_modules/table/node_modules/color-convert": { + "version": "2.0.1", "dev": true, "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=0.10.0" + "node": ">=7.0.0" } }, - "services/validation/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", + "packages/bytecode-utils/node_modules/table/node_modules/color-name": { + "version": "1.1.4", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "services/validation/node_modules/is-function": { - "version": "1.0.2", "license": "MIT" }, - "services/validation/node_modules/is-generator-function": { - "version": "1.0.10", + "packages/bytecode-utils/node_modules/table/node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "services/validation/node_modules/is-glob": { - "version": "4.0.3", + "packages/bytecode-utils/node_modules/teeny-request": { + "version": "7.1.1", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "is-extglob": "^2.1.1" + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "services/validation/node_modules/is-hex-prefixed": { - "version": "1.0.0", + "packages/bytecode-utils/node_modules/temp-dir": { + "version": "2.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=8" } }, - "services/validation/node_modules/is-negative-zero": { - "version": "2.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.4" + "packages/bytecode-utils/node_modules/test-exclude": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "services/validation/node_modules/is-number": { - "version": "7.0.0", + "packages/bytecode-utils/node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/through": { + "version": "2.3.8", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/time-zone": { + "version": "1.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.12.0" + "node": ">=4" } }, - "services/validation/node_modules/is-number-object": { - "version": "1.0.7", + "packages/bytecode-utils/node_modules/tmp": { + "version": "0.0.33", + "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "os-tmpdir": "~1.0.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "services/validation/node_modules/is-object": { - "version": "1.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.6.0" } }, - "services/validation/node_modules/is-plain-obj": { - "version": "2.1.0", + "packages/bytecode-utils/node_modules/to-readable-stream": { + "version": "1.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=6" } }, - "services/validation/node_modules/is-regex": { - "version": "1.1.4", + "packages/bytecode-utils/node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "is-number": "^7.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8.0" } }, - "services/validation/node_modules/is-retry-allowed": { - "version": "1.2.0", + "packages/bytecode-utils/node_modules/tr46": { + "version": "0.0.3", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/trim-off-newlines": { + "version": "1.0.3", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "services/validation/node_modules/is-shared-array-buffer": { - "version": "1.0.2", + "packages/bytecode-utils/node_modules/ts-node": { + "version": "9.1.1", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "ts-node": "dist/bin.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "typescript": ">=2.7" } }, - "services/validation/node_modules/is-stream": { - "version": "1.1.0", + "packages/bytecode-utils/node_modules/tsconfig-paths": { + "version": "3.14.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "packages/bytecode-utils/node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "services/validation/node_modules/is-string": { - "version": "1.0.7", + "packages/bytecode-utils/node_modules/tslib": { + "version": "2.6.0", + "dev": true, + "license": "0BSD" + }, + "packages/bytecode-utils/node_modules/tsutils": { + "version": "3.21.0", + "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "tslib": "^1.8.1" }, "engines": { - "node": ">= 0.4" + "node": ">= 6" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, - "services/validation/node_modules/is-symbol": { - "version": "1.0.4", + "packages/bytecode-utils/node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, + "packages/bytecode-utils/node_modules/type-check": { + "version": "0.4.0", + "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "prelude-ls": "^1.2.1" }, "engines": { - "node": ">= 0.4" + "node": ">= 0.8.0" + } + }, + "packages/bytecode-utils/node_modules/type-fest": { + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/is-typed-array": { - "version": "1.1.9", + "packages/bytecode-utils/node_modules/typed-array-length": { + "version": "1.0.4", + "dev": true, "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "is-typed-array": "^1.1.9" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/is-typedarray": { - "version": "1.0.0", - "license": "MIT" + "packages/bytecode-utils/node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "packages/bytecode-utils/node_modules/typescript": { + "version": "4.9.5", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } }, - "services/validation/node_modules/is-weakref": { + "packages/bytecode-utils/node_modules/unbox-primitive": { "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/isexe": { + "packages/bytecode-utils/node_modules/unique-string": { "version": "2.0.0", "dev": true, - "license": "ISC" - }, - "services/validation/node_modules/isstream": { - "version": "0.1.2", - "license": "MIT" - }, - "services/validation/node_modules/isurl": { - "version": "1.0.0", "license": "MIT", "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "crypto-random-string": "^2.0.0" }, "engines": { - "node": ">= 4" + "node": ">=8" } }, - "services/validation/node_modules/js-sha3": { - "version": "0.8.0", - "license": "MIT" - }, - "services/validation/node_modules/js-yaml": { - "version": "4.0.0", + "packages/bytecode-utils/node_modules/universalify": { + "version": "2.0.0", "dev": true, "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "packages/bytecode-utils/node_modules/update-notifier": { + "version": "5.1.0", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "argparse": "^2.0.1" + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" } }, - "services/validation/node_modules/jsbn": { - "version": "0.1.1", - "license": "MIT" - }, - "services/validation/node_modules/json-buffer": { - "version": "3.0.0", - "license": "MIT" - }, - "services/validation/node_modules/json-schema": { - "version": "0.4.0", - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, - "services/validation/node_modules/json-schema-traverse": { - "version": "0.4.1", - "license": "MIT" - }, - "services/validation/node_modules/json-stringify-safe": { - "version": "5.0.1", - "license": "ISC" - }, - "services/validation/node_modules/jsonfile": { - "version": "4.0.0", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "packages/bytecode-utils/node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" } }, - "services/validation/node_modules/jsprim": { - "version": "1.4.2", + "packages/bytecode-utils/node_modules/url-parse-lax": { + "version": "3.0.0", + "dev": true, "license": "MIT", "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" + "prepend-http": "^2.0.0" }, "engines": { - "node": ">=0.6.0" + "node": ">=4" } }, - "services/validation/node_modules/keccak": { - "version": "3.0.2", - "hasInstallScript": true, - "license": "MIT", + "packages/bytecode-utils/node_modules/urlgrey": { + "version": "1.0.0", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.0.0" + "fast-url-parser": "^1.1.3" } }, - "services/validation/node_modules/keyv": { - "version": "3.1.0", + "packages/bytecode-utils/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/uuid": { + "version": "8.3.2", + "dev": true, "license": "MIT", - "dependencies": { - "json-buffer": "3.0.0" + "bin": { + "uuid": "dist/bin/uuid" } }, - "services/validation/node_modules/locate-path": { - "version": "6.0.0", + "packages/bytecode-utils/node_modules/v8-compile-cache": { + "version": "2.3.0", + "dev": true, + "license": "MIT" + }, + "packages/bytecode-utils/node_modules/v8-compile-cache-lib": { + "version": "3.0.1", "dev": true, "license": "MIT", + "optional": true + }, + "packages/bytecode-utils/node_modules/v8-to-istanbul": { + "version": "9.1.0", + "dev": true, + "license": "ISC", "dependencies": { - "p-locate": "^5.0.0" + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10.12.0" } }, - "services/validation/node_modules/log-symbols": { - "version": "4.0.0", + "packages/bytecode-utils/node_modules/validate-npm-package-license": { + "version": "3.0.4", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "chalk": "^4.0.0" - }, - "engines": { - "node": ">=10" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "services/validation/node_modules/loupe": { - "version": "2.3.4", + "packages/bytecode-utils/node_modules/wcwidth": { + "version": "1.0.1", "dev": true, "license": "MIT", "dependencies": { - "get-func-name": "^2.0.0" + "defaults": "^1.0.3" } }, - "services/validation/node_modules/lowercase-keys": { - "version": "1.0.1", - "license": "MIT", + "packages/bytecode-utils/node_modules/webidl-conversions": { + "version": "3.0.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "packages/bytecode-utils/node_modules/well-known-symbols": { + "version": "2.0.0", + "dev": true, + "license": "ISC", "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "services/validation/node_modules/md5.js": { - "version": "1.3.5", + "packages/bytecode-utils/node_modules/whatwg-url": { + "version": "5.0.0", + "dev": true, "license": "MIT", "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "services/validation/node_modules/media-typer": { - "version": "0.3.0", - "license": "MIT", + "packages/bytecode-utils/node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, "engines": { - "node": ">= 0.6" + "node": ">= 8" } }, - "services/validation/node_modules/merge-descriptors": { - "version": "1.0.1", - "license": "MIT" - }, - "services/validation/node_modules/methods": { - "version": "1.1.2", + "packages/bytecode-utils/node_modules/which-boxed-primitive": { + "version": "1.0.2", + "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.6" + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/miller-rabin": { - "version": "4.0.1", + "packages/bytecode-utils/node_modules/which-typed-array": { + "version": "1.1.10", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" }, - "bin": { - "miller-rabin": "bin/miller-rabin" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/mime": { - "version": "1.6.0", + "packages/bytecode-utils/node_modules/widest-line": { + "version": "3.1.0", + "dev": true, "license": "MIT", - "bin": { - "mime": "cli.js" + "dependencies": { + "string-width": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "services/validation/node_modules/mime-db": { - "version": "1.52.0", + "packages/bytecode-utils/node_modules/word-wrap": { + "version": "1.2.3", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "services/validation/node_modules/mime-types": { - "version": "2.1.35", + "packages/bytecode-utils/node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, "license": "MIT", "dependencies": { - "mime-db": "1.52.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "services/validation/node_modules/mimic-response": { - "version": "1.0.1", + "packages/bytecode-utils/node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "services/validation/node_modules/min-document": { - "version": "2.19.0", + "packages/bytecode-utils/node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "services/validation/node_modules/minimalistic-assert": { - "version": "1.0.1", - "license": "ISC" - }, - "services/validation/node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "license": "MIT" - }, - "services/validation/node_modules/minimatch": { - "version": "3.0.4", - "devOptional": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" + "color-name": "~1.1.4" }, "engines": { - "node": "*" + "node": ">=7.0.0" } }, - "services/validation/node_modules/minimist": { - "version": "1.2.6", + "packages/bytecode-utils/node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "dev": true, "license": "MIT" }, - "services/validation/node_modules/minipass": { - "version": "2.9.0", - "license": "ISC", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } + "packages/bytecode-utils/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" }, - "services/validation/node_modules/minizlib": { - "version": "1.3.3", - "license": "MIT", + "packages/bytecode-utils/node_modules/write-file-atomic": { + "version": "3.0.3", + "dev": true, + "license": "ISC", "dependencies": { - "minipass": "^2.9.0" + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, - "services/validation/node_modules/mkdirp": { - "version": "0.5.6", + "packages/bytecode-utils/node_modules/xdg-basedir": { + "version": "4.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" + "engines": { + "node": ">=8" } }, - "services/validation/node_modules/mkdirp-promise": { - "version": "5.0.1", + "packages/bytecode-utils/node_modules/y18n": { + "version": "5.0.8", + "dev": true, "license": "ISC", - "dependencies": { - "mkdirp": "*" - }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "services/validation/node_modules/mocha": { - "version": "8.4.0", + "packages/bytecode-utils/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "packages/bytecode-utils/node_modules/yargs": { + "version": "16.2.0", "dev": true, "license": "MIT", "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.1", - "debug": "4.3.1", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.0.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.20", - "serialize-javascript": "5.0.1", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "engines": { - "node": ">= 10.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" + "node": ">=10" } }, - "services/validation/node_modules/mock-fs": { - "version": "4.14.0", - "license": "MIT" - }, - "services/validation/node_modules/moment": { - "version": "2.29.3", - "license": "MIT", - "optional": true, + "packages/bytecode-utils/node_modules/yargs-parser": { + "version": "20.2.9", + "dev": true, + "license": "ISC", "engines": { - "node": "*" - } - }, - "services/validation/node_modules/ms": { - "version": "2.1.3", - "license": "MIT" - }, - "services/validation/node_modules/multibase": { - "version": "0.6.1", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "services/validation/node_modules/multicodec": { - "version": "0.5.7", - "license": "MIT", - "dependencies": { - "varint": "^5.0.0" - } - }, - "services/validation/node_modules/multihashes": { - "version": "0.4.21", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" + "node": ">=10" } }, - "services/validation/node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", + "packages/bytecode-utils/node_modules/yn": { + "version": "3.1.1", + "dev": true, "license": "MIT", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" + "engines": { + "node": ">=6" } }, - "services/validation/node_modules/mv": { - "version": "2.1.1", + "packages/bytecode-utils/node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, "license": "MIT", - "optional": true, - "dependencies": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, "engines": { - "node": ">=0.8.0" - } - }, - "services/validation/node_modules/mv/node_modules/glob": { - "version": "6.0.4", - "license": "ISC", - "optional": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "node": ">=10" }, - "engines": { - "node": "*" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/mv/node_modules/rimraf": { - "version": "2.4.5", - "license": "ISC", - "optional": true, + "packages/lib-sourcify": { + "name": "@ethereum-sourcify/lib-sourcify", + "version": "1.1.2", + "license": "MIT", "dependencies": { - "glob": "^6.0.1" + "@ethereum-sourcify/bytecode-utils": "*", + "@ethereumjs/blockchain": "^6.2.1", + "@ethereumjs/common": "^3.1.1", + "@ethereumjs/evm": "^1.3.1", + "@ethereumjs/statemanager": "^1.0.4", + "@ethereumjs/util": "^8.0.5", + "@ethereumjs/vm": "^6.4.1", + "@fairdatasociety/bmt-js": "^2.0.1", + "abitype": "0.8.0", + "bs58": "^5.0.0", + "ethers": "^6.6.2", + "http-status-codes": "^2.2.0", + "isomorphic-fetch": "^3.0.0", + "jszip": "^3.10.1", + "semver": "^7.3.8", + "solc": "^0.8.17" }, - "bin": { - "rimraf": "bin.js" - } - }, - "services/validation/node_modules/nan": { - "version": "2.15.0", - "license": "MIT", - "optional": true - }, - "services/validation/node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "license": "MIT" - }, - "services/validation/node_modules/nanoid": { - "version": "3.1.20", - "dev": true, - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" + "devDependencies": { + "@types/debug": "^4.1.7", + "@types/lru-cache": "^5.1.1", + "@types/mocha": "^10.0.1", + "@typescript-eslint/eslint-plugin": "^4.33.0", + "@typescript-eslint/parser": "^4.33.0", + "c8": "^8.0.0", + "chai": "^4.3.7", + "codecov": "^3.8.3", + "cspell": "^4.2.8", + "cz-conventional-changelog": "^3.3.0", + "eslint": "^7.32.0", + "eslint-config-prettier": "^6.15.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-import": "^2.27.4", + "ganache": "^7.7.3", + "gh-pages": "^3.2.3", + "mocha": "^10.2.0", + "npm-run-all": "^4.1.5", + "open-cli": "^6.0.1", + "prettier": "^2.8.2", + "standard-version": "^9.5.0", + "ts-node": "^10.9.1", + "typedoc": "^0.24.6", + "typescript": "^5.0.4" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "services/validation/node_modules/ncp": { - "version": "2.0.0", - "license": "MIT", - "optional": true, - "bin": { - "ncp": "bin/ncp" + "node": ">=10" } }, - "services/validation/node_modules/negotiator": { - "version": "0.6.3", + "packages/lib-sourcify/node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "services/validation/node_modules/next-tick": { - "version": "1.1.0", - "license": "ISC" - }, - "services/validation/node_modules/node-addon-api": { - "version": "2.0.2", + "packages/lib-sourcify/node_modules/@adraffy/ens-normalize": { + "version": "1.9.2", "license": "MIT" }, - "services/validation/node_modules/node-gyp-build": { - "version": "4.4.0", + "packages/lib-sourcify/node_modules/@babel/code-frame": { + "version": "7.12.11", + "dev": true, "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "dependencies": { + "@babel/highlight": "^7.10.4" } }, - "services/validation/node_modules/normalize-path": { - "version": "3.0.0", + "packages/lib-sourcify/node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" } }, - "services/validation/node_modules/normalize-url": { - "version": "4.5.1", + "packages/lib-sourcify/node_modules/@babel/highlight": { + "version": "7.22.5", + "dev": true, "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "services/validation/node_modules/number-to-bn": { - "version": "1.7.0", + "packages/lib-sourcify/node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "services/validation/node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "license": "MIT" - }, - "services/validation/node_modules/oauth-sign": { - "version": "0.9.0", - "license": "Apache-2.0", - "engines": { - "node": "*" + "node": ">=4" } }, - "services/validation/node_modules/object-assign": { - "version": "4.1.1", + "packages/lib-sourcify/node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "dev": true, "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "services/validation/node_modules/object-inspect": { - "version": "1.12.0", + "packages/lib-sourcify/node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "color-name": "1.1.3" } }, - "services/validation/node_modules/object-keys": { - "version": "1.1.1", + "packages/lib-sourcify/node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=0.8.0" } }, - "services/validation/node_modules/object.assign": { - "version": "4.1.2", + "packages/lib-sourcify/node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "services/validation/node_modules/oboe": { - "version": "2.1.5", - "license": "BSD", - "dependencies": { - "http-https": "^1.0.0" + "node": ">=4" } }, - "services/validation/node_modules/on-finished": { - "version": "2.4.1", + "packages/lib-sourcify/node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, "license": "MIT", "dependencies": { - "ee-first": "1.1.1" + "has-flag": "^3.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">=4" } }, - "services/validation/node_modules/once": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } + "packages/lib-sourcify/node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/p-cancelable": { - "version": "1.1.0", + "packages/lib-sourcify/node_modules/@commitlint/config-validator": { + "version": "17.4.4", + "dev": true, "license": "MIT", + "optional": true, + "dependencies": { + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" + }, "engines": { - "node": ">=6" + "node": ">=v14" } }, - "services/validation/node_modules/p-finally": { - "version": "1.0.0", + "packages/lib-sourcify/node_modules/@commitlint/execute-rule": { + "version": "17.4.0", + "dev": true, "license": "MIT", + "optional": true, "engines": { - "node": ">=4" + "node": ">=v14" } }, - "services/validation/node_modules/p-limit": { - "version": "3.1.0", + "packages/lib-sourcify/node_modules/@commitlint/load": { + "version": "17.5.0", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "yocto-queue": "^0.1.0" + "@commitlint/config-validator": "^17.4.4", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.4.4", + "@commitlint/types": "^17.4.4", + "@types/node": "*", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=v14" } }, - "services/validation/node_modules/p-locate": { - "version": "5.0.0", + "packages/lib-sourcify/node_modules/@commitlint/resolve-extends": { + "version": "17.4.4", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "p-limit": "^3.0.2" + "@commitlint/config-validator": "^17.4.4", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=v14" } }, - "services/validation/node_modules/p-timeout": { - "version": "1.2.1", + "packages/lib-sourcify/node_modules/@commitlint/types": { + "version": "17.4.4", + "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "p-finally": "^1.0.0" + "chalk": "^4.1.0" }, "engines": { - "node": ">=4" + "node": ">=v14" } }, - "services/validation/node_modules/parse-asn1": { - "version": "5.1.6", - "license": "ISC", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } + "packages/lib-sourcify/node_modules/@cspell/dict-aws": { + "version": "1.0.14", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/parse-headers": { - "version": "2.0.5", + "packages/lib-sourcify/node_modules/@cspell/dict-bash": { + "version": "1.0.18", + "dev": true, "license": "MIT" }, - "services/validation/node_modules/parseurl": { - "version": "1.3.3", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } + "packages/lib-sourcify/node_modules/@cspell/dict-companies": { + "version": "1.0.40", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/path-exists": { - "version": "4.0.0", + "packages/lib-sourcify/node_modules/@cspell/dict-cpp": { + "version": "1.1.40", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "services/validation/node_modules/path-is-absolute": { - "version": "1.0.1", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "packages/lib-sourcify/node_modules/@cspell/dict-cryptocurrencies": { + "version": "1.0.10", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/path-key": { - "version": "3.1.1", + "packages/lib-sourcify/node_modules/@cspell/dict-csharp": { + "version": "1.0.11", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "services/validation/node_modules/path-to-regexp": { - "version": "0.1.7", + "packages/lib-sourcify/node_modules/@cspell/dict-css": { + "version": "1.0.13", + "dev": true, "license": "MIT" }, - "services/validation/node_modules/pathval": { - "version": "1.1.1", + "packages/lib-sourcify/node_modules/@cspell/dict-django": { + "version": "1.0.26", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-dotnet": { + "version": "1.0.32", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-elixir": { + "version": "1.0.26", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-en_us": { + "version": "1.2.45", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-en-gb": { + "version": "1.1.33", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-filetypes": { + "version": "1.1.8", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-fonts": { + "version": "1.0.14", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-fullstack": { + "version": "1.0.39", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-golang": { + "version": "1.1.24", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-haskell": { + "version": "1.0.13", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-html": { + "version": "1.1.9", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-html-symbol-entities": { + "version": "1.0.23", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-java": { + "version": "1.0.23", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-latex": { + "version": "1.0.25", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-lorem-ipsum": { + "version": "1.0.22", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-lua": { + "version": "1.0.16", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-node": { + "version": "1.0.12", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-npm": { + "version": "1.0.16", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-php": { + "version": "1.0.25", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-powershell": { + "version": "1.0.19", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-python": { + "version": "1.0.38", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-ruby": { + "version": "1.0.15", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-rust": { + "version": "1.0.23", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-scala": { + "version": "1.0.21", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-software-terms": { + "version": "1.0.48", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspell/dict-typescript": { + "version": "1.0.20", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", "dev": true, "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, "engines": { - "node": "*" + "node": ">=12" } }, - "services/validation/node_modules/pbkdf2": { - "version": "3.1.2", + "packages/lib-sourcify/node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "dev": true, "license": "MIT", "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" + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=0.12" + "node": "^10.12.0 || >=12.0.0" } }, - "services/validation/node_modules/performance-now": { - "version": "2.1.0", - "license": "MIT" - }, - "services/validation/node_modules/picomatch": { - "version": "2.3.1", + "packages/lib-sourcify/node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", "dev": true, "license": "MIT", - "engines": { - "node": ">=8.6" + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "services/validation/node_modules/prepend-http": { - "version": "2.0.0", + "packages/lib-sourcify/node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 4" } }, - "services/validation/node_modules/process": { - "version": "0.11.10", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } + "packages/lib-sourcify/node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/proxy-addr": { - "version": "2.0.7", - "license": "MIT", + "packages/lib-sourcify/node_modules/@ethereum-sourcify/bytecode-utils": { + "resolved": "packages/bytecode-utils", + "link": true + }, + "packages/lib-sourcify/node_modules/@ethereumjs/block": { + "version": "4.3.0", + "license": "MPL-2.0", "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/trie": "^5.1.0", + "@ethereumjs/tx": "^4.2.0", + "@ethereumjs/util": "^8.1.0", + "ethereum-cryptography": "^2.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=14" } }, - "services/validation/node_modules/psl": { - "version": "1.8.0", - "license": "MIT" - }, - "services/validation/node_modules/public-encrypt": { - "version": "4.0.3", - "license": "MIT", + "packages/lib-sourcify/node_modules/@ethereumjs/blockchain": { + "version": "6.3.0", + "license": "MPL-2.0", "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "@ethereumjs/block": "^4.3.0", + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/ethash": "^2.1.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/trie": "^5.1.0", + "@ethereumjs/tx": "^4.2.0", + "@ethereumjs/util": "^8.1.0", + "abstract-level": "^1.0.3", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.0.0", + "level": "^8.0.0", + "lru-cache": "^5.1.1", + "memory-level": "^1.0.0" + }, + "engines": { + "node": ">=14" } }, - "services/validation/node_modules/pump": { - "version": "3.0.0", + "packages/lib-sourcify/node_modules/@ethereumjs/common": { + "version": "3.2.0", "license": "MIT", "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "@ethereumjs/util": "^8.1.0", + "crc-32": "^1.2.0" } }, - "services/validation/node_modules/punycode": { - "version": "2.1.1", - "license": "MIT", + "packages/lib-sourcify/node_modules/@ethereumjs/ethash": { + "version": "2.1.0", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/block": "^4.3.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "abstract-level": "^1.0.3", + "bigint-crypto-utils": "^3.2.2", + "ethereum-cryptography": "^2.0.0" + }, "engines": { - "node": ">=6" + "node": ">=14" } }, - "services/validation/node_modules/qs": { - "version": "6.10.3", - "license": "BSD-3-Clause", + "packages/lib-sourcify/node_modules/@ethereumjs/evm": { + "version": "1.4.0", + "license": "MPL-2.0", "dependencies": { - "side-channel": "^1.0.4" + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/tx": "^4.2.0", + "@ethereumjs/util": "^8.1.0", + "@ethersproject/providers": "^5.7.1", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.0.0", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" }, "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=14" } }, - "services/validation/node_modules/query-string": { - "version": "5.1.1", - "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "packages/lib-sourcify/node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp" }, "engines": { - "node": ">=0.10.0" - } - }, - "services/validation/node_modules/randombytes": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" + "node": ">=14" } }, - "services/validation/node_modules/randomfill": { - "version": "1.0.4", - "license": "MIT", + "packages/lib-sourcify/node_modules/@ethereumjs/statemanager": { + "version": "1.1.0", + "license": "MPL-2.0", "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "services/validation/node_modules/range-parser": { - "version": "1.2.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.0.0", + "ethers": "^5.7.1", + "js-sdsl": "^4.1.4" } }, - "services/validation/node_modules/raw-body": { - "version": "2.5.1", + "packages/lib-sourcify/node_modules/@ethereumjs/statemanager/node_modules/ethers": { + "version": "5.7.2", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "services/validation/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "packages/lib-sourcify/node_modules/@ethereumjs/trie": { + "version": "5.1.0", + "license": "MPL-2.0", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "@types/readable-stream": "^2.3.13", + "ethereum-cryptography": "^2.0.0", + "readable-stream": "^3.6.0" }, "engines": { - "node": ">= 6" + "node": ">=14" } }, - "services/validation/node_modules/readdirp": { - "version": "3.5.0", - "dev": true, - "license": "MIT", + "packages/lib-sourcify/node_modules/@ethereumjs/tx": { + "version": "4.2.0", + "license": "MPL-2.0", "dependencies": { - "picomatch": "^2.2.1" + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "ethereum-cryptography": "^2.0.0" }, "engines": { - "node": ">=8.10.0" + "node": ">=14" } }, - "services/validation/node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "license": "MIT", + "packages/lib-sourcify/node_modules/@ethereumjs/util": { + "version": "8.1.0", + "license": "MPL-2.0", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=14" } }, - "services/validation/node_modules/request": { - "version": "2.88.2", - "license": "Apache-2.0", + "packages/lib-sourcify/node_modules/@ethereumjs/vm": { + "version": "6.5.0", + "license": "MPL-2.0", "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "@ethereumjs/block": "^4.3.0", + "@ethereumjs/blockchain": "^6.3.0", + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/evm": "^1.4.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/statemanager": "^1.1.0", + "@ethereumjs/trie": "^5.1.0", + "@ethereumjs/tx": "^4.2.0", + "@ethereumjs/util": "^8.1.0", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.0.0", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" }, "engines": { - "node": ">= 6" - } - }, - "services/validation/node_modules/request/node_modules/qs": { - "version": "6.5.3", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" + "node": ">=14" } }, - "services/validation/node_modules/require-directory": { - "version": "2.1.1", - "dev": true, + "packages/lib-sourcify/node_modules/@ethersproject/abi": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "services/validation/node_modules/responselike": { - "version": "1.0.2", + "packages/lib-sourcify/node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "lowercase-keys": "^1.0.0" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" } }, - "services/validation/node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", + "packages/lib-sourcify/node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, - "services/validation/node_modules/ripemd160": { - "version": "2.0.2", + "packages/lib-sourcify/node_modules/@ethersproject/address": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" } }, - "services/validation/node_modules/rlp": { - "version": "2.2.7", - "license": "MPL-2.0", + "packages/lib-sourcify/node_modules/@ethersproject/base64": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "dependencies": { - "bn.js": "^5.2.0" - }, - "bin": { - "rlp": "bin/rlp" + "@ethersproject/bytes": "^5.7.0" } }, - "services/validation/node_modules/rlp/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "services/validation/node_modules/safe-buffer": { - "version": "5.2.1", + "packages/lib-sourcify/node_modules/@ethersproject/basex": { + "version": "5.7.0", "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } ], - "license": "MIT" - }, - "services/validation/node_modules/safe-json-stringify": { - "version": "1.2.0", - "license": "MIT", - "optional": true - }, - "services/validation/node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" - }, - "services/validation/node_modules/scrypt-js": { - "version": "3.0.1", - "license": "MIT" - }, - "services/validation/node_modules/secp256k1": { - "version": "4.0.3", - "hasInstallScript": true, "license": "MIT", "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, - "services/validation/node_modules/send": { - "version": "0.18.0", + "packages/lib-sourcify/node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" } }, - "services/validation/node_modules/send/node_modules/debug": { - "version": "2.6.9", + "packages/lib-sourcify/node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "ms": "2.0.0" + "@ethersproject/logger": "^5.7.0" } }, - "services/validation/node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "services/validation/node_modules/serialize-javascript": { - "version": "5.0.1", - "dev": true, - "license": "BSD-3-Clause", + "packages/lib-sourcify/node_modules/@ethersproject/constants": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "dependencies": { - "randombytes": "^2.1.0" + "@ethersproject/bignumber": "^5.7.0" } }, - "services/validation/node_modules/serve-static": { - "version": "1.15.0", + "packages/lib-sourcify/node_modules/@ethersproject/contracts": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" } }, - "services/validation/node_modules/servify": { - "version": "0.1.12", + "packages/lib-sourcify/node_modules/@ethersproject/hash": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - }, - "engines": { - "node": ">=6" + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "services/validation/node_modules/setimmediate": { - "version": "1.0.5", - "license": "MIT" - }, - "services/validation/node_modules/setprototypeof": { - "version": "1.2.0", - "license": "ISC" - }, - "services/validation/node_modules/sha.js": { - "version": "2.4.11", - "license": "(MIT AND BSD-3-Clause)", + "packages/lib-sourcify/node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" } }, - "services/validation/node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, + "packages/lib-sourcify/node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" } }, - "services/validation/node_modules/shebang-regex": { + "packages/lib-sourcify/node_modules/@ethersproject/json-wallets/node_modules/aes-js": { "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "services/validation/node_modules/side-channel": { - "version": "1.0.4", + "packages/lib-sourcify/node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" } }, - "services/validation/node_modules/simple-concat": { - "version": "1.0.1", + "packages/lib-sourcify/node_modules/@ethersproject/logger": { + "version": "5.7.0", "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } ], "license": "MIT" }, - "services/validation/node_modules/simple-get": { - "version": "2.8.2", + "packages/lib-sourcify/node_modules/@ethersproject/networks": { + "version": "5.7.1", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "@ethersproject/logger": "^5.7.0" } }, - "services/validation/node_modules/sshpk": { - "version": "1.17.0", + "packages/lib-sourcify/node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" } }, - "services/validation/node_modules/statuses": { - "version": "2.0.1", + "packages/lib-sourcify/node_modules/@ethersproject/properties": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", - "engines": { - "node": ">= 0.8" + "dependencies": { + "@ethersproject/logger": "^5.7.0" } }, - "services/validation/node_modules/strict-uri-encode": { - "version": "1.1.0", + "packages/lib-sourcify/node_modules/@ethersproject/providers": { + "version": "5.7.2", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" } }, - "services/validation/node_modules/string_decoder": { - "version": "1.3.0", + "packages/lib-sourcify/node_modules/@ethersproject/random": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "services/validation/node_modules/string-argv": { - "version": "0.3.1", - "dev": true, + "packages/lib-sourcify/node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", - "engines": { - "node": ">=0.6.19" + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "services/validation/node_modules/string-width": { - "version": "2.1.1", - "dev": true, + "packages/lib-sourcify/node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" } }, - "services/validation/node_modules/string.prototype.trimend": { - "version": "1.0.5", + "packages/lib-sourcify/node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" } }, - "services/validation/node_modules/string.prototype.trimstart": { - "version": "1.0.5", + "packages/lib-sourcify/node_modules/@ethersproject/solidity": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "services/validation/node_modules/strip-ansi": { - "version": "4.0.0", - "dev": true, + "packages/lib-sourcify/node_modules/@ethersproject/strings": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "services/validation/node_modules/strip-hex-prefix": { - "version": "1.0.0", + "packages/lib-sourcify/node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "services/validation/node_modules/strip-json-comments": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" } }, - "services/validation/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, + "packages/lib-sourcify/node_modules/@ethersproject/units": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "services/validation/node_modules/swarm-js": { - "version": "0.1.40", + "packages/lib-sourcify/node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "services/validation/node_modules/swarm-js/node_modules/get-stream": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "services/validation/node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "packages/lib-sourcify/node_modules/@ethersproject/web": { + "version": "5.7.1", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "services/validation/node_modules/swarm-js/node_modules/is-plain-obj": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "services/validation/node_modules/swarm-js/node_modules/p-cancelable": { - "version": "0.3.0", + "packages/lib-sourcify/node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "services/validation/node_modules/swarm-js/node_modules/prepend-http": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "packages/lib-sourcify/node_modules/@fairdatasociety/bmt-js": { + "version": "2.1.0", + "license": "MIT" }, - "services/validation/node_modules/swarm-js/node_modules/url-parse-lax": { - "version": "1.0.0", - "license": "MIT", + "packages/lib-sourcify/node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "prepend-http": "^1.0.1" + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=10.10.0" } }, - "services/validation/node_modules/tar": { - "version": "4.4.19", - "license": "ISC", - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, + "packages/lib-sourcify/node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true, + "license": "BSD-3-Clause" + }, + "packages/lib-sourcify/node_modules/@hutson/parse-repository-url": { + "version": "3.0.2", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=4.5" + "node": ">=6.9.0" } }, - "services/validation/node_modules/timed-out": { - "version": "4.0.1", + "packages/lib-sourcify/node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "services/validation/node_modules/to-readable-stream": { - "version": "1.0.0", + "packages/lib-sourcify/node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=6.0.0" } }, - "services/validation/node_modules/to-regex-range": { - "version": "5.0.1", + "packages/lib-sourcify/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", "dev": true, "license": "MIT", "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "services/validation/node_modules/toidentifier": { - "version": "1.0.1", + "packages/lib-sourcify/node_modules/@noble/curves": { + "version": "1.1.0", "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "services/validation/node_modules/tough-cookie": { - "version": "2.5.0", - "license": "BSD-3-Clause", "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "@noble/hashes": "1.3.1" }, - "engines": { - "node": ">=0.8" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "services/validation/node_modules/tunnel-agent": { - "version": "0.6.0", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, + "packages/lib-sourcify/node_modules/@noble/hashes": { + "version": "1.3.1", + "license": "MIT", "engines": { - "node": "*" + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "services/validation/node_modules/tweetnacl": { - "version": "0.14.5", - "license": "Unlicense" - }, - "services/validation/node_modules/type": { - "version": "1.2.0", - "license": "ISC" + "packages/lib-sourcify/node_modules/@noble/secp256k1": { + "version": "1.7.1", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" }, - "services/validation/node_modules/type-detect": { - "version": "4.0.8", + "packages/lib-sourcify/node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", "dev": true, "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "services/validation/node_modules/type-is": { - "version": "1.6.18", - "license": "MIT", "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">= 0.6" + "node": ">= 8" } }, - "services/validation/node_modules/typedarray-to-buffer": { - "version": "3.1.5", + "packages/lib-sourcify/node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true, "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" + "engines": { + "node": ">= 8" } }, - "services/validation/node_modules/typescript": { - "version": "4.6.4", + "packages/lib-sourcify/node_modules/@nodelib/fs.walk": { + "version": "1.2.8", "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=4.2.0" + "node": ">= 8" } }, - "services/validation/node_modules/ultron": { + "packages/lib-sourcify/node_modules/@scure/base": { "version": "1.1.1", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "license": "MIT" }, - "services/validation/node_modules/unbox-primitive": { - "version": "1.0.2", + "packages/lib-sourcify/node_modules/@scure/bip32": { + "version": "1.3.1", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "@noble/curves": "~1.1.0", + "@noble/hashes": "~1.3.1", + "@scure/base": "~1.1.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://paulmillr.com/funding/" } }, - "services/validation/node_modules/universalify": { - "version": "0.1.2", + "packages/lib-sourcify/node_modules/@scure/bip39": { + "version": "1.2.1", "license": "MIT", - "engines": { - "node": ">= 4.0.0" + "dependencies": { + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "services/validation/node_modules/unpipe": { - "version": "1.0.0", + "packages/lib-sourcify/node_modules/@tokenizer/token": { + "version": "0.3.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@tootallnate/once": { + "version": "1.1.2", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">= 6" } }, - "services/validation/node_modules/uri-js": { - "version": "4.4.1", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } + "packages/lib-sourcify/node_modules/@tsconfig/node10": { + "version": "1.0.9", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/url-parse-lax": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } + "packages/lib-sourcify/node_modules/@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/url-set-query": { - "version": "1.0.0", + "packages/lib-sourcify/node_modules/@tsconfig/node14": { + "version": "1.0.3", + "dev": true, "license": "MIT" }, - "services/validation/node_modules/url-to-options": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 4" - } + "packages/lib-sourcify/node_modules/@tsconfig/node16": { + "version": "1.0.4", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/utf-8-validate": { - "version": "5.0.9", - "hasInstallScript": true, + "packages/lib-sourcify/node_modules/@types/debug": { + "version": "4.1.8", + "dev": true, "license": "MIT", "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" + "@types/ms": "*" } }, - "services/validation/node_modules/utf8": { - "version": "3.0.0", + "packages/lib-sourcify/node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true, "license": "MIT" }, - "services/validation/node_modules/util": { - "version": "0.12.4", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } + "packages/lib-sourcify/node_modules/@types/json-schema": { + "version": "7.0.12", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/util-deprecate": { - "version": "1.0.2", + "packages/lib-sourcify/node_modules/@types/json5": { + "version": "0.0.29", + "dev": true, "license": "MIT" }, - "services/validation/node_modules/utils-merge": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } + "packages/lib-sourcify/node_modules/@types/lru-cache": { + "version": "5.1.1", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/uuid": { - "version": "3.4.0", - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } + "packages/lib-sourcify/node_modules/@types/minimist": { + "version": "1.2.2", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/varint": { - "version": "5.0.2", + "packages/lib-sourcify/node_modules/@types/mocha": { + "version": "10.0.1", + "dev": true, "license": "MIT" }, - "services/validation/node_modules/vary": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } + "packages/lib-sourcify/node_modules/@types/ms": { + "version": "0.7.31", + "dev": true, + "license": "MIT" }, - "services/validation/node_modules/verror": { - "version": "1.10.0", - "engines": [ - "node >=0.6.0" - ], + "packages/lib-sourcify/node_modules/@types/node": { + "version": "20.4.1", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/@types/readable-stream": { + "version": "2.3.15", "license": "MIT", "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "@types/node": "*", + "safe-buffer": "~5.1.1" } }, - "services/validation/node_modules/web3": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "dev": true, + "license": "MIT", "dependencies": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "engines": { - "node": ">=8.0.0" + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^4.0.0", + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "services/validation/node_modules/web3-bzz": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "dev": true, + "license": "MIT", "dependencies": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" }, "engines": { - "node": ">=8.0.0" + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" } }, - "services/validation/node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "services/validation/node_modules/web3-core": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/@typescript-eslint/parser": { + "version": "4.33.0", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" }, "engines": { - "node": ">=8.0.0" + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "services/validation/node_modules/web3-core-helpers": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/@typescript-eslint/scope-manager": { + "version": "4.33.0", + "dev": true, + "license": "MIT", "dependencies": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" }, "engines": { - "node": ">=8.0.0" + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "services/validation/node_modules/web3-core-method": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - }, + "packages/lib-sourcify/node_modules/@typescript-eslint/types": { + "version": "4.33.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "services/validation/node_modules/web3-core-promievent": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "eventemitter3": "4.0.4" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "engines": { - "node": ">=8.0.0" + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "services/validation/node_modules/web3-core-requestmanager": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "dev": true, + "license": "MIT", "dependencies": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">=8.0.0" + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "services/validation/node_modules/web3-core-subscriptions": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" + "packages/lib-sourcify/node_modules/abitype": { + "version": "0.8.0", + "license": "MIT", + "peerDependencies": { + "typescript": ">=4.9.4", + "zod": "^3 >=3.19.1" }, - "engines": { - "node": ">=8.0.0" + "peerDependenciesMeta": { + "zod": { + "optional": true + } } }, - "services/validation/node_modules/web3-core/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "services/validation/node_modules/web3-eth": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/abstract-level": { + "version": "1.0.3", + "license": "MIT", "dependencies": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" }, "engines": { - "node": ">=8.0.0" + "node": ">=12" } }, - "services/validation/node_modules/web3-eth-abi": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" + "packages/lib-sourcify/node_modules/acorn": { + "version": "7.4.1", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.4.0" } }, - "services/validation/node_modules/web3-eth-accounts": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "services/validation/node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", + "packages/lib-sourcify/node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, "license": "MIT", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "services/validation/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", + "packages/lib-sourcify/node_modules/acorn-walk": { + "version": "8.2.0", + "dev": true, "license": "MIT", - "bin": { - "uuid": "bin/uuid" + "engines": { + "node": ">=0.4.0" } }, - "services/validation/node_modules/web3-eth-contract": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/add-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/agent-base": { + "version": "6.0.2", + "dev": true, + "license": "MIT", "dependencies": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" + "debug": "4" }, "engines": { - "node": ">=8.0.0" + "node": ">= 6.0.0" } }, - "services/validation/node_modules/web3-eth-ens": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/ajv": { + "version": "8.12.0", + "dev": true, + "license": "MIT", "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "packages/lib-sourcify/node_modules/ansi-colors": { + "version": "4.1.3", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=6" } }, - "services/validation/node_modules/web3-eth-iban": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/ansi-escapes": { + "version": "4.3.2", + "dev": true, + "license": "MIT", "dependencies": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" + "type-fest": "^0.21.3" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/web3-eth-personal": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" + "packages/lib-sourcify/node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/lib-sourcify/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "services/validation/node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.20.52", + "packages/lib-sourcify/node_modules/ansi-sequence-parser": { + "version": "1.1.0", + "dev": true, "license": "MIT" }, - "services/validation/node_modules/web3-net": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=8.0.0" - } - }, - "services/validation/node_modules/web3-providers-http": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" + "node": ">=8" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "services/validation/node_modules/web3-providers-ipc": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": ">=8.0.0" + "node": ">= 8" } }, - "services/validation/node_modules/web3-providers-ws": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/arg": { + "version": "4.1.3", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/argparse": { + "version": "1.0.10", + "dev": true, + "license": "MIT", "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" + "sprintf-js": "~1.0.2" } }, - "services/validation/node_modules/web3-shh": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" - }, + "packages/lib-sourcify/node_modules/argv": { + "version": "0.0.2", + "dev": true, "engines": { - "node": ">=8.0.0" + "node": ">=0.6.10" } }, - "services/validation/node_modules/web3-utils": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/websocket": { - "version": "1.0.34", - "license": "Apache-2.0", + "packages/lib-sourcify/node_modules/array-ify": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/array-includes": { + "version": "3.1.6", + "dev": true, + "license": "MIT", "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" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" }, "engines": { - "node": ">=4.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/websocket/node_modules/debug": { - "version": "2.6.9", + "packages/lib-sourcify/node_modules/array-timsort": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/array-union": { + "version": "2.1.0", + "dev": true, "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">=8" } }, - "services/validation/node_modules/websocket/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "services/validation/node_modules/which": { - "version": "2.0.2", + "packages/lib-sourcify/node_modules/array-uniq": { + "version": "1.0.3", "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=0.10.0" } }, - "services/validation/node_modules/which-boxed-primitive": { - "version": "1.0.2", + "packages/lib-sourcify/node_modules/array.prototype.flat": { + "version": "1.3.1", + "dev": true, "license": "MIT", "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/which-typed-array": { - "version": "1.1.8", + "packages/lib-sourcify/node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "dev": true, "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -27637,1461 +29753,1482 @@ "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/wide-align": { - "version": "1.1.3", + "packages/lib-sourcify/node_modules/arrify": { + "version": "1.0.1", "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "services/validation/node_modules/workerpool": { - "version": "6.1.0", - "dev": true, - "license": "Apache-2.0" - }, - "services/validation/node_modules/wrap-ansi": { - "version": "7.0.0", + "packages/lib-sourcify/node_modules/assertion-error": { + "version": "1.1.0", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": "*" } }, - "services/validation/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", + "packages/lib-sourcify/node_modules/astral-regex": { + "version": "2.0.0", "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "services/validation/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "packages/lib-sourcify/node_modules/async": { + "version": "2.6.4", "dev": true, "license": "MIT", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "packages/lib-sourcify/node_modules/at-least-node": { + "version": "1.0.0", + "dev": true, + "license": "ISC", "engines": { - "node": ">=8" + "node": ">= 4.0.0" } }, - "services/validation/node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", + "packages/lib-sourcify/node_modules/available-typed-arrays": { + "version": "1.0.5", "dev": true, "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/lib-sourcify/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/base-x": { + "version": "4.0.0", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/base64-js": { + "version": "1.5.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/bech32": { + "version": "1.1.4", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/bigint-crypto-utils": { + "version": "3.3.0", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=14.0.0" } }, - "services/validation/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", + "packages/lib-sourcify/node_modules/binary-extensions": { + "version": "2.2.0", "dev": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { "node": ">=8" } }, - "services/validation/node_modules/wrappy": { - "version": "1.0.2", - "license": "ISC" + "packages/lib-sourcify/node_modules/bl": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } }, - "services/validation/node_modules/ws": { - "version": "3.3.3", + "packages/lib-sourcify/node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT", "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "services/validation/node_modules/ws/node_modules/safe-buffer": { - "version": "5.1.2", + "packages/lib-sourcify/node_modules/bn.js": { + "version": "5.2.1", "license": "MIT" }, - "services/validation/node_modules/xhr": { - "version": "2.6.0", + "packages/lib-sourcify/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, "license": "MIT", "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "services/validation/node_modules/xhr-request": { - "version": "1.1.0", + "packages/lib-sourcify/node_modules/braces": { + "version": "3.0.2", + "dev": true, "license": "MIT", "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" } }, - "services/validation/node_modules/xhr-request-promise": { - "version": "0.1.3", + "packages/lib-sourcify/node_modules/brorand": { + "version": "1.1.0", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/browser-level": { + "version": "1.0.1", "license": "MIT", "dependencies": { - "xhr-request": "^1.1.0" + "abstract-level": "^1.0.2", + "catering": "^2.1.1", + "module-error": "^1.0.2", + "run-parallel-limit": "^1.1.0" } }, - "services/validation/node_modules/xhr2-cookies": { - "version": "1.1.0", + "packages/lib-sourcify/node_modules/browser-stdout": { + "version": "1.3.1", + "dev": true, + "license": "ISC" + }, + "packages/lib-sourcify/node_modules/bs58": { + "version": "5.0.0", "license": "MIT", "dependencies": { - "cookiejar": "^2.1.1" + "base-x": "^4.0.0" } }, - "services/validation/node_modules/xtend": { - "version": "4.0.2", + "packages/lib-sourcify/node_modules/buffer": { + "version": "6.0.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT", - "engines": { - "node": ">=0.4" + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "services/validation/node_modules/y18n": { - "version": "5.0.8", + "packages/lib-sourcify/node_modules/buffer-from": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/c8": { + "version": "8.0.0", "dev": true, "license": "ISC", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "bin": { + "c8": "bin/c8.js" + }, "engines": { - "node": ">=10" + "node": ">=12" } }, - "services/validation/node_modules/yaeti": { - "version": "0.0.6", + "packages/lib-sourcify/node_modules/cachedir": { + "version": "2.3.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.32" + "node": ">=6" } }, - "services/validation/node_modules/yallist": { - "version": "3.1.1", - "license": "ISC" - }, - "services/validation/node_modules/yargs": { - "version": "16.2.0", + "packages/lib-sourcify/node_modules/call-bind": { + "version": "1.0.2", "dev": true, "license": "MIT", "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" }, - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/validation/node_modules/yargs-parser": { - "version": "20.2.4", + "packages/lib-sourcify/node_modules/callsites": { + "version": "3.1.0", "dev": true, - "license": "ISC", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=6" } }, - "services/validation/node_modules/yargs-unparser": { - "version": "2.0.0", + "packages/lib-sourcify/node_modules/camelcase": { + "version": "5.3.1", "dev": true, "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, "engines": { - "node": ">=10" + "node": ">=6" } }, - "services/validation/node_modules/yargs/node_modules/ansi-regex": { - "version": "5.0.1", + "packages/lib-sourcify/node_modules/camelcase-keys": { + "version": "6.2.2", "dev": true, "license": "MIT", + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/validation/node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, + "packages/lib-sourcify/node_modules/catering": { + "version": "2.1.1", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=6" } }, - "services/validation/node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", + "packages/lib-sourcify/node_modules/chai": { + "version": "4.3.7", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "services/validation/node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", + "packages/lib-sourcify/node_modules/chalk": { + "version": "4.1.2", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "services/validation/node_modules/yocto-queue": { - "version": "0.1.0", + "packages/lib-sourcify/node_modules/chardet": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/check-error": { + "version": "1.0.2", "dev": true, "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "*" } }, - "services/verification": { - "name": "@ethereum-sourcify/verification", - "version": "0.2.11", + "packages/lib-sourcify/node_modules/chokidar": { + "version": "3.5.3", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "license": "MIT", "dependencies": { - "@ethereum-sourcify/core": "*", - "bunyan": "^1.8.15", - "ipfs-http-client": "^56.0.3", - "node-fetch": "^2.6.1", - "promise.any": "^2.0.2", - "semver": "^7.3.6", - "solc": "^0.7.4", - "web3": "^1.3.0" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, - "bin": { - "sourcify-verification": "build/index.js" + "engines": { + "node": ">= 8.10.0" }, - "devDependencies": { - "@types/bunyan": "^1.8.6", - "@types/node-fetch": "^2.5.7", - "@types/promise.any": "^2.0.0", - "@types/semver": "^7.3.9", - "rimraf": "^3.0.2", - "ts-node": "^9.0.0", - "typescript": "^4.0.2" + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "services/verification/node_modules/@ethereum-sourcify/core": { - "resolved": "services/core", - "link": true - }, - "services/verification/node_modules/@ethereumjs/common": { - "version": "2.6.4", + "packages/lib-sourcify/node_modules/classic-level": { + "version": "1.3.0", + "hasInstallScript": true, "license": "MIT", "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" + "abstract-level": "^1.0.2", + "catering": "^2.1.0", + "module-error": "^1.0.1", + "napi-macros": "^2.2.2", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=12" } }, - "services/verification/node_modules/@ethereumjs/tx": { - "version": "3.5.1", - "license": "MPL-2.0", + "packages/lib-sourcify/node_modules/cli-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", "dependencies": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" } }, - "services/verification/node_modules/@ethersproject/abi": { - "version": "5.0.7", + "packages/lib-sourcify/node_modules/cli-spinners": { + "version": "2.9.0", + "dev": true, "license": "MIT", - "dependencies": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/@ethersproject/abstract-provider": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" + "packages/lib-sourcify/node_modules/cli-width": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10" } }, - "services/verification/node_modules/@ethersproject/abstract-signer": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "packages/lib-sourcify/node_modules/cliui": { + "version": "7.0.4", + "dev": true, + "license": "ISC", "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "services/verification/node_modules/@ethersproject/address": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/lib-sourcify/node_modules/clone": { + "version": "1.0.4", + "dev": true, "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" + "engines": { + "node": ">=0.8" } }, - "services/verification/node_modules/@ethersproject/base64": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/lib-sourcify/node_modules/codecov": { + "version": "3.8.3", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.6.0" + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + }, + "bin": { + "codecov": "bin/codecov" + }, + "engines": { + "node": ">=4.0" } }, - "services/verification/node_modules/@ethersproject/bignumber": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/lib-sourcify/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "services/verification/node_modules/@ethersproject/bytes": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } + "packages/lib-sourcify/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" }, - "services/verification/node_modules/@ethersproject/constants": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/lib-sourcify/node_modules/command-exists": { + "version": "1.2.9", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/commander": { + "version": "7.2.0", + "dev": true, "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0" + "engines": { + "node": ">= 10" } }, - "services/verification/node_modules/@ethersproject/hash": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/lib-sourcify/node_modules/comment-json": { + "version": "4.2.3", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "array-timsort": "^1.0.3", + "core-util-is": "^1.0.3", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">= 6" } }, - "services/verification/node_modules/@ethersproject/keccak256": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/lib-sourcify/node_modules/commitizen": { + "version": "4.3.0", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + }, + "bin": { + "commitizen": "bin/commitizen", + "cz": "bin/git-cz", + "git-cz": "bin/git-cz" + }, + "engines": { + "node": ">= 12" } }, - "services/verification/node_modules/@ethersproject/logger": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/lib-sourcify/node_modules/commondir": { + "version": "1.0.1", + "dev": true, "license": "MIT" }, - "services/verification/node_modules/@ethersproject/networks": { - "version": "5.6.2", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/lib-sourcify/node_modules/compare-func": { + "version": "2.0.0", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.6.0" + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" } }, - "services/verification/node_modules/@ethersproject/properties": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } + "packages/lib-sourcify/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" }, - "services/verification/node_modules/@ethersproject/rlp": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } + "packages/lib-sourcify/node_modules/concat-stream": { + "version": "2.0.0", + "dev": true, + "engines": [ + "node >= 6.0" ], "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" } }, - "services/verification/node_modules/@ethersproject/signing-key": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "packages/lib-sourcify/node_modules/configstore": { + "version": "5.0.1", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "services/verification/node_modules/@ethersproject/strings": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "packages/lib-sourcify/node_modules/conventional-changelog": { + "version": "3.1.25", + "dev": true, "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" + "conventional-changelog-angular": "^5.0.12", + "conventional-changelog-atom": "^2.0.8", + "conventional-changelog-codemirror": "^2.0.8", + "conventional-changelog-conventionalcommits": "^4.5.0", + "conventional-changelog-core": "^4.2.1", + "conventional-changelog-ember": "^2.0.9", + "conventional-changelog-eslint": "^3.0.9", + "conventional-changelog-express": "^2.0.6", + "conventional-changelog-jquery": "^3.0.11", + "conventional-changelog-jshint": "^2.0.9", + "conventional-changelog-preset-loader": "^2.3.4" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/@ethersproject/transactions": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "packages/lib-sourcify/node_modules/conventional-changelog-angular": { + "version": "5.0.13", + "dev": true, + "license": "ISC", "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/@ethersproject/web": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", + "packages/lib-sourcify/node_modules/conventional-changelog-atom": { + "version": "2.0.8", + "dev": true, + "license": "ISC", "dependencies": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/@ipld/dag-cbor": { - "version": "7.0.1", - "license": "(Apache-2.0 AND MIT)", + "packages/lib-sourcify/node_modules/conventional-changelog-codemirror": { + "version": "2.0.8", + "dev": true, + "license": "ISC", "dependencies": { - "cborg": "^1.6.0", - "multiformats": "^9.5.4" + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/@ipld/dag-json": { - "version": "8.0.9", - "license": "(Apache-2.0 AND MIT)", - "dependencies": { - "cborg": "^1.5.4", - "multiformats": "^9.5.4" - } + "packages/lib-sourcify/node_modules/conventional-changelog-config-spec": { + "version": "2.1.0", + "dev": true, + "license": "MIT" }, - "services/verification/node_modules/@ipld/dag-pb": { - "version": "2.1.16", - "license": "(Apache-2.0 AND MIT)", + "packages/lib-sourcify/node_modules/conventional-changelog-conventionalcommits": { + "version": "4.6.3", + "dev": true, + "license": "ISC", "dependencies": { - "multiformats": "^9.5.4" + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "license": "BSD-3-Clause" - }, - "services/verification/node_modules/@protobufjs/base64": { - "version": "1.1.2", - "license": "BSD-3-Clause" - }, - "services/verification/node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "license": "BSD-3-Clause" - }, - "services/verification/node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "license": "BSD-3-Clause" - }, - "services/verification/node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "license": "BSD-3-Clause", + "packages/lib-sourcify/node_modules/conventional-changelog-core": { + "version": "4.2.4", + "dev": true, + "license": "MIT", "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^4.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/@protobufjs/float": { - "version": "1.0.2", - "license": "BSD-3-Clause" - }, - "services/verification/node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "license": "BSD-3-Clause" - }, - "services/verification/node_modules/@protobufjs/path": { - "version": "1.1.2", - "license": "BSD-3-Clause" - }, - "services/verification/node_modules/@protobufjs/pool": { - "version": "1.1.0", - "license": "BSD-3-Clause" - }, - "services/verification/node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "license": "BSD-3-Clause" - }, - "services/verification/node_modules/@sindresorhus/is": { - "version": "0.14.0", + "packages/lib-sourcify/node_modules/conventional-changelog-core/node_modules/find-up": { + "version": "2.1.0", + "dev": true, "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, "engines": { - "node": ">=6" + "node": ">=4" } }, - "services/verification/node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "license": "MIT", + "packages/lib-sourcify/node_modules/conventional-changelog-core/node_modules/hosted-git-info": { + "version": "4.1.0", + "dev": true, + "license": "ISC", "dependencies": { - "defer-to-connect": "^1.0.1" + "lru-cache": "^6.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" } }, - "services/verification/node_modules/@types/bn.js": { - "version": "4.11.6", + "packages/lib-sourcify/node_modules/conventional-changelog-core/node_modules/locate-path": { + "version": "2.0.0", + "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "services/verification/node_modules/@types/bunyan": { - "version": "1.8.8", + "packages/lib-sourcify/node_modules/conventional-changelog-core/node_modules/lru-cache": { + "version": "6.0.0", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@types/node": "*" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/@types/long": { - "version": "4.0.2", - "license": "MIT" - }, - "services/verification/node_modules/@types/minimatch": { - "version": "3.0.5", - "license": "MIT" - }, - "services/verification/node_modules/@types/node": { - "version": "17.0.34", - "license": "MIT" - }, - "services/verification/node_modules/@types/node-fetch": { - "version": "2.6.1", + "packages/lib-sourcify/node_modules/conventional-changelog-core/node_modules/normalize-package-data": { + "version": "3.0.3", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/@types/pbkdf2": { - "version": "3.1.0", + "packages/lib-sourcify/node_modules/conventional-changelog-core/node_modules/p-limit": { + "version": "1.3.0", + "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*" + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "services/verification/node_modules/@types/promise.any": { + "packages/lib-sourcify/node_modules/conventional-changelog-core/node_modules/p-locate": { "version": "2.0.0", "dev": true, - "license": "MIT" - }, - "services/verification/node_modules/@types/secp256k1": { - "version": "4.0.3", "license": "MIT", "dependencies": { - "@types/node": "*" + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" } }, - "services/verification/node_modules/accepts": { - "version": "1.3.8", + "packages/lib-sourcify/node_modules/conventional-changelog-core/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, "engines": { - "node": ">= 0.6" + "node": ">=4" } }, - "services/verification/node_modules/ajv": { - "version": "6.12.6", + "packages/lib-sourcify/node_modules/conventional-changelog-core/node_modules/read-pkg-up": { + "version": "3.0.0", + "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=4" } }, - "services/verification/node_modules/any-signal": { - "version": "3.0.1", - "license": "MIT" - }, - "services/verification/node_modules/arg": { - "version": "4.1.3", + "packages/lib-sourcify/node_modules/conventional-changelog-core/node_modules/yallist": { + "version": "4.0.0", "dev": true, - "license": "MIT" - }, - "services/verification/node_modules/array-flatten": { - "version": "1.1.1", - "license": "MIT" + "license": "ISC" }, - "services/verification/node_modules/array.prototype.map": { - "version": "1.0.4", - "license": "MIT", + "packages/lib-sourcify/node_modules/conventional-changelog-ember": { + "version": "2.0.9", + "dev": true, + "license": "ISC", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" + "q": "^1.5.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "services/verification/node_modules/asn1": { - "version": "0.2.6", - "license": "MIT", + "packages/lib-sourcify/node_modules/conventional-changelog-eslint": { + "version": "3.0.9", + "dev": true, + "license": "ISC", "dependencies": { - "safer-buffer": "~2.1.0" + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/asn1.js": { - "version": "5.4.1", - "license": "MIT", + "packages/lib-sourcify/node_modules/conventional-changelog-express": { + "version": "2.0.6", + "dev": true, + "license": "ISC", "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "services/verification/node_modules/assert-plus": { - "version": "1.0.0", - "license": "MIT", + "q": "^1.5.1" + }, "engines": { - "node": ">=0.8" + "node": ">=10" } }, - "services/verification/node_modules/async-limiter": { - "version": "1.0.1", - "license": "MIT" - }, - "services/verification/node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" - }, - "services/verification/node_modules/available-typed-arrays": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">= 0.4" + "packages/lib-sourcify/node_modules/conventional-changelog-jquery": { + "version": "3.0.11", + "dev": true, + "license": "ISC", + "dependencies": { + "q": "^1.5.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/aws-sign2": { - "version": "0.7.0", - "license": "Apache-2.0", + "packages/lib-sourcify/node_modules/conventional-changelog-jshint": { + "version": "2.0.9", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, "engines": { - "node": "*" + "node": ">=10" } }, - "services/verification/node_modules/aws4": { - "version": "1.11.0", - "license": "MIT" - }, - "services/verification/node_modules/balanced-match": { - "version": "1.0.2", - "license": "MIT" - }, - "services/verification/node_modules/base-x": { - "version": "3.0.9", + "packages/lib-sourcify/node_modules/conventional-changelog-preset-loader": { + "version": "2.3.4", + "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "^5.0.1" + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/base64-js": { - "version": "1.5.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "services/verification/node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "license": "BSD-3-Clause", + "packages/lib-sourcify/node_modules/conventional-changelog-writer": { + "version": "5.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "tweetnacl": "^0.14.3" + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-changelog-writer": "cli.js" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/bignumber.js": { - "version": "9.0.2", - "license": "MIT", + "packages/lib-sourcify/node_modules/conventional-changelog-writer/node_modules/hosted-git-info": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, "engines": { - "node": "*" + "node": ">=10" } }, - "services/verification/node_modules/blakejs": { - "version": "1.2.1", - "license": "MIT" - }, - "services/verification/node_modules/blob-to-it": { - "version": "1.0.4", + "packages/lib-sourcify/node_modules/conventional-changelog-writer/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { - "browser-readablestream-to-it": "^1.0.3" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/bluebird": { - "version": "3.7.2", - "license": "MIT" - }, - "services/verification/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "services/verification/node_modules/body-parser": { - "version": "1.20.0", + "packages/lib-sourcify/node_modules/conventional-changelog-writer/node_modules/meow": { + "version": "8.1.2", + "dev": true, "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", + "packages/lib-sourcify/node_modules/conventional-changelog-writer/node_modules/normalize-package-data": { + "version": "3.0.3", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "ms": "2.0.0" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "license": "MIT", + "packages/lib-sourcify/node_modules/conventional-changelog-writer/node_modules/normalize-package-data/node_modules/semver": { + "version": "7.5.4", + "dev": true, + "license": "ISC", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "services/verification/node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "services/verification/node_modules/brace-expansion": { - "version": "1.1.11", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "packages/lib-sourcify/node_modules/conventional-changelog-writer/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "services/verification/node_modules/brorand": { - "version": "1.1.0", - "license": "MIT" + "packages/lib-sourcify/node_modules/conventional-changelog-writer/node_modules/type-fest": { + "version": "0.18.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "services/verification/node_modules/browser-readablestream-to-it": { - "version": "1.0.3", + "packages/lib-sourcify/node_modules/conventional-changelog-writer/node_modules/yallist": { + "version": "4.0.0", + "dev": true, "license": "ISC" }, - "services/verification/node_modules/browserify-aes": { - "version": "1.2.0", - "license": "MIT", - "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" - } + "packages/lib-sourcify/node_modules/conventional-commit-types": { + "version": "3.0.0", + "dev": true, + "license": "ISC" }, - "services/verification/node_modules/browserify-cipher": { - "version": "1.0.1", + "packages/lib-sourcify/node_modules/conventional-commits-filter": { + "version": "2.0.7", + "dev": true, "license": "MIT", "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/browserify-des": { - "version": "1.0.2", + "packages/lib-sourcify/node_modules/conventional-commits-parser": { + "version": "3.2.4", + "dev": true, "license": "MIT", "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/browserify-rsa": { + "packages/lib-sourcify/node_modules/conventional-commits-parser/node_modules/hosted-git-info": { "version": "4.1.0", - "license": "MIT", + "dev": true, + "license": "ISC", "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/browserify-rsa/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "services/verification/node_modules/browserify-sign": { - "version": "4.2.1", + "packages/lib-sourcify/node_modules/conventional-commits-parser/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "services/verification/node_modules/bs58": { - "version": "4.0.1", + "packages/lib-sourcify/node_modules/conventional-commits-parser/node_modules/meow": { + "version": "8.1.2", + "dev": true, "license": "MIT", "dependencies": { - "base-x": "^3.0.2" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/bs58check": { - "version": "2.1.2", - "license": "MIT", + "packages/lib-sourcify/node_modules/conventional-commits-parser/node_modules/normalize-package-data": { + "version": "3.0.3", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/buffer": { - "version": "6.0.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "packages/lib-sourcify/node_modules/conventional-commits-parser/node_modules/type-fest": { + "version": "0.18.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/buffer-from": { - "version": "1.1.2", + "packages/lib-sourcify/node_modules/conventional-commits-parser/node_modules/yallist": { + "version": "4.0.0", "dev": true, - "license": "MIT" - }, - "services/verification/node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "license": "MIT" - }, - "services/verification/node_modules/buffer-xor": { - "version": "1.0.3", - "license": "MIT" + "license": "ISC" }, - "services/verification/node_modules/bufferutil": { - "version": "4.0.6", - "hasInstallScript": true, + "packages/lib-sourcify/node_modules/conventional-recommended-bump": { + "version": "6.1.0", + "dev": true, "license": "MIT", "dependencies": { - "node-gyp-build": "^4.3.0" + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.3.4", + "conventional-commits-filter": "^2.0.7", + "conventional-commits-parser": "^3.2.0", + "git-raw-commits": "^2.0.8", + "git-semver-tags": "^4.1.1", + "meow": "^8.0.0", + "q": "^1.5.1" }, - "engines": { - "node": ">=6.14.2" - } - }, - "services/verification/node_modules/bunyan": { - "version": "1.8.15", - "engines": [ - "node >=0.10.0" - ], - "license": "MIT", "bin": { - "bunyan": "bin/bunyan" + "conventional-recommended-bump": "cli.js" }, - "optionalDependencies": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/bytes": { - "version": "3.1.2", - "license": "MIT", + "packages/lib-sourcify/node_modules/conventional-recommended-bump/node_modules/hosted-git-info": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, "engines": { - "node": ">= 0.8" + "node": ">=10" } }, - "services/verification/node_modules/cacheable-request": { - "version": "6.1.0", - "license": "MIT", + "packages/lib-sourcify/node_modules/conventional-recommended-bump/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" + "yallist": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "services/verification/node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", + "packages/lib-sourcify/node_modules/conventional-recommended-bump/node_modules/meow": { + "version": "8.1.2", + "dev": true, "license": "MIT", "dependencies": { - "pump": "^3.0.0" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "license": "MIT", + "packages/lib-sourcify/node_modules/conventional-recommended-bump/node_modules/normalize-package-data": { + "version": "3.0.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "services/verification/node_modules/call-bind": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "packages/lib-sourcify/node_modules/conventional-recommended-bump/node_modules/type-fest": { + "version": "0.18.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/caseless": { - "version": "0.12.0", - "license": "Apache-2.0" + "packages/lib-sourcify/node_modules/conventional-recommended-bump/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" }, - "services/verification/node_modules/cborg": { - "version": "1.9.2", - "license": "Apache-2.0", - "bin": { - "cborg": "cli.js" - } + "packages/lib-sourcify/node_modules/convert-source-map": { + "version": "1.9.0", + "dev": true, + "license": "MIT" }, - "services/verification/node_modules/chownr": { - "version": "1.1.4", - "license": "ISC" + "packages/lib-sourcify/node_modules/core-util-is": { + "version": "1.0.3", + "license": "MIT" }, - "services/verification/node_modules/cids": { - "version": "0.7.5", + "packages/lib-sourcify/node_modules/cosmiconfig": { + "version": "8.2.0", + "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" }, "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" } }, - "services/verification/node_modules/cids/node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "packages/lib-sourcify/node_modules/cosmiconfig-typescript-loader": { + "version": "4.3.0", + "dev": true, "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "optional": true, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=7", + "ts-node": ">=10", + "typescript": ">=3" } }, - "services/verification/node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", + "packages/lib-sourcify/node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0", + "optional": true + }, + "packages/lib-sourcify/node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "services/verification/node_modules/cids/node_modules/varint": { - "version": "5.0.2", + "packages/lib-sourcify/node_modules/crc-32": { + "version": "1.2.2", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "packages/lib-sourcify/node_modules/create-require": { + "version": "1.1.1", + "dev": true, "license": "MIT" }, - "services/verification/node_modules/cipher-base": { - "version": "1.0.4", + "packages/lib-sourcify/node_modules/cross-spawn": { + "version": "7.0.3", + "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" } }, - "services/verification/node_modules/class-is": { - "version": "1.1.0", - "license": "MIT" - }, - "services/verification/node_modules/clone-response": { - "version": "1.0.2", + "packages/lib-sourcify/node_modules/crypto-random-string": { + "version": "2.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" + "engines": { + "node": ">=8" } }, - "services/verification/node_modules/combined-stream": { - "version": "1.0.8", + "packages/lib-sourcify/node_modules/cspell": { + "version": "4.2.8", + "dev": true, "license": "MIT", "dependencies": { - "delayed-stream": "~1.0.0" + "chalk": "^4.1.0", + "commander": "^7.0.0", + "comment-json": "^4.0.6", + "cspell-glob": "^0.1.25", + "cspell-lib": "^4.3.12", + "fs-extra": "^9.1.0", + "gensequence": "^3.1.1", + "get-stdin": "^8.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "bin": { + "cspell": "bin.js" }, "engines": { - "node": ">= 0.8" + "node": ">=10.0.0" } }, - "services/verification/node_modules/command-exists": { - "version": "1.2.9", - "license": "MIT" - }, - "services/verification/node_modules/commander": { - "version": "3.0.2", - "license": "MIT" - }, - "services/verification/node_modules/concat-map": { - "version": "0.0.1", - "license": "MIT" - }, - "services/verification/node_modules/content-disposition": { - "version": "0.5.4", + "packages/lib-sourcify/node_modules/cspell-glob": { + "version": "0.1.25", + "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "5.2.1" + "micromatch": "^4.0.2" }, "engines": { - "node": ">= 0.6" + "node": ">=10.0.0" } }, - "services/verification/node_modules/content-hash": { - "version": "2.5.2", - "license": "ISC", + "packages/lib-sourcify/node_modules/cspell-io": { + "version": "4.1.7", + "dev": true, + "license": "MIT", "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" + "iconv-lite": "^0.6.2", + "iterable-to-stream": "^1.0.1" + }, + "engines": { + "node": ">=10.0.0" } }, - "services/verification/node_modules/content-type": { - "version": "1.0.4", - "license": "MIT", + "packages/lib-sourcify/node_modules/cspell-lib": { + "version": "4.3.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/dict-aws": "^1.0.13", + "@cspell/dict-bash": "^1.0.11", + "@cspell/dict-companies": "^1.0.35", + "@cspell/dict-cpp": "^1.1.37", + "@cspell/dict-cryptocurrencies": "^1.0.10", + "@cspell/dict-csharp": "^1.0.10", + "@cspell/dict-css": "^1.0.10", + "@cspell/dict-django": "^1.0.25", + "@cspell/dict-dotnet": "^1.0.24", + "@cspell/dict-elixir": "^1.0.23", + "@cspell/dict-en_us": "^1.2.39", + "@cspell/dict-en-gb": "^1.1.27", + "@cspell/dict-filetypes": "^1.1.5", + "@cspell/dict-fonts": "^1.0.13", + "@cspell/dict-fullstack": "^1.0.36", + "@cspell/dict-golang": "^1.1.24", + "@cspell/dict-haskell": "^1.0.12", + "@cspell/dict-html": "^1.1.5", + "@cspell/dict-html-symbol-entities": "^1.0.23", + "@cspell/dict-java": "^1.0.22", + "@cspell/dict-latex": "^1.0.23", + "@cspell/dict-lorem-ipsum": "^1.0.22", + "@cspell/dict-lua": "^1.0.16", + "@cspell/dict-node": "^1.0.10", + "@cspell/dict-npm": "^1.0.10", + "@cspell/dict-php": "^1.0.23", + "@cspell/dict-powershell": "^1.0.14", + "@cspell/dict-python": "^1.0.32", + "@cspell/dict-ruby": "^1.0.12", + "@cspell/dict-rust": "^1.0.22", + "@cspell/dict-scala": "^1.0.21", + "@cspell/dict-software-terms": "^1.0.24", + "@cspell/dict-typescript": "^1.0.16", + "comment-json": "^4.1.0", + "configstore": "^5.0.1", + "cspell-io": "^4.1.7", + "cspell-trie-lib": "^4.2.8", + "cspell-util-bundle": "^4.1.11", + "fs-extra": "^9.1.0", + "gensequence": "^3.1.1", + "minimatch": "^3.0.4", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0", + "vscode-uri": "^3.0.2" + }, "engines": { - "node": ">= 0.6" + "node": ">=10.0.0" } }, - "services/verification/node_modules/cookie": { - "version": "0.5.0", + "packages/lib-sourcify/node_modules/cspell-trie-lib": { + "version": "4.2.8", + "dev": true, "license": "MIT", + "dependencies": { + "gensequence": "^3.1.1" + }, "engines": { - "node": ">= 0.6" + "node": ">=10.0.0" } }, - "services/verification/node_modules/cookie-signature": { - "version": "1.0.6", - "license": "MIT" - }, - "services/verification/node_modules/cookiejar": { - "version": "2.1.3", - "license": "MIT" - }, - "services/verification/node_modules/core-util-is": { - "version": "1.0.2", - "license": "MIT" - }, - "services/verification/node_modules/cors": { - "version": "2.8.5", + "packages/lib-sourcify/node_modules/cspell-util-bundle": { + "version": "4.1.11", + "dev": true, "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, "engines": { - "node": ">= 0.10" + "node": ">=10.0.0" } }, - "services/verification/node_modules/crc-32": { - "version": "1.2.2", - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" + "packages/lib-sourcify/node_modules/cz-conventional-changelog": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" }, "engines": { - "node": ">=0.8" + "node": ">= 10" + }, + "optionalDependencies": { + "@commitlint/load": ">6.1.1" } }, - "services/verification/node_modules/create-ecdh": { - "version": "4.0.4", + "packages/lib-sourcify/node_modules/cz-conventional-changelog/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "services/verification/node_modules/create-hash": { - "version": "1.2.0", + "packages/lib-sourcify/node_modules/cz-conventional-changelog/node_modules/chalk": { + "version": "2.4.2", + "dev": true, "license": "MIT", "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "services/verification/node_modules/create-hmac": { - "version": "1.1.7", + "packages/lib-sourcify/node_modules/cz-conventional-changelog/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, "license": "MIT", "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" + "color-name": "1.1.3" } }, - "services/verification/node_modules/create-require": { - "version": "1.1.1", + "packages/lib-sourcify/node_modules/cz-conventional-changelog/node_modules/color-name": { + "version": "1.1.3", "dev": true, "license": "MIT" }, - "services/verification/node_modules/crypto-browserify": { - "version": "3.12.0", + "packages/lib-sourcify/node_modules/cz-conventional-changelog/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, "license": "MIT", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, "engines": { - "node": "*" + "node": ">=0.8.0" } }, - "services/verification/node_modules/d": { - "version": "1.0.1", - "license": "ISC", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "packages/lib-sourcify/node_modules/cz-conventional-changelog/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" } }, - "services/verification/node_modules/dag-jose": { - "version": "1.0.0", - "license": "(Apache-2.0 OR MIT)", + "packages/lib-sourcify/node_modules/cz-conventional-changelog/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", "dependencies": { - "@ipld/dag-cbor": "^6.0.3", - "multiformats": "^9.0.2" + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "services/verification/node_modules/dag-jose/node_modules/@ipld/dag-cbor": { - "version": "6.0.15", - "license": "(Apache-2.0 AND MIT)", - "dependencies": { - "cborg": "^1.5.4", - "multiformats": "^9.5.4" + "packages/lib-sourcify/node_modules/dargs": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "services/verification/node_modules/dashdash": { - "version": "1.14.1", + "packages/lib-sourcify/node_modules/dateformat": { + "version": "3.0.3", + "dev": true, "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - }, "engines": { - "node": ">=0.10" + "node": "*" } }, - "services/verification/node_modules/debug": { + "packages/lib-sourcify/node_modules/debug": { "version": "4.3.4", "license": "MIT", "dependencies": { @@ -29106,29 +31243,72 @@ } } }, - "services/verification/node_modules/decode-uri-component": { - "version": "0.2.0", + "packages/lib-sourcify/node_modules/decamelize": { + "version": "1.2.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=0.10.0" } }, - "services/verification/node_modules/decompress-response": { - "version": "3.3.0", + "packages/lib-sourcify/node_modules/decamelize-keys": { + "version": "1.1.1", + "dev": true, "license": "MIT", "dependencies": { - "mimic-response": "^1.0.0" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/defer-to-connect": { - "version": "1.1.3", + "packages/lib-sourcify/node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "packages/lib-sourcify/node_modules/dedent": { + "version": "0.7.0", + "dev": true, "license": "MIT" }, - "services/verification/node_modules/define-properties": { - "version": "1.1.4", + "packages/lib-sourcify/node_modules/deep-eql": { + "version": "4.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "packages/lib-sourcify/node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/defaults": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/lib-sourcify/node_modules/define-properties": { + "version": "1.2.0", + "dev": true, "license": "MIT", "dependencies": { "has-property-descriptors": "^1.0.0", @@ -29141,104 +31321,148 @@ "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/delayed-stream": { + "packages/lib-sourcify/node_modules/detect-file": { "version": "1.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.4.0" + "node": ">=0.10.0" } }, - "services/verification/node_modules/depd": { - "version": "2.0.0", + "packages/lib-sourcify/node_modules/detect-indent": { + "version": "6.1.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" - } - }, - "services/verification/node_modules/des.js": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "node": ">=8" } }, - "services/verification/node_modules/destroy": { - "version": "1.2.0", + "packages/lib-sourcify/node_modules/detect-newline": { + "version": "3.1.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=8" } }, - "services/verification/node_modules/diff": { - "version": "4.0.2", + "packages/lib-sourcify/node_modules/diff": { + "version": "5.0.0", "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, - "services/verification/node_modules/diffie-hellman": { - "version": "5.0.3", + "packages/lib-sourcify/node_modules/dir-glob": { + "version": "3.0.1", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "services/verification/node_modules/dns-over-http-resolver": { - "version": "1.2.3", - "license": "MIT", + "packages/lib-sourcify/node_modules/doctrine": { + "version": "3.0.0", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "debug": "^4.3.1", - "native-fetch": "^3.0.0", - "receptacle": "^1.3.2" + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "services/verification/node_modules/dom-walk": { - "version": "0.1.2" + "packages/lib-sourcify/node_modules/dot-prop": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } }, - "services/verification/node_modules/dtrace-provider": { - "version": "0.8.8", - "hasInstallScript": true, - "license": "BSD-2-Clause", - "optional": true, + "packages/lib-sourcify/node_modules/dotgitignore": { + "version": "2.1.0", + "dev": true, + "license": "ISC", "dependencies": { - "nan": "^2.14.0" + "find-up": "^3.0.0", + "minimatch": "^3.0.4" }, "engines": { - "node": ">=0.10" + "node": ">=6" } }, - "services/verification/node_modules/duplexer3": { - "version": "0.1.4", - "license": "BSD-3-Clause" + "packages/lib-sourcify/node_modules/dotgitignore/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } }, - "services/verification/node_modules/ecc-jsbn": { - "version": "0.1.2", + "packages/lib-sourcify/node_modules/dotgitignore/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, "license": "MIT", "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "services/verification/node_modules/ee-first": { - "version": "1.1.1", - "license": "MIT" + "packages/lib-sourcify/node_modules/dotgitignore/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "services/verification/node_modules/electron-fetch": { - "version": "1.7.4", + "packages/lib-sourcify/node_modules/dotgitignore/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, "license": "MIT", "dependencies": { - "encoding": "^0.1.13" + "p-limit": "^2.0.0" }, "engines": { "node": ">=6" } }, - "services/verification/node_modules/elliptic": { + "packages/lib-sourcify/node_modules/dotgitignore/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "packages/lib-sourcify/node_modules/dotgitignore/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "packages/lib-sourcify/node_modules/elliptic": { "version": "6.5.4", "license": "MIT", "dependencies": { @@ -29251,58 +31475,78 @@ "minimalistic-crypto-utils": "^1.0.1" } }, - "services/verification/node_modules/encodeurl": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } + "packages/lib-sourcify/node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "license": "MIT" }, - "services/verification/node_modules/encoding": { - "version": "0.1.13", + "packages/lib-sourcify/node_modules/email-addresses": { + "version": "3.1.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/enquirer": { + "version": "2.3.6", + "dev": true, "license": "MIT", "dependencies": { - "iconv-lite": "^0.6.2" + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" } }, - "services/verification/node_modules/end-of-stream": { - "version": "1.4.4", + "packages/lib-sourcify/node_modules/error-ex": { + "version": "1.3.2", + "dev": true, "license": "MIT", "dependencies": { - "once": "^1.4.0" + "is-arrayish": "^0.2.1" } }, - "services/verification/node_modules/err-code": { - "version": "3.0.1", - "license": "MIT" - }, - "services/verification/node_modules/es-abstract": { - "version": "1.20.1", + "packages/lib-sourcify/node_modules/es-abstract": { + "version": "1.21.2", + "dev": true, "license": "MIT", "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", + "get-intrinsic": "^1.2.0", "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", + "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" }, "engines": { "node": ">= 0.4" @@ -29311,48 +31555,30 @@ "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/es-aggregate-error": { - "version": "1.0.8", + "packages/lib-sourcify/node_modules/es-set-tostringtag": { + "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "function-bind": "^1.1.1", - "functions-have-names": "^1.2.3", - "get-intrinsic": "^1.1.1", - "globalthis": "^1.0.2", - "has-property-descriptors": "^1.0.0" + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/es-array-method-boxes-properly": { + "packages/lib-sourcify/node_modules/es-shim-unscopables": { "version": "1.0.0", - "license": "MIT" - }, - "services/verification/node_modules/es-get-iterator": { - "version": "1.1.2", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "has": "^1.0.3" } }, - "services/verification/node_modules/es-to-primitive": { + "packages/lib-sourcify/node_modules/es-to-primitive": { "version": "1.2.1", + "dev": true, "license": "MIT", "dependencies": { "is-callable": "^1.1.4", @@ -29366,569 +31592,807 @@ "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/es5-ext": { - "version": "0.10.61", - "hasInstallScript": true, - "license": "ISC", - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, + "packages/lib-sourcify/node_modules/escalade": { + "version": "3.1.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=6" } }, - "services/verification/node_modules/es6-iterator": { - "version": "2.0.3", + "packages/lib-sourcify/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/es6-symbol": { - "version": "3.1.3", - "license": "ISC", + "packages/lib-sourcify/node_modules/eslint": { + "version": "7.32.0", + "dev": true, + "license": "MIT", "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "services/verification/node_modules/escape-html": { - "version": "1.0.3", - "license": "MIT" + "packages/lib-sourcify/node_modules/eslint-config-prettier": { + "version": "6.15.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-stdin": "^6.0.0" + }, + "bin": { + "eslint-config-prettier-check": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=3.14.1" + } }, - "services/verification/node_modules/etag": { - "version": "1.8.1", + "packages/lib-sourcify/node_modules/eslint-config-prettier/node_modules/get-stdin": { + "version": "6.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=4" } }, - "services/verification/node_modules/eth-ens-namehash": { - "version": "2.0.8", - "license": "ISC", + "packages/lib-sourcify/node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "dev": true, + "license": "MIT", "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" } }, - "services/verification/node_modules/eth-ens-namehash/node_modules/js-sha3": { - "version": "0.5.7", - "license": "MIT" - }, - "services/verification/node_modules/eth-lib": { - "version": "0.1.29", + "packages/lib-sourcify/node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" + "ms": "^2.1.1" } }, - "services/verification/node_modules/ethereum-bloom-filters": { - "version": "1.0.10", + "packages/lib-sourcify/node_modules/eslint-module-utils": { + "version": "2.8.0", + "dev": true, "license": "MIT", "dependencies": { - "js-sha3": "^0.8.0" + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "services/verification/node_modules/ethereum-cryptography": { - "version": "0.1.3", + "packages/lib-sourcify/node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "dev": true, "license": "MIT", "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" + "ms": "^2.1.1" } }, - "services/verification/node_modules/ethereumjs-util": { - "version": "7.1.4", - "license": "MPL-2.0", + "packages/lib-sourcify/node_modules/eslint-plugin-eslint-comments": { + "version": "3.2.0", + "dev": true, + "license": "MIT", "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" + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" }, "engines": { - "node": ">=10.0.0" + "node": ">=6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" } }, - "services/verification/node_modules/ethereumjs-util/node_modules/@types/bn.js": { - "version": "5.1.0", + "packages/lib-sourcify/node_modules/eslint-plugin-eslint-comments/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, "license": "MIT", - "dependencies": { - "@types/node": "*" + "engines": { + "node": ">=0.8.0" } }, - "services/verification/node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "services/verification/node_modules/ethjs-unit": { - "version": "0.1.6", + "packages/lib-sourcify/node_modules/eslint-plugin-import": { + "version": "2.27.5", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "services/verification/node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "license": "MIT" - }, - "services/verification/node_modules/eventemitter3": { - "version": "4.0.4", - "license": "MIT" - }, - "services/verification/node_modules/evp_bytestokey": { - "version": "1.0.3", + "packages/lib-sourcify/node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "dev": true, "license": "MIT", "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "ms": "^2.1.1" } }, - "services/verification/node_modules/express": { - "version": "4.18.1", - "license": "MIT", + "packages/lib-sourcify/node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "esutils": "^2.0.2" }, "engines": { - "node": ">= 0.10.0" + "node": ">=0.10.0" } }, - "services/verification/node_modules/express/node_modules/debug": { - "version": "2.6.9", + "packages/lib-sourcify/node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "packages/lib-sourcify/node_modules/eslint-scope": { + "version": "5.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "packages/lib-sourcify/node_modules/eslint-utils": { + "version": "3.0.0", + "dev": true, "license": "MIT", "dependencies": { - "ms": "2.0.0" + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "services/verification/node_modules/express/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" + "packages/lib-sourcify/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } }, - "services/verification/node_modules/ext": { - "version": "1.6.0", - "license": "ISC", + "packages/lib-sourcify/node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "packages/lib-sourcify/node_modules/eslint/node_modules/eslint-utils": { + "version": "2.1.0", + "dev": true, + "license": "MIT", "dependencies": { - "type": "^2.5.0" + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "services/verification/node_modules/ext/node_modules/type": { - "version": "2.6.0", - "license": "ISC" + "packages/lib-sourcify/node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } }, - "services/verification/node_modules/extend": { - "version": "3.0.2", + "packages/lib-sourcify/node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "packages/lib-sourcify/node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, "license": "MIT" }, - "services/verification/node_modules/extsprintf": { + "packages/lib-sourcify/node_modules/espree": { + "version": "7.3.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "packages/lib-sourcify/node_modules/espree/node_modules/eslint-visitor-keys": { "version": "1.3.0", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } }, - "services/verification/node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT" + "packages/lib-sourcify/node_modules/esprima": { + "version": "4.0.1", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } }, - "services/verification/node_modules/fast-fifo": { - "version": "1.1.0", - "license": "MIT" + "packages/lib-sourcify/node_modules/esquery": { + "version": "1.5.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } }, - "services/verification/node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "license": "MIT" + "packages/lib-sourcify/node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } }, - "services/verification/node_modules/finalhandler": { - "version": "1.2.0", - "license": "MIT", + "packages/lib-sourcify/node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "estraverse": "^5.2.0" }, "engines": { - "node": ">= 0.8" + "node": ">=4.0" } }, - "services/verification/node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", + "packages/lib-sourcify/node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "packages/lib-sourcify/node_modules/estraverse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "packages/lib-sourcify/node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "packages/lib-sourcify/node_modules/ethereum-cryptography": { + "version": "2.1.0", "license": "MIT", "dependencies": { - "ms": "2.0.0" + "@noble/curves": "1.1.0", + "@noble/hashes": "1.3.1", + "@scure/bip32": "1.3.1", + "@scure/bip39": "1.2.1" } }, - "services/verification/node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" + "packages/lib-sourcify/node_modules/ethers": { + "version": "6.6.2", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "1.9.2", + "@noble/hashes": "1.1.2", + "@noble/secp256k1": "1.7.1", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" + }, + "engines": { + "node": ">=14.0.0" + } }, - "services/verification/node_modules/follow-redirects": { - "version": "1.15.0", + "packages/lib-sourcify/node_modules/ethers/node_modules/@noble/hashes": { + "version": "1.1.2", "funding": [ { "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" + "url": "https://paulmillr.com/funding/" } ], + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/ethers/node_modules/@types/node": { + "version": "18.15.13", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/ethers/node_modules/ws": { + "version": "8.5.0", "license": "MIT", "engines": { - "node": ">=4.0" + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" }, "peerDependenciesMeta": { - "debug": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { "optional": true } } }, - "services/verification/node_modules/for-each": { - "version": "0.3.3", + "packages/lib-sourcify/node_modules/expand-tilde": { + "version": "2.0.2", + "dev": true, "license": "MIT", "dependencies": { - "is-callable": "^1.1.3" - } - }, - "services/verification/node_modules/forever-agent": { - "version": "0.6.1", - "license": "Apache-2.0", + "homedir-polyfill": "^1.0.1" + }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "services/verification/node_modules/form-data": { - "version": "3.0.1", + "packages/lib-sourcify/node_modules/external-editor": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" }, "engines": { - "node": ">= 6" + "node": ">=4" } }, - "services/verification/node_modules/forwarded": { - "version": "0.2.0", + "packages/lib-sourcify/node_modules/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "dev": true, "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "services/verification/node_modules/fresh": { - "version": "0.5.2", + "packages/lib-sourcify/node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/fast-glob": { + "version": "3.3.0", + "dev": true, "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, "engines": { - "node": ">= 0.6" + "node": ">=8.6.0" } }, - "services/verification/node_modules/fs-extra": { - "version": "0.30.0", + "packages/lib-sourcify/node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/fast-url-parser": { + "version": "1.1.3", + "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" + "punycode": "^1.3.2" } }, - "services/verification/node_modules/fs-extra/node_modules/rimraf": { - "version": "2.7.1", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } + "packages/lib-sourcify/node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "dev": true, + "license": "MIT" }, - "services/verification/node_modules/fs-minipass": { - "version": "1.2.7", + "packages/lib-sourcify/node_modules/fastq": { + "version": "1.15.0", + "dev": true, "license": "ISC", "dependencies": { - "minipass": "^2.6.0" + "reusify": "^1.0.4" } }, - "services/verification/node_modules/fs.realpath": { - "version": "1.0.0", - "license": "ISC" - }, - "services/verification/node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" - }, - "services/verification/node_modules/function.prototype.name": { - "version": "1.1.5", + "packages/lib-sourcify/node_modules/figures": { + "version": "3.2.0", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "escape-string-regexp": "^1.0.5" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/functions-have-names": { - "version": "1.2.3", + "packages/lib-sourcify/node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.8.0" } }, - "services/verification/node_modules/get-intrinsic": { - "version": "1.1.1", + "packages/lib-sourcify/node_modules/file-entry-cache": { + "version": "6.0.1", + "dev": true, "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "flat-cache": "^3.0.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "services/verification/node_modules/get-iterator": { - "version": "1.0.2", - "license": "MIT" - }, - "services/verification/node_modules/get-stream": { - "version": "4.1.0", + "packages/lib-sourcify/node_modules/file-type": { + "version": "14.7.1", + "dev": true, "license": "MIT", "dependencies": { - "pump": "^3.0.0" + "readable-web-to-node-stream": "^2.0.0", + "strtok3": "^6.0.3", + "token-types": "^2.0.0", + "typedarray-to-buffer": "^3.1.5" }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" } }, - "services/verification/node_modules/get-symbol-description": { - "version": "1.0.0", + "packages/lib-sourcify/node_modules/filename-reserved-regex": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "packages/lib-sourcify/node_modules/filenamify": { + "version": "4.3.0", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/getpass": { - "version": "0.1.7", + "packages/lib-sourcify/node_modules/fill-range": { + "version": "7.0.1", + "dev": true, "license": "MIT", "dependencies": { - "assert-plus": "^1.0.0" + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "services/verification/node_modules/glob": { - "version": "7.2.3", - "license": "ISC", + "packages/lib-sourcify/node_modules/find-cache-dir": { + "version": "3.3.2", + "dev": true, + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" }, "engines": { - "node": "*" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "services/verification/node_modules/global": { - "version": "4.4.0", + "packages/lib-sourcify/node_modules/find-node-modules": { + "version": "2.1.3", + "dev": true, "license": "MIT", "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" + "findup-sync": "^4.0.0", + "merge": "^2.1.1" } }, - "services/verification/node_modules/globalthis": { - "version": "1.0.3", + "packages/lib-sourcify/node_modules/find-root": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/find-up": { + "version": "5.0.0", + "dev": true, "license": "MIT", "dependencies": { - "define-properties": "^1.1.3" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/got": { - "version": "9.6.0", + "packages/lib-sourcify/node_modules/findup-sync": { + "version": "4.0.0", + "dev": true, "license": "MIT", "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" }, "engines": { - "node": ">=8.6" + "node": ">= 8" } }, - "services/verification/node_modules/graceful-fs": { - "version": "4.2.10", - "license": "ISC" - }, - "services/verification/node_modules/har-schema": { - "version": "2.0.0", - "license": "ISC", - "engines": { - "node": ">=4" + "packages/lib-sourcify/node_modules/flat": { + "version": "5.0.2", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" } }, - "services/verification/node_modules/har-validator": { - "version": "5.1.5", + "packages/lib-sourcify/node_modules/flat-cache": { + "version": "3.0.4", + "dev": true, "license": "MIT", "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=6" + "node": "^10.12.0 || >=12.0.0" } }, - "services/verification/node_modules/has": { - "version": "1.0.3", + "packages/lib-sourcify/node_modules/flatted": { + "version": "3.2.7", + "dev": true, + "license": "ISC" + }, + "packages/lib-sourcify/node_modules/follow-redirects": { + "version": "1.15.2", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, "engines": { - "node": ">= 0.4.0" + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "services/verification/node_modules/has-bigints": { - "version": "1.0.2", + "packages/lib-sourcify/node_modules/for-each": { + "version": "0.3.3", + "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "is-callable": "^1.1.3" } }, - "services/verification/node_modules/has-property-descriptors": { - "version": "1.0.0", - "license": "MIT", + "packages/lib-sourcify/node_modules/foreground-child": { + "version": "2.0.0", + "dev": true, + "license": "ISC", "dependencies": { - "get-intrinsic": "^1.1.1" + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "services/verification/node_modules/has-symbol-support-x": { - "version": "1.4.2", - "license": "MIT", "engines": { - "node": "*" + "node": ">=8.0.0" } }, - "services/verification/node_modules/has-symbols": { - "version": "1.0.3", + "packages/lib-sourcify/node_modules/fs-extra": { + "version": "9.1.0", + "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/has-to-string-tag-x": { - "version": "1.4.1", + "packages/lib-sourcify/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "packages/lib-sourcify/node_modules/fsevents": { + "version": "2.3.2", + "dev": true, "license": "MIT", - "dependencies": { - "has-symbol-support-x": "^1.4.1" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "*" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "services/verification/node_modules/has-tostringtag": { - "version": "1.0.0", + "packages/lib-sourcify/node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/function.prototype.name": { + "version": "1.1.5", + "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" }, "engines": { "node": ">= 0.4" @@ -29937,99 +32401,171 @@ "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/hash-base": { - "version": "3.1.0", + "packages/lib-sourcify/node_modules/functional-red-black-tree": { + "version": "1.0.1", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/lib-sourcify/node_modules/ganache": { + "version": "7.9.0", + "bundleDependencies": [ + "@trufflesuite/bigint-buffer", + "keccak", + "leveldown", + "secp256k1" + ], + "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "@trufflesuite/bigint-buffer": "1.1.10", + "@trufflesuite/uws-js-unofficial": "20.10.0-unofficial.2", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "5.1.1", + "@types/seedrandom": "3.0.1", + "abstract-level": "1.0.3", + "abstract-leveldown": "7.2.0", + "async-eventemitter": "0.2.4", + "emittery": "0.10.0", + "keccak": "3.0.2", + "leveldown": "6.1.0", + "secp256k1": "4.0.3" + }, + "bin": { + "ganache": "dist/node/cli.js", + "ganache-cli": "dist/node/cli.js" + }, + "optionalDependencies": { + "bufferutil": "4.0.5", + "utf-8-validate": "5.0.7" + } + }, + "packages/lib-sourcify/node_modules/ganache/node_modules/@trufflesuite/bigint-buffer": { + "version": "1.1.10", + "dev": true, + "hasInstallScript": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "node-gyp-build": "4.4.0" }, "engines": { - "node": ">=4" + "node": ">= 14.0.0" } }, - "services/verification/node_modules/hash.js": { - "version": "1.1.7", + "packages/lib-sourcify/node_modules/ganache/node_modules/@trufflesuite/bigint-buffer/node_modules/node-gyp-build": { + "version": "4.4.0", + "dev": true, + "inBundle": true, "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "packages/lib-sourcify/node_modules/ganache/node_modules/@trufflesuite/uws-js-unofficial": { + "version": "20.10.0-unofficial.2", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "ws": "8.2.3" + }, + "optionalDependencies": { + "bufferutil": "4.0.5", + "utf-8-validate": "5.0.7" } }, - "services/verification/node_modules/hmac-drbg": { - "version": "1.0.1", + "packages/lib-sourcify/node_modules/ganache/node_modules/@types/bn.js": { + "version": "5.1.0", + "dev": true, "license": "MIT", "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "@types/node": "*" } }, - "services/verification/node_modules/http-cache-semantics": { - "version": "4.1.0", - "license": "BSD-2-Clause" + "packages/lib-sourcify/node_modules/ganache/node_modules/@types/lru-cache": { + "version": "5.1.1", + "dev": true, + "license": "MIT" }, - "services/verification/node_modules/http-errors": { - "version": "2.0.0", + "packages/lib-sourcify/node_modules/ganache/node_modules/@types/node": { + "version": "17.0.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/ganache/node_modules/@types/seedrandom": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/ganache/node_modules/abstract-level": { + "version": "1.0.3", + "dev": true, "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" }, "engines": { - "node": ">= 0.8" + "node": ">=12" } }, - "services/verification/node_modules/http-https": { - "version": "1.0.0", - "license": "ISC" - }, - "services/verification/node_modules/http-signature": { - "version": "1.2.0", + "packages/lib-sourcify/node_modules/ganache/node_modules/abstract-level/node_modules/level-supports": { + "version": "4.0.1", + "dev": true, "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" + "node": ">=12" } }, - "services/verification/node_modules/iconv-lite": { - "version": "0.6.3", + "packages/lib-sourcify/node_modules/ganache/node_modules/abstract-leveldown": { + "version": "7.2.0", + "dev": true, + "inBundle": true, "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "buffer": "^6.0.3", + "catering": "^2.0.0", + "is-buffer": "^2.0.5", + "level-concat-iterator": "^3.0.0", + "level-supports": "^2.0.1", + "queue-microtask": "^1.2.3" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "services/verification/node_modules/idna-uts46-hx": { - "version": "2.3.1", + "packages/lib-sourcify/node_modules/ganache/node_modules/async": { + "version": "2.6.4", + "dev": true, "license": "MIT", "dependencies": { - "punycode": "2.1.0" - }, - "engines": { - "node": ">=4.0.0" + "lodash": "^4.17.14" } }, - "services/verification/node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", + "packages/lib-sourcify/node_modules/ganache/node_modules/async-eventemitter": { + "version": "0.2.4", + "dev": true, "license": "MIT", - "engines": { - "node": ">=6" + "dependencies": { + "async": "^2.4.0" } }, - "services/verification/node_modules/ieee754": { - "version": "1.2.1", + "packages/lib-sourcify/node_modules/ganache/node_modules/base64-js": { + "version": "1.5.1", + "dev": true, "funding": [ { "type": "github", @@ -30044,388 +32580,505 @@ "url": "https://feross.org/support" } ], - "license": "BSD-3-Clause" - }, - "services/verification/node_modules/inflight": { - "version": "1.0.6", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } + "inBundle": true, + "license": "MIT" }, - "services/verification/node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" + "packages/lib-sourcify/node_modules/ganache/node_modules/brorand": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" }, - "services/verification/node_modules/interface-datastore": { - "version": "6.1.0", + "packages/lib-sourcify/node_modules/ganache/node_modules/buffer": { + "version": "6.0.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, "license": "MIT", "dependencies": { - "interface-store": "^2.0.1", - "nanoid": "^3.0.2", - "uint8arrays": "^3.0.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "services/verification/node_modules/interface-store": { - "version": "2.0.2", - "license": "(Apache-2.0 OR MIT)" - }, - "services/verification/node_modules/internal-slot": { - "version": "1.0.3", + "packages/lib-sourcify/node_modules/ganache/node_modules/catering": { + "version": "2.1.0", + "dev": true, + "inBundle": true, "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "queue-tick": "^1.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6" } }, - "services/verification/node_modules/ip-regex": { - "version": "4.3.0", + "packages/lib-sourcify/node_modules/ganache/node_modules/elliptic": { + "version": "6.5.4", + "dev": true, + "inBundle": true, "license": "MIT", - "engines": { - "node": ">=8" + "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" } }, - "services/verification/node_modules/ipaddr.js": { - "version": "1.9.1", + "packages/lib-sourcify/node_modules/ganache/node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/ganache/node_modules/emittery": { + "version": "0.10.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.10" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "services/verification/node_modules/ipfs-core-types": { - "version": "0.10.3", - "license": "(Apache-2.0 OR MIT)", + "packages/lib-sourcify/node_modules/ganache/node_modules/hash.js": { + "version": "1.1.7", + "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "@ipld/dag-pb": "^2.1.3", - "interface-datastore": "^6.0.2", - "ipfs-unixfs": "^6.0.3", - "multiaddr": "^10.0.0", - "multiformats": "^9.5.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "services/verification/node_modules/ipfs-core-utils": { - "version": "0.14.3", + "packages/lib-sourcify/node_modules/ganache/node_modules/hmac-drbg": { + "version": "1.0.1", + "dev": true, + "inBundle": true, "license": "MIT", "dependencies": { - "any-signal": "^3.0.0", - "blob-to-it": "^1.0.1", - "browser-readablestream-to-it": "^1.0.1", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "ipfs-core-types": "^0.10.3", - "ipfs-unixfs": "^6.0.3", - "ipfs-utils": "^9.0.6", - "it-all": "^1.0.4", - "it-map": "^1.0.4", - "it-peekable": "^1.0.2", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiaddr-to-uri": "^8.0.0", - "multiformats": "^9.5.1", - "nanoid": "^3.1.23", - "parse-duration": "^1.0.0", - "timeout-abort-controller": "^3.0.0", - "uint8arrays": "^3.0.0" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "services/verification/node_modules/ipfs-http-client": { - "version": "56.0.3", - "license": "(Apache-2.0 OR MIT)", - "dependencies": { - "@ipld/dag-cbor": "^7.0.0", - "@ipld/dag-json": "^8.0.1", - "@ipld/dag-pb": "^2.1.3", - "any-signal": "^3.0.0", - "dag-jose": "^1.0.0", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "ipfs-core-types": "^0.10.3", - "ipfs-core-utils": "^0.14.3", - "ipfs-utils": "^9.0.6", - "it-first": "^1.0.6", - "it-last": "^1.0.4", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiformats": "^9.5.1", - "parse-duration": "^1.0.0", - "stream-to-it": "^0.2.2", - "uint8arrays": "^3.0.0" - }, + "packages/lib-sourcify/node_modules/ganache/node_modules/ieee754": { + "version": "1.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "BSD-3-Clause" + }, + "packages/lib-sourcify/node_modules/ganache/node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "packages/lib-sourcify/node_modules/ganache/node_modules/is-buffer": { + "version": "2.0.5", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT", "engines": { - "node": ">=15.0.0", - "npm": ">=3.0.0" + "node": ">=4" } }, - "services/verification/node_modules/ipfs-unixfs": { - "version": "6.0.7", - "license": "Apache-2.0 OR MIT", + "packages/lib-sourcify/node_modules/ganache/node_modules/keccak": { + "version": "3.0.2", + "dev": true, + "hasInstallScript": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "err-code": "^3.0.1", - "protobufjs": "^6.10.2" + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=10.0.0" } }, - "services/verification/node_modules/ipfs-utils": { - "version": "9.0.6", + "packages/lib-sourcify/node_modules/ganache/node_modules/level-concat-iterator": { + "version": "3.1.0", + "dev": true, + "inBundle": true, "license": "MIT", "dependencies": { - "any-signal": "^3.0.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^3.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.1.5", - "it-glob": "^1.0.1", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "nanoid": "^3.1.20", - "native-fetch": "^3.0.0", - "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "react-native-fetch-api": "^2.0.0", - "stream-to-it": "^0.2.2" - } - }, - "services/verification/node_modules/ipfs-utils/node_modules/node-fetch": { - "name": "@achingbrain/node-fetch", - "version": "2.6.7", - "license": "MIT", + "catering": "^2.1.0" + }, "engines": { - "node": "4.x || >=6.0.0" + "node": ">=10" } }, - "services/verification/node_modules/is-arguments": { - "version": "1.1.1", + "packages/lib-sourcify/node_modules/ganache/node_modules/level-supports": { + "version": "2.1.0", + "dev": true, + "inBundle": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "services/verification/node_modules/is-bigint": { - "version": "1.0.4", + "packages/lib-sourcify/node_modules/ganache/node_modules/level-transcoder": { + "version": "1.0.1", + "dev": true, "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" + "buffer": "^6.0.3", + "module-error": "^1.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=12" } }, - "services/verification/node_modules/is-boolean-object": { - "version": "1.1.2", + "packages/lib-sourcify/node_modules/ganache/node_modules/leveldown": { + "version": "6.1.0", + "dev": true, + "hasInstallScript": true, + "inBundle": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "abstract-leveldown": "^7.2.0", + "napi-macros": "~2.0.0", + "node-gyp-build": "^4.3.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10.12.0" } }, - "services/verification/node_modules/is-callable": { - "version": "1.2.4", + "packages/lib-sourcify/node_modules/ganache/node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/ganache/node_modules/minimalistic-assert": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "packages/lib-sourcify/node_modules/ganache/node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/ganache/node_modules/module-error": { + "version": "1.0.2", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "services/verification/node_modules/is-date-object": { - "version": "1.0.5", + "packages/lib-sourcify/node_modules/ganache/node_modules/napi-macros": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/ganache/node_modules/node-addon-api": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/ganache/node_modules/node-gyp-build": { + "version": "4.3.0", + "dev": true, + "inBundle": true, "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" } }, - "services/verification/node_modules/is-electron": { - "version": "2.2.1", + "packages/lib-sourcify/node_modules/ganache/node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, "license": "MIT" }, - "services/verification/node_modules/is-function": { - "version": "1.0.2", + "packages/lib-sourcify/node_modules/ganache/node_modules/queue-tick": { + "version": "1.0.0", + "dev": true, + "inBundle": true, "license": "MIT" }, - "services/verification/node_modules/is-generator-function": { - "version": "1.0.10", + "packages/lib-sourcify/node_modules/ganache/node_modules/readable-stream": { + "version": "3.6.0", + "dev": true, + "inBundle": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 6" } }, - "services/verification/node_modules/is-hex-prefixed": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } + "packages/lib-sourcify/node_modules/ganache/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" }, - "services/verification/node_modules/is-ip": { - "version": "3.1.0", + "packages/lib-sourcify/node_modules/ganache/node_modules/secp256k1": { + "version": "4.0.3", + "dev": true, + "hasInstallScript": true, + "inBundle": true, "license": "MIT", "dependencies": { - "ip-regex": "^4.0.0" + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" }, "engines": { - "node": ">=8" + "node": ">=10.0.0" } }, - "services/verification/node_modules/is-map": { - "version": "2.0.2", + "packages/lib-sourcify/node_modules/ganache/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "inBundle": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "safe-buffer": "~5.2.0" } }, - "services/verification/node_modules/is-negative-zero": { - "version": "2.0.2", + "packages/lib-sourcify/node_modules/ganache/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/ganache/node_modules/ws": { + "version": "8.2.3", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=10.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "services/verification/node_modules/is-number-object": { - "version": "1.0.7", + "packages/lib-sourcify/node_modules/gensequence": { + "version": "3.1.1", + "dev": true, "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10.0.0" } }, - "services/verification/node_modules/is-object": { - "version": "1.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "packages/lib-sourcify/node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" } }, - "services/verification/node_modules/is-plain-obj": { - "version": "2.1.0", + "packages/lib-sourcify/node_modules/get-func-name": { + "version": "2.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": "*" } }, - "services/verification/node_modules/is-regex": { - "version": "1.1.4", + "packages/lib-sourcify/node_modules/get-intrinsic": { + "version": "1.2.1", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/is-retry-allowed": { - "version": "1.2.0", + "packages/lib-sourcify/node_modules/get-pkg-repo": { + "version": "4.2.1", + "dev": true, "license": "MIT", + "dependencies": { + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" + }, + "bin": { + "get-pkg-repo": "src/cli.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" } }, - "services/verification/node_modules/is-set": { - "version": "2.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "packages/lib-sourcify/node_modules/get-pkg-repo/node_modules/hosted-git-info": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "license": "MIT", + "packages/lib-sourcify/node_modules/get-pkg-repo/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", "dependencies": { - "call-bind": "^1.0.2" + "yallist": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/is-stream": { - "version": "1.1.0", + "packages/lib-sourcify/node_modules/get-pkg-repo/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "services/verification/node_modules/is-string": { - "version": "1.0.7", + "packages/lib-sourcify/node_modules/get-pkg-repo/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "safe-buffer": "~5.1.0" } }, - "services/verification/node_modules/is-symbol": { - "version": "1.0.4", + "packages/lib-sourcify/node_modules/get-pkg-repo/node_modules/through2": { + "version": "2.0.5", + "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" - }, + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "packages/lib-sourcify/node_modules/get-pkg-repo/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "packages/lib-sourcify/node_modules/get-stdin": { + "version": "8.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/is-typed-array": { - "version": "1.1.9", + "packages/lib-sourcify/node_modules/get-symbol-description": { + "version": "1.0.0", + "dev": true, "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.1.1" }, "engines": { "node": ">= 0.4" @@ -30434,188 +33087,127 @@ "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/is-typedarray": { - "version": "1.0.0", - "license": "MIT" - }, - "services/verification/node_modules/is-weakref": { - "version": "1.0.2", + "packages/lib-sourcify/node_modules/gh-pages": { + "version": "3.2.3", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "bin": { + "gh-pages": "bin/gh-pages.js", + "gh-pages-clean": "bin/gh-pages-clean.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "services/verification/node_modules/isarray": { - "version": "2.0.5", - "license": "MIT" - }, - "services/verification/node_modules/iso-url": { - "version": "1.2.1", - "license": "MIT", "engines": { - "node": ">=12" + "node": ">=10" } }, - "services/verification/node_modules/isstream": { - "version": "0.1.2", - "license": "MIT" - }, - "services/verification/node_modules/isurl": { - "version": "1.0.0", + "packages/lib-sourcify/node_modules/gh-pages/node_modules/array-union": { + "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "array-uniq": "^1.0.1" }, "engines": { - "node": ">= 4" - } - }, - "services/verification/node_modules/it-all": { - "version": "1.0.6", - "license": "ISC" - }, - "services/verification/node_modules/it-first": { - "version": "1.0.7", - "license": "ISC" - }, - "services/verification/node_modules/it-glob": { - "version": "1.0.2", - "license": "ISC", - "dependencies": { - "@types/minimatch": "^3.0.4", - "minimatch": "^3.0.4" + "node": ">=0.10.0" } }, - "services/verification/node_modules/it-last": { - "version": "1.0.6", - "license": "ISC" - }, - "services/verification/node_modules/it-map": { - "version": "1.0.6", - "license": "ISC" - }, - "services/verification/node_modules/it-peekable": { - "version": "1.0.3", - "license": "ISC" + "packages/lib-sourcify/node_modules/gh-pages/node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" }, - "services/verification/node_modules/it-to-stream": { - "version": "1.0.0", + "packages/lib-sourcify/node_modules/gh-pages/node_modules/fs-extra": { + "version": "8.1.0", + "dev": true, "license": "MIT", "dependencies": { - "buffer": "^6.0.3", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "services/verification/node_modules/iterate-iterator": { - "version": "1.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" } }, - "services/verification/node_modules/iterate-value": { - "version": "1.0.2", + "packages/lib-sourcify/node_modules/gh-pages/node_modules/globby": { + "version": "6.1.0", + "dev": true, "license": "MIT", "dependencies": { - "es-get-iterator": "^1.0.2", - "iterate-iterator": "^1.0.1" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10.0" } }, - "services/verification/node_modules/js-sha3": { - "version": "0.8.0", - "license": "MIT" - }, - "services/verification/node_modules/jsbn": { - "version": "0.1.1", - "license": "MIT" - }, - "services/verification/node_modules/json-buffer": { - "version": "3.0.0", - "license": "MIT" - }, - "services/verification/node_modules/json-schema": { - "version": "0.4.0", - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, - "services/verification/node_modules/json-schema-traverse": { - "version": "0.4.1", - "license": "MIT" - }, - "services/verification/node_modules/json-stringify-safe": { - "version": "5.0.1", - "license": "ISC" - }, - "services/verification/node_modules/jsonfile": { - "version": "2.4.0", + "packages/lib-sourcify/node_modules/gh-pages/node_modules/jsonfile": { + "version": "4.0.0", + "dev": true, "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } }, - "services/verification/node_modules/jsprim": { - "version": "1.4.2", + "packages/lib-sourcify/node_modules/gh-pages/node_modules/pify": { + "version": "2.3.0", + "dev": true, "license": "MIT", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, "engines": { - "node": ">=0.6.0" + "node": ">=0.10.0" } }, - "services/verification/node_modules/keccak": { - "version": "3.0.2", - "hasInstallScript": true, + "packages/lib-sourcify/node_modules/gh-pages/node_modules/universalify": { + "version": "0.1.2", + "dev": true, "license": "MIT", - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, "engines": { - "node": ">=10.0.0" + "node": ">= 4.0.0" } }, - "services/verification/node_modules/keyv": { - "version": "3.1.0", + "packages/lib-sourcify/node_modules/git-raw-commits": { + "version": "2.0.11", + "dev": true, "license": "MIT", "dependencies": { - "json-buffer": "3.0.0" - } - }, - "services/verification/node_modules/klaw": { - "version": "1.3.1", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.9" + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/long": { - "version": "4.0.0", - "license": "Apache-2.0" - }, - "services/verification/node_modules/lowercase-keys": { - "version": "1.0.1", - "license": "MIT", + "packages/lib-sourcify/node_modules/git-raw-commits/node_modules/hosted-git-info": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "services/verification/node_modules/lru-cache": { + "packages/lib-sourcify/node_modules/git-raw-commits/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -30624,463 +33216,446 @@ "node": ">=10" } }, - "services/verification/node_modules/make-error": { - "version": "1.3.6", + "packages/lib-sourcify/node_modules/git-raw-commits/node_modules/meow": { + "version": "8.1.2", "dev": true, - "license": "ISC" - }, - "services/verification/node_modules/md5.js": { - "version": "1.3.5", "license": "MIT", "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/media-typer": { - "version": "0.3.0", - "license": "MIT", + "packages/lib-sourcify/node_modules/git-raw-commits/node_modules/normalize-package-data": { + "version": "3.0.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, "engines": { - "node": ">= 0.6" + "node": ">=10" } }, - "services/verification/node_modules/memorystream": { - "version": "0.3.1", + "packages/lib-sourcify/node_modules/git-raw-commits/node_modules/type-fest": { + "version": "0.18.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">= 0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/merge-descriptors": { - "version": "1.0.1", - "license": "MIT" + "packages/lib-sourcify/node_modules/git-raw-commits/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" }, - "services/verification/node_modules/merge-options": { - "version": "3.0.4", + "packages/lib-sourcify/node_modules/git-remote-origin-url": { + "version": "2.0.0", + "dev": true, "license": "MIT", "dependencies": { - "is-plain-obj": "^2.1.0" + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "services/verification/node_modules/methods": { - "version": "1.1.2", + "packages/lib-sourcify/node_modules/git-remote-origin-url/node_modules/pify": { + "version": "2.3.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "services/verification/node_modules/miller-rabin": { - "version": "4.0.1", + "packages/lib-sourcify/node_modules/git-semver-tags": { + "version": "4.1.1", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "meow": "^8.0.0", + "semver": "^6.0.0" }, "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "services/verification/node_modules/mime": { - "version": "1.6.0", - "license": "MIT", - "bin": { - "mime": "cli.js" + "git-semver-tags": "cli.js" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "services/verification/node_modules/mime-db": { - "version": "1.52.0", - "license": "MIT", + "packages/lib-sourcify/node_modules/git-semver-tags/node_modules/hosted-git-info": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=10" } }, - "services/verification/node_modules/mime-types": { - "version": "2.1.35", - "license": "MIT", + "packages/lib-sourcify/node_modules/git-semver-tags/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", "dependencies": { - "mime-db": "1.52.0" + "yallist": "^4.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">=10" } }, - "services/verification/node_modules/mimic-response": { - "version": "1.0.1", + "packages/lib-sourcify/node_modules/git-semver-tags/node_modules/meow": { + "version": "8.1.2", + "dev": true, "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/min-document": { - "version": "2.19.0", + "packages/lib-sourcify/node_modules/git-semver-tags/node_modules/normalize-package-data": { + "version": "3.0.3", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "dom-walk": "^0.1.0" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/minimalistic-assert": { - "version": "1.0.1", - "license": "ISC" - }, - "services/verification/node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "license": "MIT" - }, - "services/verification/node_modules/minimatch": { - "version": "3.1.2", + "packages/lib-sourcify/node_modules/git-semver-tags/node_modules/normalize-package-data/node_modules/semver": { + "version": "7.5.4", + "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": "*" + "node": ">=10" } }, - "services/verification/node_modules/minimist": { - "version": "1.2.6", - "license": "MIT" - }, - "services/verification/node_modules/minipass": { - "version": "2.9.0", + "packages/lib-sourcify/node_modules/git-semver-tags/node_modules/semver": { + "version": "6.3.1", + "dev": true, "license": "ISC", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "bin": { + "semver": "bin/semver.js" } }, - "services/verification/node_modules/minipass/node_modules/yallist": { - "version": "3.1.1", + "packages/lib-sourcify/node_modules/git-semver-tags/node_modules/type-fest": { + "version": "0.18.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/lib-sourcify/node_modules/git-semver-tags/node_modules/yallist": { + "version": "4.0.0", + "dev": true, "license": "ISC" }, - "services/verification/node_modules/minizlib": { - "version": "1.3.3", - "license": "MIT", + "packages/lib-sourcify/node_modules/gitconfiglocal": { + "version": "1.0.0", + "dev": true, + "license": "BSD", "dependencies": { - "minipass": "^2.9.0" + "ini": "^1.3.2" } }, - "services/verification/node_modules/mkdirp": { - "version": "0.5.6", - "license": "MIT", + "packages/lib-sourcify/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", "dependencies": { - "minimist": "^1.2.6" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, - "bin": { - "mkdirp": "bin/cmd.js" + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "services/verification/node_modules/mkdirp-promise": { - "version": "5.0.1", + "packages/lib-sourcify/node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, "license": "ISC", "dependencies": { - "mkdirp": "*" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=4" + "node": ">= 6" } }, - "services/verification/node_modules/mock-fs": { - "version": "4.14.0", - "license": "MIT" - }, - "services/verification/node_modules/moment": { - "version": "2.29.3", + "packages/lib-sourcify/node_modules/global-dirs": { + "version": "0.1.1", + "dev": true, "license": "MIT", - "optional": true, + "dependencies": { + "ini": "^1.3.4" + }, "engines": { - "node": "*" + "node": ">=4" } }, - "services/verification/node_modules/ms": { - "version": "2.1.2", - "license": "MIT" - }, - "services/verification/node_modules/multiaddr": { - "version": "10.0.1", + "packages/lib-sourcify/node_modules/global-modules": { + "version": "1.0.0", + "dev": true, "license": "MIT", "dependencies": { - "dns-over-http-resolver": "^1.2.3", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "services/verification/node_modules/multiaddr-to-uri": { - "version": "8.0.0", + "packages/lib-sourcify/node_modules/global-prefix": { + "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { - "multiaddr": "^10.0.0" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" } }, - "services/verification/node_modules/multibase": { - "version": "0.6.1", - "license": "MIT", + "packages/lib-sourcify/node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "services/verification/node_modules/multibase/node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "services/verification/node_modules/multicodec": { - "version": "0.5.7", - "license": "MIT", - "dependencies": { - "varint": "^5.0.0" - } - }, - "services/verification/node_modules/multicodec/node_modules/varint": { - "version": "5.0.2", - "license": "MIT" - }, - "services/verification/node_modules/multiformats": { - "version": "9.6.5", - "license": "(Apache-2.0 AND MIT)" - }, - "services/verification/node_modules/multihashes": { - "version": "0.4.21", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "services/verification/node_modules/multihashes/node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "services/verification/node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", + "packages/lib-sourcify/node_modules/globals": { + "version": "13.20.0", + "dev": true, "license": "MIT", "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/multihashes/node_modules/varint": { - "version": "5.0.2", - "license": "MIT" - }, - "services/verification/node_modules/mv": { - "version": "2.1.1", + "packages/lib-sourcify/node_modules/globalthis": { + "version": "1.0.3", + "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" + "define-properties": "^1.1.3" }, "engines": { - "node": ">=0.8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/mv/node_modules/glob": { - "version": "6.0.4", - "license": "ISC", - "optional": true, + "packages/lib-sourcify/node_modules/globby": { + "version": "11.1.0", + "dev": true, + "license": "MIT", "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { - "node": "*" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/mv/node_modules/rimraf": { - "version": "2.4.5", - "license": "ISC", - "optional": true, + "packages/lib-sourcify/node_modules/gopd": { + "version": "1.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "glob": "^6.0.1" + "get-intrinsic": "^1.1.3" }, - "bin": { - "rimraf": "bin.js" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/nan": { - "version": "2.15.0", - "license": "MIT", - "optional": true - }, - "services/verification/node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "license": "MIT" + "packages/lib-sourcify/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" }, - "services/verification/node_modules/nanoid": { - "version": "3.3.4", + "packages/lib-sourcify/node_modules/handlebars": { + "version": "4.7.7", + "dev": true, "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, "bin": { - "nanoid": "bin/nanoid.cjs" + "handlebars": "bin/handlebars" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "services/verification/node_modules/native-fetch": { - "version": "3.0.0", - "license": "MIT", - "peerDependencies": { - "node-fetch": "*" - } - }, - "services/verification/node_modules/ncp": { - "version": "2.0.0", - "license": "MIT", - "optional": true, - "bin": { - "ncp": "bin/ncp" + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "services/verification/node_modules/negotiator": { - "version": "0.6.3", + "packages/lib-sourcify/node_modules/hard-rejection": { + "version": "2.1.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "services/verification/node_modules/next-tick": { - "version": "1.1.0", - "license": "ISC" - }, - "services/verification/node_modules/node-addon-api": { - "version": "2.0.2", - "license": "MIT" - }, - "services/verification/node_modules/node-fetch": { - "version": "2.6.7", + "packages/lib-sourcify/node_modules/has": { + "version": "1.0.3", + "dev": true, "license": "MIT", "dependencies": { - "whatwg-url": "^5.0.0" + "function-bind": "^1.1.1" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "node": ">= 0.4.0" } }, - "services/verification/node_modules/node-gyp-build": { - "version": "4.4.0", + "packages/lib-sourcify/node_modules/has-bigints": { + "version": "1.0.2", + "dev": true, "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/normalize-url": { - "version": "4.5.1", + "packages/lib-sourcify/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "services/verification/node_modules/number-to-bn": { - "version": "1.7.0", + "packages/lib-sourcify/node_modules/has-own-prop": { + "version": "2.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "services/verification/node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "license": "MIT" - }, - "services/verification/node_modules/oauth-sign": { - "version": "0.9.0", - "license": "Apache-2.0", "engines": { - "node": "*" + "node": ">=8" } }, - "services/verification/node_modules/object-assign": { - "version": "4.1.1", + "packages/lib-sourcify/node_modules/has-property-descriptors": { + "version": "1.0.0", + "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/object-inspect": { - "version": "1.12.0", + "packages/lib-sourcify/node_modules/has-proto": { + "version": "1.0.1", + "dev": true, "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/object-keys": { - "version": "1.1.1", + "packages/lib-sourcify/node_modules/has-symbols": { + "version": "1.0.3", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/object.assign": { - "version": "4.1.2", + "packages/lib-sourcify/node_modules/has-tostringtag": { + "version": "1.0.0", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -31089,334 +33664,390 @@ "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/oboe": { - "version": "2.1.5", - "license": "BSD", + "packages/lib-sourcify/node_modules/hash.js": { + "version": "1.1.7", + "license": "MIT", "dependencies": { - "http-https": "^1.0.0" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "services/verification/node_modules/on-finished": { - "version": "2.4.1", + "packages/lib-sourcify/node_modules/he": { + "version": "1.2.0", + "dev": true, "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" + "bin": { + "he": "bin/he" } }, - "services/verification/node_modules/once": { - "version": "1.4.0", - "license": "ISC", + "packages/lib-sourcify/node_modules/hmac-drbg": { + "version": "1.0.1", + "license": "MIT", "dependencies": { - "wrappy": "1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "services/verification/node_modules/os-tmpdir": { - "version": "1.0.2", + "packages/lib-sourcify/node_modules/homedir-polyfill": { + "version": "1.0.3", + "dev": true, "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "services/verification/node_modules/p-cancelable": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } + "packages/lib-sourcify/node_modules/hosted-git-info": { + "version": "2.8.9", + "dev": true, + "license": "ISC" }, - "services/verification/node_modules/p-defer": { - "version": "3.0.0", + "packages/lib-sourcify/node_modules/html-escaper": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/http-proxy-agent": { + "version": "4.0.1", + "dev": true, "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "services/verification/node_modules/p-fifo": { - "version": "1.0.0", + "packages/lib-sourcify/node_modules/http-status-codes": { + "version": "2.2.0", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/https-proxy-agent": { + "version": "5.0.1", + "dev": true, "license": "MIT", "dependencies": { - "fast-fifo": "^1.0.0", - "p-defer": "^3.0.0" + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "services/verification/node_modules/p-finally": { - "version": "1.0.0", + "packages/lib-sourcify/node_modules/iconv-lite": { + "version": "0.6.3", + "dev": true, "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "services/verification/node_modules/p-timeout": { + "packages/lib-sourcify/node_modules/ieee754": { "version": "1.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "packages/lib-sourcify/node_modules/ignore": { + "version": "5.2.4", + "dev": true, "license": "MIT", - "dependencies": { - "p-finally": "^1.0.0" - }, "engines": { - "node": ">=4" + "node": ">= 4" } }, - "services/verification/node_modules/parse-asn1": { - "version": "5.1.6", + "packages/lib-sourcify/node_modules/ignore-walk": { + "version": "3.0.4", + "dev": true, "license": "ISC", "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "minimatch": "^3.0.4" } }, - "services/verification/node_modules/parse-duration": { - "version": "1.0.2", - "license": "MIT" - }, - "services/verification/node_modules/parse-headers": { - "version": "2.0.5", + "packages/lib-sourcify/node_modules/immediate": { + "version": "3.0.6", "license": "MIT" }, - "services/verification/node_modules/parseurl": { - "version": "1.3.3", + "packages/lib-sourcify/node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, "engines": { - "node": ">= 0.8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/path-is-absolute": { - "version": "1.0.1", + "packages/lib-sourcify/node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "services/verification/node_modules/path-to-regexp": { - "version": "0.1.7", - "license": "MIT" - }, - "services/verification/node_modules/pbkdf2": { - "version": "3.1.2", + "packages/lib-sourcify/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, "license": "MIT", - "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": ">=0.8.19" } }, - "services/verification/node_modules/performance-now": { - "version": "2.1.0", - "license": "MIT" - }, - "services/verification/node_modules/prepend-http": { - "version": "2.0.0", + "packages/lib-sourcify/node_modules/indent-string": { + "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, - "services/verification/node_modules/process": { - "version": "0.11.10", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" + "packages/lib-sourcify/node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" } }, - "services/verification/node_modules/promise.any": { + "packages/lib-sourcify/node_modules/inherits": { "version": "2.0.4", + "license": "ISC" + }, + "packages/lib-sourcify/node_modules/ini": { + "version": "1.3.8", + "dev": true, + "license": "ISC" + }, + "packages/lib-sourcify/node_modules/inquirer": { + "version": "8.2.5", + "dev": true, "license": "MIT", "dependencies": { - "array.prototype.map": "^1.0.4", - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-aggregate-error": "^1.0.7", - "get-intrinsic": "^1.1.1", - "iterate-value": "^1.0.2" + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12.0.0" } }, - "services/verification/node_modules/protobufjs": { - "version": "6.11.2", - "hasInstallScript": true, - "license": "BSD-3-Clause", + "packages/lib-sourcify/node_modules/internal-slot": { + "version": "1.0.5", + "dev": true, + "license": "MIT", "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" + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" + "engines": { + "node": ">= 0.4" } }, - "services/verification/node_modules/proxy-addr": { - "version": "2.0.7", + "packages/lib-sourcify/node_modules/is-array-buffer": { + "version": "3.0.2", + "dev": true, "license": "MIT", "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" }, - "engines": { - "node": ">= 0.10" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/psl": { - "version": "1.8.0", + "packages/lib-sourcify/node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, "license": "MIT" }, - "services/verification/node_modules/public-encrypt": { - "version": "4.0.3", + "packages/lib-sourcify/node_modules/is-bigint": { + "version": "1.0.4", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/pump": { - "version": "3.0.0", + "packages/lib-sourcify/node_modules/is-binary-path": { + "version": "2.1.0", + "dev": true, "license": "MIT", "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "services/verification/node_modules/punycode": { - "version": "2.1.1", - "license": "MIT", + "binary-extensions": "^2.0.0" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "services/verification/node_modules/qs": { - "version": "6.10.3", - "license": "BSD-3-Clause", + "packages/lib-sourcify/node_modules/is-boolean-object": { + "version": "1.1.2", + "dev": true, + "license": "MIT", "dependencies": { - "side-channel": "^1.0.4" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=0.6" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/query-string": { - "version": "5.1.1", + "packages/lib-sourcify/node_modules/is-buffer": { + "version": "2.0.5", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "services/verification/node_modules/randombytes": { - "version": "2.1.0", + "packages/lib-sourcify/node_modules/is-callable": { + "version": "1.2.7", + "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/randomfill": { - "version": "1.0.4", + "packages/lib-sourcify/node_modules/is-core-module": { + "version": "2.12.1", + "dev": true, "license": "MIT", "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/range-parser": { - "version": "1.2.1", + "packages/lib-sourcify/node_modules/is-date-object": { + "version": "1.0.5", + "dev": true, "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/raw-body": { - "version": "2.5.1", + "packages/lib-sourcify/node_modules/is-docker": { + "version": "2.2.1", + "dev": true, "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "bin": { + "is-docker": "cli.js" }, "engines": { - "node": ">= 0.8" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", + "packages/lib-sourcify/node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, "engines": { "node": ">=0.10.0" } }, - "services/verification/node_modules/react-native-fetch-api": { - "version": "2.0.0", + "packages/lib-sourcify/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "p-defer": "^3.0.0" + "engines": { + "node": ">=8" } }, - "services/verification/node_modules/readable-stream": { - "version": "3.6.0", + "packages/lib-sourcify/node_modules/is-glob": { + "version": "4.0.3", + "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "services/verification/node_modules/receptacle": { - "version": "1.3.2", + "packages/lib-sourcify/node_modules/is-interactive": { + "version": "1.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "ms": "^2.1.1" + "engines": { + "node": ">=8" } }, - "services/verification/node_modules/regexp.prototype.flags": { - "version": "1.4.3", + "packages/lib-sourcify/node_modules/is-negative-zero": { + "version": "2.0.2", + "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, "engines": { "node": ">= 0.4" }, @@ -31424,1198 +34055,1231 @@ "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/request": { - "version": "2.88.2", - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, + "packages/lib-sourcify/node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=0.12.0" } }, - "services/verification/node_modules/request/node_modules/form-data": { - "version": "2.3.3", + "packages/lib-sourcify/node_modules/is-number-object": { + "version": "1.0.7", + "dev": true, "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">= 0.12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/request/node_modules/qs": { - "version": "6.5.3", - "license": "BSD-3-Clause", + "packages/lib-sourcify/node_modules/is-obj": { + "version": "2.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.6" + "node": ">=8" } }, - "services/verification/node_modules/require-from-string": { - "version": "2.0.2", + "packages/lib-sourcify/node_modules/is-plain-obj": { + "version": "1.1.0", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "services/verification/node_modules/responselike": { + "packages/lib-sourcify/node_modules/is-regex": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/lib-sourcify/node_modules/is-shared-array-buffer": { "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { - "lowercase-keys": "^1.0.0" + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/retimer": { - "version": "3.0.0", - "license": "MIT" + "packages/lib-sourcify/node_modules/is-stream": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "services/verification/node_modules/rimraf": { - "version": "3.0.2", + "packages/lib-sourcify/node_modules/is-string": { + "version": "1.0.7", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "glob": "^7.1.3" + "has-tostringtag": "^1.0.0" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/ripemd160": { - "version": "2.0.2", + "packages/lib-sourcify/node_modules/is-symbol": { + "version": "1.0.4", + "dev": true, "license": "MIT", "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/rlp": { - "version": "2.2.7", - "license": "MPL-2.0", + "packages/lib-sourcify/node_modules/is-text-path": { + "version": "1.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "bn.js": "^5.2.0" + "text-extensions": "^1.0.0" }, - "bin": { - "rlp": "bin/rlp" + "engines": { + "node": ">=0.10.0" } }, - "services/verification/node_modules/rlp/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" + "packages/lib-sourcify/node_modules/is-typed-array": { + "version": "1.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "services/verification/node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "packages/lib-sourcify/node_modules/is-typedarray": { + "version": "1.0.0", + "dev": true, "license": "MIT" }, - "services/verification/node_modules/safe-json-stringify": { - "version": "1.2.0", + "packages/lib-sourcify/node_modules/is-unicode-supported": { + "version": "0.1.0", + "dev": true, "license": "MIT", - "optional": true - }, - "services/verification/node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "services/verification/node_modules/scrypt-js": { - "version": "3.0.1", + "packages/lib-sourcify/node_modules/is-utf8": { + "version": "0.2.1", + "dev": true, "license": "MIT" }, - "services/verification/node_modules/secp256k1": { - "version": "4.0.3", - "hasInstallScript": true, + "packages/lib-sourcify/node_modules/is-weakref": { + "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" + "call-bind": "^1.0.2" }, - "engines": { - "node": ">=10.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, + "packages/lib-sourcify/node_modules/is-windows": { + "version": "1.0.2", + "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "services/verification/node_modules/send": { - "version": "0.18.0", + "packages/lib-sourcify/node_modules/is-wsl": { + "version": "2.2.0", + "dev": true, "license": "MIT", "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "is-docker": "^2.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "services/verification/node_modules/send/node_modules/debug": { - "version": "2.6.9", + "packages/lib-sourcify/node_modules/isarray": { + "version": "1.0.0", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "packages/lib-sourcify/node_modules/isomorphic-fetch": { + "version": "3.0.0", "license": "MIT", "dependencies": { - "ms": "2.0.0" + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" } }, - "services/verification/node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "services/verification/node_modules/send/node_modules/ms": { - "version": "2.1.3", - "license": "MIT" + "packages/lib-sourcify/node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } }, - "services/verification/node_modules/serve-static": { - "version": "1.15.0", - "license": "MIT", + "packages/lib-sourcify/node_modules/istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "services/verification/node_modules/servify": { - "version": "0.1.12", - "license": "MIT", + "packages/lib-sourcify/node_modules/istanbul-reports": { + "version": "3.1.5", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "services/verification/node_modules/setimmediate": { - "version": "1.0.5", + "packages/lib-sourcify/node_modules/iterable-to-stream": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "packages/lib-sourcify/node_modules/js-sdsl": { + "version": "4.4.1", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "packages/lib-sourcify/node_modules/js-sha3": { + "version": "0.8.0", "license": "MIT" }, - "services/verification/node_modules/setprototypeof": { - "version": "1.2.0", - "license": "ISC" + "packages/lib-sourcify/node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "license": "MIT" }, - "services/verification/node_modules/sha.js": { - "version": "2.4.11", - "license": "(MIT AND BSD-3-Clause)", + "packages/lib-sourcify/node_modules/js-yaml": { + "version": "3.14.1", + "dev": true, + "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, "bin": { - "sha.js": "bin.js" + "js-yaml": "bin/js-yaml.js" } }, - "services/verification/node_modules/side-channel": { - "version": "1.0.4", + "packages/lib-sourcify/node_modules/json-parse-better-errors": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/json-stringify-safe": { + "version": "5.0.1", + "dev": true, + "license": "ISC" + }, + "packages/lib-sourcify/node_modules/json5": { + "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "minimist": "^1.2.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "json5": "lib/cli.js" } }, - "services/verification/node_modules/simple-concat": { - "version": "1.0.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "packages/lib-sourcify/node_modules/jsonc-parser": { + "version": "3.2.0", + "dev": true, "license": "MIT" }, - "services/verification/node_modules/simple-get": { - "version": "2.8.2", + "packages/lib-sourcify/node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, "license": "MIT", "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "services/verification/node_modules/solc": { - "version": "0.7.6", - "license": "MIT", + "packages/lib-sourcify/node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/JSONStream": { + "version": "1.3.5", + "dev": true, + "license": "(MIT OR Apache-2.0)", "dependencies": { - "command-exists": "^1.2.8", - "commander": "3.0.2", - "follow-redirects": "^1.12.1", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" }, "bin": { - "solcjs": "solcjs" + "JSONStream": "bin.js" }, "engines": { - "node": ">=8.0.0" - } - }, - "services/verification/node_modules/solc/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" + "node": "*" } }, - "services/verification/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "packages/lib-sourcify/node_modules/jszip": { + "version": "3.10.1", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" } }, - "services/verification/node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, + "packages/lib-sourcify/node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.8", "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "services/verification/node_modules/sshpk": { - "version": "1.17.0", + "packages/lib-sourcify/node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", "license": "MIT", "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" + "safe-buffer": "~5.1.0" } }, - "services/verification/node_modules/statuses": { - "version": "2.0.1", + "packages/lib-sourcify/node_modules/kind-of": { + "version": "6.0.3", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "services/verification/node_modules/stream-to-it": { - "version": "0.2.4", + "packages/lib-sourcify/node_modules/level": { + "version": "8.0.0", "license": "MIT", "dependencies": { - "get-iterator": "^1.0.2" + "browser-level": "^1.0.1", + "classic-level": "^1.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/level" } }, - "services/verification/node_modules/strict-uri-encode": { - "version": "1.1.0", + "packages/lib-sourcify/node_modules/level-supports": { + "version": "4.0.1", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "services/verification/node_modules/string_decoder": { - "version": "1.3.0", + "packages/lib-sourcify/node_modules/level-transcoder": { + "version": "1.0.1", "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "buffer": "^6.0.3", + "module-error": "^1.0.1" + }, + "engines": { + "node": ">=12" } }, - "services/verification/node_modules/string.prototype.trimend": { - "version": "1.0.5", + "packages/lib-sourcify/node_modules/levn": { + "version": "0.4.1", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.8.0" } }, - "services/verification/node_modules/string.prototype.trimstart": { - "version": "1.0.5", + "packages/lib-sourcify/node_modules/lie": { + "version": "3.3.0", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "immediate": "~3.0.5" } }, - "services/verification/node_modules/strip-hex-prefix": { - "version": "1.0.0", + "packages/lib-sourcify/node_modules/lines-and-columns": { + "version": "1.2.4", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/load-json-file": { + "version": "4.0.0", + "dev": true, "license": "MIT", "dependencies": { - "is-hex-prefixed": "1.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=4" } }, - "services/verification/node_modules/swarm-js": { - "version": "0.1.40", + "packages/lib-sourcify/node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "dev": true, "license": "MIT", "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "services/verification/node_modules/swarm-js/node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "services/verification/node_modules/swarm-js/node_modules/fs-extra": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" } }, - "services/verification/node_modules/swarm-js/node_modules/get-stream": { + "packages/lib-sourcify/node_modules/load-json-file/node_modules/strip-bom": { "version": "3.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=4" } }, - "services/verification/node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", + "packages/lib-sourcify/node_modules/locate-path": { + "version": "6.0.0", + "dev": true, "license": "MIT", "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=4" - } - }, - "services/verification/node_modules/swarm-js/node_modules/is-plain-obj": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "services/verification/node_modules/swarm-js/node_modules/jsonfile": { - "version": "4.0.0", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/swarm-js/node_modules/p-cancelable": { - "version": "0.3.0", - "license": "MIT", - "engines": { - "node": ">=4" - } + "packages/lib-sourcify/node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "license": "MIT" }, - "services/verification/node_modules/swarm-js/node_modules/prepend-http": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "packages/lib-sourcify/node_modules/lodash.ismatch": { + "version": "4.4.0", + "dev": true, + "license": "MIT" }, - "services/verification/node_modules/swarm-js/node_modules/url-parse-lax": { - "version": "1.0.0", + "packages/lib-sourcify/node_modules/lodash.isplainobject": { + "version": "4.0.6", + "dev": true, "license": "MIT", - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } + "optional": true }, - "services/verification/node_modules/tar": { - "version": "4.4.19", - "license": "ISC", - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } + "packages/lib-sourcify/node_modules/lodash.map": { + "version": "4.6.0", + "dev": true, + "license": "MIT" }, - "services/verification/node_modules/tar/node_modules/yallist": { - "version": "3.1.1", - "license": "ISC" + "packages/lib-sourcify/node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" }, - "services/verification/node_modules/timed-out": { - "version": "4.0.1", + "packages/lib-sourcify/node_modules/lodash.mergewith": { + "version": "4.6.2", + "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "optional": true }, - "services/verification/node_modules/timeout-abort-controller": { - "version": "3.0.0", + "packages/lib-sourcify/node_modules/lodash.truncate": { + "version": "4.4.2", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/lodash.uniq": { + "version": "4.5.0", + "dev": true, "license": "MIT", - "dependencies": { - "retimer": "^3.0.0" - } + "optional": true }, - "services/verification/node_modules/tmp": { - "version": "0.0.33", + "packages/lib-sourcify/node_modules/log-symbols": { + "version": "4.1.0", + "dev": true, "license": "MIT", "dependencies": { - "os-tmpdir": "~1.0.2" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { - "node": ">=0.6.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/to-readable-stream": { - "version": "1.0.0", + "packages/lib-sourcify/node_modules/longest": { + "version": "2.0.1", + "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "services/verification/node_modules/toidentifier": { - "version": "1.0.1", + "packages/lib-sourcify/node_modules/loupe": { + "version": "2.3.6", + "dev": true, "license": "MIT", - "engines": { - "node": ">=0.6" + "dependencies": { + "get-func-name": "^2.0.0" } }, - "services/verification/node_modules/tough-cookie": { - "version": "2.5.0", - "license": "BSD-3-Clause", + "packages/lib-sourcify/node_modules/lru-cache": { + "version": "5.1.1", + "license": "ISC", "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" + "yallist": "^3.0.2" } }, - "services/verification/node_modules/tr46": { - "version": "0.0.3", + "packages/lib-sourcify/node_modules/lunr": { + "version": "2.3.9", + "dev": true, "license": "MIT" }, - "services/verification/node_modules/ts-node": { - "version": "9.1.1", + "packages/lib-sourcify/node_modules/make-dir": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "semver": "^6.0.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=8" }, - "peerDependencies": { - "typescript": ">=2.7" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/tunnel-agent": { - "version": "0.6.0", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" + "packages/lib-sourcify/node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "services/verification/node_modules/tweetnacl": { - "version": "0.14.5", - "license": "Unlicense" - }, - "services/verification/node_modules/type": { - "version": "1.2.0", + "packages/lib-sourcify/node_modules/make-error": { + "version": "1.3.6", + "dev": true, "license": "ISC" }, - "services/verification/node_modules/type-is": { - "version": "1.6.18", + "packages/lib-sourcify/node_modules/map-obj": { + "version": "4.3.0", + "dev": true, "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, "engines": { - "node": ">= 0.6" - } - }, - "services/verification/node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/typescript": { - "version": "4.6.4", + "packages/lib-sourcify/node_modules/marked": { + "version": "4.3.0", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "marked": "bin/marked.js" }, "engines": { - "node": ">=4.2.0" + "node": ">= 12" } }, - "services/verification/node_modules/uint8arrays": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "multiformats": "^9.4.2" + "packages/lib-sourcify/node_modules/mcl-wasm": { + "version": "0.7.9", + "license": "BSD-3-Clause", + "engines": { + "node": ">=8.9.0" } }, - "services/verification/node_modules/ultron": { - "version": "1.1.1", - "license": "MIT" - }, - "services/verification/node_modules/unbox-primitive": { - "version": "1.0.2", + "packages/lib-sourcify/node_modules/memory-level": { + "version": "1.0.0", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "abstract-level": "^1.0.0", + "functional-red-black-tree": "^1.0.1", + "module-error": "^1.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=12" } }, - "services/verification/node_modules/universalify": { - "version": "0.1.2", - "license": "MIT", + "packages/lib-sourcify/node_modules/memorystream": { + "version": "0.3.1", "engines": { - "node": ">= 4.0.0" + "node": ">= 0.10.0" } }, - "services/verification/node_modules/unpipe": { - "version": "1.0.0", + "packages/lib-sourcify/node_modules/meow": { + "version": "6.1.1", + "dev": true, "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "^4.0.2", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" + }, "engines": { - "node": ">= 0.8" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/uri-js": { - "version": "4.4.1", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" + "packages/lib-sourcify/node_modules/meow/node_modules/type-fest": { + "version": "0.13.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/url-parse-lax": { - "version": "3.0.0", - "license": "MIT", + "packages/lib-sourcify/node_modules/meow/node_modules/yargs-parser": { + "version": "18.1.3", + "dev": true, + "license": "ISC", "dependencies": { - "prepend-http": "^2.0.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "services/verification/node_modules/url-set-query": { - "version": "1.0.0", + "packages/lib-sourcify/node_modules/merge": { + "version": "2.1.1", + "dev": true, "license": "MIT" }, - "services/verification/node_modules/url-to-options": { - "version": "1.0.1", + "packages/lib-sourcify/node_modules/merge2": { + "version": "1.4.1", + "dev": true, "license": "MIT", "engines": { - "node": ">= 4" + "node": ">= 8" } }, - "services/verification/node_modules/utf-8-validate": { - "version": "5.0.9", - "hasInstallScript": true, + "packages/lib-sourcify/node_modules/micro-ftch": { + "version": "0.3.1", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/micromatch": { + "version": "4.0.5", + "dev": true, "license": "MIT", "dependencies": { - "node-gyp-build": "^4.3.0" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=6.14.2" + "node": ">=8.6" } }, - "services/verification/node_modules/utf8": { - "version": "3.0.0", - "license": "MIT" - }, - "services/verification/node_modules/util": { - "version": "0.12.4", + "packages/lib-sourcify/node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" + "engines": { + "node": ">=6" } }, - "services/verification/node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" - }, - "services/verification/node_modules/utils-merge": { + "packages/lib-sourcify/node_modules/min-indent": { "version": "1.0.1", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4.0" + "node": ">=4" } }, - "services/verification/node_modules/uuid": { - "version": "3.4.0", - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } + "packages/lib-sourcify/node_modules/minimalistic-assert": { + "version": "1.0.1", + "license": "ISC" }, - "services/verification/node_modules/varint": { - "version": "6.0.0", + "packages/lib-sourcify/node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", "license": "MIT" }, - "services/verification/node_modules/vary": { - "version": "1.1.2", - "license": "MIT", + "packages/lib-sourcify/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">= 0.8" + "node": "*" } }, - "services/verification/node_modules/verror": { - "version": "1.10.0", - "engines": [ - "node >=0.6.0" - ], + "packages/lib-sourcify/node_modules/minimist": { + "version": "1.2.7", + "dev": true, "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/web3": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/minimist-options": { + "version": "4.1.0", + "dev": true, + "license": "MIT", "dependencies": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" }, "engines": { - "node": ">=8.0.0" + "node": ">= 6" } }, - "services/verification/node_modules/web3-bzz": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/mocha": { + "version": "10.2.0", + "dev": true, + "license": "MIT", "dependencies": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" }, "engines": { - "node": ">=8.0.0" + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" } }, - "services/verification/node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "services/verification/node_modules/web3-core": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" - }, + "packages/lib-sourcify/node_modules/mocha/node_modules/ansi-colors": { + "version": "4.1.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=6" } }, - "services/verification/node_modules/web3-core-helpers": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/mocha/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "packages/lib-sourcify/node_modules/mocha/node_modules/glob": { + "version": "7.2.0", + "dev": true, + "license": "ISC", "dependencies": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=8.0.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "services/verification/node_modules/web3-core-method": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", "dependencies": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8.0.0" + "node": "*" } }, - "services/verification/node_modules/web3-core-promievent": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/mocha/node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", "dependencies": { - "eventemitter3": "4.0.4" + "argparse": "^2.0.1" }, - "engines": { - "node": ">=8.0.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "services/verification/node_modules/web3-core-requestmanager": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "dev": true, + "license": "ISC", "dependencies": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=10" } }, - "services/verification/node_modules/web3-core-subscriptions": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" + "balanced-match": "^1.0.0" } }, - "services/verification/node_modules/web3-core/node_modules/@types/node": { - "version": "12.20.52", + "packages/lib-sourcify/node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "dev": true, "license": "MIT" }, - "services/verification/node_modules/web3-eth": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "dev": true, + "license": "MIT", "dependencies": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "services/verification/node_modules/web3-eth-abi": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - }, + "packages/lib-sourcify/node_modules/mocha/node_modules/yargs-parser": { + "version": "20.2.4", + "dev": true, + "license": "ISC", "engines": { - "node": ">=8.0.0" + "node": ">=10" } }, - "services/verification/node_modules/web3-eth-accounts": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, + "packages/lib-sourcify/node_modules/modify-values": { + "version": "1.0.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "services/verification/node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", + "packages/lib-sourcify/node_modules/module-error": { + "version": "1.0.2", "license": "MIT", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", + "packages/lib-sourcify/node_modules/ms": { + "version": "2.1.2", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/mute-stream": { + "version": "0.0.8", + "dev": true, + "license": "ISC" + }, + "packages/lib-sourcify/node_modules/nanoid": { + "version": "3.3.3", + "dev": true, "license": "MIT", "bin": { - "uuid": "bin/uuid" - } - }, - "services/verification/node_modules/web3-eth-contract": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": ">=8.0.0" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "services/verification/node_modules/web3-eth-ens": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } + "packages/lib-sourcify/node_modules/napi-macros": { + "version": "2.2.2", + "license": "MIT" }, - "services/verification/node_modules/web3-eth-iban": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/neo-async": { + "version": "2.6.2", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/nice-try": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/node-fetch": { + "version": "2.6.12", + "license": "MIT", "dependencies": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=8.0.0" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "services/verification/node_modules/web3-eth-personal": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/node-gyp-build": { + "version": "4.6.0", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "packages/lib-sourcify/node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "services/verification/node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" + "packages/lib-sourcify/node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } }, - "services/verification/node_modules/web3-net": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, + "packages/lib-sourcify/node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "services/verification/node_modules/web3-providers-http": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/npm-run-all": { + "version": "4.1.5", + "dev": true, + "license": "MIT", "dependencies": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" }, "engines": { - "node": ">=8.0.0" + "node": ">= 4" } }, - "services/verification/node_modules/web3-providers-ipc": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=4" } }, - "services/verification/node_modules/web3-providers-ws": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=4" } }, - "services/verification/node_modules/web3-shh": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/npm-run-all/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" + "color-name": "1.1.3" + } + }, + "packages/lib-sourcify/node_modules/npm-run-all/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "engines": { - "node": ">=8.0.0" + "node": ">=4.8" } }, - "services/verification/node_modules/web3-utils": { - "version": "1.7.3", - "license": "LGPL-3.0", + "packages/lib-sourcify/node_modules/npm-run-all/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "packages/lib-sourcify/node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "packages/lib-sourcify/node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "packages/lib-sourcify/node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "packages/lib-sourcify/node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "dev": true, + "license": "MIT", "dependencies": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "shebang-regex": "^1.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "services/verification/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" + "packages/lib-sourcify/node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "services/verification/node_modules/websocket": { - "version": "1.0.34", - "license": "Apache-2.0", + "packages/lib-sourcify/node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", "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" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=4.0.0" + "node": ">=4" } }, - "services/verification/node_modules/websocket/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", + "packages/lib-sourcify/node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", "dependencies": { - "ms": "2.0.0" + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "services/verification/node_modules/websocket/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" + "packages/lib-sourcify/node_modules/object-assign": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "services/verification/node_modules/whatwg-url": { - "version": "5.0.0", + "packages/lib-sourcify/node_modules/object-inspect": { + "version": "1.12.3", + "dev": true, "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/which-boxed-primitive": { - "version": "1.0.2", + "packages/lib-sourcify/node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "packages/lib-sourcify/node_modules/object.assign": { + "version": "4.1.4", + "dev": true, "license": "MIT", "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/which-typed-array": { - "version": "1.1.8", + "packages/lib-sourcify/node_modules/object.values": { + "version": "1.1.6", + "dev": true, "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" @@ -32624,5618 +35288,2963 @@ "url": "https://github.com/sponsors/ljharb" } }, - "services/verification/node_modules/wrappy": { - "version": "1.0.2", - "license": "ISC" + "packages/lib-sourcify/node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } }, - "services/verification/node_modules/ws": { - "version": "3.3.3", + "packages/lib-sourcify/node_modules/onetime": { + "version": "5.1.2", + "dev": true, "license": "MIT", "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/ws/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" + "packages/lib-sourcify/node_modules/open": { + "version": "7.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "services/verification/node_modules/xhr": { - "version": "2.6.0", + "packages/lib-sourcify/node_modules/open-cli": { + "version": "6.0.1", + "dev": true, "license": "MIT", "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" + "file-type": "^14.1.4", + "get-stdin": "^7.0.0", + "meow": "^6.1.0", + "open": "^7.0.3", + "temp-write": "^4.0.0" + }, + "bin": { + "open-cli": "cli.js" + }, + "engines": { + "node": ">=10" } }, - "services/verification/node_modules/xhr-request": { - "version": "1.1.0", + "packages/lib-sourcify/node_modules/open-cli/node_modules/get-stdin": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/optionator": { + "version": "0.9.3", + "dev": true, "license": "MIT", "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "services/verification/node_modules/xhr-request-promise": { - "version": "0.1.3", + "packages/lib-sourcify/node_modules/ora": { + "version": "5.4.1", + "dev": true, "license": "MIT", "dependencies": { - "xhr-request": "^1.1.0" + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/xhr2-cookies": { - "version": "1.1.0", + "packages/lib-sourcify/node_modules/os-tmpdir": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "packages/lib-sourcify/node_modules/p-limit": { + "version": "3.1.0", + "dev": true, "license": "MIT", "dependencies": { - "cookiejar": "^2.1.1" + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/xtend": { - "version": "4.0.2", + "packages/lib-sourcify/node_modules/p-locate": { + "version": "5.0.0", + "dev": true, "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, "engines": { - "node": ">=0.4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "services/verification/node_modules/yaeti": { - "version": "0.0.6", + "packages/lib-sourcify/node_modules/p-try": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "packages/lib-sourcify/node_modules/pako": { + "version": "1.0.11", + "license": "(MIT AND Zlib)" + }, + "packages/lib-sourcify/node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "packages/lib-sourcify/node_modules/parse-json": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/lib-sourcify/node_modules/parse-passwd": { + "version": "1.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.32" + "node": ">=0.10.0" } }, - "services/verification/node_modules/yallist": { + "packages/lib-sourcify/node_modules/path-exists": { "version": "4.0.0", - "license": "ISC" + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "services/verification/node_modules/yn": { + "packages/lib-sourcify/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "packages/lib-sourcify/node_modules/path-key": { "version": "3.1.1", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=8" } - } - }, - "dependencies": { - "@assemblyscript/loader": { - "version": "0.9.4", - "dev": true }, - "@babel/code-frame": { - "version": "7.16.7", + "packages/lib-sourcify/node_modules/path-parse": { + "version": "1.0.7", "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/path-type": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "dev": true + "packages/lib-sourcify/node_modules/pathval": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } }, - "@babel/highlight": { - "version": "7.17.12", + "packages/lib-sourcify/node_modules/peek-readable": { + "version": "4.1.0", "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "license": "MIT", + "engines": { + "node": ">=8" }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" } }, - "@chainsafe/libp2p-noise": { - "version": "4.1.2", + "packages/lib-sourcify/node_modules/picomatch": { + "version": "2.3.1", "dev": true, - "requires": { - "@stablelib/chacha20poly1305": "^1.0.1", - "@stablelib/hkdf": "^1.0.1", - "@stablelib/sha256": "^1.0.1", - "@stablelib/x25519": "^1.0.1", - "debug": "^4.3.1", - "it-buffer": "^0.1.3", - "it-length-prefixed": "^5.0.3", - "it-pair": "^1.0.0", - "it-pb-rpc": "^0.1.11", - "it-pipe": "^1.1.0", - "libp2p-crypto": "^0.19.7", - "peer-id": "^0.15.3", - "protobufjs": "^6.11.2", - "uint8arrays": "^3.0.0" + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "@eslint/eslintrc": { - "version": "1.2.3", + "packages/lib-sourcify/node_modules/pidtree": { + "version": "0.3.1", "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.9.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" } }, - "@ethereum-sourcify/core": { - "version": "file:services/core", - "requires": { - "@types/bunyan": "^1.8.6", - "@types/cbor": "^5.0.1", - "@types/node-fetch": "^2.5.7", - "@types/rimraf": "^3.0.2", - "@types/semver": "^7.3.10", - "bunyan": "^1.8.15", - "cbor": "^5.1.0", - "directory-tree": "^2.2.4", - "node-fetch": "^2.6.1", - "rimraf": "^3.0.2", - "semver": "^7.3.7", - "typescript": "^4.0.2", - "web3": "^1.3.0" - }, + "packages/lib-sourcify/node_modules/pify": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "packages/lib-sourcify/node_modules/pinkie": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "packages/lib-sourcify/node_modules/pinkie-promise": { + "version": "2.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "@ethereumjs/common": { - "version": "2.6.4", - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" - } - }, - "@ethereumjs/tx": { - "version": "3.5.1", - "requires": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" - } - }, - "@ethersproject/abi": { - "version": "5.0.7", - "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.6.1", - "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "@ethersproject/address": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "@ethersproject/base64": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.6.1", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "@ethersproject/bytes": { - "version": "5.6.1", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/constants": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "@ethersproject/hash": { - "version": "5.6.0", - "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/keccak256": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/logger": { - "version": "5.6.0" - }, - "@ethersproject/networks": { - "version": "5.6.2", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/properties": { - "version": "5.6.0", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/rlp": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "packages/lib-sourcify/node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/lib-sourcify/node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/pkg-dir/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "packages/lib-sourcify/node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "packages/lib-sourcify/node_modules/prettier": { + "version": "2.8.8", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "packages/lib-sourcify/node_modules/process-nextick-args": { + "version": "2.0.1", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/progress": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "packages/lib-sourcify/node_modules/punycode": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "packages/lib-sourcify/node_modules/q": { + "version": "1.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "packages/lib-sourcify/node_modules/queue-microtask": { + "version": "1.2.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "@ethersproject/signing-key": { - "version": "5.6.1", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "@ethersproject/strings": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/quick-lru": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/randombytes": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "packages/lib-sourcify/node_modules/read-pkg": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "packages/lib-sourcify/node_modules/read-pkg-up": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/lib-sourcify/node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/lib-sourcify/node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/read-pkg-up/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "packages/lib-sourcify/node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "packages/lib-sourcify/node_modules/readable-stream": { + "version": "3.6.2", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "packages/lib-sourcify/node_modules/readable-web-to-node-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/readdirp": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "packages/lib-sourcify/node_modules/redent": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/lib-sourcify/node_modules/regexpp": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "packages/lib-sourcify/node_modules/repeat-string": { + "version": "1.6.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "packages/lib-sourcify/node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "packages/lib-sourcify/node_modules/require-from-string": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "packages/lib-sourcify/node_modules/resolve": { + "version": "1.22.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/lib-sourcify/node_modules/resolve-dir": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "packages/lib-sourcify/node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/resolve-global": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-dirs": "^0.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/restore-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/reusify": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "packages/lib-sourcify/node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "packages/lib-sourcify/node_modules/run-async": { + "version": "2.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "packages/lib-sourcify/node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "@ethersproject/transactions": { - "version": "5.6.0", - "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "@ethersproject/web": { - "version": "5.6.0", - "requires": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "packages/lib-sourcify/node_modules/run-parallel-limit": { + "version": "1.1.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "@sindresorhus/is": { - "version": "0.14.0" + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/bn.js": { - "version": "4.11.6", - "requires": { - "@types/node": "*" - } - }, - "@types/bunyan": { - "version": "1.8.8", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/cbor": { - "version": "5.0.1", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/glob": { - "version": "7.2.0", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/minimatch": { - "version": "3.0.5", - "dev": true - }, - "@types/node": { - "version": "17.0.34" - }, - "@types/node-fetch": { - "version": "2.6.1", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "@types/pbkdf2": { - "version": "3.1.0", - "requires": { - "@types/node": "*" - } - }, - "@types/rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "@types/glob": "*", - "@types/node": "*" - } - }, - "@types/secp256k1": { - "version": "4.0.3", - "requires": { - "@types/node": "*" - } - }, - "accepts": { - "version": "1.3.8", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "ajv": { - "version": "6.12.6", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "array-flatten": { - "version": "1.1.1" - }, - "asn1": { - "version": "0.2.6", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0" - }, - "async-limiter": { - "version": "1.0.1" - }, - "asynckit": { - "version": "0.4.0" - }, - "available-typed-arrays": { - "version": "1.0.5" - }, - "aws-sign2": { - "version": "0.7.0" - }, - "aws4": { - "version": "1.11.0" - }, - "balanced-match": { - "version": "1.0.2" - }, - "base-x": { - "version": "3.0.9", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-js": { - "version": "1.5.1" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bignumber.js": { - "version": "9.0.2" - }, - "blakejs": { - "version": "1.2.1" - }, - "bluebird": { - "version": "3.7.2" - }, - "bn.js": { - "version": "4.12.0" - }, - "body-parser": { - "version": "1.20.0", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "brorand": { - "version": "1.1.0" - }, - "browserify-aes": { - "version": "1.2.0", - "requires": { - "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" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "bs58": { - "version": "4.0.1", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "buffer": { - "version": "5.7.1", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-to-arraybuffer": { - "version": "0.0.5" - }, - "buffer-xor": { - "version": "1.0.3" - }, - "bufferutil": { - "version": "4.0.6", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "bunyan": { - "version": "1.8.15", - "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "bytes": { - "version": "3.1.2" - }, - "cacheable-request": { - "version": "6.1.0", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0" - } - } - }, - "call-bind": { - "version": "1.0.2", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caseless": { - "version": "0.12.0" + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "packages/lib-sourcify/node_modules/rustbn.js": { + "version": "0.2.0", + "license": "(MIT OR Apache-2.0)" + }, + "packages/lib-sourcify/node_modules/rxjs": { + "version": "7.8.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "packages/lib-sourcify/node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/safe-regex-test": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/lib-sourcify/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/scrypt-js": { + "version": "3.0.1", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/semver": { + "version": "7.5.4", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "packages/lib-sourcify/node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "packages/lib-sourcify/node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "packages/lib-sourcify/node_modules/serialize-javascript": { + "version": "6.0.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "packages/lib-sourcify/node_modules/setimmediate": { + "version": "1.0.5", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/shell-quote": { + "version": "1.8.1", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/lib-sourcify/node_modules/shiki": { + "version": "0.14.3", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, + "packages/lib-sourcify/node_modules/side-channel": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/lib-sourcify/node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "packages/lib-sourcify/node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "packages/lib-sourcify/node_modules/solc": { + "version": "0.8.20", + "license": "MIT", + "dependencies": { + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solc.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "packages/lib-sourcify/node_modules/solc/node_modules/commander": { + "version": "8.3.0", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "packages/lib-sourcify/node_modules/solc/node_modules/semver": { + "version": "5.7.2", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "packages/lib-sourcify/node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "packages/lib-sourcify/node_modules/spdx-correct": { + "version": "3.2.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "packages/lib-sourcify/node_modules/spdx-exceptions": { + "version": "2.3.0", + "dev": true, + "license": "CC-BY-3.0" + }, + "packages/lib-sourcify/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "packages/lib-sourcify/node_modules/spdx-license-ids": { + "version": "3.0.13", + "dev": true, + "license": "CC0-1.0" + }, + "packages/lib-sourcify/node_modules/split": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "packages/lib-sourcify/node_modules/split2": { + "version": "3.2.2", + "dev": true, + "license": "ISC", + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "packages/lib-sourcify/node_modules/sprintf-js": { + "version": "1.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "packages/lib-sourcify/node_modules/standard-version": { + "version": "9.5.0", + "dev": true, + "license": "ISC", + "dependencies": { + "chalk": "^2.4.2", + "conventional-changelog": "3.1.25", + "conventional-changelog-config-spec": "2.1.0", + "conventional-changelog-conventionalcommits": "4.6.3", + "conventional-recommended-bump": "6.1.0", + "detect-indent": "^6.0.0", + "detect-newline": "^3.1.0", + "dotgitignore": "^2.1.0", + "figures": "^3.1.0", + "find-up": "^5.0.0", + "git-semver-tags": "^4.0.0", + "semver": "^7.1.1", + "stringify-package": "^1.0.1", + "yargs": "^16.0.0" + }, + "bin": { + "standard-version": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "packages/lib-sourcify/node_modules/standard-version/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "packages/lib-sourcify/node_modules/standard-version/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "packages/lib-sourcify/node_modules/standard-version/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "packages/lib-sourcify/node_modules/standard-version/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/standard-version/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "packages/lib-sourcify/node_modules/standard-version/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "packages/lib-sourcify/node_modules/standard-version/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "packages/lib-sourcify/node_modules/stream-events": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "stubs": "^3.0.0" + } + }, + "packages/lib-sourcify/node_modules/string_decoder": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "packages/lib-sourcify/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "cbor": { - "version": "5.2.0", - "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - } + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "chownr": { - "version": "1.1.4" - }, - "cids": { - "version": "0.7.5", - "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "dependencies": { - "multicodec": { - "version": "1.0.4", - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - } - } - }, - "cipher-base": { - "version": "1.0.4", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-is": { - "version": "1.1.0" - }, - "clone-response": { - "version": "1.0.2", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "combined-stream": { - "version": "1.0.8", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1" - }, - "content-disposition": { - "version": "0.5.4", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-hash": { - "version": "2.5.2", - "requires": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "content-type": { - "version": "1.0.4" - }, - "cookie": { - "version": "0.5.0" - }, - "cookie-signature": { - "version": "1.0.6" - }, - "cookiejar": { - "version": "2.1.3" - }, - "core-util-is": { - "version": "1.0.2" - }, - "cors": { - "version": "2.8.5", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "crc-32": { - "version": "1.2.2" - }, - "create-ecdh": { - "version": "4.0.4", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "create-hash": { - "version": "1.2.0", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "requires": { - "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" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "d": { - "version": "1.0.1", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "decode-uri-component": { - "version": "0.2.0" - }, - "decompress-response": { - "version": "3.3.0", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "defer-to-connect": { - "version": "1.1.3" - }, - "define-properties": { - "version": "1.1.4", - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0" - }, - "depd": { - "version": "2.0.0" - }, - "des.js": { - "version": "1.0.1", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.2.0" - }, - "diffie-hellman": { - "version": "5.0.3", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "directory-tree": { - "version": "2.3.1" - }, - "dom-walk": { - "version": "0.1.2" - }, - "dtrace-provider": { - "version": "0.8.8", - "optional": true, - "requires": { - "nan": "^2.14.0" - } - }, - "duplexer3": { - "version": "0.1.4" - }, - "ecc-jsbn": { - "version": "0.1.2", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1" - }, - "elliptic": { - "version": "6.5.4", - "requires": { - "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" - } - }, - "encodeurl": { - "version": "1.0.2" - }, - "end-of-stream": { - "version": "1.4.4", - "requires": { - "once": "^1.4.0" - } - }, - "es-abstract": { - "version": "1.20.1", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.61", - "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "escape-html": { - "version": "1.0.3" - }, - "etag": { - "version": "1.8.1" + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/string.prototype.padend": { + "version": "3.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/lib-sourcify/node_modules/string.prototype.trim": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/lib-sourcify/node_modules/string.prototype.trimend": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/lib-sourcify/node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/lib-sourcify/node_modules/stringify-package": { + "version": "1.0.1", + "dev": true, + "license": "ISC" + }, + "packages/lib-sourcify/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/strip-bom": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/strip-indent": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/lib-sourcify/node_modules/strip-outer": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "packages/lib-sourcify/node_modules/strip-outer/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "packages/lib-sourcify/node_modules/strtok3": { + "version": "6.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "packages/lib-sourcify/node_modules/stubs": { + "version": "3.0.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/lib-sourcify/node_modules/table": { + "version": "6.8.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "packages/lib-sourcify/node_modules/teeny-request": { + "version": "7.1.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "packages/lib-sourcify/node_modules/temp-dir": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "packages/lib-sourcify/node_modules/temp-write": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.15", + "is-stream": "^2.0.0", + "make-dir": "^3.0.0", + "temp-dir": "^1.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/temp-write/node_modules/uuid": { + "version": "3.4.0", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "packages/lib-sourcify/node_modules/test-exclude": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/text-extensions": { + "version": "1.9.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "packages/lib-sourcify/node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/through": { + "version": "2.3.8", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/through2": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "3" + } + }, + "packages/lib-sourcify/node_modules/tmp": { + "version": "0.0.33", + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "packages/lib-sourcify/node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "packages/lib-sourcify/node_modules/token-types": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.1.1", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=0.1.98" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "packages/lib-sourcify/node_modules/token-types/node_modules/@tokenizer/token": { + "version": "0.1.1", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/trim-newlines": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/trim-repeated": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "packages/lib-sourcify/node_modules/trim-repeated/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "packages/lib-sourcify/node_modules/ts-node": { + "version": "10.9.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true }, - "eth-ens-namehash": { - "version": "2.0.8", - "requires": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7" - } - } - }, - "eth-lib": { - "version": "0.1.29", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } + "@swc/wasm": { + "optional": true + } + } + }, + "packages/lib-sourcify/node_modules/ts-node/node_modules/acorn": { + "version": "8.10.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "packages/lib-sourcify/node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "packages/lib-sourcify/node_modules/tsconfig-paths": { + "version": "3.14.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "packages/lib-sourcify/node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "packages/lib-sourcify/node_modules/tslib": { + "version": "2.4.0", + "license": "0BSD" + }, + "packages/lib-sourcify/node_modules/tsutils": { + "version": "3.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "packages/lib-sourcify/node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, + "packages/lib-sourcify/node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "packages/lib-sourcify/node_modules/type-detect": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "packages/lib-sourcify/node_modules/type-fest": { + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/lib-sourcify/node_modules/typed-array-length": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/lib-sourcify/node_modules/typedarray": { + "version": "0.0.6", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "packages/lib-sourcify/node_modules/typedoc": { + "version": "0.24.8", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "lunr": "^2.3.9", + "marked": "^4.3.0", + "minimatch": "^9.0.0", + "shiki": "^0.14.1" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 14.14" + }, + "peerDependencies": { + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x" + } + }, + "packages/lib-sourcify/node_modules/typedoc/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "packages/lib-sourcify/node_modules/typedoc/node_modules/minimatch": { + "version": "9.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "packages/lib-sourcify/node_modules/typescript": { + "version": "5.1.6", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "packages/lib-sourcify/node_modules/uglify-js": { + "version": "3.17.4", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "packages/lib-sourcify/node_modules/unbox-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/lib-sourcify/node_modules/unique-string": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/universalify": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "packages/lib-sourcify/node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "packages/lib-sourcify/node_modules/urlgrey": { + "version": "1.0.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "fast-url-parser": "^1.1.3" + } + }, + "packages/lib-sourcify/node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/uuid": { + "version": "8.3.2", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "packages/lib-sourcify/node_modules/v8-compile-cache": { + "version": "2.3.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/v8-to-istanbul": { + "version": "9.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "packages/lib-sourcify/node_modules/v8-to-istanbul/node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "packages/lib-sourcify/node_modules/v8-to-istanbul/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "packages/lib-sourcify/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "packages/lib-sourcify/node_modules/vscode-oniguruma": { + "version": "1.7.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/vscode-textmate": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/vscode-uri": { + "version": "3.0.7", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/wcwidth": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "packages/lib-sourcify/node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "packages/lib-sourcify/node_modules/whatwg-fetch": { + "version": "3.6.2", + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "packages/lib-sourcify/node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "packages/lib-sourcify/node_modules/which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/lib-sourcify/node_modules/which-typed-array": { + "version": "1.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/lib-sourcify/node_modules/word-wrap": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "packages/lib-sourcify/node_modules/wordwrap": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "packages/lib-sourcify/node_modules/workerpool": { + "version": "6.2.1", + "dev": true, + "license": "Apache-2.0" + }, + "packages/lib-sourcify/node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "packages/lib-sourcify/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "packages/lib-sourcify/node_modules/write-file-atomic": { + "version": "3.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "packages/lib-sourcify/node_modules/ws": { + "version": "7.4.6", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true }, - "ethereum-bloom-filters": { - "version": "1.0.10", - "requires": { - "js-sha3": "^0.8.0" - } + "utf-8-validate": { + "optional": true + } + } + }, + "packages/lib-sourcify/node_modules/xdg-basedir": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/xtend": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "packages/lib-sourcify/node_modules/y18n": { + "version": "5.0.8", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "packages/lib-sourcify/node_modules/yallist": { + "version": "3.1.1", + "license": "ISC" + }, + "packages/lib-sourcify/node_modules/yargs": { + "version": "16.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "packages/lib-sourcify/node_modules/yargs-parser": { + "version": "20.2.9", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "packages/lib-sourcify/node_modules/yargs-unparser": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "packages/lib-sourcify/node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/lib-sourcify/node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/lib-sourcify/node_modules/yargs-unparser/node_modules/is-plain-obj": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "packages/lib-sourcify/node_modules/yn": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "packages/lib-sourcify/node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true + }, + "@adraffy/ens-normalize": { + "version": "1.9.2" + }, + "@apidevtools/json-schema-ref-parser": { + "version": "9.1.2", + "requires": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.6", + "call-me-maybe": "^1.0.1", + "js-yaml": "^4.1.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1" }, - "ethereum-cryptography": { - "version": "0.1.3", + "js-yaml": { + "version": "4.1.0", "requires": { - "@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" + "argparse": "^2.0.1" } - }, - "ethereumjs-util": { - "version": "7.1.4", - "requires": { - "@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" - }, - "dependencies": { - "@types/bn.js": { - "version": "5.1.0", - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.0" - } - } - }, - "ethjs-unit": { - "version": "0.1.6", - "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6" - } - } - }, - "eventemitter3": { - "version": "4.0.4" - }, - "evp_bytestokey": { - "version": "1.0.3", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "express": { - "version": "4.18.1", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, - "ext": { - "version": "1.6.0", - "requires": { - "type": "^2.5.0" - }, - "dependencies": { - "type": { - "version": "2.6.0" - } - } - }, - "extend": { - "version": "3.0.2" - }, - "extsprintf": { - "version": "1.3.0" - }, - "fast-deep-equal": { - "version": "3.1.3" - }, - "fast-json-stable-stringify": { - "version": "2.1.0" - }, - "finalhandler": { - "version": "1.2.0", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - } - }, - "for-each": { - "version": "0.3.3", - "requires": { - "is-callable": "^1.1.3" - } - }, - "forever-agent": { - "version": "0.6.1" - }, - "form-data": { - "version": "3.0.1", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0" - }, - "fresh": { - "version": "0.5.2" - }, - "fs-extra": { - "version": "4.0.3", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0" - }, - "function-bind": { - "version": "1.1.1" - }, - "function.prototype.name": { - "version": "1.1.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3" - }, - "get-intrinsic": { - "version": "1.1.1", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "4.1.0", - "requires": { - "pump": "^3.0.0" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "getpass": { - "version": "0.1.7", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.2.3", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "global": { - "version": "4.4.0", - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "got": { - "version": "9.6.0", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10" - }, - "har-schema": { - "version": "2.0.0" - }, - "har-validator": { - "version": "5.1.5", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2" - }, - "has-property-descriptors": { - "version": "1.0.0", - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbol-support-x": { - "version": "1.4.2" - }, - "has-symbols": { - "version": "1.0.3" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, - "has-tostringtag": { - "version": "1.0.0", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hash-base": { - "version": "3.1.0", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "http-cache-semantics": { - "version": "4.1.0" - }, - "http-errors": { - "version": "2.0.0", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-https": { - "version": "1.0.0" - }, - "http-signature": { - "version": "1.2.0", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "idna-uts46-hx": { - "version": "2.3.1", - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0" - } - } - }, - "ieee754": { - "version": "1.2.1" - }, - "inflight": { - "version": "1.0.6", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4" - }, - "internal-slot": { - "version": "1.0.3", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "ipaddr.js": { - "version": "1.9.1" - }, - "is-arguments": { - "version": "1.1.1", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-bigint": { - "version": "1.0.4", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.4" - }, - "is-date-object": { - "version": "1.0.5", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-function": { - "version": "1.0.2" - }, - "is-generator-function": { - "version": "1.0.10", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-hex-prefixed": { - "version": "1.0.0" - }, - "is-negative-zero": { - "version": "2.0.2" - }, - "is-number-object": { - "version": "1.0.7", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-object": { - "version": "1.0.2" - }, - "is-plain-obj": { - "version": "1.1.0" - }, - "is-regex": { - "version": "1.1.4", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-retry-allowed": { - "version": "1.2.0" - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "1.1.0" - }, - "is-string": { - "version": "1.0.7", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.9", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0" - }, - "is-weakref": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2" - } - }, - "isstream": { - "version": "0.1.2" - }, - "isurl": { - "version": "1.0.0", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, - "js-sha3": { - "version": "0.8.0" - }, - "jsbn": { - "version": "0.1.1" - }, - "json-buffer": { - "version": "3.0.0" - }, - "json-schema": { - "version": "0.4.0" - }, - "json-schema-traverse": { - "version": "0.4.1" - }, - "json-stringify-safe": { - "version": "5.0.1" - }, - "jsonfile": { - "version": "4.0.0", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.2", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "keccak": { - "version": "3.0.2", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - } - }, - "keyv": { - "version": "3.1.0", - "requires": { - "json-buffer": "3.0.0" - } - }, - "lowercase-keys": { - "version": "1.0.1" - }, - "md5.js": { - "version": "1.3.5", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0" - }, - "merge-descriptors": { - "version": "1.0.1" - }, - "methods": { - "version": "1.1.2" - }, - "miller-rabin": { - "version": "4.0.1", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0" - }, - "mime-db": { - "version": "1.52.0" - }, - "mime-types": { - "version": "2.1.35", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-response": { - "version": "1.0.1" - }, - "min-document": { - "version": "2.19.0", - "requires": { - "dom-walk": "^0.1.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1" - }, - "minimatch": { - "version": "3.1.2", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6" - }, - "minipass": { - "version": "2.9.0", - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "requires": { - "minimist": "^1.2.6" - } - }, - "mkdirp-promise": { - "version": "5.0.1", - "requires": { - "mkdirp": "*" - } - }, - "mock-fs": { - "version": "4.14.0" - }, - "moment": { - "version": "2.29.3", - "optional": true - }, - "ms": { - "version": "2.0.0" - }, - "multibase": { - "version": "0.6.1", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multicodec": { - "version": "0.5.7", - "requires": { - "varint": "^5.0.0" - } - }, - "multihashes": { - "version": "0.4.21", - "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - }, - "dependencies": { - "multibase": { - "version": "0.7.0", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } - }, - "mv": { - "version": "2.1.1", - "optional": true, - "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "optional": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "2.4.5", - "optional": true, - "requires": { - "glob": "^6.0.1" - } - } - } - }, - "nan": { - "version": "2.15.0", - "optional": true - }, - "nano-json-stream-parser": { - "version": "0.1.2" - }, - "ncp": { - "version": "2.0.0", - "optional": true - }, - "negotiator": { - "version": "0.6.3" - }, - "next-tick": { - "version": "1.1.0" - }, - "node-addon-api": { - "version": "2.0.2" - }, - "node-fetch": { - "version": "2.6.7", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-gyp-build": { - "version": "4.4.0" - }, - "nofilter": { - "version": "1.0.4" - }, - "normalize-url": { - "version": "4.5.1" - }, - "number-to-bn": { - "version": "1.7.0", - "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6" - } - } - }, - "oauth-sign": { - "version": "0.9.0" - }, - "object-assign": { - "version": "4.1.1" - }, - "object-inspect": { - "version": "1.12.0" - }, - "object-keys": { - "version": "1.1.1" - }, - "object.assign": { - "version": "4.1.2", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "oboe": { - "version": "2.1.5", - "requires": { - "http-https": "^1.0.0" - } - }, - "on-finished": { - "version": "2.4.1", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "requires": { - "wrappy": "1" - } - }, - "p-cancelable": { - "version": "1.1.0" - }, - "p-finally": { - "version": "1.0.0" - }, - "p-timeout": { - "version": "1.2.1", - "requires": { - "p-finally": "^1.0.0" - } - }, - "parse-asn1": { - "version": "5.1.6", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-headers": { - "version": "2.0.5" - }, - "parseurl": { - "version": "1.3.3" - }, - "path-is-absolute": { - "version": "1.0.1" - }, - "path-to-regexp": { - "version": "0.1.7" - }, - "pbkdf2": { - "version": "3.1.2", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0" - }, - "prepend-http": { - "version": "2.0.0" - }, - "process": { - "version": "0.11.10" - }, - "proxy-addr": { - "version": "2.0.7", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "psl": { - "version": "1.8.0" - }, - "public-encrypt": { - "version": "4.0.3", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1" - }, - "qs": { - "version": "6.10.3", - "requires": { - "side-channel": "^1.0.4" - } - }, - "query-string": { - "version": "5.1.1", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "randombytes": { - "version": "2.1.0", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1" - }, - "raw-body": { - "version": "2.5.1", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "request": { - "version": "2.88.2", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "form-data": { - "version": "2.3.3", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.5.3" - } - } - }, - "responselike": { - "version": "1.0.2", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rlp": { - "version": "2.2.7", - "requires": { - "bn.js": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "safe-buffer": { - "version": "5.2.1" - }, - "safe-json-stringify": { - "version": "1.2.0", - "optional": true - }, - "safer-buffer": { - "version": "2.1.2" - }, - "scrypt-js": { - "version": "3.0.1" - }, - "secp256k1": { - "version": "4.0.3", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "send": { - "version": "0.18.0", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "ms": { - "version": "2.1.3" - } - } - }, - "serve-static": { - "version": "1.15.0", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "servify": { - "version": "0.1.12", - "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - } - }, - "setimmediate": { - "version": "1.0.5" - }, - "setprototypeof": { - "version": "1.2.0" - }, - "sha.js": { - "version": "2.4.11", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "side-channel": { - "version": "1.0.4", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "simple-concat": { - "version": "1.0.1" - }, - "simple-get": { - "version": "2.8.2", - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "sshpk": { - "version": "1.17.0", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "statuses": { - "version": "2.0.1" - }, - "strict-uri-encode": { - "version": "1.1.0" - }, - "string_decoder": { - "version": "1.3.0", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "strip-hex-prefix": { - "version": "1.0.0", - "requires": { - "is-hex-prefixed": "1.0.0" - } - }, - "swarm-js": { - "version": "0.1.40", - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - }, - "dependencies": { - "get-stream": { - "version": "3.0.0" - }, - "got": { - "version": "7.1.0", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - }, - "p-cancelable": { - "version": "0.3.0" - }, - "prepend-http": { - "version": "1.0.4" - }, - "url-parse-lax": { - "version": "1.0.0", - "requires": { - "prepend-http": "^1.0.1" - } - } - } - }, - "tar": { - "version": "4.4.19", - "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - } - }, - "timed-out": { - "version": "4.0.1" - }, - "to-readable-stream": { - "version": "1.0.0" - }, - "toidentifier": { - "version": "1.0.1" - }, - "tough-cookie": { - "version": "2.5.0", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "0.0.3" - }, - "tunnel-agent": { - "version": "0.6.0", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5" - }, - "type": { - "version": "1.2.0" - }, - "type-is": { - "version": "1.6.18", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.6.4", - "dev": true - }, - "ultron": { - "version": "1.1.1" - }, - "unbox-primitive": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "universalify": { - "version": "0.1.2" - }, - "unpipe": { - "version": "1.0.0" - }, - "uri-js": { - "version": "4.4.1", - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse-lax": { - "version": "3.0.0", - "requires": { - "prepend-http": "^2.0.0" - } - }, - "url-set-query": { - "version": "1.0.0" - }, - "url-to-options": { - "version": "1.0.1" - }, - "utf-8-validate": { - "version": "5.0.9", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "utf8": { - "version": "3.0.0" - }, - "util": { - "version": "0.12.4", - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2" - }, - "utils-merge": { - "version": "1.0.1" - }, - "uuid": { - "version": "3.4.0" - }, - "varint": { - "version": "5.0.2" - }, - "vary": { - "version": "1.1.2" - }, - "verror": { - "version": "1.10.0", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "web3": { - "version": "1.7.3", - "requires": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-bzz": { - "version": "1.7.3", - "requires": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-core": { - "version": "1.7.3", - "requires": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-core-helpers": { - "version": "1.7.3", - "requires": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-method": { - "version": "1.7.3", - "requires": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-promievent": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-core-requestmanager": { - "version": "1.7.3", - "requires": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" - } - }, - "web3-core-subscriptions": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" - } - }, - "web3-eth": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-abi": { - "version": "1.7.3", - "requires": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - } - }, - "web3-eth-accounts": { - "version": "1.7.3", - "requires": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "uuid": { - "version": "3.3.2" - } - } - }, - "web3-eth-contract": { - "version": "1.7.3", - "requires": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-ens": { - "version": "1.7.3", - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-iban": { - "version": "1.7.3", - "requires": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" - } - }, - "web3-eth-personal": { - "version": "1.7.3", - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-net": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-providers-http": { - "version": "1.7.3", - "requires": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.7.3", - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" - } - }, - "web3-providers-ws": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" - } - }, - "web3-shh": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" - } - }, - "web3-utils": { - "version": "1.7.3", - "requires": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - }, - "webidl-conversions": { - "version": "3.0.1" - }, - "websocket": { - "version": "1.0.34", - "requires": { - "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" - } - }, - "whatwg-url": { - "version": "5.0.0", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-typed-array": { - "version": "1.1.8", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" - } - }, - "wrappy": { - "version": "1.0.2" - }, - "ws": { - "version": "3.3.3", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2" - } - } - }, - "xhr": { - "version": "2.6.0", - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xhr-request": { - "version": "1.1.0", - "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "xhr-request-promise": { - "version": "0.1.3", - "requires": { - "xhr-request": "^1.1.0" - } - }, - "xhr2-cookies": { - "version": "1.1.0", - "requires": { - "cookiejar": "^2.1.1" - } - }, - "xtend": { - "version": "4.0.2" - }, - "yaeti": { - "version": "0.0.6" - }, - "yallist": { - "version": "3.1.1" - } - } - }, - "@ethereum-sourcify/validation": { - "version": "file:services/validation", - "requires": { - "@ethereum-sourcify/core": "*", - "@types/bunyan": "^1.8.6", - "@types/node": "^16.11.36", - "bunyan": "^1.8.15", - "chai": "^4.2.0", - "chai-exec": "^2.1.1", - "commander": "^6.1.0", - "jszip": "^3.10.1", - "mocha": "^8.1.3", - "rimraf": "^3.0.2", - "typescript": "^4.0.2", - "web3": "^1.2.11" - }, - "dependencies": { - "@ethereum-sourcify/core": { - "version": "file:services/core", - "requires": { - "@types/bunyan": "^1.8.6", - "@types/cbor": "^5.0.1", - "@types/node-fetch": "^2.5.7", - "@types/rimraf": "^3.0.2", - "@types/semver": "^7.3.10", - "bunyan": "^1.8.15", - "cbor": "^5.1.0", - "directory-tree": "^2.2.4", - "node-fetch": "^2.6.1", - "rimraf": "^3.0.2", - "semver": "^7.3.7", - "typescript": "^4.0.2", - "web3": "^1.3.0" - }, - "dependencies": { - "@ethereumjs/common": { - "version": "2.6.4", - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" - } - }, - "@ethereumjs/tx": { - "version": "3.5.1", - "requires": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" - } - }, - "@ethersproject/abi": { - "version": "5.0.7", - "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.6.1", - "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "@ethersproject/address": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "@ethersproject/base64": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.6.1", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "@ethersproject/bytes": { - "version": "5.6.1", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/constants": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "@ethersproject/hash": { - "version": "5.6.0", - "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/keccak256": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/logger": { - "version": "5.6.0" - }, - "@ethersproject/networks": { - "version": "5.6.2", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/properties": { - "version": "5.6.0", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/rlp": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/signing-key": { - "version": "5.6.1", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "@ethersproject/strings": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/transactions": { - "version": "5.6.0", - "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "@ethersproject/web": { - "version": "5.6.0", - "requires": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@sindresorhus/is": { - "version": "0.14.0" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/bn.js": { - "version": "4.11.6", - "requires": { - "@types/node": "*" - } - }, - "@types/bunyan": { - "version": "1.8.8", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/cbor": { - "version": "5.0.1", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/glob": { - "version": "7.2.0", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/minimatch": { - "version": "3.0.5", - "dev": true - }, - "@types/node": { - "version": "17.0.34" - }, - "@types/node-fetch": { - "version": "2.6.1", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "@types/pbkdf2": { - "version": "3.1.0", - "requires": { - "@types/node": "*" - } - }, - "@types/rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "@types/glob": "*", - "@types/node": "*" - } - }, - "@types/secp256k1": { - "version": "4.0.3", - "requires": { - "@types/node": "*" - } - }, - "accepts": { - "version": "1.3.8", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "ajv": { - "version": "6.12.6", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "array-flatten": { - "version": "1.1.1" - }, - "asn1": { - "version": "0.2.6", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0" - }, - "async-limiter": { - "version": "1.0.1" - }, - "asynckit": { - "version": "0.4.0" - }, - "available-typed-arrays": { - "version": "1.0.5" - }, - "aws-sign2": { - "version": "0.7.0" - }, - "aws4": { - "version": "1.11.0" - }, - "balanced-match": { - "version": "1.0.2" - }, - "base-x": { - "version": "3.0.9", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-js": { - "version": "1.5.1" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bignumber.js": { - "version": "9.0.2" - }, - "blakejs": { - "version": "1.2.1" - }, - "bluebird": { - "version": "3.7.2" - }, - "bn.js": { - "version": "4.12.0" - }, - "body-parser": { - "version": "1.20.0", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "brorand": { - "version": "1.1.0" - }, - "browserify-aes": { - "version": "1.2.0", - "requires": { - "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" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "bs58": { - "version": "4.0.1", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "buffer": { - "version": "5.7.1", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-to-arraybuffer": { - "version": "0.0.5" - }, - "buffer-xor": { - "version": "1.0.3" - }, - "bufferutil": { - "version": "4.0.6", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "bunyan": { - "version": "1.8.15", - "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "bytes": { - "version": "3.1.2" - }, - "cacheable-request": { - "version": "6.1.0", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0" - } - } - }, - "call-bind": { - "version": "1.0.2", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caseless": { - "version": "0.12.0" - }, - "cbor": { - "version": "5.2.0", - "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - } - }, - "chownr": { - "version": "1.1.4" - }, - "cids": { - "version": "0.7.5", - "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "dependencies": { - "multicodec": { - "version": "1.0.4", - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - } - } - }, - "cipher-base": { - "version": "1.0.4", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-is": { - "version": "1.1.0" - }, - "clone-response": { - "version": "1.0.2", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "combined-stream": { - "version": "1.0.8", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1" - }, - "content-disposition": { - "version": "0.5.4", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-hash": { - "version": "2.5.2", - "requires": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "content-type": { - "version": "1.0.4" - }, - "cookie": { - "version": "0.5.0" - }, - "cookie-signature": { - "version": "1.0.6" - }, - "cookiejar": { - "version": "2.1.3" - }, - "core-util-is": { - "version": "1.0.2" - }, - "cors": { - "version": "2.8.5", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "crc-32": { - "version": "1.2.2" - }, - "create-ecdh": { - "version": "4.0.4", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "create-hash": { - "version": "1.2.0", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "requires": { - "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" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "d": { - "version": "1.0.1", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "decode-uri-component": { - "version": "0.2.0" - }, - "decompress-response": { - "version": "3.3.0", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "defer-to-connect": { - "version": "1.1.3" - }, - "define-properties": { - "version": "1.1.4", - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0" - }, - "depd": { - "version": "2.0.0" - }, - "des.js": { - "version": "1.0.1", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.2.0" - }, - "diffie-hellman": { - "version": "5.0.3", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "directory-tree": { - "version": "2.3.1" - }, - "dom-walk": { - "version": "0.1.2" - }, - "dtrace-provider": { - "version": "0.8.8", - "optional": true, - "requires": { - "nan": "^2.14.0" - } - }, - "duplexer3": { - "version": "0.1.4" - }, - "ecc-jsbn": { - "version": "0.1.2", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1" - }, - "elliptic": { - "version": "6.5.4", - "requires": { - "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" - } - }, - "encodeurl": { - "version": "1.0.2" - }, - "end-of-stream": { - "version": "1.4.4", - "requires": { - "once": "^1.4.0" - } - }, - "es-abstract": { - "version": "1.20.1", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.61", - "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "escape-html": { - "version": "1.0.3" - }, - "etag": { - "version": "1.8.1" - }, - "eth-ens-namehash": { - "version": "2.0.8", - "requires": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7" - } - } - }, - "eth-lib": { - "version": "0.1.29", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethereum-bloom-filters": { - "version": "1.0.10", - "requires": { - "js-sha3": "^0.8.0" - } - }, - "ethereum-cryptography": { - "version": "0.1.3", - "requires": { - "@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" - } - }, - "ethereumjs-util": { - "version": "7.1.4", - "requires": { - "@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" - }, - "dependencies": { - "@types/bn.js": { - "version": "5.1.0", - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.0" - } - } - }, - "ethjs-unit": { - "version": "0.1.6", - "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6" - } - } - }, - "eventemitter3": { - "version": "4.0.4" - }, - "evp_bytestokey": { - "version": "1.0.3", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "express": { - "version": "4.18.1", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, - "ext": { - "version": "1.6.0", - "requires": { - "type": "^2.5.0" - }, - "dependencies": { - "type": { - "version": "2.6.0" - } - } - }, - "extend": { - "version": "3.0.2" - }, - "extsprintf": { - "version": "1.3.0" - }, - "fast-deep-equal": { - "version": "3.1.3" - }, - "fast-json-stable-stringify": { - "version": "2.1.0" - }, - "finalhandler": { - "version": "1.2.0", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - } - }, - "for-each": { - "version": "0.3.3", - "requires": { - "is-callable": "^1.1.3" - } - }, - "forever-agent": { - "version": "0.6.1" - }, - "form-data": { - "version": "3.0.1", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0" - }, - "fresh": { - "version": "0.5.2" - }, - "fs-extra": { - "version": "4.0.3", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0" - }, - "function-bind": { - "version": "1.1.1" - }, - "function.prototype.name": { - "version": "1.1.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3" - }, - "get-intrinsic": { - "version": "1.1.1", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "4.1.0", - "requires": { - "pump": "^3.0.0" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "getpass": { - "version": "0.1.7", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.2.3", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "global": { - "version": "4.4.0", - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "got": { - "version": "9.6.0", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10" - }, - "har-schema": { - "version": "2.0.0" - }, - "har-validator": { - "version": "5.1.5", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2" - }, - "has-property-descriptors": { - "version": "1.0.0", - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbol-support-x": { - "version": "1.4.2" - }, - "has-symbols": { - "version": "1.0.3" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, - "has-tostringtag": { - "version": "1.0.0", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hash-base": { - "version": "3.1.0", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "http-cache-semantics": { - "version": "4.1.0" - }, - "http-errors": { - "version": "2.0.0", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-https": { - "version": "1.0.0" - }, - "http-signature": { - "version": "1.2.0", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "idna-uts46-hx": { - "version": "2.3.1", - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0" - } - } - }, - "ieee754": { - "version": "1.2.1" - }, - "inflight": { - "version": "1.0.6", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4" - }, - "internal-slot": { - "version": "1.0.3", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "ipaddr.js": { - "version": "1.9.1" - }, - "is-arguments": { - "version": "1.1.1", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-bigint": { - "version": "1.0.4", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.4" - }, - "is-date-object": { - "version": "1.0.5", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-function": { - "version": "1.0.2" - }, - "is-generator-function": { - "version": "1.0.10", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-hex-prefixed": { - "version": "1.0.0" - }, - "is-negative-zero": { - "version": "2.0.2" - }, - "is-number-object": { - "version": "1.0.7", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-object": { - "version": "1.0.2" - }, - "is-plain-obj": { - "version": "1.1.0" - }, - "is-regex": { - "version": "1.1.4", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-retry-allowed": { - "version": "1.2.0" - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "1.1.0" - }, - "is-string": { - "version": "1.0.7", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.9", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0" - }, - "is-weakref": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2" - } - }, - "isstream": { - "version": "0.1.2" - }, - "isurl": { - "version": "1.0.0", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, - "js-sha3": { - "version": "0.8.0" - }, - "jsbn": { - "version": "0.1.1" - }, - "json-buffer": { - "version": "3.0.0" - }, - "json-schema": { - "version": "0.4.0" - }, - "json-schema-traverse": { - "version": "0.4.1" - }, - "json-stringify-safe": { - "version": "5.0.1" - }, - "jsonfile": { - "version": "4.0.0", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.2", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "keccak": { - "version": "3.0.2", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - } - }, - "keyv": { - "version": "3.1.0", - "requires": { - "json-buffer": "3.0.0" - } - }, - "lowercase-keys": { - "version": "1.0.1" - }, - "md5.js": { - "version": "1.3.5", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0" - }, - "merge-descriptors": { - "version": "1.0.1" - }, - "methods": { - "version": "1.1.2" - }, - "miller-rabin": { - "version": "4.0.1", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0" - }, - "mime-db": { - "version": "1.52.0" - }, - "mime-types": { - "version": "2.1.35", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-response": { - "version": "1.0.1" - }, - "min-document": { - "version": "2.19.0", - "requires": { - "dom-walk": "^0.1.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1" - }, - "minimatch": { - "version": "3.1.2", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6" - }, - "minipass": { - "version": "2.9.0", - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "requires": { - "minimist": "^1.2.6" - } - }, - "mkdirp-promise": { - "version": "5.0.1", - "requires": { - "mkdirp": "*" - } - }, - "mock-fs": { - "version": "4.14.0" - }, - "moment": { - "version": "2.29.3", - "optional": true - }, - "ms": { - "version": "2.0.0" - }, - "multibase": { - "version": "0.6.1", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multicodec": { - "version": "0.5.7", - "requires": { - "varint": "^5.0.0" - } - }, - "multihashes": { - "version": "0.4.21", - "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - }, - "dependencies": { - "multibase": { - "version": "0.7.0", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } - }, - "mv": { - "version": "2.1.1", - "optional": true, - "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "optional": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "2.4.5", - "optional": true, - "requires": { - "glob": "^6.0.1" - } - } - } - }, - "nan": { - "version": "2.15.0", - "optional": true - }, - "nano-json-stream-parser": { - "version": "0.1.2" - }, - "ncp": { - "version": "2.0.0", - "optional": true - }, - "negotiator": { - "version": "0.6.3" - }, - "next-tick": { - "version": "1.1.0" - }, - "node-addon-api": { - "version": "2.0.2" - }, - "node-fetch": { - "version": "2.6.7", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-gyp-build": { - "version": "4.4.0" - }, - "nofilter": { - "version": "1.0.4" - }, - "normalize-url": { - "version": "4.5.1" - }, - "number-to-bn": { - "version": "1.7.0", - "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6" - } - } - }, - "oauth-sign": { - "version": "0.9.0" - }, - "object-assign": { - "version": "4.1.1" - }, - "object-inspect": { - "version": "1.12.0" - }, - "object-keys": { - "version": "1.1.1" - }, - "object.assign": { - "version": "4.1.2", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "oboe": { - "version": "2.1.5", - "requires": { - "http-https": "^1.0.0" - } - }, - "on-finished": { - "version": "2.4.1", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "requires": { - "wrappy": "1" - } - }, - "p-cancelable": { - "version": "1.1.0" - }, - "p-finally": { - "version": "1.0.0" - }, - "p-timeout": { - "version": "1.2.1", - "requires": { - "p-finally": "^1.0.0" - } - }, - "parse-asn1": { - "version": "5.1.6", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-headers": { - "version": "2.0.5" - }, - "parseurl": { - "version": "1.3.3" - }, - "path-is-absolute": { - "version": "1.0.1" - }, - "path-to-regexp": { - "version": "0.1.7" - }, - "pbkdf2": { - "version": "3.1.2", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0" - }, - "prepend-http": { - "version": "2.0.0" - }, - "process": { - "version": "0.11.10" - }, - "proxy-addr": { - "version": "2.0.7", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "psl": { - "version": "1.8.0" - }, - "public-encrypt": { - "version": "4.0.3", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1" - }, - "qs": { - "version": "6.10.3", - "requires": { - "side-channel": "^1.0.4" - } - }, - "query-string": { - "version": "5.1.1", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "randombytes": { - "version": "2.1.0", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1" - }, - "raw-body": { - "version": "2.5.1", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "request": { - "version": "2.88.2", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "form-data": { - "version": "2.3.3", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.5.3" - } - } - }, - "responselike": { - "version": "1.0.2", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rlp": { - "version": "2.2.7", - "requires": { - "bn.js": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "safe-buffer": { - "version": "5.2.1" - }, - "safe-json-stringify": { - "version": "1.2.0", - "optional": true - }, - "safer-buffer": { - "version": "2.1.2" - }, - "scrypt-js": { - "version": "3.0.1" - }, - "secp256k1": { - "version": "4.0.3", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "send": { - "version": "0.18.0", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "ms": { - "version": "2.1.3" - } - } - }, - "serve-static": { - "version": "1.15.0", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "servify": { - "version": "0.1.12", - "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - } - }, - "setimmediate": { - "version": "1.0.5" - }, - "setprototypeof": { - "version": "1.2.0" - }, - "sha.js": { - "version": "2.4.11", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "side-channel": { - "version": "1.0.4", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "simple-concat": { - "version": "1.0.1" - }, - "simple-get": { - "version": "2.8.2", - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "sshpk": { - "version": "1.17.0", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "statuses": { - "version": "2.0.1" - }, - "strict-uri-encode": { - "version": "1.1.0" - }, - "string_decoder": { - "version": "1.3.0", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "strip-hex-prefix": { - "version": "1.0.0", - "requires": { - "is-hex-prefixed": "1.0.0" - } - }, - "swarm-js": { - "version": "0.1.40", - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - }, - "dependencies": { - "get-stream": { - "version": "3.0.0" - }, - "got": { - "version": "7.1.0", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - }, - "p-cancelable": { - "version": "0.3.0" - }, - "prepend-http": { - "version": "1.0.4" - }, - "url-parse-lax": { - "version": "1.0.0", - "requires": { - "prepend-http": "^1.0.1" - } - } - } - }, - "tar": { - "version": "4.4.19", - "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - } - }, - "timed-out": { - "version": "4.0.1" - }, - "to-readable-stream": { - "version": "1.0.0" - }, - "toidentifier": { - "version": "1.0.1" - }, - "tough-cookie": { - "version": "2.5.0", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "0.0.3" - }, - "tunnel-agent": { - "version": "0.6.0", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5" - }, - "type": { - "version": "1.2.0" - }, - "type-is": { - "version": "1.6.18", + } + } + }, + "@assemblyscript/loader": { + "version": "0.9.4", + "dev": true + }, + "@babel/code-frame": { + "version": "7.22.5", + "requires": { + "@babel/highlight": "^7.22.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.22.5" + }, + "@babel/highlight": { + "version": "7.22.5", + "requires": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true + }, + "@chainsafe/libp2p-noise": { + "version": "4.1.2", + "dev": true, + "requires": { + "@stablelib/chacha20poly1305": "^1.0.1", + "@stablelib/hkdf": "^1.0.1", + "@stablelib/sha256": "^1.0.1", + "@stablelib/x25519": "^1.0.1", + "debug": "^4.3.1", + "it-buffer": "^0.1.3", + "it-length-prefixed": "^5.0.3", + "it-pair": "^1.0.0", + "it-pb-rpc": "^0.1.11", + "it-pipe": "^1.1.0", + "libp2p-crypto": "^0.19.7", + "peer-id": "^0.15.3", + "protobufjs": "^6.11.2", + "uint8arrays": "^3.0.0" + } + }, + "@colors/colors": { + "version": "1.5.0" + }, + "@dabh/diagnostics": { + "version": "2.0.3", + "requires": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.5.1", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.1.0", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + } + } + }, + "@eslint/js": { + "version": "8.44.0", + "dev": true + }, + "@ethereum-sourcify/bytecode-utils": { + "version": "file:packages/bytecode-utils", + "requires": { + "@ava/typescript": "^1.1.1", + "@ethersproject/bytes": "^5.7.0", + "@types/node": "^18.11.9", + "@typescript-eslint/eslint-plugin": "^4.0.1", + "@typescript-eslint/parser": "^4.0.1", + "ava": "^3.12.1", + "bs58": "^5.0.0", + "c8": "^8.0.0", + "cbor-x": "^1.4.1", + "codecov": "^3.5.0", + "cz-conventional-changelog": "^3.3.0", + "eslint": "^7.8.0", + "eslint-config-prettier": "^6.11.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-functional": "^3.0.2", + "eslint-plugin-import": "^2.22.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.1.1", + "ts-node": "^9.0.0", + "typescript": "^4.9.3" + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true + }, + "@ava/typescript": { + "version": "1.1.1", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "@babel/code-frame": { + "version": "7.12.11", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.22.5", + "dev": true + }, + "@babel/highlight": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "color-convert": "^1.9.0" } }, - "typedarray-to-buffer": { - "version": "3.1.5", + "chalk": { + "version": "2.4.2", + "dev": true, "requires": { - "is-typedarray": "^1.0.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "typescript": { - "version": "4.6.4", + "escape-string-regexp": { + "version": "1.0.5", "dev": true }, - "ultron": { - "version": "1.1.1" - }, - "unbox-primitive": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "universalify": { - "version": "0.1.2" - }, - "unpipe": { - "version": "1.0.0" - }, - "uri-js": { - "version": "4.4.1", - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse-lax": { + "has-flag": { "version": "3.0.0", - "requires": { - "prepend-http": "^2.0.0" - } - }, - "url-set-query": { - "version": "1.0.0" - }, - "url-to-options": { - "version": "1.0.1" - }, - "utf-8-validate": { - "version": "5.0.9", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "utf8": { - "version": "3.0.0" - }, - "util": { - "version": "0.12.4", - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2" - }, - "utils-merge": { - "version": "1.0.1" - }, - "uuid": { - "version": "3.4.0" - }, - "varint": { - "version": "5.0.2" - }, - "vary": { - "version": "1.1.2" - }, - "verror": { - "version": "1.10.0", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "web3": { - "version": "1.7.3", - "requires": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-bzz": { - "version": "1.7.3", - "requires": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-core": { - "version": "1.7.3", - "requires": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-core-helpers": { - "version": "1.7.3", - "requires": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-method": { - "version": "1.7.3", - "requires": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-promievent": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-core-requestmanager": { - "version": "1.7.3", - "requires": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" - } - }, - "web3-core-subscriptions": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" - } - }, - "web3-eth": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-abi": { - "version": "1.7.3", - "requires": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - } - }, - "web3-eth-accounts": { - "version": "1.7.3", - "requires": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "uuid": { - "version": "3.3.2" - } - } - }, - "web3-eth-contract": { - "version": "1.7.3", - "requires": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-ens": { - "version": "1.7.3", - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-iban": { - "version": "1.7.3", - "requires": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" - } - }, - "web3-eth-personal": { - "version": "1.7.3", - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-net": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-providers-http": { - "version": "1.7.3", - "requires": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.7.3", - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" - } - }, - "web3-providers-ws": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" - } - }, - "web3-shh": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" - } - }, - "web3-utils": { - "version": "1.7.3", - "requires": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - }, - "webidl-conversions": { - "version": "3.0.1" - }, - "websocket": { - "version": "1.0.34", - "requires": { - "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" - } - }, - "whatwg-url": { - "version": "5.0.0", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-typed-array": { - "version": "1.1.8", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" - } - }, - "wrappy": { - "version": "1.0.2" - }, - "ws": { - "version": "3.3.3", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2" - } - } - }, - "xhr": { - "version": "2.6.0", - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xhr-request": { - "version": "1.1.0", - "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "xhr-request-promise": { - "version": "0.1.3", - "requires": { - "xhr-request": "^1.1.0" - } + "dev": true }, - "xhr2-cookies": { - "version": "1.1.0", + "supports-color": { + "version": "5.5.0", + "dev": true, "requires": { - "cookiejar": "^2.1.1" + "has-flag": "^3.0.0" } - }, - "xtend": { - "version": "4.0.2" - }, - "yaeti": { - "version": "0.0.6" - }, - "yallist": { - "version": "3.1.1" } } }, - "@ethereumjs/common": { - "version": "2.6.4", - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" - } + "@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true }, - "@ethereumjs/tx": { - "version": "3.5.1", + "@cbor-extract/cbor-extract-darwin-arm64": { + "version": "2.1.1", + "optional": true + }, + "@commitlint/config-validator": { + "version": "17.4.4", + "dev": true, + "optional": true, "requires": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" } }, - "@ethersproject/abi": { - "version": "5.0.7", + "@commitlint/execute-rule": { + "version": "17.4.0", + "dev": true, + "optional": true + }, + "@commitlint/load": { + "version": "17.5.0", + "dev": true, + "optional": true, "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" + "@commitlint/config-validator": "^17.4.4", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.4.4", + "@commitlint/types": "^17.4.4", + "@types/node": "*", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + }, + "dependencies": { + "cosmiconfig-typescript-loader": { + "version": "4.3.0", + "dev": true, + "optional": true, + "requires": {} + }, + "ts-node": { + "version": "10.9.1", + "dev": true, + "optional": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + } } }, - "@ethersproject/abstract-provider": { - "version": "5.6.0", + "@commitlint/resolve-extends": { + "version": "17.4.4", + "dev": true, + "optional": true, "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" + "@commitlint/config-validator": "^17.4.4", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" } }, - "@ethersproject/abstract-signer": { - "version": "5.6.1", + "@commitlint/types": { + "version": "17.4.4", + "dev": true, + "optional": true, "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" + "chalk": "^4.1.0" } }, - "@ethersproject/address": { - "version": "5.6.0", + "@concordance/react": { + "version": "2.0.0", + "dev": true, "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" + "arrify": "^1.0.1" + }, + "dependencies": { + "arrify": { + "version": "1.0.1", + "dev": true + } } }, - "@ethersproject/base64": { - "version": "5.6.0", + "@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "optional": true, "requires": { - "@ethersproject/bytes": "^5.6.0" + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "optional": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } } }, - "@ethersproject/bignumber": { - "version": "5.6.1", + "@eslint/eslintrc": { + "version": "0.4.3", + "dev": true, "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ignore": { + "version": "4.0.6", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } } }, "@ethersproject/bytes": { - "version": "5.6.1", + "version": "5.7.0", "requires": { - "@ethersproject/logger": "^5.6.0" + "@ethersproject/logger": "^5.7.0" } }, - "@ethersproject/constants": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0" - } + "@ethersproject/logger": { + "version": "5.7.0" }, - "@ethersproject/hash": { - "version": "5.6.0", + "@humanwhocodes/config-array": { + "version": "0.5.0", + "dev": true, "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" } }, - "@ethersproject/keccak256": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true }, - "@ethersproject/logger": { - "version": "5.6.0" + "@istanbuljs/schema": { + "version": "0.1.3", + "dev": true }, - "@ethersproject/networks": { - "version": "5.6.2", - "requires": { - "@ethersproject/logger": "^5.6.0" - } + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true }, - "@ethersproject/properties": { - "version": "5.6.0", - "requires": { - "@ethersproject/logger": "^5.6.0" - } + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true }, - "@ethersproject/rlp": { - "version": "5.6.0", + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, - "@ethersproject/signing-key": { - "version": "5.6.1", + "@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" } }, - "@ethersproject/strings": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } + "@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true }, - "@ethersproject/transactions": { - "version": "5.6.0", + "@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" } }, - "@ethersproject/web": { - "version": "5.6.0", - "requires": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } + "@sindresorhus/is": { + "version": "0.14.0", + "dev": true }, - "@jsdevtools/chai-exec": { - "version": "2.1.1", + "@szmarczak/http-timer": { + "version": "1.1.2", "dev": true, "requires": { - "@jsdevtools/ez-spawn": "^3.0.3" + "defer-to-connect": "^1.0.1" } }, - "@jsdevtools/ez-spawn": { - "version": "3.0.4", + "@tootallnate/once": { + "version": "1.1.2", + "dev": true + }, + "@tsconfig/node10": { + "version": "1.0.9", + "dev": true, + "optional": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "optional": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "dev": true, + "optional": true + }, + "@tsconfig/node16": { + "version": "1.0.4", + "dev": true, + "optional": true + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.12", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "dev": true + }, + "@types/node": { + "version": "18.16.19" + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.33.0", "dev": true, "requires": { - "call-me-maybe": "^1.0.1", - "cross-spawn": "^7.0.3", - "string-argv": "^0.3.1", - "type-detect": "^4.0.8" + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" } }, - "@sindresorhus/is": { - "version": "0.14.0" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", + "@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "dev": true, "requires": { - "defer-to-connect": "^1.0.1" + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" } }, - "@types/bn.js": { - "version": "4.11.6", + "@typescript-eslint/parser": { + "version": "4.33.0", + "dev": true, "requires": { - "@types/node": "*" + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" } }, - "@types/bunyan": { - "version": "1.8.8", + "@typescript-eslint/scope-manager": { + "version": "4.33.0", "dev": true, "requires": { - "@types/node": "*" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" } }, - "@types/node": { - "version": "16.11.36" + "@typescript-eslint/types": { + "version": "4.33.0", + "dev": true }, - "@types/pbkdf2": { - "version": "3.1.0", + "@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "dev": true, "requires": { - "@types/node": "*" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" } }, - "@types/secp256k1": { - "version": "4.0.3", + "@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "dev": true, "requires": { - "@types/node": "*" + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" } }, - "@ungap/promise-all-settled": { - "version": "1.1.2", + "acorn": { + "version": "8.10.0", "dev": true }, - "accepts": { - "version": "1.3.8", + "acorn-jsx": { + "version": "5.3.2", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "dev": true, + "requires": { + "debug": "4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "dev": true, "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" } }, "ajv": { - "version": "6.12.6", + "version": "8.12.0", + "dev": true, "requires": { "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } }, + "ansi-align": { + "version": "3.0.1", + "dev": true, + "requires": { + "string-width": "^4.1.0" + } + }, "ansi-colors": { - "version": "4.1.1", + "version": "4.1.3", "dev": true }, + "ansi-escapes": { + "version": "4.3.2", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "dev": true + } + } + }, "ansi-regex": { - "version": "3.0.1", + "version": "5.0.1", "dev": true }, "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } + "version": "5.2.0", + "dev": true }, "anymatch": { - "version": "3.1.2", + "version": "3.1.3", "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, + "arg": { + "version": "4.1.3", + "dev": true + }, "argparse": { - "version": "2.0.1", + "version": "1.0.10", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "argv": { + "version": "0.0.2", "dev": true }, - "array-flatten": { - "version": "1.1.1" + "array-buffer-byte-length": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-find-index": { + "version": "1.0.2", + "dev": true + }, + "array-includes": { + "version": "3.1.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "dev": true }, - "asn1": { - "version": "0.2.6", + "array.prototype.flat": { + "version": "1.3.1", + "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" } }, - "asn1.js": { - "version": "5.4.1", + "array.prototype.flatmap": { + "version": "1.3.1", + "dev": true, "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" } }, - "assert-plus": { - "version": "1.0.0" + "arrgv": { + "version": "1.0.2", + "dev": true }, - "assertion-error": { - "version": "1.1.0", + "arrify": { + "version": "2.0.1", "dev": true }, - "async-limiter": { - "version": "1.0.1" + "astral-regex": { + "version": "2.0.0", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "dev": true }, - "asynckit": { - "version": "0.4.0" + "ava": { + "version": "3.15.0", + "dev": true, + "requires": { + "@concordance/react": "^2.0.0", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "ansi-styles": "^5.0.0", + "arrgv": "^1.0.2", + "arrify": "^2.0.1", + "callsites": "^3.1.0", + "chalk": "^4.1.0", + "chokidar": "^3.4.3", + "chunkd": "^2.0.1", + "ci-info": "^2.0.0", + "ci-parallel-vars": "^1.0.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "code-excerpt": "^3.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.1", + "convert-source-map": "^1.7.0", + "currently-unhandled": "^0.4.1", + "debug": "^4.3.1", + "del": "^6.0.0", + "emittery": "^0.8.0", + "equal-length": "^1.0.0", + "figures": "^3.2.0", + "globby": "^11.0.1", + "ignore-by-default": "^2.0.0", + "import-local": "^3.0.2", + "indent-string": "^4.0.0", + "is-error": "^2.2.2", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "lodash": "^4.17.20", + "matcher": "^3.0.0", + "md5-hex": "^3.0.1", + "mem": "^8.0.0", + "ms": "^2.1.3", + "ora": "^5.2.0", + "p-event": "^4.2.0", + "p-map": "^4.0.0", + "picomatch": "^2.2.2", + "pkg-conf": "^3.1.0", + "plur": "^4.0.0", + "pretty-ms": "^7.0.1", + "read-pkg": "^5.2.0", + "resolve-cwd": "^3.0.0", + "slash": "^3.0.0", + "source-map-support": "^0.5.19", + "stack-utils": "^2.0.3", + "strip-ansi": "^6.0.0", + "supertap": "^2.0.0", + "temp-dir": "^2.0.0", + "trim-off-newlines": "^1.0.1", + "update-notifier": "^5.0.1", + "write-file-atomic": "^3.0.3", + "yargs": "^16.2.0" + } }, "available-typed-arrays": { - "version": "1.0.5" - }, - "aws-sign2": { - "version": "0.7.0" - }, - "aws4": { - "version": "1.11.0" + "version": "1.0.5", + "dev": true }, "balanced-match": { "version": "1.0.2", - "devOptional": true + "dev": true }, "base-x": { - "version": "3.0.9", - "requires": { - "safe-buffer": "^5.0.1" - } + "version": "4.0.0" }, "base64-js": { - "version": "1.5.1" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bignumber.js": { - "version": "9.0.2" + "version": "1.5.1", + "dev": true }, "binary-extensions": { "version": "2.2.0", "dev": true }, - "blakejs": { - "version": "1.2.1" + "bl": { + "version": "4.1.0", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } }, - "bluebird": { - "version": "3.7.2" + "blueimp-md5": { + "version": "2.19.0", + "dev": true }, - "bn.js": { - "version": "4.12.0" - }, - "body-parser": { - "version": "1.20.0", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } + "boxen": { + "version": "5.1.2", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" } }, "brace-expansion": { "version": "1.1.11", - "devOptional": true, + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -38248,119 +38257,45 @@ "fill-range": "^7.0.1" } }, - "brorand": { - "version": "1.1.0" - }, - "browser-stdout": { - "version": "1.3.1", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "requires": { - "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" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, "bs58": { - "version": "4.0.1", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", + "version": "5.0.0", "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "base-x": "^4.0.0" } }, "buffer": { "version": "5.7.1", + "dev": true, "requires": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, - "buffer-to-arraybuffer": { - "version": "0.0.5" - }, - "buffer-xor": { - "version": "1.0.3" - }, - "bufferutil": { - "version": "4.0.6", - "requires": { - "node-gyp-build": "^4.3.0" - } + "buffer-from": { + "version": "1.1.2", + "dev": true }, - "bunyan": { - "version": "1.8.15", + "c8": { + "version": "8.0.0", + "dev": true, "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" } }, - "bytes": { - "version": "3.1.2" - }, "cacheable-request": { "version": "6.1.0", + "dev": true, "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -38373,51 +38308,54 @@ "dependencies": { "get-stream": { "version": "5.2.0", + "dev": true, "requires": { "pump": "^3.0.0" } }, "lowercase-keys": { - "version": "2.0.0" + "version": "2.0.0", + "dev": true } } }, + "cachedir": { + "version": "2.3.0", + "dev": true + }, "call-bind": { "version": "1.0.2", + "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" } }, - "call-me-maybe": { - "version": "1.0.1", + "callsites": { + "version": "3.1.0", "dev": true }, "camelcase": { "version": "6.3.0", "dev": true }, - "caseless": { - "version": "0.12.0" - }, - "chai": { - "version": "4.3.6", - "dev": true, + "cbor-extract": { + "version": "2.1.1", + "optional": true, "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "@cbor-extract/cbor-extract-darwin-arm64": "2.1.1", + "@cbor-extract/cbor-extract-darwin-x64": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm64": "2.1.1", + "@cbor-extract/cbor-extract-linux-x64": "2.1.1", + "@cbor-extract/cbor-extract-win32-x64": "2.1.1", + "node-gyp-build-optional-packages": "5.0.3" } }, - "chai-exec": { - "version": "2.1.1", - "dev": true, + "cbor-x": { + "version": "1.5.3", "requires": { - "@jsdevtools/chai-exec": "2.1.1" + "cbor-extract": "^2.1.1" } }, "chalk": { @@ -38428,64 +38366,90 @@ "supports-color": "^7.1.0" }, "dependencies": { - "supports-color": { - "version": "7.2.0", + "ansi-styles": { + "version": "4.3.0", "dev": true, "requires": { - "has-flag": "^4.0.0" + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" } + }, + "color-name": { + "version": "1.1.4", + "dev": true } } }, - "check-error": { - "version": "1.0.2", + "chardet": { + "version": "0.7.0", "dev": true }, "chokidar": { - "version": "3.5.1", + "version": "3.5.3", "dev": true, "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" } }, - "chownr": { - "version": "1.1.4" + "chunkd": { + "version": "2.0.1", + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "dev": true + }, + "ci-parallel-vars": { + "version": "1.0.1", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "dev": true + }, + "clean-yaml-object": { + "version": "0.1.0", + "dev": true + }, + "cli-boxes": { + "version": "2.2.1", + "dev": true }, - "cids": { - "version": "0.7.5", + "cli-cursor": { + "version": "3.1.0", + "dev": true, "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "dependencies": { - "multicodec": { - "version": "1.0.4", - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - } + "restore-cursor": "^3.1.0" } }, - "cipher-base": { - "version": "1.0.4", + "cli-spinners": { + "version": "2.9.0", + "dev": true + }, + "cli-truncate": { + "version": "2.1.0", + "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" } }, - "class-is": { - "version": "1.1.0" + "cli-width": { + "version": "3.0.0", + "dev": true }, "cliui": { "version": "7.0.4", @@ -38494,130 +38458,143 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } } }, + "clone": { + "version": "1.0.4", + "dev": true + }, "clone-response": { - "version": "1.0.2", + "version": "1.0.3", + "dev": true, "requires": { "mimic-response": "^1.0.0" } }, + "code-excerpt": { + "version": "3.0.0", + "dev": true, + "requires": { + "convert-to-spaces": "^1.0.1" + } + }, + "codecov": { + "version": "3.8.3", + "dev": true, + "requires": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + } + }, "color-convert": { - "version": "2.0.1", + "version": "1.9.3", "dev": true, "requires": { - "color-name": "~1.1.4" + "color-name": "1.1.3" } }, "color-name": { - "version": "1.1.4", + "version": "1.1.3", "dev": true }, - "combined-stream": { - "version": "1.0.8", + "commitizen": { + "version": "4.3.0", + "dev": true, "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "6.2.1" + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + } + }, + "common-path-prefix": { + "version": "3.0.0", + "dev": true }, "concat-map": { "version": "0.0.1", - "devOptional": true + "dev": true }, - "content-disposition": { - "version": "0.5.4", + "concordance": { + "version": "5.0.4", + "dev": true, "requires": { - "safe-buffer": "5.2.1" + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" } }, - "content-hash": { - "version": "2.5.2", + "configstore": { + "version": "5.0.1", + "dev": true, "requires": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" } }, - "content-type": { - "version": "1.0.4" - }, - "cookie": { - "version": "0.5.0" - }, - "cookie-signature": { - "version": "1.0.6" - }, - "cookiejar": { - "version": "2.1.3" - }, - "core-util-is": { - "version": "1.0.2" - }, - "cors": { - "version": "2.8.5", - "requires": { - "object-assign": "^4", - "vary": "^1" - } + "conventional-commit-types": { + "version": "3.0.0", + "dev": true }, - "crc-32": { - "version": "1.2.2" + "convert-source-map": { + "version": "1.9.0", + "dev": true }, - "create-ecdh": { - "version": "4.0.4", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } + "convert-to-spaces": { + "version": "1.0.2", + "dev": true }, - "create-hash": { - "version": "1.2.0", + "cosmiconfig": { + "version": "8.2.0", + "dev": true, + "optional": true, "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "dev": true, + "optional": true + }, + "js-yaml": { + "version": "4.1.0", + "dev": true, + "optional": true, + "requires": { + "argparse": "^2.0.1" + } + } } }, - "create-hmac": { - "version": "1.1.7", - "requires": { - "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" - } + "create-require": { + "version": "1.1.1", + "dev": true }, "cross-spawn": { "version": "7.0.3", @@ -38628,37 +38605,72 @@ "which": "^2.0.1" } }, - "crypto-browserify": { - "version": "3.12.0", + "crypto-random-string": { + "version": "2.0.0", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "dev": true, "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "array-find-index": "^1.0.1" } }, - "d": { - "version": "1.0.1", + "cz-conventional-changelog": { + "version": "3.3.0", + "dev": true, "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "@commitlint/load": ">6.1.1", + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "dashdash": { - "version": "1.14.1", + "date-time": { + "version": "3.1.0", + "dev": true, "requires": { - "assert-plus": "^1.0.0" + "time-zone": "^1.0.0" } }, "debug": { - "version": "4.3.1", + "version": "4.3.4", "dev": true, "requires": { "ms": "2.1.2" @@ -38670,346 +38682,563 @@ } } }, - "decamelize": { - "version": "4.0.0", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0" - }, "decompress-response": { "version": "3.3.0", + "dev": true, "requires": { "mimic-response": "^1.0.0" } }, - "deep-eql": { - "version": "3.0.1", + "dedent": { + "version": "0.7.0", + "dev": true + }, + "deep-extend": { + "version": "0.6.0", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "dev": true + }, + "deepmerge": { + "version": "4.3.1", + "dev": true + }, + "defaults": { + "version": "1.0.4", "dev": true, "requires": { - "type-detect": "^4.0.0" + "clone": "^1.0.2" } }, "defer-to-connect": { - "version": "1.1.3" + "version": "1.1.3", + "dev": true }, "define-properties": { - "version": "1.1.4", + "version": "1.2.0", + "dev": true, "requires": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, - "delayed-stream": { - "version": "1.0.0" - }, - "depd": { - "version": "2.0.0" - }, - "des.js": { - "version": "1.0.1", + "del": { + "version": "6.1.1", + "dev": true, "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" } }, - "destroy": { - "version": "1.2.0" + "detect-file": { + "version": "1.0.0", + "dev": true + }, + "detect-indent": { + "version": "6.1.0", + "dev": true }, "diff": { - "version": "5.0.0", + "version": "4.0.2", "dev": true }, - "diffie-hellman": { - "version": "5.0.3", + "dir-glob": { + "version": "3.0.1", + "dev": true, "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "path-type": "^4.0.0" } }, - "dom-walk": { - "version": "0.1.2" - }, - "dtrace-provider": { - "version": "0.8.8", - "optional": true, + "doctrine": { + "version": "3.0.0", + "dev": true, "requires": { - "nan": "^2.14.0" + "esutils": "^2.0.2" } }, - "duplexer3": { - "version": "0.1.4" - }, - "ecc-jsbn": { - "version": "0.1.2", + "dot-prop": { + "version": "5.3.0", + "dev": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "is-obj": "^2.0.0" } }, - "ee-first": { - "version": "1.1.1" + "duplexer3": { + "version": "0.1.5", + "dev": true }, - "elliptic": { - "version": "6.5.4", - "requires": { - "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" - } + "emittery": { + "version": "0.8.1", + "dev": true }, "emoji-regex": { "version": "8.0.0", "dev": true }, - "encodeurl": { - "version": "1.0.2" - }, "end-of-stream": { "version": "1.4.4", + "dev": true, "requires": { "once": "^1.4.0" } }, + "enquirer": { + "version": "2.3.6", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "equal-length": { + "version": "1.0.1", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, "es-abstract": { - "version": "1.20.1", + "version": "1.21.2", + "dev": true, "requires": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", + "get-intrinsic": "^1.2.0", "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", + "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "dev": true, + "requires": { + "has": "^1.0.3" } }, "es-to-primitive": { "version": "1.2.1", + "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" } }, - "es5-ext": { - "version": "0.10.61", + "escalade": { + "version": "3.1.1", + "dev": true + }, + "escape-goat": { + "version": "2.1.1", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "dev": true + }, + "eslint": { + "version": "7.32.0", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + }, + "eslint-utils": { + "version": "2.1.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + } + } + }, + "ignore": { + "version": "4.0.6", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "6.15.0", + "dev": true, + "requires": { + "get-stdin": "^6.0.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.7", + "dev": true, + "requires": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.8.0", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-eslint-comments": { + "version": "3.2.0", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } + } + }, + "eslint-plugin-functional": { + "version": "3.7.2", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "^4.9.1", + "array.prototype.flatmap": "^1.2.4", + "deepmerge": "^4.2.2", + "escape-string-regexp": "^4.0.0", + "object.fromentries": "^2.0.3" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.27.5", + "dev": true, "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "doctrine": { + "version": "2.1.0", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "semver": { + "version": "6.3.1", + "dev": true + } } }, - "es6-iterator": { - "version": "2.0.3", + "eslint-scope": { + "version": "5.1.1", + "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } }, - "es6-symbol": { - "version": "3.1.3", + "eslint-utils": { + "version": "3.0.0", + "dev": true, "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" + "eslint-visitor-keys": "^2.0.0" } }, - "escalade": { - "version": "3.1.1", + "eslint-visitor-keys": { + "version": "2.1.0", "dev": true }, - "escape-html": { - "version": "1.0.3" + "espree": { + "version": "7.3.1", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "dev": true + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + } + } }, - "escape-string-regexp": { - "version": "4.0.0", + "esprima": { + "version": "4.0.1", "dev": true }, - "etag": { - "version": "1.8.1" - }, - "eth-ens-namehash": { - "version": "2.0.8", + "esquery": { + "version": "1.5.0", + "dev": true, "requires": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" + "estraverse": "^5.1.0" }, "dependencies": { - "js-sha3": { - "version": "0.5.7" + "estraverse": { + "version": "5.3.0", + "dev": true } } }, - "eth-lib": { - "version": "0.1.29", + "esrecurse": { + "version": "4.3.0", + "dev": true, "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "dev": true + } } }, - "ethereum-bloom-filters": { - "version": "1.0.10", + "estraverse": { + "version": "4.3.0", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "dev": true + }, + "expand-tilde": { + "version": "2.0.2", + "dev": true, "requires": { - "js-sha3": "^0.8.0" + "homedir-polyfill": "^1.0.1" } }, - "ethereum-cryptography": { - "version": "0.1.3", + "external-editor": { + "version": "3.1.0", + "dev": true, "requires": { - "@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" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, - "ethereumjs-util": { - "version": "7.1.4", + "fast-deep-equal": { + "version": "3.1.3", + "dev": true + }, + "fast-diff": { + "version": "1.3.0", + "dev": true + }, + "fast-glob": { + "version": "3.3.0", + "dev": true, "requires": { - "@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" - }, - "dependencies": { - "@types/bn.js": { - "version": "5.1.0", - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.0" - } + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" } }, - "ethjs-unit": { - "version": "0.1.6", + "fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "dev": true + }, + "fast-url-parser": { + "version": "1.1.3", + "dev": true, "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" + "punycode": "^1.3.2" }, "dependencies": { - "bn.js": { - "version": "4.11.6" + "punycode": { + "version": "1.4.1", + "dev": true } } }, - "eventemitter3": { - "version": "4.0.4" - }, - "evp_bytestokey": { - "version": "1.0.3", + "fastq": { + "version": "1.15.0", + "dev": true, "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "express": { - "version": "4.18.1", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } + "reusify": "^1.0.4" } }, - "ext": { - "version": "1.6.0", + "figures": { + "version": "3.2.0", + "dev": true, "requires": { - "type": "^2.5.0" + "escape-string-regexp": "^1.0.5" }, "dependencies": { - "type": { - "version": "2.6.0" + "escape-string-regexp": { + "version": "1.0.5", + "dev": true } } }, - "extend": { - "version": "3.0.2" - }, - "extsprintf": { - "version": "1.3.0" - }, - "fast-deep-equal": { - "version": "3.1.3" - }, - "fast-json-stable-stringify": { - "version": "2.1.0" + "file-entry-cache": { + "version": "6.0.1", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } }, "fill-range": { "version": "7.0.1", @@ -39018,29 +39247,18 @@ "to-regex-range": "^5.0.1" } }, - "finalhandler": { - "version": "1.2.0", + "find-node-modules": { + "version": "2.1.3", + "dev": true, "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } + "findup-sync": "^4.0.0", + "merge": "^2.1.1" } }, + "find-root": { + "version": "1.1.0", + "dev": true + }, "find-up": { "version": "5.0.0", "dev": true, @@ -39049,56 +39267,69 @@ "path-exists": "^4.0.0" } }, - "flat": { - "version": "5.0.2", + "findup-sync": { + "version": "4.0.0", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + } + }, + "flat-cache": { + "version": "3.0.4", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", "dev": true }, "for-each": { "version": "0.3.3", + "dev": true, "requires": { "is-callable": "^1.1.3" } }, - "forever-agent": { - "version": "0.6.1" - }, - "form-data": { - "version": "2.3.3", + "foreground-child": { + "version": "2.0.0", + "dev": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" } }, - "forwarded": { - "version": "0.2.0" - }, - "fresh": { - "version": "0.5.2" - }, "fs-extra": { - "version": "4.0.3", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.7", + "version": "9.1.0", + "dev": true, "requires": { - "minipass": "^2.6.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, "fs.realpath": { "version": "1.0.0", "dev": true }, + "fsevents": { + "version": "2.3.2", + "dev": true, + "optional": true + }, "function-bind": { - "version": "1.1.1" + "version": "1.1.1", + "dev": true }, "function.prototype.name": { "version": "1.1.5", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -39106,52 +39337,55 @@ "functions-have-names": "^1.2.2" } }, + "functional-red-black-tree": { + "version": "1.0.1", + "dev": true + }, "functions-have-names": { - "version": "1.2.3" + "version": "1.2.3", + "dev": true }, "get-caller-file": { "version": "2.0.5", "dev": true }, - "get-func-name": { - "version": "2.0.0", - "dev": true - }, "get-intrinsic": { - "version": "1.1.1", + "version": "1.2.1", + "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" } }, + "get-stdin": { + "version": "6.0.0", + "dev": true + }, "get-stream": { "version": "4.1.0", + "dev": true, "requires": { "pump": "^3.0.0" } }, "get-symbol-description": { "version": "1.0.0", + "dev": true, "requires": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" } }, - "getpass": { - "version": "0.1.7", - "requires": { - "assert-plus": "^1.0.0" - } - }, "glob": { - "version": "7.1.6", + "version": "7.2.3", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } @@ -39163,15 +39397,79 @@ "is-glob": "^4.0.1" } }, - "global": { - "version": "4.4.0", + "global-dirs": { + "version": "0.1.1", + "dev": true, + "optional": true, + "requires": { + "ini": "^1.3.4" + } + }, + "global-modules": { + "version": "1.0.0", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "globals": { + "version": "13.20.0", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globalthis": { + "version": "1.0.3", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "globby": { + "version": "11.1.0", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "dev": true, "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" + "get-intrinsic": "^1.1.3" } }, "got": { "version": "9.6.0", + "dev": true, "requires": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -39187,30 +39485,19 @@ } }, "graceful-fs": { - "version": "4.2.10" - }, - "growl": { - "version": "1.10.5", + "version": "4.2.11", "dev": true }, - "har-schema": { - "version": "2.0.0" - }, - "har-validator": { - "version": "5.1.5", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, "has": { "version": "1.0.3", + "dev": true, "requires": { "function-bind": "^1.1.1" } }, "has-bigints": { - "version": "1.0.2" + "version": "1.0.2", + "dev": true }, "has-flag": { "version": "4.0.0", @@ -39218,130 +39505,192 @@ }, "has-property-descriptors": { "version": "1.0.0", + "dev": true, "requires": { "get-intrinsic": "^1.1.1" } }, - "has-symbol-support-x": { - "version": "1.4.2" + "has-proto": { + "version": "1.0.1", + "dev": true }, "has-symbols": { - "version": "1.0.3" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "requires": { - "has-symbol-support-x": "^1.4.1" - } + "version": "1.0.3", + "dev": true }, "has-tostringtag": { "version": "1.0.0", + "dev": true, "requires": { "has-symbols": "^1.0.2" } }, - "hash-base": { - "version": "3.1.0", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } + "has-yarn": { + "version": "2.1.0", + "dev": true }, - "hash.js": { - "version": "1.1.7", + "homedir-polyfill": { + "version": "1.0.3", + "dev": true, "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "parse-passwd": "^1.0.0" } }, - "he": { - "version": "1.2.0", + "hosted-git-info": { + "version": "2.8.9", "dev": true }, - "hmac-drbg": { - "version": "1.0.1", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } + "html-escaper": { + "version": "2.0.2", + "dev": true }, "http-cache-semantics": { - "version": "4.1.0" + "version": "4.1.1", + "dev": true }, - "http-errors": { - "version": "2.0.0", + "http-proxy-agent": { + "version": "4.0.1", + "dev": true, "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" } }, - "http-https": { - "version": "1.0.0" - }, - "http-signature": { - "version": "1.2.0", + "https-proxy-agent": { + "version": "5.0.1", + "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "agent-base": "6", + "debug": "4" } }, "iconv-lite": { "version": "0.4.24", + "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, - "idna-uts46-hx": { - "version": "2.3.1", + "ieee754": { + "version": "1.2.1", + "dev": true + }, + "ignore": { + "version": "5.2.4", + "dev": true + }, + "ignore-by-default": { + "version": "2.1.0", + "dev": true + }, + "ignore-walk": { + "version": "3.0.4", + "dev": true, "requires": { - "punycode": "2.1.0" + "minimatch": "^3.0.4" + } + }, + "import-fresh": { + "version": "3.3.0", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "dependencies": { - "punycode": { - "version": "2.1.0" + "resolve-from": { + "version": "4.0.0", + "dev": true } } }, - "ieee754": { - "version": "1.2.1" + "import-lazy": { + "version": "2.1.0", + "dev": true + }, + "import-local": { + "version": "3.1.0", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "dev": true }, "inflight": { "version": "1.0.6", - "devOptional": true, + "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { - "version": "2.0.4" + "version": "2.0.4", + "dev": true + }, + "ini": { + "version": "1.3.8", + "dev": true + }, + "inquirer": { + "version": "8.2.5", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + } }, "internal-slot": { - "version": "1.0.3", + "version": "1.0.5", + "dev": true, "requires": { - "get-intrinsic": "^1.1.0", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" } }, - "ipaddr.js": { - "version": "1.9.1" + "irregular-plurals": { + "version": "3.5.0", + "dev": true }, - "is-arguments": { - "version": "1.1.1", + "is-array-buffer": { + "version": "3.0.2", + "dev": true, "requires": { "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" } }, + "is-arrayish": { + "version": "0.2.1", + "dev": true + }, "is-bigint": { "version": "1.0.4", + "dev": true, "requires": { "has-bigints": "^1.0.1" } @@ -39355,37 +39704,49 @@ }, "is-boolean-object": { "version": "1.1.2", + "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" } }, "is-callable": { - "version": "1.2.4" + "version": "1.2.7", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.12.1", + "dev": true, + "requires": { + "has": "^1.0.3" + } }, "is-date-object": { "version": "1.0.5", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, + "is-error": { + "version": "2.2.2", + "dev": true + }, "is-extglob": { "version": "2.1.1", "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", + "version": "3.0.0", "dev": true }, - "is-function": { - "version": "1.0.2" - }, - "is-generator-function": { - "version": "1.0.10", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, "is-glob": { "version": "4.0.3", "dev": true, @@ -39393,11 +39754,38 @@ "is-extglob": "^2.1.1" } }, - "is-hex-prefixed": { - "version": "1.0.0" + "is-installed-globally": { + "version": "0.4.0", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "dependencies": { + "global-dirs": { + "version": "3.0.1", + "dev": true, + "requires": { + "ini": "2.0.0" + } + }, + "ini": { + "version": "2.0.0", + "dev": true + } + } + }, + "is-interactive": { + "version": "1.0.0", + "dev": true }, "is-negative-zero": { - "version": "2.0.2" + "version": "2.0.2", + "dev": true + }, + "is-npm": { + "version": "5.0.0", + "dev": true }, "is-number": { "version": "7.0.0", @@ -39405,435 +39793,664 @@ }, "is-number-object": { "version": "1.0.7", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, - "is-object": { - "version": "1.0.2" + "is-obj": { + "version": "2.0.0", + "dev": true }, - "is-plain-obj": { - "version": "2.1.0", + "is-path-cwd": { + "version": "2.2.0", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "dev": true + }, + "is-promise": { + "version": "4.0.0", "dev": true }, "is-regex": { "version": "1.1.4", + "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" } }, - "is-retry-allowed": { - "version": "1.2.0" - }, "is-shared-array-buffer": { "version": "1.0.2", + "dev": true, "requires": { "call-bind": "^1.0.2" } }, - "is-stream": { - "version": "1.1.0" - }, "is-string": { "version": "1.0.7", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, "is-symbol": { "version": "1.0.4", + "dev": true, "requires": { "has-symbols": "^1.0.2" } }, "is-typed-array": { - "version": "1.1.9", + "version": "1.1.10", + "dev": true, "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", "for-each": "^0.3.3", + "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" } }, "is-typedarray": { - "version": "1.0.0" + "version": "1.0.0", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "dev": true }, "is-weakref": { "version": "1.0.2", + "dev": true, "requires": { "call-bind": "^1.0.2" } }, + "is-windows": { + "version": "1.0.2", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "dev": true + }, "isexe": { "version": "2.0.0", "dev": true }, - "isstream": { - "version": "0.1.2" + "istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true }, - "isurl": { - "version": "1.0.0", + "istanbul-lib-report": { + "version": "3.0.0", + "dev": true, "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" } }, - "js-sha3": { - "version": "0.8.0" + "istanbul-reports": { + "version": "3.1.5", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } }, - "js-yaml": { + "js-string-escape": { + "version": "1.0.1", + "dev": true + }, + "js-tokens": { "version": "4.0.0", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", "dev": true, "requires": { - "argparse": "^2.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, - "jsbn": { - "version": "0.1.1" - }, "json-buffer": { - "version": "3.0.0" + "version": "3.0.0", + "dev": true }, - "json-schema": { - "version": "0.4.0" + "json-parse-better-errors": { + "version": "1.0.2", + "dev": true }, - "json-schema-traverse": { - "version": "0.4.1" + "json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true }, - "json-stringify-safe": { - "version": "5.0.1" + "json-schema-traverse": { + "version": "1.0.0", + "dev": true }, - "jsonfile": { - "version": "4.0.0", - "requires": { - "graceful-fs": "^4.1.6" - } + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true }, - "jsprim": { - "version": "1.4.2", + "json5": { + "version": "1.0.2", + "dev": true, "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" + "minimist": "^1.2.0" } }, - "keccak": { - "version": "3.0.2", + "jsonfile": { + "version": "6.1.0", + "dev": true, "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" } }, "keyv": { "version": "3.1.0", + "dev": true, "requires": { "json-buffer": "3.0.0" } }, - "locate-path": { - "version": "6.0.0", + "latest-version": { + "version": "5.1.0", "dev": true, "requires": { - "p-locate": "^5.0.0" + "package-json": "^6.3.0" } }, - "log-symbols": { - "version": "4.0.0", + "levn": { + "version": "0.4.1", "dev": true, "requires": { - "chalk": "^4.0.0" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, - "loupe": { - "version": "2.3.4", + "lines-and-columns": { + "version": "1.2.4", + "dev": true + }, + "load-json-file": { + "version": "5.3.0", "dev": true, "requires": { - "get-func-name": "^2.0.0" + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "dev": true + }, + "type-fest": { + "version": "0.3.1", + "dev": true + } } }, - "lowercase-keys": { - "version": "1.0.1" - }, - "md5.js": { - "version": "1.3.5", + "locate-path": { + "version": "6.0.0", + "dev": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "p-locate": "^5.0.0" } }, - "media-typer": { - "version": "0.3.0" - }, - "merge-descriptors": { - "version": "1.0.1" + "lodash": { + "version": "4.17.21", + "dev": true }, - "methods": { - "version": "1.1.2" + "lodash.isplainobject": { + "version": "4.0.6", + "dev": true, + "optional": true }, - "miller-rabin": { - "version": "4.0.1", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } + "lodash.map": { + "version": "4.6.0", + "dev": true }, - "mime": { - "version": "1.6.0" + "lodash.merge": { + "version": "4.6.2", + "dev": true }, - "mime-db": { - "version": "1.52.0" + "lodash.mergewith": { + "version": "4.6.2", + "dev": true, + "optional": true }, - "mime-types": { - "version": "2.1.35", - "requires": { - "mime-db": "1.52.0" - } + "lodash.truncate": { + "version": "4.4.2", + "dev": true }, - "mimic-response": { - "version": "1.0.1" + "lodash.uniq": { + "version": "4.5.0", + "dev": true, + "optional": true }, - "min-document": { - "version": "2.19.0", + "log-symbols": { + "version": "4.1.0", + "dev": true, "requires": { - "dom-walk": "^0.1.0" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" } }, - "minimalistic-assert": { - "version": "1.0.1" + "longest": { + "version": "2.0.1", + "dev": true }, - "minimalistic-crypto-utils": { - "version": "1.0.1" + "lowercase-keys": { + "version": "1.0.1", + "dev": true }, - "minimatch": { - "version": "3.0.4", - "devOptional": true, + "lru-cache": { + "version": "6.0.0", + "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "yallist": "^4.0.0" } }, - "minimist": { - "version": "1.2.6" - }, - "minipass": { - "version": "2.9.0", + "make-dir": { + "version": "3.1.0", + "dev": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } } }, - "minizlib": { - "version": "1.3.3", + "make-error": { + "version": "1.3.6", + "dev": true + }, + "map-age-cleaner": { + "version": "0.1.3", + "dev": true, "requires": { - "minipass": "^2.9.0" + "p-defer": "^1.0.0" } }, - "mkdirp": { - "version": "0.5.6", + "matcher": { + "version": "3.0.0", + "dev": true, "requires": { - "minimist": "^1.2.6" + "escape-string-regexp": "^4.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + } } }, - "mkdirp-promise": { - "version": "5.0.1", + "md5-hex": { + "version": "3.0.1", + "dev": true, "requires": { - "mkdirp": "*" + "blueimp-md5": "^2.10.0" } }, - "mocha": { - "version": "8.4.0", + "mem": { + "version": "8.1.1", "dev": true, "requires": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.1", - "debug": "4.3.1", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.0.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.20", - "serialize-javascript": "5.0.1", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" } }, - "mock-fs": { - "version": "4.14.0" + "memorystream": { + "version": "0.3.1", + "dev": true }, - "moment": { - "version": "2.29.3", - "optional": true + "merge": { + "version": "2.1.1", + "dev": true }, - "ms": { - "version": "2.1.3" + "merge2": { + "version": "1.4.1", + "dev": true }, - "multibase": { - "version": "0.6.1", + "micromatch": { + "version": "4.0.5", + "dev": true, "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, - "multicodec": { - "version": "0.5.7", - "requires": { - "varint": "^5.0.0" - } + "mimic-fn": { + "version": "3.1.0", + "dev": true }, - "multihashes": { - "version": "0.4.21", - "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - }, - "dependencies": { - "multibase": { - "version": "0.7.0", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } + "mimic-response": { + "version": "1.0.1", + "dev": true }, - "mv": { - "version": "2.1.1", - "optional": true, + "minimatch": { + "version": "3.1.2", + "dev": true, "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "optional": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "2.4.5", - "optional": true, - "requires": { - "glob": "^6.0.1" - } - } + "brace-expansion": "^1.1.7" } }, - "nan": { - "version": "2.15.0", - "optional": true + "minimist": { + "version": "1.2.7", + "dev": true }, - "nano-json-stream-parser": { - "version": "0.1.2" + "ms": { + "version": "2.1.3", + "dev": true }, - "nanoid": { - "version": "3.1.20", + "mute-stream": { + "version": "0.0.8", "dev": true }, - "ncp": { - "version": "2.0.0", - "optional": true + "natural-compare": { + "version": "1.4.0", + "dev": true }, - "negotiator": { - "version": "0.6.3" + "nice-try": { + "version": "1.0.5", + "dev": true }, - "next-tick": { - "version": "1.1.0" + "node-fetch": { + "version": "2.6.12", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } }, - "node-addon-api": { - "version": "2.0.2" + "node-gyp-build-optional-packages": { + "version": "5.0.3", + "optional": true }, - "node-gyp-build": { - "version": "4.4.0" + "normalize-package-data": { + "version": "2.5.0", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "dev": true + } + } }, "normalize-path": { "version": "3.0.0", "dev": true }, "normalize-url": { - "version": "4.5.1" + "version": "4.5.1", + "dev": true }, - "number-to-bn": { - "version": "1.7.0", + "npm-run-all": { + "version": "4.1.5", + "dev": true, "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" }, "dependencies": { - "bn.js": { - "version": "4.11.6" + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-key": { + "version": "2.0.1", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "semver": { + "version": "5.7.2", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, - "oauth-sign": { - "version": "0.9.0" - }, - "object-assign": { - "version": "4.1.1" - }, "object-inspect": { - "version": "1.12.0" + "version": "1.12.3", + "dev": true }, "object-keys": { - "version": "1.1.1" + "version": "1.1.1", + "dev": true }, "object.assign": { - "version": "4.1.2", + "version": "4.1.4", + "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, - "oboe": { - "version": "2.1.5", + "object.fromentries": { + "version": "2.0.6", + "dev": true, "requires": { - "http-https": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, - "on-finished": { - "version": "2.4.1", + "object.values": { + "version": "1.1.6", + "dev": true, "requires": { - "ee-first": "1.1.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "once": { "version": "1.4.0", + "dev": true, "requires": { "wrappy": "1" } }, + "onetime": { + "version": "5.1.2", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "dev": true + } + } + }, + "optionator": { + "version": "0.9.3", + "dev": true, + "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + } + }, + "ora": { + "version": "5.4.1", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "dev": true + }, "p-cancelable": { - "version": "1.1.0" + "version": "1.1.0", + "dev": true + }, + "p-defer": { + "version": "1.0.0", + "dev": true + }, + "p-event": { + "version": "4.2.0", + "dev": true, + "requires": { + "p-timeout": "^3.1.0" + } }, "p-finally": { - "version": "1.0.0" + "version": "1.0.0", + "dev": true }, "p-limit": { "version": "3.1.0", @@ -39849,27 +40466,64 @@ "p-limit": "^3.0.2" } }, + "p-map": { + "version": "4.0.0", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, "p-timeout": { - "version": "1.2.1", + "version": "3.2.0", + "dev": true, "requires": { "p-finally": "^1.0.0" } }, - "parse-asn1": { - "version": "5.1.6", + "p-try": { + "version": "2.2.0", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "dev": true, "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } } }, - "parse-headers": { - "version": "2.0.5" + "parent-module": { + "version": "1.0.1", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-ms": { + "version": "2.1.0", + "dev": true }, - "parseurl": { - "version": "1.3.3" + "parse-passwd": { + "version": "1.0.0", + "dev": true }, "path-exists": { "version": "4.0.0", @@ -39877,114 +40531,201 @@ }, "path-is-absolute": { "version": "1.0.1", - "devOptional": true + "dev": true }, "path-key": { "version": "3.1.1", "dev": true }, - "path-to-regexp": { - "version": "0.1.7" - }, - "pathval": { - "version": "1.1.1", + "path-parse": { + "version": "1.0.7", "dev": true }, - "pbkdf2": { - "version": "3.1.2", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0" + "path-type": { + "version": "4.0.0", + "dev": true }, "picomatch": { "version": "2.3.1", "dev": true }, - "prepend-http": { - "version": "2.0.0" + "pidtree": { + "version": "0.3.1", + "dev": true }, - "process": { - "version": "0.11.10" + "pify": { + "version": "4.0.1", + "dev": true }, - "proxy-addr": { - "version": "2.0.7", + "pkg-conf": { + "version": "3.1.0", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "dev": true + } + } + }, + "pkg-dir": { + "version": "4.2.0", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "plur": { + "version": "4.0.0", + "dev": true, "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "irregular-plurals": "^3.2.0" } }, - "psl": { - "version": "1.8.0" + "prelude-ls": { + "version": "1.2.1", + "dev": true }, - "public-encrypt": { - "version": "4.0.3", + "prepend-http": { + "version": "2.0.0", + "dev": true + }, + "prettier": { + "version": "2.8.8", + "dev": true + }, + "pretty-ms": { + "version": "7.0.1", + "dev": true, "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "parse-ms": "^2.1.0" } }, + "progress": { + "version": "2.0.3", + "dev": true + }, "pump": { "version": "3.0.0", + "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "punycode": { - "version": "2.1.1" - }, - "qs": { - "version": "6.10.3", - "requires": { - "side-channel": "^1.0.4" - } + "version": "2.3.0", + "dev": true }, - "query-string": { - "version": "5.1.1", + "pupa": { + "version": "2.1.1", + "dev": true, "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "escape-goat": "^2.0.0" } }, - "randombytes": { - "version": "2.1.0", - "requires": { - "safe-buffer": "^5.1.0" - } + "queue-microtask": { + "version": "1.2.3", + "dev": true }, - "randomfill": { - "version": "1.0.4", + "rc": { + "version": "1.2.8", + "dev": true, "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "dev": true + } } }, - "range-parser": { - "version": "1.2.1" - }, - "raw-body": { - "version": "2.5.1", + "read-pkg": { + "version": "5.2.0", + "dev": true, "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "dev": true + } } }, "readable-stream": { - "version": "3.6.0", + "version": "3.6.2", + "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -39992,60 +40733,102 @@ } }, "readdirp": { - "version": "3.5.0", + "version": "3.6.0", "dev": true, "requires": { "picomatch": "^2.2.1" } }, "regexp.prototype.flags": { - "version": "1.4.3", + "version": "1.5.0", + "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" } }, - "request": { - "version": "2.88.2", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.3" - } + "regexpp": { + "version": "3.2.0", + "dev": true + }, + "registry-auth-token": { + "version": "4.2.2", + "dev": true, + "requires": { + "rc": "1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "dev": true, + "requires": { + "rc": "^1.2.8" } }, "require-directory": { "version": "2.1.1", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "dev": true + }, + "resolve": { + "version": "1.22.2", + "dev": true, + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "dev": true + }, + "resolve-global": { + "version": "1.0.0", + "dev": true, + "optional": true, + "requires": { + "global-dirs": "^0.1.1" + } + }, "responselike": { "version": "1.0.2", + "dev": true, "requires": { "lowercase-keys": "^1.0.0" } }, + "restore-cursor": { + "version": "3.1.0", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "reusify": { + "version": "1.0.4", + "dev": true + }, "rimraf": { "version": "3.0.2", "dev": true, @@ -40053,113 +40836,72 @@ "glob": "^7.1.3" } }, - "ripemd160": { - "version": "2.0.2", + "run-async": { + "version": "2.4.1", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "dev": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "queue-microtask": "^1.2.2" } }, - "rlp": { - "version": "2.2.7", + "rxjs": { + "version": "7.8.1", + "dev": true, "requires": { - "bn.js": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } + "tslib": "^2.1.0" } }, "safe-buffer": { - "version": "5.2.1" + "version": "5.2.1", + "dev": true }, - "safe-json-stringify": { - "version": "1.2.0", - "optional": true + "safe-regex-test": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } }, "safer-buffer": { - "version": "2.1.2" - }, - "scrypt-js": { - "version": "3.0.1" + "version": "2.1.2", + "dev": true }, - "secp256k1": { - "version": "4.0.3", + "semver": { + "version": "7.5.4", + "dev": true, "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" + "lru-cache": "^6.0.0" } }, - "send": { - "version": "0.18.0", + "semver-diff": { + "version": "3.1.1", + "dev": true, "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "semver": "^6.3.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0" - } - } + "semver": { + "version": "6.3.1", + "dev": true } } }, - "serialize-javascript": { - "version": "5.0.1", + "serialize-error": { + "version": "7.0.1", "dev": true, "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-static": { - "version": "1.15.0", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "servify": { - "version": "0.1.12", - "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - } - }, - "setimmediate": { - "version": "1.0.5" - }, - "setprototypeof": { - "version": "1.2.0" - }, - "sha.js": { - "version": "2.4.11", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "type-fest": "^0.13.1" + }, + "dependencies": { + "type-fest": { + "version": "0.13.1", + "dev": true + } } }, "shebang-command": { @@ -40173,175 +40915,289 @@ "version": "3.0.0", "dev": true }, + "shell-quote": { + "version": "1.8.1", + "dev": true + }, "side-channel": { "version": "1.0.4", + "dev": true, "requires": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", "object-inspect": "^1.9.0" } }, - "simple-concat": { - "version": "1.0.1" + "signal-exit": { + "version": "3.0.7", + "dev": true + }, + "slash": { + "version": "3.0.0", + "dev": true }, - "simple-get": { - "version": "2.8.2", + "slice-ansi": { + "version": "3.0.0", + "dev": true, "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + } } }, - "sshpk": { - "version": "1.17.0", + "source-map": { + "version": "0.6.1", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "dev": true, "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "statuses": { - "version": "2.0.1" + "spdx-correct": { + "version": "3.2.0", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } }, - "strict-uri-encode": { - "version": "1.1.0" + "spdx-exceptions": { + "version": "2.3.0", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "stream-events": { + "version": "1.0.5", + "dev": true, + "requires": { + "stubs": "^3.0.0" + } }, "string_decoder": { "version": "1.3.0", + "dev": true, "requires": { "safe-buffer": "~5.2.0" } }, - "string-argv": { - "version": "0.3.1", - "dev": true - }, "string-width": { - "version": "2.1.1", + "version": "4.2.3", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.padend": { + "version": "3.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trim": { + "version": "1.2.7", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "string.prototype.trimend": { - "version": "1.0.5", + "version": "1.0.6", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" } }, "string.prototype.trimstart": { - "version": "1.0.5", + "version": "1.0.6", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" } }, "strip-ansi": { - "version": "4.0.0", + "version": "6.0.1", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^5.0.1" } }, - "strip-hex-prefix": { - "version": "1.0.0", - "requires": { - "is-hex-prefixed": "1.0.0" - } + "strip-bom": { + "version": "4.0.0", + "dev": true }, "strip-json-comments": { "version": "3.1.1", "dev": true }, + "stubs": { + "version": "3.0.0", + "dev": true + }, + "supertap": { + "version": "2.0.0", + "dev": true, + "requires": { + "arrify": "^2.0.1", + "indent-string": "^4.0.0", + "js-yaml": "^3.14.0", + "serialize-error": "^7.0.1", + "strip-ansi": "^6.0.0" + } + }, "supports-color": { - "version": "8.1.1", + "version": "7.2.0", "dev": true, "requires": { "has-flag": "^4.0.0" } }, - "swarm-js": { - "version": "0.1.40", - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true + }, + "table": { + "version": "6.8.1", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "dependencies": { - "get-stream": { - "version": "3.0.0" - }, - "got": { - "version": "7.1.0", + "ansi-styles": { + "version": "4.3.0", + "dev": true, "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" + "color-convert": "^2.0.1" } }, - "is-plain-obj": { - "version": "1.1.0" - }, - "p-cancelable": { - "version": "0.3.0" + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } }, - "prepend-http": { - "version": "1.0.4" + "color-name": { + "version": "1.1.4", + "dev": true }, - "url-parse-lax": { - "version": "1.0.0", + "slice-ansi": { + "version": "4.0.0", + "dev": true, "requires": { - "prepend-http": "^1.0.1" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" } } } }, - "tar": { - "version": "4.4.19", + "teeny-request": { + "version": "7.1.1", + "dev": true, "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" } }, - "timed-out": { - "version": "4.0.1" + "temp-dir": { + "version": "2.0.0", + "dev": true + }, + "test-exclude": { + "version": "6.0.0", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "dev": true + }, + "through": { + "version": "2.3.8", + "dev": true + }, + "time-zone": { + "version": "1.0.0", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } }, "to-readable-stream": { - "version": "1.0.0" + "version": "1.0.0", + "dev": true }, "to-regex-range": { "version": "5.0.1", @@ -40350,54 +41206,93 @@ "is-number": "^7.0.0" } }, - "toidentifier": { - "version": "1.0.1" + "tr46": { + "version": "0.0.3", + "dev": true }, - "tough-cookie": { - "version": "2.5.0", + "trim-off-newlines": { + "version": "1.0.3", + "dev": true + }, + "ts-node": { + "version": "9.1.1", + "dev": true, "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" } }, - "tunnel-agent": { - "version": "0.6.0", + "tsconfig-paths": { + "version": "3.14.2", + "dev": true, "requires": { - "safe-buffer": "^5.0.1" + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "dev": true + } } }, - "tweetnacl": { - "version": "0.14.5" + "tslib": { + "version": "2.6.0", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "dev": true + } + } }, - "type": { - "version": "1.2.0" + "type-check": { + "version": "0.4.0", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } }, - "type-detect": { - "version": "4.0.8", + "type-fest": { + "version": "0.20.2", "dev": true }, - "type-is": { - "version": "1.6.18", + "typed-array-length": { + "version": "1.0.4", + "dev": true, "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" } }, "typedarray-to-buffer": { "version": "3.1.5", + "dev": true, "requires": { "is-typedarray": "^1.0.0" } }, "typescript": { - "version": "4.6.4", + "version": "4.9.5", "dev": true }, - "ultron": { - "version": "1.1.1" - }, "unbox-primitive": { "version": "1.0.2", + "dev": true, "requires": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -40405,328 +41300,113 @@ "which-boxed-primitive": "^1.0.2" } }, + "unique-string": { + "version": "2.0.0", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, "universalify": { - "version": "0.1.2" + "version": "2.0.0", + "dev": true }, - "unpipe": { - "version": "1.0.0" + "update-notifier": { + "version": "5.1.0", + "dev": true, + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + } }, "uri-js": { "version": "4.4.1", + "dev": true, "requires": { "punycode": "^2.1.0" } }, "url-parse-lax": { "version": "3.0.0", + "dev": true, "requires": { "prepend-http": "^2.0.0" } }, - "url-set-query": { - "version": "1.0.0" - }, - "url-to-options": { - "version": "1.0.1" - }, - "utf-8-validate": { - "version": "5.0.9", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "utf8": { - "version": "3.0.0" - }, - "util": { - "version": "0.12.4", + "urlgrey": { + "version": "1.0.0", + "dev": true, "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" + "fast-url-parser": "^1.1.3" } }, "util-deprecate": { - "version": "1.0.2" - }, - "utils-merge": { - "version": "1.0.1" + "version": "1.0.2", + "dev": true }, "uuid": { - "version": "3.4.0" - }, - "varint": { - "version": "5.0.2" - }, - "vary": { - "version": "1.1.2" - }, - "verror": { - "version": "1.10.0", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "web3": { - "version": "1.7.3", - "requires": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-bzz": { - "version": "1.7.3", - "requires": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-core": { - "version": "1.7.3", - "requires": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-core-helpers": { - "version": "1.7.3", - "requires": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-method": { - "version": "1.7.3", - "requires": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-promievent": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-core-requestmanager": { - "version": "1.7.3", - "requires": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" - } - }, - "web3-core-subscriptions": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" - } - }, - "web3-eth": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-abi": { - "version": "1.7.3", - "requires": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - } - }, - "web3-eth-accounts": { - "version": "1.7.3", - "requires": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "uuid": { - "version": "3.3.2" - } - } - }, - "web3-eth-contract": { - "version": "1.7.3", - "requires": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-ens": { - "version": "1.7.3", - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - } + "version": "8.3.2", + "dev": true }, - "web3-eth-iban": { - "version": "1.7.3", - "requires": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" - } + "v8-compile-cache": { + "version": "2.3.0", + "dev": true }, - "web3-eth-personal": { - "version": "1.7.3", - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } + "v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true, + "optional": true }, - "web3-net": { - "version": "1.7.3", + "v8-to-istanbul": { + "version": "9.1.0", + "dev": true, "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" } }, - "web3-providers-http": { - "version": "1.7.3", + "validate-npm-package-license": { + "version": "3.0.4", + "dev": true, "requires": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "web3-providers-ipc": { - "version": "1.7.3", + "wcwidth": { + "version": "1.0.1", + "dev": true, "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" + "defaults": "^1.0.3" } }, - "web3-providers-ws": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" - } + "webidl-conversions": { + "version": "3.0.1", + "dev": true }, - "web3-shh": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" - } + "well-known-symbols": { + "version": "2.0.0", + "dev": true }, - "web3-utils": { - "version": "1.7.3", + "whatwg-url": { + "version": "5.0.0", + "dev": true, "requires": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - }, - "websocket": { - "version": "1.0.34", - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, "which": { @@ -40738,6 +41418,7 @@ }, "which-boxed-primitive": { "version": "1.0.2", + "dev": true, "requires": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -40747,25 +41428,26 @@ } }, "which-typed-array": { - "version": "1.1.8", + "version": "1.1.10", + "dev": true, "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", "for-each": "^0.3.3", + "gopd": "^1.0.1", "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" + "is-typed-array": "^1.1.10" } }, - "wide-align": { - "version": "1.1.3", + "widest-line": { + "version": "3.1.0", "dev": true, "requires": { - "string-width": "^1.0.2 || 2" + "string-width": "^4.0.0" } }, - "workerpool": { - "version": "6.1.0", + "word-wrap": { + "version": "1.2.3", "dev": true }, "wrap-ansi": { @@ -40777,93 +41459,51 @@ "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true - }, - "string-width": { - "version": "4.2.3", + "ansi-styles": { + "version": "4.3.0", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "color-convert": "^2.0.1" } }, - "strip-ansi": { - "version": "6.0.1", + "color-convert": { + "version": "2.0.1", "dev": true, "requires": { - "ansi-regex": "^5.0.1" + "color-name": "~1.1.4" } + }, + "color-name": { + "version": "1.1.4", + "dev": true } } }, "wrappy": { - "version": "1.0.2" - }, - "ws": { - "version": "3.3.3", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2" - } - } - }, - "xhr": { - "version": "2.6.0", - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xhr-request": { - "version": "1.1.0", - "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "xhr-request-promise": { - "version": "0.1.3", - "requires": { - "xhr-request": "^1.1.0" - } + "version": "1.0.2", + "dev": true }, - "xhr2-cookies": { - "version": "1.1.0", + "write-file-atomic": { + "version": "3.0.3", + "dev": true, "requires": { - "cookiejar": "^2.1.1" + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, - "xtend": { - "version": "4.0.2" + "xdg-basedir": { + "version": "4.0.0", + "dev": true }, "y18n": { "version": "5.0.8", "dev": true }, - "yaeti": { - "version": "0.0.6" - }, "yallist": { - "version": "3.1.1" + "version": "4.0.0", + "dev": true }, "yargs": { "version": "16.2.0", @@ -40876,550 +41516,1123 @@ "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "dev": true + }, + "yn": { + "version": "3.1.1", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "dev": true + } + } + }, + "@ethereum-sourcify/lib-sourcify": { + "version": "file:packages/lib-sourcify", + "requires": { + "@ethereum-sourcify/bytecode-utils": "*", + "@ethereumjs/blockchain": "^6.2.1", + "@ethereumjs/common": "^3.1.1", + "@ethereumjs/evm": "^1.3.1", + "@ethereumjs/statemanager": "^1.0.4", + "@ethereumjs/util": "^8.0.5", + "@ethereumjs/vm": "^6.4.1", + "@fairdatasociety/bmt-js": "^2.0.1", + "@types/debug": "^4.1.7", + "@types/lru-cache": "^5.1.1", + "@types/mocha": "^10.0.1", + "@typescript-eslint/eslint-plugin": "^4.33.0", + "@typescript-eslint/parser": "^4.33.0", + "abitype": "0.8.0", + "bs58": "^5.0.0", + "c8": "^8.0.0", + "chai": "^4.3.7", + "codecov": "^3.8.3", + "cspell": "^4.2.8", + "cz-conventional-changelog": "^3.3.0", + "eslint": "^7.32.0", + "eslint-config-prettier": "^6.15.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-import": "^2.27.4", + "ethers": "^6.6.2", + "ganache": "^7.7.3", + "gh-pages": "^3.2.3", + "http-status-codes": "^2.2.0", + "isomorphic-fetch": "^3.0.0", + "jszip": "^3.10.1", + "mocha": "^10.2.0", + "npm-run-all": "^4.1.5", + "open-cli": "^6.0.1", + "prettier": "^2.8.2", + "semver": "^7.3.8", + "solc": "^0.8.17", + "standard-version": "^9.5.0", + "ts-node": "^10.9.1", + "typedoc": "^0.24.6", + "typescript": "^5.0.4" + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true + }, + "@adraffy/ens-normalize": { + "version": "1.9.2" + }, + "@babel/code-frame": { + "version": "7.12.11", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.22.5", + "dev": true + }, + "@babel/highlight": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "dev": true + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } }, - "string-width": { - "version": "4.2.3", + "color-convert": { + "version": "1.9.3", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "color-name": "1.1.3" } }, - "strip-ansi": { - "version": "6.0.1", + "color-name": { + "version": "1.1.3", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", "dev": true, "requires": { - "ansi-regex": "^5.0.1" + "has-flag": "^3.0.0" } } } }, - "yargs-parser": { - "version": "20.2.4", + "@bcoe/v8-coverage": { + "version": "0.2.3", "dev": true }, - "yargs-unparser": { - "version": "2.0.0", + "@commitlint/config-validator": { + "version": "17.4.4", "dev": true, + "optional": true, "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" } }, - "yocto-queue": { - "version": "0.1.0", + "@commitlint/execute-rule": { + "version": "17.4.0", + "dev": true, + "optional": true + }, + "@commitlint/load": { + "version": "17.5.0", + "dev": true, + "optional": true, + "requires": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.4.4", + "@commitlint/types": "^17.4.4", + "@types/node": "*", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + } + }, + "@commitlint/resolve-extends": { + "version": "17.4.4", + "dev": true, + "optional": true, + "requires": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + } + }, + "@commitlint/types": { + "version": "17.4.4", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0" + } + }, + "@cspell/dict-aws": { + "version": "1.0.14", "dev": true - } - } - }, - "@ethereum-sourcify/verification": { - "version": "file:services/verification", - "requires": { - "@ethereum-sourcify/core": "*", - "@types/bunyan": "^1.8.6", - "@types/node-fetch": "^2.5.7", - "@types/promise.any": "^2.0.0", - "@types/semver": "^7.3.9", - "bunyan": "^1.8.15", - "ipfs-http-client": "^56.0.3", - "node-fetch": "^2.6.1", - "promise.any": "^2.0.2", - "rimraf": "^3.0.2", - "semver": "^7.3.6", - "solc": "^0.7.4", - "ts-node": "^9.0.0", - "typescript": "^4.0.2", - "web3": "^1.3.0" - }, - "dependencies": { - "@ethereum-sourcify/core": { - "version": "file:services/core", + }, + "@cspell/dict-bash": { + "version": "1.0.18", + "dev": true + }, + "@cspell/dict-companies": { + "version": "1.0.40", + "dev": true + }, + "@cspell/dict-cpp": { + "version": "1.1.40", + "dev": true + }, + "@cspell/dict-cryptocurrencies": { + "version": "1.0.10", + "dev": true + }, + "@cspell/dict-csharp": { + "version": "1.0.11", + "dev": true + }, + "@cspell/dict-css": { + "version": "1.0.13", + "dev": true + }, + "@cspell/dict-django": { + "version": "1.0.26", + "dev": true + }, + "@cspell/dict-dotnet": { + "version": "1.0.32", + "dev": true + }, + "@cspell/dict-elixir": { + "version": "1.0.26", + "dev": true + }, + "@cspell/dict-en_us": { + "version": "1.2.45", + "dev": true + }, + "@cspell/dict-en-gb": { + "version": "1.1.33", + "dev": true + }, + "@cspell/dict-filetypes": { + "version": "1.1.8", + "dev": true + }, + "@cspell/dict-fonts": { + "version": "1.0.14", + "dev": true + }, + "@cspell/dict-fullstack": { + "version": "1.0.39", + "dev": true + }, + "@cspell/dict-golang": { + "version": "1.1.24", + "dev": true + }, + "@cspell/dict-haskell": { + "version": "1.0.13", + "dev": true + }, + "@cspell/dict-html": { + "version": "1.1.9", + "dev": true + }, + "@cspell/dict-html-symbol-entities": { + "version": "1.0.23", + "dev": true + }, + "@cspell/dict-java": { + "version": "1.0.23", + "dev": true + }, + "@cspell/dict-latex": { + "version": "1.0.25", + "dev": true + }, + "@cspell/dict-lorem-ipsum": { + "version": "1.0.22", + "dev": true + }, + "@cspell/dict-lua": { + "version": "1.0.16", + "dev": true + }, + "@cspell/dict-node": { + "version": "1.0.12", + "dev": true + }, + "@cspell/dict-npm": { + "version": "1.0.16", + "dev": true + }, + "@cspell/dict-php": { + "version": "1.0.25", + "dev": true + }, + "@cspell/dict-powershell": { + "version": "1.0.19", + "dev": true + }, + "@cspell/dict-python": { + "version": "1.0.38", + "dev": true + }, + "@cspell/dict-ruby": { + "version": "1.0.15", + "dev": true + }, + "@cspell/dict-rust": { + "version": "1.0.23", + "dev": true + }, + "@cspell/dict-scala": { + "version": "1.0.21", + "dev": true + }, + "@cspell/dict-software-terms": { + "version": "1.0.48", + "dev": true + }, + "@cspell/dict-typescript": { + "version": "1.0.20", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, "requires": { - "@types/bunyan": "^1.8.6", - "@types/cbor": "^5.0.1", - "@types/node-fetch": "^2.5.7", - "@types/rimraf": "^3.0.2", - "@types/semver": "^7.3.10", - "bunyan": "^1.8.15", - "cbor": "^5.1.0", - "directory-tree": "^2.2.4", - "node-fetch": "^2.6.1", - "rimraf": "^3.0.2", - "semver": "^7.3.7", - "typescript": "^4.0.2", - "web3": "^1.3.0" + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@eslint/eslintrc": { + "version": "0.4.3", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" }, "dependencies": { - "@ethereumjs/common": { - "version": "2.6.4", + "ajv": { + "version": "6.12.6", + "dev": true, "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "@ethereumjs/tx": { - "version": "3.5.1", + "ignore": { + "version": "4.0.6", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } + } + }, + "@ethereum-sourcify/bytecode-utils": { + "version": "file:packages/bytecode-utils", + "requires": { + "@ava/typescript": "^1.1.1", + "@ethersproject/bytes": "^5.7.0", + "@types/node": "^18.11.9", + "@typescript-eslint/eslint-plugin": "^4.0.1", + "@typescript-eslint/parser": "^4.0.1", + "ava": "^3.12.1", + "bs58": "^5.0.0", + "c8": "^8.0.0", + "cbor-x": "^1.4.1", + "codecov": "^3.5.0", + "cz-conventional-changelog": "^3.3.0", + "eslint": "^7.8.0", + "eslint-config-prettier": "^6.11.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-functional": "^3.0.2", + "eslint-plugin-import": "^2.22.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.1.1", + "ts-node": "^9.0.0", + "typescript": "^4.9.3" + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true + }, + "@ava/typescript": { + "version": "1.1.1", + "dev": true, "requires": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" + "escape-string-regexp": "^2.0.0" } }, - "@ethersproject/abi": { - "version": "5.0.7", + "@babel/code-frame": { + "version": "7.12.11", + "dev": true, "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" + "@babel/highlight": "^7.10.4" } }, - "@ethersproject/abstract-provider": { - "version": "5.6.0", + "@babel/helper-validator-identifier": { + "version": "7.22.5", + "dev": true + }, + "@babel/highlight": { + "version": "7.22.5", + "dev": true, "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "@ethersproject/abstract-signer": { - "version": "5.6.1", + "@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true + }, + "@cbor-extract/cbor-extract-darwin-arm64": { + "version": "2.1.1", + "optional": true + }, + "@commitlint/config-validator": { + "version": "17.4.4", + "dev": true, + "optional": true, "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" } }, - "@ethersproject/address": { - "version": "5.6.0", + "@commitlint/execute-rule": { + "version": "17.4.0", + "dev": true, + "optional": true + }, + "@commitlint/load": { + "version": "17.5.0", + "dev": true, + "optional": true, "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" + "@commitlint/config-validator": "^17.4.4", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.4.4", + "@commitlint/types": "^17.4.4", + "@types/node": "*", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + }, + "dependencies": { + "cosmiconfig-typescript-loader": { + "version": "4.3.0", + "dev": true, + "optional": true, + "requires": {} + }, + "ts-node": { + "version": "10.9.1", + "dev": true, + "optional": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + } } }, - "@ethersproject/base64": { - "version": "5.6.0", + "@commitlint/resolve-extends": { + "version": "17.4.4", + "dev": true, + "optional": true, "requires": { - "@ethersproject/bytes": "^5.6.0" + "@commitlint/config-validator": "^17.4.4", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" } }, - "@ethersproject/bignumber": { - "version": "5.6.1", + "@commitlint/types": { + "version": "17.4.4", + "dev": true, + "optional": true, "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" + "chalk": "^4.1.0" } }, - "@ethersproject/bytes": { - "version": "5.6.1", + "@concordance/react": { + "version": "2.0.0", + "dev": true, "requires": { - "@ethersproject/logger": "^5.6.0" + "arrify": "^1.0.1" + }, + "dependencies": { + "arrify": { + "version": "1.0.1", + "dev": true + } } }, - "@ethersproject/constants": { - "version": "5.6.0", + "@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "optional": true, "requires": { - "@ethersproject/bignumber": "^5.6.0" + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "optional": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } } }, - "@ethersproject/hash": { - "version": "5.6.0", + "@eslint/eslintrc": { + "version": "0.4.3", + "dev": true, "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ignore": { + "version": "4.0.6", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } } }, - "@ethersproject/keccak256": { - "version": "5.6.0", + "@ethersproject/bytes": { + "version": "5.7.0", "requires": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" + "@ethersproject/logger": "^5.7.0" } }, "@ethersproject/logger": { - "version": "5.6.0" + "version": "5.7.0" }, - "@ethersproject/networks": { - "version": "5.6.2", + "@humanwhocodes/config-array": { + "version": "0.5.0", + "dev": true, "requires": { - "@ethersproject/logger": "^5.6.0" + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" } }, - "@ethersproject/properties": { - "version": "5.6.0", - "requires": { - "@ethersproject/logger": "^5.6.0" - } + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true }, - "@ethersproject/rlp": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } + "@istanbuljs/schema": { + "version": "0.1.3", + "dev": true }, - "@ethersproject/signing-key": { - "version": "5.6.1", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true }, - "@ethersproject/strings": { - "version": "5.6.0", + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, - "@ethersproject/transactions": { - "version": "5.6.0", + "@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" } }, - "@ethersproject/web": { - "version": "5.6.0", + "@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, "requires": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" } }, "@sindresorhus/is": { - "version": "0.14.0" + "version": "0.14.0", + "dev": true }, "@szmarczak/http-timer": { "version": "1.1.2", + "dev": true, "requires": { "defer-to-connect": "^1.0.1" } }, - "@types/bn.js": { - "version": "4.11.6", + "@tootallnate/once": { + "version": "1.1.2", + "dev": true + }, + "@tsconfig/node10": { + "version": "1.0.9", + "dev": true, + "optional": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "optional": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "dev": true, + "optional": true + }, + "@tsconfig/node16": { + "version": "1.0.4", + "dev": true, + "optional": true + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.12", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "dev": true + }, + "@types/node": { + "version": "18.16.19" + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "dev": true, "requires": { - "@types/node": "*" + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" } }, - "@types/bunyan": { - "version": "1.8.8", + "@typescript-eslint/experimental-utils": { + "version": "4.33.0", "dev": true, "requires": { - "@types/node": "*" + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" } }, - "@types/cbor": { - "version": "5.0.1", + "@typescript-eslint/parser": { + "version": "4.33.0", "dev": true, "requires": { - "@types/node": "*" + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" } }, - "@types/glob": { - "version": "7.2.0", + "@typescript-eslint/scope-manager": { + "version": "4.33.0", "dev": true, "requires": { - "@types/minimatch": "*", - "@types/node": "*" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" } }, - "@types/minimatch": { - "version": "3.0.5", + "@typescript-eslint/types": { + "version": "4.33.0", "dev": true }, - "@types/node": { - "version": "17.0.34" - }, - "@types/node-fetch": { - "version": "2.6.1", + "@typescript-eslint/typescript-estree": { + "version": "4.33.0", "dev": true, "requires": { - "@types/node": "*", - "form-data": "^3.0.0" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" } }, - "@types/pbkdf2": { - "version": "3.1.0", + "@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "dev": true, "requires": { - "@types/node": "*" + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" } }, - "@types/rimraf": { - "version": "3.0.2", + "acorn": { + "version": "8.10.0", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", "dev": true, - "requires": { - "@types/glob": "*", - "@types/node": "*" - } + "requires": {} }, - "@types/secp256k1": { - "version": "4.0.3", + "acorn-walk": { + "version": "8.2.0", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "dev": true, "requires": { - "@types/node": "*" + "debug": "4" } }, - "accepts": { - "version": "1.3.8", + "aggregate-error": { + "version": "3.1.0", + "dev": true, "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" } }, "ajv": { - "version": "6.12.6", + "version": "8.12.0", + "dev": true, "requires": { "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } }, - "array-flatten": { - "version": "1.1.1" - }, - "asn1": { - "version": "0.2.6", + "ansi-align": { + "version": "3.0.1", + "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "string-width": "^4.1.0" } }, - "asn1.js": { - "version": "5.4.1", + "ansi-colors": { + "version": "4.1.3", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "dev": true, "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "dev": true + } } }, - "assert-plus": { - "version": "1.0.0" + "ansi-regex": { + "version": "5.0.1", + "dev": true + }, + "ansi-styles": { + "version": "5.2.0", + "dev": true }, - "async-limiter": { - "version": "1.0.1" + "anymatch": { + "version": "3.1.3", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } }, - "asynckit": { - "version": "0.4.0" + "arg": { + "version": "4.1.3", + "dev": true }, - "available-typed-arrays": { - "version": "1.0.5" + "argparse": { + "version": "1.0.10", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } }, - "aws-sign2": { - "version": "0.7.0" + "argv": { + "version": "0.0.2", + "dev": true }, - "aws4": { - "version": "1.11.0" + "array-buffer-byte-length": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } }, - "balanced-match": { - "version": "1.0.2" + "array-find-index": { + "version": "1.0.2", + "dev": true }, - "base-x": { - "version": "3.0.9", + "array-includes": { + "version": "3.1.6", + "dev": true, "requires": { - "safe-buffer": "^5.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" } }, - "base64-js": { - "version": "1.5.1" + "array-union": { + "version": "2.1.0", + "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.2", + "array.prototype.flat": { + "version": "1.3.1", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.1", + "dev": true, "requires": { - "tweetnacl": "^0.14.3" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" } }, - "bignumber.js": { - "version": "9.0.2" + "arrgv": { + "version": "1.0.2", + "dev": true }, - "blakejs": { - "version": "1.2.1" + "arrify": { + "version": "2.0.1", + "dev": true }, - "bluebird": { - "version": "3.7.2" + "astral-regex": { + "version": "2.0.0", + "dev": true }, - "bn.js": { - "version": "4.12.0" + "at-least-node": { + "version": "1.0.0", + "dev": true }, - "body-parser": { - "version": "1.20.0", + "ava": { + "version": "3.15.0", + "dev": true, "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "@concordance/react": "^2.0.0", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "ansi-styles": "^5.0.0", + "arrgv": "^1.0.2", + "arrify": "^2.0.1", + "callsites": "^3.1.0", + "chalk": "^4.1.0", + "chokidar": "^3.4.3", + "chunkd": "^2.0.1", + "ci-info": "^2.0.0", + "ci-parallel-vars": "^1.0.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "code-excerpt": "^3.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.1", + "convert-source-map": "^1.7.0", + "currently-unhandled": "^0.4.1", + "debug": "^4.3.1", + "del": "^6.0.0", + "emittery": "^0.8.0", + "equal-length": "^1.0.0", + "figures": "^3.2.0", + "globby": "^11.0.1", + "ignore-by-default": "^2.0.0", + "import-local": "^3.0.2", + "indent-string": "^4.0.0", + "is-error": "^2.2.2", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "lodash": "^4.17.20", + "matcher": "^3.0.0", + "md5-hex": "^3.0.1", + "mem": "^8.0.0", + "ms": "^2.1.3", + "ora": "^5.2.0", + "p-event": "^4.2.0", + "p-map": "^4.0.0", + "picomatch": "^2.2.2", + "pkg-conf": "^3.1.0", + "plur": "^4.0.0", + "pretty-ms": "^7.0.1", + "read-pkg": "^5.2.0", + "resolve-cwd": "^3.0.0", + "slash": "^3.0.0", + "source-map-support": "^0.5.19", + "stack-utils": "^2.0.3", + "strip-ansi": "^6.0.0", + "supertap": "^2.0.0", + "temp-dir": "^2.0.0", + "trim-off-newlines": "^1.0.1", + "update-notifier": "^5.0.1", + "write-file-atomic": "^3.0.3", + "yargs": "^16.2.0" } }, - "brace-expansion": { - "version": "1.1.11", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } + "available-typed-arrays": { + "version": "1.0.5", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "dev": true + }, + "base-x": { + "version": "4.0.0" }, - "brorand": { - "version": "1.1.0" + "base64-js": { + "version": "1.5.1", + "dev": true }, - "browserify-aes": { - "version": "1.2.0", - "requires": { - "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" - } + "binary-extensions": { + "version": "2.2.0", + "dev": true }, - "browserify-cipher": { - "version": "1.0.1", + "bl": { + "version": "4.1.0", + "dev": true, "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" } }, - "browserify-des": { - "version": "1.0.2", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } + "blueimp-md5": { + "version": "2.19.0", + "dev": true }, - "browserify-rsa": { - "version": "4.1.0", + "boxen": { + "version": "5.1.2", + "dev": true, "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" } }, - "browserify-sign": { - "version": "4.2.1", + "brace-expansion": { + "version": "1.1.11", + "dev": true, "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "bs58": { - "version": "4.0.1", + "braces": { + "version": "3.0.2", + "dev": true, "requires": { - "base-x": "^3.0.2" + "fill-range": "^7.0.1" } }, - "bs58check": { - "version": "2.1.2", + "bs58": { + "version": "5.0.0", "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "base-x": "^4.0.0" } }, "buffer": { "version": "5.7.1", + "dev": true, "requires": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, - "buffer-to-arraybuffer": { - "version": "0.0.5" - }, - "buffer-xor": { - "version": "1.0.3" - }, - "bufferutil": { - "version": "4.0.6", - "requires": { - "node-gyp-build": "^4.3.0" - } + "buffer-from": { + "version": "1.1.2", + "dev": true }, - "bunyan": { - "version": "1.8.15", + "c8": { + "version": "8.0.0", + "dev": true, "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" } }, - "bytes": { - "version": "3.1.2" - }, "cacheable-request": { "version": "6.1.0", + "dev": true, "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -41432,545 +42645,1028 @@ "dependencies": { "get-stream": { "version": "5.2.0", + "dev": true, "requires": { "pump": "^3.0.0" } }, "lowercase-keys": { - "version": "2.0.0" + "version": "2.0.0", + "dev": true } } }, + "cachedir": { + "version": "2.3.0", + "dev": true + }, "call-bind": { "version": "1.0.2", + "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" } }, - "caseless": { - "version": "0.12.0" + "callsites": { + "version": "3.1.0", + "dev": true }, - "cbor": { - "version": "5.2.0", + "camelcase": { + "version": "6.3.0", + "dev": true + }, + "cbor-extract": { + "version": "2.1.1", + "optional": true, "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" + "@cbor-extract/cbor-extract-darwin-arm64": "2.1.1", + "@cbor-extract/cbor-extract-darwin-x64": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm64": "2.1.1", + "@cbor-extract/cbor-extract-linux-x64": "2.1.1", + "@cbor-extract/cbor-extract-win32-x64": "2.1.1", + "node-gyp-build-optional-packages": "5.0.3" } }, - "chownr": { - "version": "1.1.4" + "cbor-x": { + "version": "1.5.3", + "requires": { + "cbor-extract": "^2.1.1" + } }, - "cids": { - "version": "0.7.5", + "chalk": { + "version": "4.1.2", + "dev": true, "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "dependencies": { - "multicodec": { - "version": "1.0.4", + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" + "color-name": "~1.1.4" } + }, + "color-name": { + "version": "1.1.4", + "dev": true } } }, - "cipher-base": { - "version": "1.0.4", + "chardet": { + "version": "0.7.0", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" } }, - "class-is": { - "version": "1.1.0" + "chunkd": { + "version": "2.0.1", + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "dev": true }, - "clone-response": { - "version": "1.0.2", + "ci-parallel-vars": { + "version": "1.0.1", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "dev": true + }, + "clean-yaml-object": { + "version": "0.1.0", + "dev": true + }, + "cli-boxes": { + "version": "2.2.1", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "dev": true, "requires": { - "mimic-response": "^1.0.0" + "restore-cursor": "^3.1.0" } }, - "combined-stream": { - "version": "1.0.8", + "cli-spinners": { + "version": "2.9.0", + "dev": true + }, + "cli-truncate": { + "version": "2.1.0", + "dev": true, "requires": { - "delayed-stream": "~1.0.0" + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" } }, - "concat-map": { - "version": "0.0.1" + "cli-width": { + "version": "3.0.0", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "dev": true }, - "content-disposition": { - "version": "0.5.4", + "clone-response": { + "version": "1.0.3", + "dev": true, "requires": { - "safe-buffer": "5.2.1" + "mimic-response": "^1.0.0" } }, - "content-hash": { - "version": "2.5.2", + "code-excerpt": { + "version": "3.0.0", + "dev": true, "requires": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" + "convert-to-spaces": "^1.0.1" } }, - "content-type": { - "version": "1.0.4" + "codecov": { + "version": "3.8.3", + "dev": true, + "requires": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + } }, - "cookie": { - "version": "0.5.0" + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } }, - "cookie-signature": { - "version": "1.0.6" + "color-name": { + "version": "1.1.3", + "dev": true }, - "cookiejar": { - "version": "2.1.3" + "commitizen": { + "version": "4.3.0", + "dev": true, + "requires": { + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + } + }, + "common-path-prefix": { + "version": "3.0.0", + "dev": true }, - "core-util-is": { - "version": "1.0.2" + "concat-map": { + "version": "0.0.1", + "dev": true }, - "cors": { - "version": "2.8.5", + "concordance": { + "version": "5.0.4", + "dev": true, "requires": { - "object-assign": "^4", - "vary": "^1" + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" } }, - "crc-32": { - "version": "1.2.2" - }, - "create-ecdh": { - "version": "4.0.4", + "configstore": { + "version": "5.0.1", + "dev": true, "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" } }, - "create-hash": { - "version": "1.2.0", + "conventional-commit-types": { + "version": "3.0.0", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "dev": true + }, + "convert-to-spaces": { + "version": "1.0.2", + "dev": true + }, + "cosmiconfig": { + "version": "8.2.0", + "dev": true, + "optional": true, "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "dev": true, + "optional": true + }, + "js-yaml": { + "version": "4.1.0", + "dev": true, + "optional": true, + "requires": { + "argparse": "^2.0.1" + } + } } }, - "create-hmac": { - "version": "1.1.7", + "create-require": { + "version": "1.1.1", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "dev": true, "requires": { - "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" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, - "crypto-browserify": { - "version": "3.12.0", + "crypto-random-string": { + "version": "2.0.0", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "dev": true, "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "array-find-index": "^1.0.1" } }, - "d": { - "version": "1.0.1", + "cz-conventional-changelog": { + "version": "3.3.0", + "dev": true, "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "@commitlint/load": ">6.1.1", + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "dashdash": { - "version": "1.14.1", + "date-time": { + "version": "3.1.0", + "dev": true, "requires": { - "assert-plus": "^1.0.0" + "time-zone": "^1.0.0" } }, "debug": { - "version": "2.6.9", + "version": "4.3.4", + "dev": true, "requires": { - "ms": "2.0.0" + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "dev": true + } } }, - "decode-uri-component": { - "version": "0.2.0" - }, "decompress-response": { "version": "3.3.0", + "dev": true, "requires": { "mimic-response": "^1.0.0" } }, + "dedent": { + "version": "0.7.0", + "dev": true + }, + "deep-extend": { + "version": "0.6.0", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "dev": true + }, + "deepmerge": { + "version": "4.3.1", + "dev": true + }, + "defaults": { + "version": "1.0.4", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, "defer-to-connect": { - "version": "1.1.3" + "version": "1.1.3", + "dev": true }, "define-properties": { - "version": "1.1.4", + "version": "1.2.0", + "dev": true, "requires": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, - "delayed-stream": { - "version": "1.0.0" - }, - "depd": { - "version": "2.0.0" - }, - "des.js": { - "version": "1.0.1", + "del": { + "version": "6.1.1", + "dev": true, "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" } }, - "destroy": { - "version": "1.2.0" + "detect-file": { + "version": "1.0.0", + "dev": true }, - "diffie-hellman": { - "version": "5.0.3", + "detect-indent": { + "version": "6.1.0", + "dev": true + }, + "diff": { + "version": "4.0.2", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "dev": true, "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "path-type": "^4.0.0" } }, - "directory-tree": { - "version": "2.3.1" - }, - "dom-walk": { - "version": "0.1.2" + "doctrine": { + "version": "3.0.0", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } }, - "dtrace-provider": { - "version": "0.8.8", - "optional": true, + "dot-prop": { + "version": "5.3.0", + "dev": true, "requires": { - "nan": "^2.14.0" + "is-obj": "^2.0.0" } }, "duplexer3": { - "version": "0.1.4" + "version": "0.1.5", + "dev": true }, - "ecc-jsbn": { - "version": "0.1.2", + "emittery": { + "version": "0.8.1", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "dev": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "once": "^1.4.0" } }, - "ee-first": { - "version": "1.1.1" - }, - "elliptic": { - "version": "6.5.4", + "enquirer": { + "version": "2.3.6", + "dev": true, "requires": { - "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" + "ansi-colors": "^4.1.1" } }, - "encodeurl": { - "version": "1.0.2" + "equal-length": { + "version": "1.0.1", + "dev": true }, - "end-of-stream": { - "version": "1.4.4", + "error-ex": { + "version": "1.3.2", + "dev": true, "requires": { - "once": "^1.4.0" + "is-arrayish": "^0.2.1" } }, "es-abstract": { - "version": "1.20.1", + "version": "1.21.2", + "dev": true, "requires": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", + "get-intrinsic": "^1.2.0", "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", + "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "dev": true, + "requires": { + "has": "^1.0.3" } }, "es-to-primitive": { "version": "1.2.1", + "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" } }, - "es5-ext": { - "version": "0.10.61", + "escalade": { + "version": "3.1.1", + "dev": true + }, + "escape-goat": { + "version": "2.1.1", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "dev": true + }, + "eslint": { + "version": "7.32.0", + "dev": true, "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + }, + "eslint-utils": { + "version": "2.1.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + } + } + }, + "ignore": { + "version": "4.0.6", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } } }, - "es6-iterator": { - "version": "2.0.3", + "eslint-config-prettier": { + "version": "6.15.0", + "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "get-stdin": "^6.0.0" } }, - "es6-symbol": { - "version": "3.1.3", + "eslint-import-resolver-node": { + "version": "0.3.7", + "dev": true, "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } } }, - "escape-html": { - "version": "1.0.3" - }, - "etag": { - "version": "1.8.1" - }, - "eth-ens-namehash": { - "version": "2.0.8", + "eslint-module-utils": { + "version": "2.8.0", + "dev": true, "requires": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" + "debug": "^3.2.7" }, "dependencies": { - "js-sha3": { - "version": "0.5.7" + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } } } }, - "eth-lib": { - "version": "0.1.29", + "eslint-plugin-eslint-comments": { + "version": "3.2.0", + "dev": true, "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } } }, - "ethereum-bloom-filters": { - "version": "1.0.10", + "eslint-plugin-functional": { + "version": "3.7.2", + "dev": true, "requires": { - "js-sha3": "^0.8.0" + "@typescript-eslint/experimental-utils": "^4.9.1", + "array.prototype.flatmap": "^1.2.4", + "deepmerge": "^4.2.2", + "escape-string-regexp": "^4.0.0", + "object.fromentries": "^2.0.3" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + } } }, - "ethereum-cryptography": { - "version": "0.1.3", + "eslint-plugin-import": { + "version": "2.27.5", + "dev": true, "requires": { - "@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" - } - }, - "ethereumjs-util": { - "version": "7.1.4", - "requires": { - "@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" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" }, "dependencies": { - "@types/bn.js": { - "version": "5.1.0", + "debug": { + "version": "3.2.7", + "dev": true, "requires": { - "@types/node": "*" + "ms": "^2.1.1" } }, - "bn.js": { - "version": "5.2.0" + "doctrine": { + "version": "2.1.0", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "semver": { + "version": "6.3.1", + "dev": true } } }, - "ethjs-unit": { - "version": "0.1.6", + "eslint-scope": { + "version": "5.1.1", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "dev": true + }, + "espree": { + "version": "7.3.1", + "dev": true, "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" }, "dependencies": { - "bn.js": { - "version": "4.11.6" + "acorn": { + "version": "7.4.1", + "dev": true + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true } } }, - "eventemitter3": { - "version": "4.0.4" + "esprima": { + "version": "4.0.1", + "dev": true }, - "evp_bytestokey": { - "version": "1.0.3", + "esquery": { + "version": "1.5.0", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "dev": true, "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "express": { - "version": "4.18.1", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, - "ext": { - "version": "1.6.0", - "requires": { - "type": "^2.5.0" + "estraverse": "^5.2.0" }, "dependencies": { - "type": { - "version": "2.6.0" + "estraverse": { + "version": "5.3.0", + "dev": true } } }, - "extend": { - "version": "3.0.2" + "estraverse": { + "version": "4.3.0", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "dev": true + }, + "expand-tilde": { + "version": "2.0.2", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } }, - "extsprintf": { - "version": "1.3.0" + "external-editor": { + "version": "3.1.0", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } }, "fast-deep-equal": { - "version": "3.1.3" + "version": "3.1.3", + "dev": true + }, + "fast-diff": { + "version": "1.3.0", + "dev": true + }, + "fast-glob": { + "version": "3.3.0", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } }, "fast-json-stable-stringify": { - "version": "2.1.0" + "version": "2.1.0", + "dev": true }, - "finalhandler": { - "version": "1.2.0", + "fast-levenshtein": { + "version": "2.0.6", + "dev": true + }, + "fast-url-parser": { + "version": "1.1.3", + "dev": true, "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "punycode": "^1.3.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "dev": true + } } }, - "for-each": { - "version": "0.3.3", + "fastq": { + "version": "1.15.0", + "dev": true, "requires": { - "is-callable": "^1.1.3" + "reusify": "^1.0.4" } }, - "forever-agent": { - "version": "0.6.1" + "figures": { + "version": "3.2.0", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } + } }, - "form-data": { - "version": "3.0.1", + "file-entry-cache": { + "version": "6.0.1", "dev": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "flat-cache": "^3.0.4" } }, - "forwarded": { - "version": "0.2.0" + "fill-range": { + "version": "7.0.1", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } }, - "fresh": { - "version": "0.5.2" + "find-node-modules": { + "version": "2.1.3", + "dev": true, + "requires": { + "findup-sync": "^4.0.0", + "merge": "^2.1.1" + } }, - "fs-extra": { - "version": "4.0.3", + "find-root": { + "version": "1.1.0", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" } }, - "fs-minipass": { - "version": "1.2.7", + "findup-sync": { + "version": "4.0.0", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + } + }, + "flat-cache": { + "version": "3.0.4", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "foreground-child": { + "version": "2.0.0", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "dev": true, "requires": { - "minipass": "^2.6.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, "fs.realpath": { - "version": "1.0.0" + "version": "1.0.0", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "dev": true, + "optional": true }, "function-bind": { - "version": "1.1.1" + "version": "1.1.1", + "dev": true }, "function.prototype.name": { "version": "1.1.5", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -41978,56 +43674,139 @@ "functions-have-names": "^1.2.2" } }, + "functional-red-black-tree": { + "version": "1.0.1", + "dev": true + }, "functions-have-names": { - "version": "1.2.3" + "version": "1.2.3", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "dev": true }, "get-intrinsic": { - "version": "1.1.1", + "version": "1.2.1", + "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-stdin": { + "version": "6.0.0", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "0.1.1", + "dev": true, + "optional": true, + "requires": { + "ini": "^1.3.4" + } + }, + "global-modules": { + "version": "1.0.0", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" } }, - "get-stream": { - "version": "4.1.0", + "global-prefix": { + "version": "1.0.2", + "dev": true, "requires": { - "pump": "^3.0.0" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, - "get-symbol-description": { - "version": "1.0.0", + "globals": { + "version": "13.20.0", + "dev": true, "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "type-fest": "^0.20.2" } }, - "getpass": { - "version": "0.1.7", + "globalthis": { + "version": "1.0.3", + "dev": true, "requires": { - "assert-plus": "^1.0.0" + "define-properties": "^1.1.3" } }, - "glob": { - "version": "7.2.3", + "globby": { + "version": "11.1.0", + "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" } }, - "global": { - "version": "4.4.0", + "gopd": { + "version": "1.0.1", + "dev": true, "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" + "get-intrinsic": "^1.1.3" } }, "got": { "version": "9.6.0", + "dev": true, "requires": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -42043,1344 +43822,1940 @@ } }, "graceful-fs": { - "version": "4.2.10" - }, - "har-schema": { - "version": "2.0.0" - }, - "har-validator": { - "version": "5.1.5", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } + "version": "4.2.11", + "dev": true }, "has": { "version": "1.0.3", + "dev": true, "requires": { "function-bind": "^1.1.1" } }, "has-bigints": { - "version": "1.0.2" + "version": "1.0.2", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true }, "has-property-descriptors": { "version": "1.0.0", + "dev": true, "requires": { "get-intrinsic": "^1.1.1" } }, - "has-symbol-support-x": { - "version": "1.4.2" + "has-proto": { + "version": "1.0.1", + "dev": true }, "has-symbols": { - "version": "1.0.3" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "requires": { - "has-symbol-support-x": "^1.4.1" - } + "version": "1.0.3", + "dev": true }, "has-tostringtag": { "version": "1.0.0", + "dev": true, "requires": { "has-symbols": "^1.0.2" } }, - "hash-base": { - "version": "3.1.0", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } + "has-yarn": { + "version": "2.1.0", + "dev": true }, - "hash.js": { - "version": "1.1.7", + "homedir-polyfill": { + "version": "1.0.3", + "dev": true, "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "parse-passwd": "^1.0.0" } }, - "hmac-drbg": { - "version": "1.0.1", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } + "hosted-git-info": { + "version": "2.8.9", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "dev": true }, "http-cache-semantics": { - "version": "4.1.0" + "version": "4.1.1", + "dev": true }, - "http-errors": { - "version": "2.0.0", + "http-proxy-agent": { + "version": "4.0.1", + "dev": true, "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" } }, - "http-https": { - "version": "1.0.0" - }, - "http-signature": { - "version": "1.2.0", + "https-proxy-agent": { + "version": "5.0.1", + "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "agent-base": "6", + "debug": "4" } }, "iconv-lite": { "version": "0.4.24", + "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, - "idna-uts46-hx": { - "version": "2.3.1", + "ieee754": { + "version": "1.2.1", + "dev": true + }, + "ignore": { + "version": "5.2.4", + "dev": true + }, + "ignore-by-default": { + "version": "2.1.0", + "dev": true + }, + "ignore-walk": { + "version": "3.0.4", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-fresh": { + "version": "3.3.0", + "dev": true, "requires": { - "punycode": "2.1.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "dependencies": { - "punycode": { - "version": "2.1.0" + "resolve-from": { + "version": "4.0.0", + "dev": true } } }, - "ieee754": { - "version": "1.2.1" + "import-lazy": { + "version": "2.1.0", + "dev": true + }, + "import-local": { + "version": "3.1.0", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "dev": true }, "inflight": { "version": "1.0.6", + "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { - "version": "2.0.4" + "version": "2.0.4", + "dev": true + }, + "ini": { + "version": "1.3.8", + "dev": true + }, + "inquirer": { + "version": "8.2.5", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + } }, "internal-slot": { - "version": "1.0.3", + "version": "1.0.5", + "dev": true, "requires": { - "get-intrinsic": "^1.1.0", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" } }, - "ipaddr.js": { - "version": "1.9.1" + "irregular-plurals": { + "version": "3.5.0", + "dev": true }, - "is-arguments": { - "version": "1.1.1", + "is-array-buffer": { + "version": "3.0.2", + "dev": true, "requires": { "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" } }, + "is-arrayish": { + "version": "0.2.1", + "dev": true + }, "is-bigint": { "version": "1.0.4", + "dev": true, "requires": { "has-bigints": "^1.0.1" } }, + "is-binary-path": { + "version": "2.1.0", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, "is-boolean-object": { "version": "1.1.2", + "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" } }, "is-callable": { - "version": "1.2.4" + "version": "1.2.7", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.12.1", + "dev": true, + "requires": { + "has": "^1.0.3" + } }, "is-date-object": { "version": "1.0.5", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, - "is-function": { - "version": "1.0.2" + "is-error": { + "version": "2.2.2", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "dev": true }, - "is-generator-function": { - "version": "1.0.10", + "is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "dev": true, "requires": { - "has-tostringtag": "^1.0.0" + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.4.0", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "dependencies": { + "global-dirs": { + "version": "3.0.1", + "dev": true, + "requires": { + "ini": "2.0.0" + } + }, + "ini": { + "version": "2.0.0", + "dev": true + } } }, - "is-hex-prefixed": { - "version": "1.0.0" + "is-interactive": { + "version": "1.0.0", + "dev": true }, "is-negative-zero": { - "version": "2.0.2" + "version": "2.0.2", + "dev": true + }, + "is-npm": { + "version": "5.0.0", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "dev": true }, "is-number-object": { "version": "1.0.7", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, - "is-object": { - "version": "1.0.2" + "is-obj": { + "version": "2.0.0", + "dev": true }, - "is-plain-obj": { - "version": "1.1.0" + "is-path-cwd": { + "version": "2.2.0", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "dev": true + }, + "is-promise": { + "version": "4.0.0", + "dev": true }, "is-regex": { "version": "1.1.4", + "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" } }, - "is-retry-allowed": { - "version": "1.2.0" - }, "is-shared-array-buffer": { "version": "1.0.2", + "dev": true, "requires": { "call-bind": "^1.0.2" } }, - "is-stream": { - "version": "1.1.0" - }, "is-string": { "version": "1.0.7", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, "is-symbol": { "version": "1.0.4", + "dev": true, "requires": { "has-symbols": "^1.0.2" } }, "is-typed-array": { - "version": "1.1.9", + "version": "1.1.10", + "dev": true, "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", "for-each": "^0.3.3", + "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" } }, "is-typedarray": { - "version": "1.0.0" + "version": "1.0.0", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "dev": true }, "is-weakref": { "version": "1.0.2", + "dev": true, "requires": { "call-bind": "^1.0.2" } }, - "isstream": { - "version": "0.1.2" - }, - "isurl": { - "version": "1.0.0", + "is-windows": { + "version": "1.0.2", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true + }, + "istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-reports": { + "version": "3.1.5", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "js-string-escape": { + "version": "1.0.1", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-buffer": { + "version": "3.0.0", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true + }, + "json5": { + "version": "1.0.2", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "3.1.0", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "latest-version": { + "version": "5.1.0", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "levn": { + "version": "0.4.1", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "dev": true + }, + "load-json-file": { + "version": "5.3.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "dev": true + }, + "type-fest": { + "version": "0.3.1", + "dev": true + } + } + }, + "locate-path": { + "version": "6.0.0", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "dev": true, + "optional": true + }, + "lodash.map": { + "version": "4.6.0", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.2", + "dev": true, + "optional": true + }, + "lodash.truncate": { + "version": "4.4.2", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "dev": true, + "optional": true + }, + "log-symbols": { + "version": "4.1.0", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "longest": { + "version": "2.0.1", + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "dev": true + }, + "map-age-cleaner": { + "version": "0.1.3", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "matcher": { + "version": "3.0.0", + "dev": true, + "requires": { + "escape-string-regexp": "^4.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + } + } + }, + "md5-hex": { + "version": "3.0.1", + "dev": true, + "requires": { + "blueimp-md5": "^2.10.0" + } + }, + "mem": { + "version": "8.1.1", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + } + }, + "memorystream": { + "version": "0.3.1", + "dev": true + }, + "merge": { + "version": "2.1.1", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mimic-fn": { + "version": "3.1.0", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "dev": true + }, + "ms": { + "version": "2.1.3", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "dev": true + }, + "node-fetch": { + "version": "2.6.12", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-gyp-build-optional-packages": { + "version": "5.0.3", + "optional": true + }, + "normalize-package-data": { + "version": "2.5.0", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "dev": true + }, + "normalize-url": { + "version": "4.5.1", + "dev": true + }, + "npm-run-all": { + "version": "4.1.5", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-key": { + "version": "2.0.1", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "semver": { + "version": "5.7.2", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "object-inspect": { + "version": "1.12.3", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.fromentries": { + "version": "2.0.6", + "dev": true, "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, - "js-sha3": { - "version": "0.8.0" - }, - "jsbn": { - "version": "0.1.1" - }, - "json-buffer": { - "version": "3.0.0" - }, - "json-schema": { - "version": "0.4.0" - }, - "json-schema-traverse": { - "version": "0.4.1" - }, - "json-stringify-safe": { - "version": "5.0.1" - }, - "jsonfile": { - "version": "4.0.0", + "object.values": { + "version": "1.1.6", + "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, - "jsprim": { - "version": "1.4.2", + "once": { + "version": "1.4.0", + "dev": true, "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" + "wrappy": "1" } }, - "keccak": { - "version": "3.0.2", + "onetime": { + "version": "5.1.2", + "dev": true, "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" + "mimic-fn": "^2.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "dev": true + } } }, - "keyv": { - "version": "3.1.0", + "optionator": { + "version": "0.9.3", + "dev": true, "requires": { - "json-buffer": "3.0.0" + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" } }, - "lowercase-keys": { - "version": "1.0.1" - }, - "md5.js": { - "version": "1.3.5", + "ora": { + "version": "5.4.1", + "dev": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" } }, - "media-typer": { - "version": "0.3.0" + "os-tmpdir": { + "version": "1.0.2", + "dev": true }, - "merge-descriptors": { - "version": "1.0.1" + "p-cancelable": { + "version": "1.1.0", + "dev": true }, - "methods": { - "version": "1.1.2" + "p-defer": { + "version": "1.0.0", + "dev": true }, - "miller-rabin": { - "version": "4.0.1", + "p-event": { + "version": "4.2.0", + "dev": true, "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "p-timeout": "^3.1.0" } }, - "mime": { - "version": "1.6.0" - }, - "mime-db": { - "version": "1.52.0" + "p-finally": { + "version": "1.0.0", + "dev": true }, - "mime-types": { - "version": "2.1.35", + "p-limit": { + "version": "3.1.0", + "dev": true, "requires": { - "mime-db": "1.52.0" + "yocto-queue": "^0.1.0" } }, - "mimic-response": { - "version": "1.0.1" - }, - "min-document": { - "version": "2.19.0", + "p-locate": { + "version": "5.0.0", + "dev": true, "requires": { - "dom-walk": "^0.1.0" + "p-limit": "^3.0.2" } }, - "minimalistic-assert": { - "version": "1.0.1" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1" - }, - "minimatch": { - "version": "3.1.2", + "p-map": { + "version": "4.0.0", + "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "aggregate-error": "^3.0.0" } }, - "minimist": { - "version": "1.2.6" - }, - "minipass": { - "version": "2.9.0", + "p-timeout": { + "version": "3.2.0", + "dev": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "p-finally": "^1.0.0" } }, - "minizlib": { - "version": "1.3.3", + "p-try": { + "version": "2.2.0", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "dev": true, "requires": { - "minipass": "^2.9.0" + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } } }, - "mkdirp": { - "version": "0.5.6", + "parent-module": { + "version": "1.0.1", + "dev": true, "requires": { - "minimist": "^1.2.6" + "callsites": "^3.0.0" } }, - "mkdirp-promise": { - "version": "5.0.1", + "parse-json": { + "version": "5.2.0", + "dev": true, "requires": { - "mkdirp": "*" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" } }, - "mock-fs": { - "version": "4.14.0" + "parse-ms": { + "version": "2.1.0", + "dev": true }, - "moment": { - "version": "2.29.3", - "optional": true + "parse-passwd": { + "version": "1.0.0", + "dev": true }, - "ms": { - "version": "2.0.0" + "path-exists": { + "version": "4.0.0", + "dev": true }, - "multibase": { - "version": "0.6.1", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } + "path-is-absolute": { + "version": "1.0.1", + "dev": true }, - "multicodec": { - "version": "0.5.7", - "requires": { - "varint": "^5.0.0" - } + "path-key": { + "version": "3.1.1", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "dev": true }, - "multihashes": { - "version": "0.4.21", + "picomatch": { + "version": "2.3.1", + "dev": true + }, + "pidtree": { + "version": "0.3.1", + "dev": true + }, + "pify": { + "version": "4.0.1", + "dev": true + }, + "pkg-conf": { + "version": "3.1.0", + "dev": true, "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" }, "dependencies": { - "multibase": { - "version": "0.7.0", + "find-up": { + "version": "3.0.0", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "dev": true, "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" + "p-limit": "^2.0.0" } + }, + "path-exists": { + "version": "3.0.0", + "dev": true } } }, - "mv": { - "version": "2.1.1", - "optional": true, + "pkg-dir": { + "version": "4.2.0", + "dev": true, "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" + "find-up": "^4.0.0" }, "dependencies": { - "glob": { - "version": "6.0.4", - "optional": true, + "find-up": { + "version": "4.1.0", + "dev": true, "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "rimraf": { - "version": "2.4.5", - "optional": true, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, "requires": { - "glob": "^6.0.1" + "p-limit": "^2.2.0" } } } }, - "nan": { - "version": "2.15.0", - "optional": true + "plur": { + "version": "4.0.0", + "dev": true, + "requires": { + "irregular-plurals": "^3.2.0" + } }, - "nano-json-stream-parser": { - "version": "0.1.2" + "prelude-ls": { + "version": "1.2.1", + "dev": true }, - "ncp": { + "prepend-http": { "version": "2.0.0", - "optional": true + "dev": true }, - "negotiator": { - "version": "0.6.3" + "prettier": { + "version": "2.8.8", + "dev": true }, - "next-tick": { - "version": "1.1.0" + "pretty-ms": { + "version": "7.0.1", + "dev": true, + "requires": { + "parse-ms": "^2.1.0" + } }, - "node-addon-api": { - "version": "2.0.2" + "progress": { + "version": "2.0.3", + "dev": true }, - "node-fetch": { - "version": "2.6.7", + "pump": { + "version": "3.0.0", + "dev": true, "requires": { - "whatwg-url": "^5.0.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "node-gyp-build": { - "version": "4.4.0" + "punycode": { + "version": "2.3.0", + "dev": true }, - "nofilter": { - "version": "1.0.4" + "pupa": { + "version": "2.1.1", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } }, - "normalize-url": { - "version": "4.5.1" + "queue-microtask": { + "version": "1.2.3", + "dev": true }, - "number-to-bn": { - "version": "1.7.0", + "rc": { + "version": "1.2.8", + "dev": true, "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { - "bn.js": { - "version": "4.11.6" + "strip-json-comments": { + "version": "2.0.1", + "dev": true } } }, - "oauth-sign": { - "version": "0.9.0" - }, - "object-assign": { - "version": "4.1.1" - }, - "object-inspect": { - "version": "1.12.0" - }, - "object-keys": { - "version": "1.1.1" - }, - "object.assign": { - "version": "4.1.2", + "read-pkg": { + "version": "5.2.0", + "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "dev": true + } } }, - "oboe": { - "version": "2.1.5", + "readable-stream": { + "version": "3.6.2", + "dev": true, "requires": { - "http-https": "^1.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, - "on-finished": { - "version": "2.4.1", + "readdirp": { + "version": "3.6.0", + "dev": true, "requires": { - "ee-first": "1.1.1" + "picomatch": "^2.2.1" } }, - "once": { - "version": "1.4.0", + "regexp.prototype.flags": { + "version": "1.5.0", + "dev": true, "requires": { - "wrappy": "1" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" } }, - "p-cancelable": { - "version": "1.1.0" - }, - "p-finally": { - "version": "1.0.0" - }, - "p-timeout": { - "version": "1.2.1", - "requires": { - "p-finally": "^1.0.0" - } + "regexpp": { + "version": "3.2.0", + "dev": true }, - "parse-asn1": { - "version": "5.1.6", + "registry-auth-token": { + "version": "4.2.2", + "dev": true, "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "rc": "1.2.8" } }, - "parse-headers": { - "version": "2.0.5" - }, - "parseurl": { - "version": "1.3.3" - }, - "path-is-absolute": { - "version": "1.0.1" - }, - "path-to-regexp": { - "version": "0.1.7" - }, - "pbkdf2": { - "version": "3.1.2", + "registry-url": { + "version": "5.1.0", + "dev": true, "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "rc": "^1.2.8" } }, - "performance-now": { - "version": "2.1.0" - }, - "prepend-http": { - "version": "2.0.0" + "require-directory": { + "version": "2.1.1", + "dev": true }, - "process": { - "version": "0.11.10" + "require-from-string": { + "version": "2.0.2", + "dev": true }, - "proxy-addr": { - "version": "2.0.7", + "resolve": { + "version": "1.22.2", + "dev": true, "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, - "psl": { - "version": "1.8.0" - }, - "public-encrypt": { - "version": "4.0.3", + "resolve-cwd": { + "version": "3.0.0", + "dev": true, "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "resolve-from": "^5.0.0" } }, - "pump": { - "version": "3.0.0", + "resolve-dir": { + "version": "1.0.1", + "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" } }, - "punycode": { - "version": "2.1.1" + "resolve-from": { + "version": "5.0.0", + "dev": true }, - "qs": { - "version": "6.10.3", + "resolve-global": { + "version": "1.0.0", + "dev": true, + "optional": true, "requires": { - "side-channel": "^1.0.4" + "global-dirs": "^0.1.1" } }, - "query-string": { - "version": "5.1.1", + "responselike": { + "version": "1.0.2", + "dev": true, "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "lowercase-keys": "^1.0.0" } }, - "randombytes": { - "version": "2.1.0", + "restore-cursor": { + "version": "3.1.0", + "dev": true, "requires": { - "safe-buffer": "^5.1.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, - "randomfill": { + "reusify": { "version": "1.0.4", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "dev": true, "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "glob": "^7.1.3" } }, - "range-parser": { - "version": "1.2.1" + "run-async": { + "version": "2.4.1", + "dev": true }, - "raw-body": { - "version": "2.5.1", + "run-parallel": { + "version": "1.2.0", + "dev": true, "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "queue-microtask": "^1.2.2" } }, - "readable-stream": { - "version": "3.6.0", + "rxjs": { + "version": "7.8.1", + "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "tslib": "^2.1.0" } }, - "regexp.prototype.flags": { - "version": "1.4.3", + "safe-buffer": { + "version": "5.2.1", + "dev": true + }, + "safe-regex-test": { + "version": "1.0.0", + "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "request": { - "version": "2.88.2", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "form-data": { - "version": "2.3.3", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.5.3" - } + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" } }, - "responselike": { - "version": "1.0.2", - "requires": { - "lowercase-keys": "^1.0.0" - } + "safer-buffer": { + "version": "2.1.2", + "dev": true }, - "rimraf": { - "version": "3.0.2", + "semver": { + "version": "7.5.4", + "dev": true, "requires": { - "glob": "^7.1.3" + "lru-cache": "^6.0.0" } }, - "ripemd160": { - "version": "2.0.2", + "semver-diff": { + "version": "3.1.1", + "dev": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } } }, - "rlp": { - "version": "2.2.7", + "serialize-error": { + "version": "7.0.1", + "dev": true, "requires": { - "bn.js": "^5.2.0" + "type-fest": "^0.13.1" }, "dependencies": { - "bn.js": { - "version": "5.2.0" + "type-fest": { + "version": "0.13.1", + "dev": true } } }, - "safe-buffer": { - "version": "5.2.1" - }, - "safe-json-stringify": { - "version": "1.2.0", - "optional": true + "shebang-command": { + "version": "2.0.0", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } }, - "safer-buffer": { - "version": "2.1.2" + "shebang-regex": { + "version": "3.0.0", + "dev": true }, - "scrypt-js": { - "version": "3.0.1" + "shell-quote": { + "version": "1.8.1", + "dev": true }, - "secp256k1": { - "version": "4.0.3", + "side-channel": { + "version": "1.0.4", + "dev": true, "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" } }, - "send": { - "version": "0.18.0", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "signal-exit": { + "version": "3.0.7", + "dev": true + }, + "slash": { + "version": "3.0.0", + "dev": true + }, + "slice-ansi": { + "version": "3.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "dependencies": { - "ms": { - "version": "2.1.3" + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true } } }, - "serve-static": { - "version": "1.15.0", + "source-map": { + "version": "0.6.1", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "dev": true, "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "servify": { - "version": "0.1.12", + "spdx-correct": { + "version": "3.2.0", + "dev": true, "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "setimmediate": { - "version": "1.0.5" - }, - "setprototypeof": { - "version": "1.2.0" + "spdx-exceptions": { + "version": "2.3.0", + "dev": true }, - "sha.js": { - "version": "2.4.11", + "spdx-expression-parse": { + "version": "3.0.1", + "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "side-channel": { - "version": "1.0.4", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } + "spdx-license-ids": { + "version": "3.0.13", + "dev": true }, - "simple-concat": { - "version": "1.0.1" + "sprintf-js": { + "version": "1.0.3", + "dev": true }, - "simple-get": { - "version": "2.8.2", + "stack-utils": { + "version": "2.0.6", + "dev": true, "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "escape-string-regexp": "^2.0.0" } }, - "sshpk": { - "version": "1.17.0", + "stream-events": { + "version": "1.0.5", + "dev": true, "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "stubs": "^3.0.0" } }, - "statuses": { - "version": "2.0.1" - }, - "strict-uri-encode": { - "version": "1.1.0" - }, "string_decoder": { "version": "1.3.0", + "dev": true, "requires": { "safe-buffer": "~5.2.0" } }, - "string.prototype.trimend": { - "version": "1.0.5", + "string-width": { + "version": "4.2.3", + "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } }, - "string.prototype.trimstart": { - "version": "1.0.5", + "string.prototype.padend": { + "version": "3.1.4", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" } }, - "strip-hex-prefix": { - "version": "1.0.0", + "string.prototype.trim": { + "version": "1.2.7", + "dev": true, "requires": { - "is-hex-prefixed": "1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, - "swarm-js": { - "version": "0.1.40", + "string.prototype.trimend": { + "version": "1.0.6", + "dev": true, "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - }, - "dependencies": { - "get-stream": { - "version": "3.0.0" - }, - "got": { - "version": "7.1.0", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - }, - "p-cancelable": { - "version": "0.3.0" - }, - "prepend-http": { - "version": "1.0.4" - }, - "url-parse-lax": { - "version": "1.0.0", - "requires": { - "prepend-http": "^1.0.1" - } - } + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, - "tar": { - "version": "4.4.19", + "string.prototype.trimstart": { + "version": "1.0.6", + "dev": true, "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, - "timed-out": { - "version": "4.0.1" - }, - "to-readable-stream": { - "version": "1.0.0" - }, - "toidentifier": { - "version": "1.0.1" - }, - "tough-cookie": { - "version": "2.5.0", + "strip-ansi": { + "version": "6.0.1", + "dev": true, "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "ansi-regex": "^5.0.1" } }, - "tr46": { - "version": "0.0.3" - }, - "tunnel-agent": { - "version": "0.6.0", - "requires": { - "safe-buffer": "^5.0.1" - } + "strip-bom": { + "version": "4.0.0", + "dev": true }, - "tweetnacl": { - "version": "0.14.5" + "strip-json-comments": { + "version": "3.1.1", + "dev": true }, - "type": { - "version": "1.2.0" + "stubs": { + "version": "3.0.0", + "dev": true }, - "type-is": { - "version": "1.6.18", + "supertap": { + "version": "2.0.0", + "dev": true, "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "arrify": "^2.0.1", + "indent-string": "^4.0.0", + "js-yaml": "^3.14.0", + "serialize-error": "^7.0.1", + "strip-ansi": "^6.0.0" } }, - "typedarray-to-buffer": { - "version": "3.1.5", + "supports-color": { + "version": "7.2.0", + "dev": true, "requires": { - "is-typedarray": "^1.0.0" + "has-flag": "^4.0.0" } }, - "typescript": { - "version": "4.6.4", + "supports-preserve-symlinks-flag": { + "version": "1.0.0", "dev": true }, - "ultron": { - "version": "1.1.1" - }, - "unbox-primitive": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "universalify": { - "version": "0.1.2" - }, - "unpipe": { - "version": "1.0.0" - }, - "uri-js": { - "version": "4.4.1", - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse-lax": { - "version": "3.0.0", + "table": { + "version": "6.8.1", + "dev": true, "requires": { - "prepend-http": "^2.0.0" + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + } } }, - "url-set-query": { - "version": "1.0.0" - }, - "url-to-options": { - "version": "1.0.1" - }, - "utf-8-validate": { - "version": "5.0.9", + "teeny-request": { + "version": "7.1.1", + "dev": true, "requires": { - "node-gyp-build": "^4.3.0" + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" } }, - "utf8": { - "version": "3.0.0" + "temp-dir": { + "version": "2.0.0", + "dev": true }, - "util": { - "version": "0.12.4", + "test-exclude": { + "version": "6.0.0", + "dev": true, "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" } }, - "util-deprecate": { - "version": "1.0.2" + "text-table": { + "version": "0.2.0", + "dev": true }, - "utils-merge": { - "version": "1.0.1" + "through": { + "version": "2.3.8", + "dev": true }, - "uuid": { - "version": "3.4.0" + "time-zone": { + "version": "1.0.0", + "dev": true }, - "varint": { - "version": "5.0.2" + "tmp": { + "version": "0.0.33", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } }, - "vary": { - "version": "1.1.2" + "to-readable-stream": { + "version": "1.0.0", + "dev": true }, - "verror": { - "version": "1.10.0", + "to-regex-range": { + "version": "5.0.1", + "dev": true, "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "is-number": "^7.0.0" } }, - "web3": { - "version": "1.7.3", + "tr46": { + "version": "0.0.3", + "dev": true + }, + "trim-off-newlines": { + "version": "1.0.3", + "dev": true + }, + "ts-node": { + "version": "9.1.1", + "dev": true, "requires": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" } }, - "web3-bzz": { - "version": "1.7.3", + "tsconfig-paths": { + "version": "3.14.2", + "dev": true, "requires": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" }, "dependencies": { - "@types/node": { - "version": "12.20.52" + "strip-bom": { + "version": "3.0.0", + "dev": true } } }, - "web3-core": { - "version": "1.7.3", + "tslib": { + "version": "2.6.0", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "dev": true, "requires": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" + "tslib": "^1.8.1" }, "dependencies": { - "@types/node": { - "version": "12.20.52" + "tslib": { + "version": "1.14.1", + "dev": true } } }, - "web3-core-helpers": { - "version": "1.7.3", + "type-check": { + "version": "0.4.0", + "dev": true, "requires": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" + "prelude-ls": "^1.2.1" } }, - "web3-core-method": { - "version": "1.7.3", - "requires": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - } + "type-fest": { + "version": "0.20.2", + "dev": true }, - "web3-core-promievent": { - "version": "1.7.3", + "typed-array-length": { + "version": "1.0.4", + "dev": true, "requires": { - "eventemitter3": "4.0.4" + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" } }, - "web3-core-requestmanager": { - "version": "1.7.3", + "typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, "requires": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" + "is-typedarray": "^1.0.0" } }, - "web3-core-subscriptions": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" - } + "typescript": { + "version": "4.9.5", + "dev": true }, - "web3-eth": { - "version": "1.7.3", + "unbox-primitive": { + "version": "1.0.2", + "dev": true, "requires": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" } }, - "web3-eth-abi": { - "version": "1.7.3", + "unique-string": { + "version": "2.0.0", + "dev": true, "requires": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" + "crypto-random-string": "^2.0.0" } }, - "web3-eth-accounts": { - "version": "1.7.3", - "requires": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "uuid": { - "version": "3.3.2" - } - } + "universalify": { + "version": "2.0.0", + "dev": true }, - "web3-eth-contract": { - "version": "1.7.3", + "update-notifier": { + "version": "5.1.0", + "dev": true, "requires": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" } }, - "web3-eth-ens": { - "version": "1.7.3", + "uri-js": { + "version": "4.4.1", + "dev": true, "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" + "punycode": "^2.1.0" } }, - "web3-eth-iban": { - "version": "1.7.3", + "url-parse-lax": { + "version": "3.0.0", + "dev": true, "requires": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" + "prepend-http": "^2.0.0" } }, - "web3-eth-personal": { - "version": "1.7.3", + "urlgrey": { + "version": "1.0.0", + "dev": true, "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } + "fast-url-parser": "^1.1.3" } }, - "web3-net": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - } + "util-deprecate": { + "version": "1.0.2", + "dev": true }, - "web3-providers-http": { - "version": "1.7.3", - "requires": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" - } + "uuid": { + "version": "8.3.2", + "dev": true }, - "web3-providers-ipc": { - "version": "1.7.3", - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" - } + "v8-compile-cache": { + "version": "2.3.0", + "dev": true + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true, + "optional": true }, - "web3-providers-ws": { - "version": "1.7.3", + "v8-to-istanbul": { + "version": "9.1.0", + "dev": true, "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" } }, - "web3-shh": { - "version": "1.7.3", + "validate-npm-package-license": { + "version": "3.0.4", + "dev": true, "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "web3-utils": { - "version": "1.7.3", + "wcwidth": { + "version": "1.0.1", + "dev": true, "requires": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "defaults": "^1.0.3" } }, "webidl-conversions": { - "version": "3.0.1" + "version": "3.0.1", + "dev": true }, - "websocket": { - "version": "1.0.34", - "requires": { - "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" - } + "well-known-symbols": { + "version": "2.0.0", + "dev": true }, "whatwg-url": { "version": "5.0.0", + "dev": true, "requires": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, + "which": { + "version": "2.0.2", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, "which-boxed-primitive": { "version": "1.0.2", + "dev": true, "requires": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -43390,1425 +45765,3488 @@ } }, "which-typed-array": { - "version": "1.1.8", + "version": "1.1.10", + "dev": true, "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", "for-each": "^0.3.3", + "gopd": "^1.0.1", "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" + "is-typed-array": "^1.1.10" } }, - "wrappy": { - "version": "1.0.2" + "widest-line": { + "version": "3.1.0", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } }, - "ws": { - "version": "3.3.3", + "word-wrap": { + "version": "1.2.3", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "dev": true, "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { - "safe-buffer": { - "version": "5.1.2" + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true } } }, - "xhr": { - "version": "2.6.0", - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } + "wrappy": { + "version": "1.0.2", + "dev": true }, - "xhr-request": { - "version": "1.1.0", + "write-file-atomic": { + "version": "3.0.3", + "dev": true, "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, - "xhr-request-promise": { - "version": "0.1.3", - "requires": { - "xhr-request": "^1.1.0" - } + "xdg-basedir": { + "version": "4.0.0", + "dev": true }, - "xhr2-cookies": { - "version": "1.1.0", + "y18n": { + "version": "5.0.8", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "dev": true, "requires": { - "cookiejar": "^2.1.1" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } }, - "xtend": { - "version": "4.0.2" + "yargs-parser": { + "version": "20.2.9", + "dev": true }, - "yaeti": { - "version": "0.0.6" + "yn": { + "version": "3.1.1", + "dev": true }, - "yallist": { - "version": "3.1.1" + "yocto-queue": { + "version": "0.1.0", + "dev": true + } + } + }, + "@ethereumjs/block": { + "version": "4.3.0", + "requires": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/trie": "^5.1.0", + "@ethereumjs/tx": "^4.2.0", + "@ethereumjs/util": "^8.1.0", + "ethereum-cryptography": "^2.0.0" + } + }, + "@ethereumjs/blockchain": { + "version": "6.3.0", + "requires": { + "@ethereumjs/block": "^4.3.0", + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/ethash": "^2.1.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/trie": "^5.1.0", + "@ethereumjs/tx": "^4.2.0", + "@ethereumjs/util": "^8.1.0", + "abstract-level": "^1.0.3", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.0.0", + "level": "^8.0.0", + "lru-cache": "^5.1.1", + "memory-level": "^1.0.0" + } + }, + "@ethereumjs/common": { + "version": "3.2.0", + "requires": { + "@ethereumjs/util": "^8.1.0", + "crc-32": "^1.2.0" + } + }, + "@ethereumjs/ethash": { + "version": "2.1.0", + "requires": { + "@ethereumjs/block": "^4.3.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "abstract-level": "^1.0.3", + "bigint-crypto-utils": "^3.2.2", + "ethereum-cryptography": "^2.0.0" + } + }, + "@ethereumjs/evm": { + "version": "1.4.0", + "requires": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/tx": "^4.2.0", + "@ethereumjs/util": "^8.1.0", + "@ethersproject/providers": "^5.7.1", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.0.0", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + } + }, + "@ethereumjs/rlp": { + "version": "4.0.1" + }, + "@ethereumjs/statemanager": { + "version": "1.1.0", + "requires": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.0.0", + "ethers": "^5.7.1", + "js-sdsl": "^4.1.4" + }, + "dependencies": { + "ethers": { + "version": "5.7.2", + "requires": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + } + } + }, + "@ethereumjs/trie": { + "version": "5.1.0", + "requires": { + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "@types/readable-stream": "^2.3.13", + "ethereum-cryptography": "^2.0.0", + "readable-stream": "^3.6.0" + } + }, + "@ethereumjs/tx": { + "version": "4.2.0", + "requires": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "ethereum-cryptography": "^2.0.0" + } + }, + "@ethereumjs/util": { + "version": "8.1.0", + "requires": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + } + }, + "@ethereumjs/vm": { + "version": "6.5.0", + "requires": { + "@ethereumjs/block": "^4.3.0", + "@ethereumjs/blockchain": "^6.3.0", + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/evm": "^1.4.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/statemanager": "^1.1.0", + "@ethereumjs/trie": "^5.1.0", + "@ethereumjs/tx": "^4.2.0", + "@ethereumjs/util": "^8.1.0", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.0.0", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + } + }, + "@ethersproject/abi": { + "version": "5.7.0", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.7.0", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.7.0", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/address": { + "version": "5.7.0", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "@ethersproject/base64": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "@ethersproject/basex": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "@ethersproject/bytes": { + "version": "5.7.0", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/constants": { + "version": "5.7.0", + "requires": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "@ethersproject/contracts": { + "version": "5.7.0", + "requires": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "@ethersproject/hash": { + "version": "5.7.0", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/hdnode": { + "version": "5.7.0", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/json-wallets": { + "version": "5.7.0", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + }, + "dependencies": { + "aes-js": { + "version": "3.0.0" + } + } + }, + "@ethersproject/keccak256": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "@ethersproject/logger": { + "version": "5.7.0" + }, + "@ethersproject/networks": { + "version": "5.7.1", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/pbkdf2": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "@ethersproject/properties": { + "version": "5.7.0", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/providers": { + "version": "5.7.2", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "@ethersproject/random": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/rlp": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/sha2": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "@ethersproject/signing-key": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "@ethersproject/solidity": { + "version": "5.7.0", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/strings": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/transactions": { + "version": "5.7.0", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "@ethersproject/units": { + "version": "5.7.0", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/wallet": { + "version": "5.7.0", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/web": { + "version": "5.7.1", + "requires": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/wordlists": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@fairdatasociety/bmt-js": { + "version": "2.1.0" + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true + }, + "@hutson/parse-repository-url": { + "version": "3.0.2", + "dev": true + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@noble/curves": { + "version": "1.1.0", + "requires": { + "@noble/hashes": "1.3.1" + } + }, + "@noble/hashes": { + "version": "1.3.1" + }, + "@noble/secp256k1": { + "version": "1.7.1" + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@scure/base": { + "version": "1.1.1" + }, + "@scure/bip32": { + "version": "1.3.1", + "requires": { + "@noble/curves": "~1.1.0", + "@noble/hashes": "~1.3.1", + "@scure/base": "~1.1.0" + } + }, + "@scure/bip39": { + "version": "1.2.1", + "requires": { + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" + } + }, + "@tokenizer/token": { + "version": "0.3.0", + "dev": true + }, + "@tootallnate/once": { + "version": "1.1.2", + "dev": true + }, + "@tsconfig/node10": { + "version": "1.0.9", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.4", + "dev": true + }, + "@types/debug": { + "version": "4.1.8", + "dev": true, + "requires": { + "@types/ms": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.12", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "dev": true + }, + "@types/lru-cache": { + "version": "5.1.1", + "dev": true + }, + "@types/minimist": { + "version": "1.2.2", + "dev": true + }, + "@types/mocha": { + "version": "10.0.1", + "dev": true + }, + "@types/ms": { + "version": "0.7.31", + "dev": true + }, + "@types/node": { + "version": "20.4.1" + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "dev": true + }, + "@types/readable-stream": { + "version": "2.3.15", + "requires": { + "@types/node": "*", + "safe-buffer": "~5.1.1" + } + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + } + }, + "@typescript-eslint/types": { + "version": "4.33.0", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + } + }, + "abitype": { + "version": "0.8.0", + "requires": {} + }, + "abstract-level": { + "version": "1.0.3", + "requires": { + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" + } + }, + "acorn": { + "version": "7.4.1", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "dev": true + }, + "add-stream": { + "version": "1.0.0", + "dev": true + }, + "aes-js": { + "version": "4.0.0-beta.5" + }, + "agent-base": { + "version": "6.0.2", + "dev": true, + "requires": { + "debug": "4" + } + }, + "ajv": { + "version": "8.12.0", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ansi-colors": { + "version": "4.1.3", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "dev": true } } }, - "@ethereumjs/common": { - "version": "2.6.4", + "ansi-regex": { + "version": "5.0.1", + "dev": true + }, + "ansi-sequence-parser": { + "version": "1.1.0", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "argv": { + "version": "0.0.2", + "dev": true + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "dev": true, "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" } }, - "@ethereumjs/tx": { - "version": "3.5.1", + "array-ify": { + "version": "1.0.0", + "dev": true + }, + "array-includes": { + "version": "3.1.6", + "dev": true, "requires": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" } }, - "@ethersproject/abi": { - "version": "5.0.7", + "array-timsort": { + "version": "1.0.3", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "dev": true + }, + "array.prototype.flat": { + "version": "1.3.1", + "dev": true, "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" } }, - "@ethersproject/abstract-provider": { - "version": "5.6.0", + "array.prototype.flatmap": { + "version": "1.3.1", + "dev": true, "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" } }, - "@ethersproject/abstract-signer": { - "version": "5.6.1", + "arrify": { + "version": "1.0.1", + "dev": true + }, + "assertion-error": { + "version": "1.1.0", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "dev": true + }, + "async": { + "version": "2.6.4", + "dev": true, "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" + "lodash": "^4.17.14" } }, - "@ethersproject/address": { - "version": "5.6.0", + "at-least-node": { + "version": "1.0.0", + "dev": true + }, + "available-typed-arrays": { + "version": "1.0.5", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "dev": true + }, + "base-x": { + "version": "4.0.0" + }, + "base64-js": { + "version": "1.5.1" + }, + "bech32": { + "version": "1.1.4" + }, + "bigint-crypto-utils": { + "version": "3.3.0" + }, + "binary-extensions": { + "version": "2.2.0", + "dev": true + }, + "bl": { + "version": "4.1.0", + "dev": true, "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } } }, - "@ethersproject/base64": { - "version": "5.6.0", + "bn.js": { + "version": "5.2.1" + }, + "brace-expansion": { + "version": "1.1.11", + "dev": true, "requires": { - "@ethersproject/bytes": "^5.6.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "@ethersproject/bignumber": { - "version": "5.6.1", + "braces": { + "version": "3.0.2", + "dev": true, "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" + "fill-range": "^7.0.1" } }, - "@ethersproject/bytes": { - "version": "5.6.1", + "brorand": { + "version": "1.1.0" + }, + "browser-level": { + "version": "1.0.1", "requires": { - "@ethersproject/logger": "^5.6.0" + "abstract-level": "^1.0.2", + "catering": "^2.1.1", + "module-error": "^1.0.2", + "run-parallel-limit": "^1.1.0" } }, - "@ethersproject/constants": { - "version": "5.6.0", + "browser-stdout": { + "version": "1.3.1", + "dev": true + }, + "bs58": { + "version": "5.0.0", "requires": { - "@ethersproject/bignumber": "^5.6.0" + "base-x": "^4.0.0" } }, - "@ethersproject/hash": { - "version": "5.6.0", + "buffer": { + "version": "6.0.3", "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "@ethersproject/keccak256": { - "version": "5.6.0", + "buffer-from": { + "version": "1.1.2", + "dev": true + }, + "c8": { + "version": "8.0.0", + "dev": true, "requires": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" } }, - "@ethersproject/logger": { - "version": "5.6.0" + "cachedir": { + "version": "2.3.0", + "dev": true }, - "@ethersproject/networks": { - "version": "5.6.2", + "call-bind": { + "version": "1.0.2", + "dev": true, "requires": { - "@ethersproject/logger": "^5.6.0" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" } }, - "@ethersproject/properties": { - "version": "5.6.0", + "callsites": { + "version": "3.1.0", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "dev": true, "requires": { - "@ethersproject/logger": "^5.6.0" + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" } }, - "@ethersproject/rlp": { - "version": "5.6.0", + "catering": { + "version": "2.1.1" + }, + "chai": { + "version": "4.3.7", + "dev": true, "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" } }, - "@ethersproject/signing-key": { - "version": "5.6.1", + "chalk": { + "version": "4.1.2", + "dev": true, "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "@ethersproject/strings": { - "version": "5.6.0", + "chardet": { + "version": "0.7.0", + "dev": true + }, + "check-error": { + "version": "1.0.2", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "dev": true, "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" } }, - "@ethersproject/transactions": { - "version": "5.6.0", + "classic-level": { + "version": "1.3.0", "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" + "abstract-level": "^1.0.2", + "catering": "^2.1.0", + "module-error": "^1.0.1", + "napi-macros": "^2.2.2", + "node-gyp-build": "^4.3.0" } }, - "@ethersproject/web": { - "version": "5.6.0", + "cli-cursor": { + "version": "3.1.0", + "dev": true, "requires": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "restore-cursor": "^3.1.0" } }, - "@ipld/dag-cbor": { - "version": "7.0.1", + "cli-spinners": { + "version": "2.9.0", + "dev": true + }, + "cli-width": { + "version": "3.0.0", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "dev": true, "requires": { - "cborg": "^1.6.0", - "multiformats": "^9.5.4" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "@ipld/dag-json": { - "version": "8.0.9", + "clone": { + "version": "1.0.4", + "dev": true + }, + "codecov": { + "version": "3.8.3", + "dev": true, "requires": { - "cborg": "^1.5.4", - "multiformats": "^9.5.4" + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" } }, - "@ipld/dag-pb": { - "version": "2.1.16", + "color-convert": { + "version": "2.0.1", + "dev": true, "requires": { - "multiformats": "^9.5.4" + "color-name": "~1.1.4" } }, - "@protobufjs/aspromise": { - "version": "1.1.2" + "color-name": { + "version": "1.1.4", + "dev": true }, - "@protobufjs/base64": { - "version": "1.1.2" + "command-exists": { + "version": "1.2.9" }, - "@protobufjs/codegen": { - "version": "2.0.4" + "commander": { + "version": "7.2.0", + "dev": true }, - "@protobufjs/eventemitter": { - "version": "1.1.0" + "comment-json": { + "version": "4.2.3", + "dev": true, + "requires": { + "array-timsort": "^1.0.3", + "core-util-is": "^1.0.3", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" + } }, - "@protobufjs/fetch": { - "version": "1.1.0", + "commitizen": { + "version": "4.3.0", + "dev": true, + "requires": { + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + } + }, + "commondir": { + "version": "1.0.1", + "dev": true + }, + "compare-func": { + "version": "2.0.0", + "dev": true, "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" } }, - "@protobufjs/float": { - "version": "1.0.2" + "concat-map": { + "version": "0.0.1", + "dev": true }, - "@protobufjs/inquire": { - "version": "1.1.0" + "concat-stream": { + "version": "2.0.0", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } }, - "@protobufjs/path": { - "version": "1.1.2" + "configstore": { + "version": "5.0.1", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } }, - "@protobufjs/pool": { - "version": "1.1.0" + "conventional-changelog": { + "version": "3.1.25", + "dev": true, + "requires": { + "conventional-changelog-angular": "^5.0.12", + "conventional-changelog-atom": "^2.0.8", + "conventional-changelog-codemirror": "^2.0.8", + "conventional-changelog-conventionalcommits": "^4.5.0", + "conventional-changelog-core": "^4.2.1", + "conventional-changelog-ember": "^2.0.9", + "conventional-changelog-eslint": "^3.0.9", + "conventional-changelog-express": "^2.0.6", + "conventional-changelog-jquery": "^3.0.11", + "conventional-changelog-jshint": "^2.0.9", + "conventional-changelog-preset-loader": "^2.3.4" + } + }, + "conventional-changelog-angular": { + "version": "5.0.13", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + } }, - "@protobufjs/utf8": { - "version": "1.1.0" + "conventional-changelog-atom": { + "version": "2.0.8", + "dev": true, + "requires": { + "q": "^1.5.1" + } }, - "@sindresorhus/is": { - "version": "0.14.0" + "conventional-changelog-codemirror": { + "version": "2.0.8", + "dev": true, + "requires": { + "q": "^1.5.1" + } }, - "@szmarczak/http-timer": { - "version": "1.1.2", + "conventional-changelog-config-spec": { + "version": "2.1.0", + "dev": true + }, + "conventional-changelog-conventionalcommits": { + "version": "4.6.3", + "dev": true, "requires": { - "defer-to-connect": "^1.0.1" + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" } }, - "@types/bn.js": { - "version": "4.11.6", + "conventional-changelog-core": { + "version": "4.2.4", + "dev": true, "requires": { - "@types/node": "*" + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^4.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "hosted-git-info": { + "version": "4.1.0", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "p-limit": { + "version": "1.3.0", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "path-exists": { + "version": "3.0.0", + "dev": true + }, + "read-pkg-up": { + "version": "3.0.0", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "dev": true + } } }, - "@types/bunyan": { - "version": "1.8.8", + "conventional-changelog-ember": { + "version": "2.0.9", "dev": true, "requires": { - "@types/node": "*" + "q": "^1.5.1" } }, - "@types/long": { - "version": "4.0.2" + "conventional-changelog-eslint": { + "version": "3.0.9", + "dev": true, + "requires": { + "q": "^1.5.1" + } }, - "@types/minimatch": { - "version": "3.0.5" + "conventional-changelog-express": { + "version": "2.0.6", + "dev": true, + "requires": { + "q": "^1.5.1" + } }, - "@types/node": { - "version": "17.0.34" + "conventional-changelog-jquery": { + "version": "3.0.11", + "dev": true, + "requires": { + "q": "^1.5.1" + } }, - "@types/node-fetch": { - "version": "2.6.1", + "conventional-changelog-jshint": { + "version": "2.0.9", "dev": true, "requires": { - "@types/node": "*", - "form-data": "^3.0.0" + "compare-func": "^2.0.0", + "q": "^1.5.1" } }, - "@types/pbkdf2": { - "version": "3.1.0", + "conventional-changelog-preset-loader": { + "version": "2.3.4", + "dev": true + }, + "conventional-changelog-writer": { + "version": "5.0.1", + "dev": true, "requires": { - "@types/node": "*" + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "4.1.0", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "meow": { + "version": "8.1.2", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "semver": { + "version": "6.3.1", + "dev": true + }, + "type-fest": { + "version": "0.18.1", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true + } } }, - "@types/promise.any": { - "version": "2.0.0", + "conventional-commit-types": { + "version": "3.0.0", "dev": true }, - "@types/secp256k1": { - "version": "4.0.3", + "conventional-commits-filter": { + "version": "2.0.7", + "dev": true, "requires": { - "@types/node": "*" + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" } }, - "accepts": { - "version": "1.3.8", + "conventional-commits-parser": { + "version": "3.2.4", + "dev": true, "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "4.1.0", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "meow": { + "version": "8.1.2", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "type-fest": { + "version": "0.18.1", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true + } } }, - "ajv": { - "version": "6.12.6", + "conventional-recommended-bump": { + "version": "6.1.0", + "dev": true, "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.3.4", + "conventional-commits-filter": "^2.0.7", + "conventional-commits-parser": "^3.2.0", + "git-raw-commits": "^2.0.8", + "git-semver-tags": "^4.1.1", + "meow": "^8.0.0", + "q": "^1.5.1" + }, + "dependencies": { + "hosted-git-info": { + "version": "4.1.0", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "meow": { + "version": "8.1.2", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "type-fest": { + "version": "0.18.1", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true + } } }, - "any-signal": { - "version": "3.0.1" + "convert-source-map": { + "version": "1.9.0", + "dev": true + }, + "core-util-is": { + "version": "1.0.3" + }, + "cosmiconfig": { + "version": "8.2.0", + "dev": true, + "optional": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "dev": true, + "optional": true + }, + "js-yaml": { + "version": "4.1.0", + "dev": true, + "optional": true, + "requires": { + "argparse": "^2.0.1" + } + } + } + }, + "cosmiconfig-typescript-loader": { + "version": "4.3.0", + "dev": true, + "optional": true, + "requires": {} + }, + "crc-32": { + "version": "1.2.2" + }, + "create-require": { + "version": "1.1.1", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } }, - "arg": { - "version": "4.1.3", + "crypto-random-string": { + "version": "2.0.0", "dev": true }, - "array-flatten": { - "version": "1.1.1" - }, - "array.prototype.map": { - "version": "1.0.4", + "cspell": { + "version": "4.2.8", + "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" + "chalk": "^4.1.0", + "commander": "^7.0.0", + "comment-json": "^4.0.6", + "cspell-glob": "^0.1.25", + "cspell-lib": "^4.3.12", + "fs-extra": "^9.1.0", + "gensequence": "^3.1.1", + "get-stdin": "^8.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" } }, - "asn1": { - "version": "0.2.6", + "cspell-glob": { + "version": "0.1.25", + "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "micromatch": "^4.0.2" } }, - "asn1.js": { - "version": "5.4.1", + "cspell-io": { + "version": "4.1.7", + "dev": true, "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" + "iconv-lite": "^0.6.2", + "iterable-to-stream": "^1.0.1" } }, - "assert-plus": { - "version": "1.0.0" - }, - "async-limiter": { - "version": "1.0.1" - }, - "asynckit": { - "version": "0.4.0" - }, - "available-typed-arrays": { - "version": "1.0.5" - }, - "aws-sign2": { - "version": "0.7.0" - }, - "aws4": { - "version": "1.11.0" - }, - "balanced-match": { - "version": "1.0.2" - }, - "base-x": { - "version": "3.0.9", + "cspell-lib": { + "version": "4.3.12", + "dev": true, "requires": { - "safe-buffer": "^5.0.1" + "@cspell/dict-aws": "^1.0.13", + "@cspell/dict-bash": "^1.0.11", + "@cspell/dict-companies": "^1.0.35", + "@cspell/dict-cpp": "^1.1.37", + "@cspell/dict-cryptocurrencies": "^1.0.10", + "@cspell/dict-csharp": "^1.0.10", + "@cspell/dict-css": "^1.0.10", + "@cspell/dict-django": "^1.0.25", + "@cspell/dict-dotnet": "^1.0.24", + "@cspell/dict-elixir": "^1.0.23", + "@cspell/dict-en_us": "^1.2.39", + "@cspell/dict-en-gb": "^1.1.27", + "@cspell/dict-filetypes": "^1.1.5", + "@cspell/dict-fonts": "^1.0.13", + "@cspell/dict-fullstack": "^1.0.36", + "@cspell/dict-golang": "^1.1.24", + "@cspell/dict-haskell": "^1.0.12", + "@cspell/dict-html": "^1.1.5", + "@cspell/dict-html-symbol-entities": "^1.0.23", + "@cspell/dict-java": "^1.0.22", + "@cspell/dict-latex": "^1.0.23", + "@cspell/dict-lorem-ipsum": "^1.0.22", + "@cspell/dict-lua": "^1.0.16", + "@cspell/dict-node": "^1.0.10", + "@cspell/dict-npm": "^1.0.10", + "@cspell/dict-php": "^1.0.23", + "@cspell/dict-powershell": "^1.0.14", + "@cspell/dict-python": "^1.0.32", + "@cspell/dict-ruby": "^1.0.12", + "@cspell/dict-rust": "^1.0.22", + "@cspell/dict-scala": "^1.0.21", + "@cspell/dict-software-terms": "^1.0.24", + "@cspell/dict-typescript": "^1.0.16", + "comment-json": "^4.1.0", + "configstore": "^5.0.1", + "cspell-io": "^4.1.7", + "cspell-trie-lib": "^4.2.8", + "cspell-util-bundle": "^4.1.11", + "fs-extra": "^9.1.0", + "gensequence": "^3.1.1", + "minimatch": "^3.0.4", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0", + "vscode-uri": "^3.0.2" } }, - "base64-js": { - "version": "1.5.1" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", + "cspell-trie-lib": { + "version": "4.2.8", + "dev": true, "requires": { - "tweetnacl": "^0.14.3" + "gensequence": "^3.1.1" } }, - "bignumber.js": { - "version": "9.0.2" - }, - "blakejs": { - "version": "1.2.1" + "cspell-util-bundle": { + "version": "4.1.11", + "dev": true }, - "blob-to-it": { - "version": "1.0.4", + "cz-conventional-changelog": { + "version": "3.3.0", + "dev": true, "requires": { - "browser-readablestream-to-it": "^1.0.3" - } - }, - "bluebird": { - "version": "3.7.2" - }, - "bn.js": { - "version": "4.12.0" - }, - "body-parser": { - "version": "1.20.0", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "@commitlint/load": ">6.1.1", + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" }, "dependencies": { - "debug": { - "version": "2.6.9", + "ansi-styles": { + "version": "3.2.1", + "dev": true, "requires": { - "ms": "2.0.0" + "color-convert": "^1.9.0" } }, - "iconv-lite": { - "version": "0.4.24", + "chalk": { + "version": "2.4.2", + "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "ms": { - "version": "2.0.0" + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, - "brace-expansion": { - "version": "1.1.11", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "brorand": { - "version": "1.1.0" - }, - "browser-readablestream-to-it": { - "version": "1.0.3" + "dargs": { + "version": "7.0.0", + "dev": true }, - "browserify-aes": { - "version": "1.2.0", - "requires": { - "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" - } + "dateformat": { + "version": "3.0.3", + "dev": true }, - "browserify-cipher": { - "version": "1.0.1", + "debug": { + "version": "4.3.4", "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "ms": "2.1.2" } }, - "browserify-des": { - "version": "1.0.2", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } + "decamelize": { + "version": "1.2.0", + "dev": true }, - "browserify-rsa": { - "version": "4.1.0", + "decamelize-keys": { + "version": "1.1.1", + "dev": true, "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, "dependencies": { - "bn.js": { - "version": "5.2.0" + "map-obj": { + "version": "1.0.1", + "dev": true } } }, - "browserify-sign": { - "version": "4.2.1", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } + "dedent": { + "version": "0.7.0", + "dev": true }, - "bs58": { - "version": "4.0.1", + "deep-eql": { + "version": "4.1.3", + "dev": true, "requires": { - "base-x": "^3.0.2" + "type-detect": "^4.0.0" } }, - "bs58check": { - "version": "2.1.2", + "deep-is": { + "version": "0.1.4", + "dev": true + }, + "defaults": { + "version": "1.0.4", + "dev": true, "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "clone": "^1.0.2" } }, - "buffer": { - "version": "6.0.3", + "define-properties": { + "version": "1.2.0", + "dev": true, "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, - "buffer-from": { - "version": "1.1.2", + "detect-file": { + "version": "1.0.0", "dev": true }, - "buffer-to-arraybuffer": { - "version": "0.0.5" + "detect-indent": { + "version": "6.1.0", + "dev": true }, - "buffer-xor": { - "version": "1.0.3" + "detect-newline": { + "version": "3.1.0", + "dev": true }, - "bufferutil": { - "version": "4.0.6", - "requires": { - "node-gyp-build": "^4.3.0" - } + "diff": { + "version": "5.0.0", + "dev": true }, - "bunyan": { - "version": "1.8.15", + "dir-glob": { + "version": "3.0.1", + "dev": true, "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" + "path-type": "^4.0.0" } }, - "bytes": { - "version": "3.1.2" - }, - "cacheable-request": { - "version": "6.1.0", + "doctrine": { + "version": "3.0.0", + "dev": true, "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0" - } + "esutils": "^2.0.2" } }, - "call-bind": { - "version": "1.0.2", + "dot-prop": { + "version": "5.3.0", + "dev": true, "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "is-obj": "^2.0.0" } }, - "caseless": { - "version": "0.12.0" - }, - "cborg": { - "version": "1.9.2" - }, - "chownr": { - "version": "1.1.4" - }, - "cids": { - "version": "0.7.5", + "dotgitignore": { + "version": "2.1.0", + "dev": true, "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" + "find-up": "^3.0.0", + "minimatch": "^3.0.4" }, "dependencies": { - "buffer": { - "version": "5.7.1", + "find-up": { + "version": "3.0.0", + "dev": true, "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "locate-path": "^3.0.0" } }, - "multicodec": { - "version": "1.0.4", + "locate-path": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "dev": true, "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" + "p-limit": "^2.0.0" } }, - "varint": { - "version": "5.0.2" + "p-try": { + "version": "2.2.0", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "dev": true } } }, - "cipher-base": { - "version": "1.0.4", + "elliptic": { + "version": "6.5.4", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0" + } } }, - "class-is": { - "version": "1.1.0" + "email-addresses": { + "version": "3.1.0", + "dev": true }, - "clone-response": { - "version": "1.0.2", + "emoji-regex": { + "version": "8.0.0", + "dev": true + }, + "enquirer": { + "version": "2.3.6", + "dev": true, "requires": { - "mimic-response": "^1.0.0" + "ansi-colors": "^4.1.1" } }, - "combined-stream": { - "version": "1.0.8", + "error-ex": { + "version": "1.3.2", + "dev": true, "requires": { - "delayed-stream": "~1.0.0" + "is-arrayish": "^0.2.1" } }, - "command-exists": { - "version": "1.2.9" - }, - "commander": { - "version": "3.0.2" - }, - "concat-map": { - "version": "0.0.1" - }, - "content-disposition": { - "version": "0.5.4", + "es-abstract": { + "version": "1.21.2", + "dev": true, "requires": { - "safe-buffer": "5.2.1" + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" } }, - "content-hash": { - "version": "2.5.2", + "es-set-tostringtag": { + "version": "2.0.1", + "dev": true, "requires": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" } }, - "content-type": { - "version": "1.0.4" - }, - "cookie": { - "version": "0.5.0" - }, - "cookie-signature": { - "version": "1.0.6" - }, - "cookiejar": { - "version": "2.1.3" - }, - "core-util-is": { - "version": "1.0.2" + "es-shim-unscopables": { + "version": "1.0.0", + "dev": true, + "requires": { + "has": "^1.0.3" + } }, - "cors": { - "version": "2.8.5", + "es-to-primitive": { + "version": "1.2.1", + "dev": true, "requires": { - "object-assign": "^4", - "vary": "^1" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, - "crc-32": { - "version": "1.2.2" + "escalade": { + "version": "3.1.1", + "dev": true }, - "create-ecdh": { - "version": "4.0.4", + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + }, + "eslint": { + "version": "7.32.0", + "dev": true, "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "eslint-utils": { + "version": "2.1.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + } + } + }, + "ignore": { + "version": "4.0.6", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } } }, - "create-hash": { - "version": "1.2.0", + "eslint-config-prettier": { + "version": "6.15.0", + "dev": true, "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "get-stdin": "^6.0.0" + }, + "dependencies": { + "get-stdin": { + "version": "6.0.0", + "dev": true + } } }, - "create-hmac": { - "version": "1.1.7", + "eslint-import-resolver-node": { + "version": "0.3.7", + "dev": true, "requires": { - "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" + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } } }, - "create-require": { - "version": "1.1.1", - "dev": true - }, - "crypto-browserify": { - "version": "3.12.0", + "eslint-module-utils": { + "version": "2.8.0", + "dev": true, "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } } }, - "d": { - "version": "1.0.1", + "eslint-plugin-eslint-comments": { + "version": "3.2.0", + "dev": true, "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } } }, - "dag-jose": { - "version": "1.0.0", + "eslint-plugin-import": { + "version": "2.27.5", + "dev": true, "requires": { - "@ipld/dag-cbor": "^6.0.3", - "multiformats": "^9.0.2" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" }, "dependencies": { - "@ipld/dag-cbor": { - "version": "6.0.15", + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "doctrine": { + "version": "2.1.0", + "dev": true, "requires": { - "cborg": "^1.5.4", - "multiformats": "^9.5.4" + "esutils": "^2.0.2" } + }, + "semver": { + "version": "6.3.1", + "dev": true } } }, - "dashdash": { - "version": "1.14.1", + "eslint-scope": { + "version": "5.1.1", + "dev": true, "requires": { - "assert-plus": "^1.0.0" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } }, - "debug": { - "version": "4.3.4", + "eslint-utils": { + "version": "3.0.0", + "dev": true, "requires": { - "ms": "2.1.2" + "eslint-visitor-keys": "^2.0.0" } }, - "decode-uri-component": { - "version": "0.2.0" + "eslint-visitor-keys": { + "version": "2.1.0", + "dev": true }, - "decompress-response": { - "version": "3.3.0", + "espree": { + "version": "7.3.1", + "dev": true, "requires": { - "mimic-response": "^1.0.0" + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + } } }, - "defer-to-connect": { - "version": "1.1.3" + "esprima": { + "version": "4.0.1", + "dev": true }, - "define-properties": { - "version": "1.1.4", + "esquery": { + "version": "1.5.0", + "dev": true, "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "dev": true + } } }, - "delayed-stream": { - "version": "1.0.0" - }, - "depd": { - "version": "2.0.0" - }, - "des.js": { - "version": "1.0.1", + "esrecurse": { + "version": "4.3.0", + "dev": true, "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "dev": true + } } }, - "destroy": { - "version": "1.2.0" + "estraverse": { + "version": "4.3.0", + "dev": true }, - "diff": { - "version": "4.0.2", + "esutils": { + "version": "2.0.3", "dev": true }, - "diffie-hellman": { - "version": "5.0.3", + "ethereum-cryptography": { + "version": "2.1.0", "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "@noble/curves": "1.1.0", + "@noble/hashes": "1.3.1", + "@scure/bip32": "1.3.1", + "@scure/bip39": "1.2.1" } }, - "dns-over-http-resolver": { - "version": "1.2.3", + "ethers": { + "version": "6.6.2", "requires": { - "debug": "^4.3.1", - "native-fetch": "^3.0.0", - "receptacle": "^1.3.2" + "@adraffy/ens-normalize": "1.9.2", + "@noble/hashes": "1.1.2", + "@noble/secp256k1": "1.7.1", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" + }, + "dependencies": { + "@noble/hashes": { + "version": "1.1.2" + }, + "@types/node": { + "version": "18.15.13" + }, + "ws": { + "version": "8.5.0", + "requires": {} + } } }, - "dom-walk": { - "version": "0.1.2" + "expand-tilde": { + "version": "2.0.2", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } }, - "dtrace-provider": { - "version": "0.8.8", - "optional": true, + "external-editor": { + "version": "3.1.0", + "dev": true, "requires": { - "nan": "^2.14.0" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } } }, - "duplexer3": { - "version": "0.1.4" + "fast-deep-equal": { + "version": "3.1.3", + "dev": true }, - "ecc-jsbn": { - "version": "0.1.2", + "fast-glob": { + "version": "3.3.0", + "dev": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" } }, - "ee-first": { - "version": "1.1.1" + "fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "dev": true }, - "electron-fetch": { - "version": "1.7.4", + "fast-url-parser": { + "version": "1.1.3", + "dev": true, "requires": { - "encoding": "^0.1.13" + "punycode": "^1.3.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "dev": true + } } }, - "elliptic": { - "version": "6.5.4", + "fastq": { + "version": "1.15.0", + "dev": true, "requires": { - "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" + "reusify": "^1.0.4" } }, - "encodeurl": { - "version": "1.0.2" + "figures": { + "version": "3.2.0", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } + } }, - "encoding": { - "version": "0.1.13", + "file-entry-cache": { + "version": "6.0.1", + "dev": true, "requires": { - "iconv-lite": "^0.6.2" + "flat-cache": "^3.0.4" } }, - "end-of-stream": { - "version": "1.4.4", + "file-type": { + "version": "14.7.1", + "dev": true, "requires": { - "once": "^1.4.0" + "readable-web-to-node-stream": "^2.0.0", + "strtok3": "^6.0.3", + "token-types": "^2.0.0", + "typedarray-to-buffer": "^3.1.5" } }, - "err-code": { - "version": "3.0.1" + "filename-reserved-regex": { + "version": "2.0.0", + "dev": true }, - "es-abstract": { - "version": "1.20.1", + "filenamify": { + "version": "4.3.0", + "dev": true, "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" } }, - "es-aggregate-error": { - "version": "1.0.8", + "fill-range": { + "version": "7.0.1", + "dev": true, "requires": { - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "function-bind": "^1.1.1", - "functions-have-names": "^1.2.3", - "get-intrinsic": "^1.1.1", - "globalthis": "^1.0.2", - "has-property-descriptors": "^1.0.0" + "to-regex-range": "^5.0.1" } }, - "es-array-method-boxes-properly": { - "version": "1.0.0" - }, - "es-get-iterator": { - "version": "1.1.2", + "find-cache-dir": { + "version": "3.3.2", + "dev": true, "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" } }, - "es-to-primitive": { - "version": "1.2.1", + "find-node-modules": { + "version": "2.1.3", + "dev": true, "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "findup-sync": "^4.0.0", + "merge": "^2.1.1" } }, - "es5-ext": { - "version": "0.10.61", + "find-root": { + "version": "1.1.0", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "dev": true, "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" } }, - "es6-iterator": { - "version": "2.0.3", + "findup-sync": { + "version": "4.0.0", + "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" } }, - "es6-symbol": { - "version": "3.1.3", + "flat": { + "version": "5.0.2", + "dev": true + }, + "flat-cache": { + "version": "3.0.4", + "dev": true, "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, - "escape-html": { - "version": "1.0.3" + "flatted": { + "version": "3.2.7", + "dev": true }, - "etag": { - "version": "1.8.1" + "follow-redirects": { + "version": "1.15.2" }, - "eth-ens-namehash": { - "version": "2.0.8", + "for-each": { + "version": "0.3.3", + "dev": true, "requires": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7" - } + "is-callable": "^1.1.3" } }, - "eth-lib": { - "version": "0.1.29", + "foreground-child": { + "version": "2.0.0", + "dev": true, "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" } }, - "ethereum-bloom-filters": { - "version": "1.0.10", + "fs-extra": { + "version": "9.1.0", + "dev": true, "requires": { - "js-sha3": "^0.8.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, - "ethereum-cryptography": { - "version": "0.1.3", + "fs.realpath": { + "version": "1.0.0", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "dev": true, "requires": { - "@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" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" } }, - "ethereumjs-util": { - "version": "7.1.4", + "functional-red-black-tree": { + "version": "1.0.1" + }, + "functions-have-names": { + "version": "1.2.3", + "dev": true + }, + "ganache": { + "version": "7.9.0", + "dev": true, "requires": { + "@trufflesuite/bigint-buffer": "1.1.10", + "@trufflesuite/uws-js-unofficial": "20.10.0-unofficial.2", "@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" + "@types/lru-cache": "5.1.1", + "@types/seedrandom": "3.0.1", + "abstract-level": "1.0.3", + "abstract-leveldown": "7.2.0", + "async-eventemitter": "0.2.4", + "bufferutil": "4.0.5", + "emittery": "0.10.0", + "keccak": "3.0.2", + "leveldown": "6.1.0", + "secp256k1": "4.0.3", + "utf-8-validate": "5.0.7" }, "dependencies": { + "@trufflesuite/bigint-buffer": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "requires": { + "node-gyp-build": "4.4.0" + }, + "dependencies": { + "node-gyp-build": { + "version": "4.4.0", + "bundled": true, + "dev": true + } + } + }, + "@trufflesuite/uws-js-unofficial": { + "version": "20.10.0-unofficial.2", + "dev": true, + "requires": { + "bufferutil": "4.0.5", + "utf-8-validate": "5.0.7", + "ws": "8.2.3" + } + }, "@types/bn.js": { "version": "5.1.0", + "dev": true, "requires": { "@types/node": "*" } }, - "bn.js": { - "version": "5.2.0" + "@types/lru-cache": { + "version": "5.1.1", + "dev": true + }, + "@types/node": { + "version": "17.0.0", + "dev": true + }, + "@types/seedrandom": { + "version": "3.0.1", + "dev": true + }, + "abstract-level": { + "version": "1.0.3", + "dev": true, + "requires": { + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" + }, + "dependencies": { + "level-supports": { + "version": "4.0.1", + "dev": true + } + } + }, + "abstract-leveldown": { + "version": "7.2.0", + "bundled": true, + "dev": true, + "requires": { + "buffer": "^6.0.3", + "catering": "^2.0.0", + "is-buffer": "^2.0.5", + "level-concat-iterator": "^3.0.0", + "level-supports": "^2.0.1", + "queue-microtask": "^1.2.3" + } + }, + "async": { + "version": "2.6.4", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-eventemitter": { + "version": "0.2.4", + "dev": true, + "requires": { + "async": "^2.4.0" + } + }, + "base64-js": { + "version": "1.5.1", + "bundled": true, + "dev": true + }, + "brorand": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "buffer": { + "version": "6.0.3", + "bundled": true, + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "catering": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "queue-tick": "^1.0.0" + } + }, + "elliptic": { + "version": "6.5.4", + "bundled": true, + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true, + "dev": true + } + } + }, + "emittery": { + "version": "0.10.0", + "dev": true + }, + "hash.js": { + "version": "1.1.7", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "ieee754": { + "version": "1.2.1", + "bundled": true, + "dev": true + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "dev": true + }, + "is-buffer": { + "version": "2.0.5", + "bundled": true, + "dev": true + }, + "keccak": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + } + }, + "level-concat-iterator": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "catering": "^2.1.0" + } + }, + "level-supports": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "level-transcoder": { + "version": "1.0.1", + "dev": true, + "requires": { + "buffer": "^6.0.3", + "module-error": "^1.0.1" + } + }, + "leveldown": { + "version": "6.1.0", + "bundled": true, + "dev": true, + "requires": { + "abstract-leveldown": "^7.2.0", + "napi-macros": "~2.0.0", + "node-gyp-build": "^4.3.0" + } + }, + "lodash": { + "version": "4.17.21", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "module-error": { + "version": "1.0.2", + "dev": true + }, + "napi-macros": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "node-addon-api": { + "version": "2.0.2", + "bundled": true, + "dev": true + }, + "node-gyp-build": { + "version": "4.3.0", + "bundled": true, + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "bundled": true, + "dev": true + }, + "queue-tick": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "bundled": true, + "dev": true + }, + "secp256k1": { + "version": "4.0.3", + "bundled": true, + "dev": true, + "requires": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "ws": { + "version": "8.2.3", + "dev": true, + "requires": {} } } }, - "ethjs-unit": { - "version": "0.1.6", + "gensequence": { + "version": "3.1.1", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.1", + "dev": true, "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6" - } + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" } }, - "eventemitter3": { - "version": "4.0.4" - }, - "evp_bytestokey": { - "version": "1.0.3", + "get-pkg-repo": { + "version": "4.2.1", + "dev": true, "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "express": { - "version": "4.18.1", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" }, "dependencies": { - "debug": { - "version": "2.6.9", + "hosted-git-info": { + "version": "4.1.0", + "dev": true, "requires": { - "ms": "2.0.0" + "lru-cache": "^6.0.0" } }, - "ms": { - "version": "2.0.0" + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "readable-stream": { + "version": "2.3.8", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "through2": { + "version": "2.0.5", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "yallist": { + "version": "4.0.0", + "dev": true } } }, - "ext": { - "version": "1.6.0", + "get-stdin": { + "version": "8.0.0", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "gh-pages": { + "version": "3.2.3", + "dev": true, "requires": { - "type": "^2.5.0" + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" }, "dependencies": { - "type": { - "version": "2.6.0" + "array-union": { + "version": "1.0.2", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "commander": { + "version": "2.20.3", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "globby": { + "version": "6.1.0", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "pify": { + "version": "2.3.0", + "dev": true + }, + "universalify": { + "version": "0.1.2", + "dev": true } } }, - "extend": { - "version": "3.0.2" - }, - "extsprintf": { - "version": "1.3.0" - }, - "fast-deep-equal": { - "version": "3.1.3" - }, - "fast-fifo": { - "version": "1.1.0" - }, - "fast-json-stable-stringify": { - "version": "2.1.0" - }, - "finalhandler": { - "version": "1.2.0", + "git-raw-commits": { + "version": "2.0.11", + "dev": true, "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" }, "dependencies": { - "debug": { - "version": "2.6.9", + "hosted-git-info": { + "version": "4.1.0", + "dev": true, "requires": { - "ms": "2.0.0" + "lru-cache": "^6.0.0" } }, - "ms": { - "version": "2.0.0" + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "meow": { + "version": "8.1.2", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "type-fest": { + "version": "0.18.1", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true } } }, - "follow-redirects": { - "version": "1.15.0" - }, - "for-each": { - "version": "0.3.3", - "requires": { - "is-callable": "^1.1.3" - } - }, - "forever-agent": { - "version": "0.6.1" - }, - "form-data": { - "version": "3.0.1", + "git-remote-origin-url": { + "version": "2.0.0", "dev": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "dev": true + } } }, - "forwarded": { - "version": "0.2.0" - }, - "fresh": { - "version": "0.5.2" - }, - "fs-extra": { - "version": "0.30.0", + "git-semver-tags": { + "version": "4.1.1", + "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" + "meow": "^8.0.0", + "semver": "^6.0.0" }, "dependencies": { - "rimraf": { - "version": "2.7.1", + "hosted-git-info": { + "version": "4.1.0", + "dev": true, "requires": { - "glob": "^7.1.3" + "lru-cache": "^6.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "meow": { + "version": "8.1.2", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } } + }, + "semver": { + "version": "6.3.1", + "dev": true + }, + "type-fest": { + "version": "0.18.1", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true } } }, - "fs-minipass": { - "version": "1.2.7", + "gitconfiglocal": { + "version": "1.0.0", + "dev": true, "requires": { - "minipass": "^2.6.0" + "ini": "^1.3.2" } }, - "fs.realpath": { - "version": "1.0.0" - }, - "function-bind": { - "version": "1.1.1" - }, - "function.prototype.name": { - "version": "1.1.5", + "glob": { + "version": "7.2.3", + "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "functions-have-names": { - "version": "1.2.3" - }, - "get-intrinsic": { - "version": "1.1.1", + "glob-parent": { + "version": "5.1.2", + "dev": true, "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "is-glob": "^4.0.1" } }, - "get-iterator": { - "version": "1.0.2" - }, - "get-stream": { - "version": "4.1.0", + "global-dirs": { + "version": "0.1.1", + "dev": true, "requires": { - "pump": "^3.0.0" + "ini": "^1.3.4" } }, - "get-symbol-description": { + "global-modules": { "version": "1.0.0", + "dev": true, "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "getpass": { - "version": "0.1.7", - "requires": { - "assert-plus": "^1.0.0" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" } }, - "glob": { - "version": "7.2.3", + "global-prefix": { + "version": "1.0.2", + "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, - "global": { - "version": "4.4.0", + "globals": { + "version": "13.20.0", + "dev": true, "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" + "type-fest": "^0.20.2" } }, "globalthis": { "version": "1.0.3", + "dev": true, "requires": { "define-properties": "^1.1.3" } }, - "got": { - "version": "9.6.0", + "globby": { + "version": "11.1.0", + "dev": true, "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" } }, - "graceful-fs": { - "version": "4.2.10" + "gopd": { + "version": "1.0.1", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } }, - "har-schema": { - "version": "2.0.0" + "graceful-fs": { + "version": "4.2.11", + "dev": true }, - "har-validator": { - "version": "5.1.5", + "handlebars": { + "version": "4.7.7", + "dev": true, "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" } }, + "hard-rejection": { + "version": "2.1.0", + "dev": true + }, "has": { "version": "1.0.3", + "dev": true, "requires": { "function-bind": "^1.1.1" } }, "has-bigints": { - "version": "1.0.2" + "version": "1.0.2", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "has-own-prop": { + "version": "2.0.0", + "dev": true }, "has-property-descriptors": { "version": "1.0.0", + "dev": true, "requires": { "get-intrinsic": "^1.1.1" } }, - "has-symbol-support-x": { - "version": "1.4.2" + "has-proto": { + "version": "1.0.1", + "dev": true }, "has-symbols": { - "version": "1.0.3" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "requires": { - "has-symbol-support-x": "^1.4.1" - } + "version": "1.0.3", + "dev": true }, "has-tostringtag": { "version": "1.0.0", + "dev": true, "requires": { "has-symbols": "^1.0.2" } }, - "hash-base": { - "version": "3.1.0", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, "hash.js": { "version": "1.1.7", "requires": { @@ -44816,6 +49254,10 @@ "minimalistic-assert": "^1.0.1" } }, + "he": { + "version": "1.2.0", + "dev": true + }, "hmac-drbg": { "version": "1.0.1", "requires": { @@ -44824,52 +49266,90 @@ "minimalistic-crypto-utils": "^1.0.1" } }, - "http-cache-semantics": { - "version": "4.1.0" + "homedir-polyfill": { + "version": "1.0.3", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } }, - "http-errors": { - "version": "2.0.0", + "hosted-git-info": { + "version": "2.8.9", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "dev": true + }, + "http-proxy-agent": { + "version": "4.0.1", + "dev": true, "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" } }, - "http-https": { - "version": "1.0.0" + "http-status-codes": { + "version": "2.2.0" }, - "http-signature": { - "version": "1.2.0", + "https-proxy-agent": { + "version": "5.0.1", + "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "agent-base": "6", + "debug": "4" } }, "iconv-lite": { "version": "0.6.3", + "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, - "idna-uts46-hx": { - "version": "2.3.1", + "ieee754": { + "version": "1.2.1" + }, + "ignore": { + "version": "5.2.4", + "dev": true + }, + "ignore-walk": { + "version": "3.0.4", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "immediate": { + "version": "3.0.6" + }, + "import-fresh": { + "version": "3.3.0", + "dev": true, "requires": { - "punycode": "2.1.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "dependencies": { - "punycode": { - "version": "2.1.0" + "resolve-from": { + "version": "4.0.0", + "dev": true } } }, - "ieee754": { - "version": "1.2.1" + "imurmurhash": { + "version": "0.1.4", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "dev": true }, "inflight": { "version": "1.0.6", + "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -44878,422 +49358,590 @@ "inherits": { "version": "2.0.4" }, - "interface-datastore": { - "version": "6.1.0", + "ini": { + "version": "1.3.8", + "dev": true + }, + "inquirer": { + "version": "8.2.5", + "dev": true, "requires": { - "interface-store": "^2.0.1", - "nanoid": "^3.0.2", - "uint8arrays": "^3.0.0" + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" } }, - "interface-store": { - "version": "2.0.2" - }, "internal-slot": { - "version": "1.0.3", + "version": "1.0.5", + "dev": true, "requires": { - "get-intrinsic": "^1.1.0", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" } }, - "ip-regex": { - "version": "4.3.0" - }, - "ipaddr.js": { - "version": "1.9.1" - }, - "ipfs-core-types": { - "version": "0.10.3", - "requires": { - "@ipld/dag-pb": "^2.1.3", - "interface-datastore": "^6.0.2", - "ipfs-unixfs": "^6.0.3", - "multiaddr": "^10.0.0", - "multiformats": "^9.5.1" - } - }, - "ipfs-core-utils": { - "version": "0.14.3", - "requires": { - "any-signal": "^3.0.0", - "blob-to-it": "^1.0.1", - "browser-readablestream-to-it": "^1.0.1", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "ipfs-core-types": "^0.10.3", - "ipfs-unixfs": "^6.0.3", - "ipfs-utils": "^9.0.6", - "it-all": "^1.0.4", - "it-map": "^1.0.4", - "it-peekable": "^1.0.2", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiaddr-to-uri": "^8.0.0", - "multiformats": "^9.5.1", - "nanoid": "^3.1.23", - "parse-duration": "^1.0.0", - "timeout-abort-controller": "^3.0.0", - "uint8arrays": "^3.0.0" - } - }, - "ipfs-http-client": { - "version": "56.0.3", - "requires": { - "@ipld/dag-cbor": "^7.0.0", - "@ipld/dag-json": "^8.0.1", - "@ipld/dag-pb": "^2.1.3", - "any-signal": "^3.0.0", - "dag-jose": "^1.0.0", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "ipfs-core-types": "^0.10.3", - "ipfs-core-utils": "^0.14.3", - "ipfs-utils": "^9.0.6", - "it-first": "^1.0.6", - "it-last": "^1.0.4", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiformats": "^9.5.1", - "parse-duration": "^1.0.0", - "stream-to-it": "^0.2.2", - "uint8arrays": "^3.0.0" - } - }, - "ipfs-unixfs": { - "version": "6.0.7", - "requires": { - "err-code": "^3.0.1", - "protobufjs": "^6.10.2" - } - }, - "ipfs-utils": { - "version": "9.0.6", - "requires": { - "any-signal": "^3.0.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^3.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.1.5", - "it-glob": "^1.0.1", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "nanoid": "^3.1.20", - "native-fetch": "^3.0.0", - "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "react-native-fetch-api": "^2.0.0", - "stream-to-it": "^0.2.2" - }, - "dependencies": { - "node-fetch": { - "version": "npm:@achingbrain/node-fetch@2.6.7" - } - } - }, - "is-arguments": { - "version": "1.1.1", + "is-array-buffer": { + "version": "3.0.2", + "dev": true, "requires": { "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" } }, + "is-arrayish": { + "version": "0.2.1", + "dev": true + }, "is-bigint": { "version": "1.0.4", + "dev": true, "requires": { "has-bigints": "^1.0.1" } }, + "is-binary-path": { + "version": "2.1.0", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, "is-boolean-object": { "version": "1.1.2", + "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" } }, + "is-buffer": { + "version": "2.0.5" + }, "is-callable": { - "version": "1.2.4" + "version": "1.2.7", + "dev": true + }, + "is-core-module": { + "version": "2.12.1", + "dev": true, + "requires": { + "has": "^1.0.3" + } }, "is-date-object": { "version": "1.0.5", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, - "is-electron": { - "version": "2.2.1" - }, - "is-function": { - "version": "1.0.2" + "is-docker": { + "version": "2.2.1", + "dev": true }, - "is-generator-function": { - "version": "1.0.10", - "requires": { - "has-tostringtag": "^1.0.0" - } + "is-extglob": { + "version": "2.1.1", + "dev": true }, - "is-hex-prefixed": { - "version": "1.0.0" + "is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true }, - "is-ip": { - "version": "3.1.0", + "is-glob": { + "version": "4.0.3", + "dev": true, "requires": { - "ip-regex": "^4.0.0" + "is-extglob": "^2.1.1" } }, - "is-map": { - "version": "2.0.2" + "is-interactive": { + "version": "1.0.0", + "dev": true }, "is-negative-zero": { - "version": "2.0.2" + "version": "2.0.2", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "dev": true }, "is-number-object": { "version": "1.0.7", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, - "is-object": { - "version": "1.0.2" + "is-obj": { + "version": "2.0.0", + "dev": true }, "is-plain-obj": { - "version": "2.1.0" + "version": "1.1.0", + "dev": true }, "is-regex": { "version": "1.1.4", + "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" } }, - "is-retry-allowed": { - "version": "1.2.0" - }, - "is-set": { - "version": "2.0.2" - }, "is-shared-array-buffer": { "version": "1.0.2", + "dev": true, "requires": { "call-bind": "^1.0.2" } }, "is-stream": { - "version": "1.1.0" + "version": "2.0.1", + "dev": true }, "is-string": { "version": "1.0.7", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, "is-symbol": { "version": "1.0.4", + "dev": true, "requires": { "has-symbols": "^1.0.2" } }, + "is-text-path": { + "version": "1.0.1", + "dev": true, + "requires": { + "text-extensions": "^1.0.0" + } + }, "is-typed-array": { - "version": "1.1.9", + "version": "1.1.10", + "dev": true, "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", "for-each": "^0.3.3", + "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" } }, "is-typedarray": { - "version": "1.0.0" + "version": "1.0.0", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "dev": true }, "is-weakref": { "version": "1.0.2", + "dev": true, "requires": { "call-bind": "^1.0.2" } }, + "is-windows": { + "version": "1.0.2", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, "isarray": { - "version": "2.0.5" + "version": "1.0.0" }, - "iso-url": { - "version": "1.2.1" + "isexe": { + "version": "2.0.0", + "dev": true + }, + "isomorphic-fetch": { + "version": "3.0.0", + "requires": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } }, - "isstream": { - "version": "0.1.2" + "istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true }, - "isurl": { - "version": "1.0.0", + "istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-reports": { + "version": "3.1.5", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "iterable-to-stream": { + "version": "1.0.1", + "dev": true + }, + "js-sdsl": { + "version": "4.4.1" + }, + "js-sha3": { + "version": "0.8.0" + }, + "js-tokens": { + "version": "4.0.0", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "dev": true, "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, - "it-all": { - "version": "1.0.6" + "json-parse-better-errors": { + "version": "1.0.2", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true }, - "it-first": { - "version": "1.0.7" + "json-stringify-safe": { + "version": "5.0.1", + "dev": true }, - "it-glob": { + "json5": { "version": "1.0.2", + "dev": true, "requires": { - "@types/minimatch": "^3.0.4", - "minimatch": "^3.0.4" + "minimist": "^1.2.0" } }, - "it-last": { - "version": "1.0.6" + "jsonc-parser": { + "version": "3.2.0", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } }, - "it-map": { - "version": "1.0.6" + "jsonparse": { + "version": "1.3.1", + "dev": true }, - "it-peekable": { - "version": "1.0.3" + "JSONStream": { + "version": "1.3.5", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } }, - "it-to-stream": { - "version": "1.0.0", + "jszip": { + "version": "3.10.1", + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "kind-of": { + "version": "6.0.3", + "dev": true + }, + "level": { + "version": "8.0.0", + "requires": { + "browser-level": "^1.0.1", + "classic-level": "^1.2.0" + } + }, + "level-supports": { + "version": "4.0.1" + }, + "level-transcoder": { + "version": "1.0.1", "requires": { "buffer": "^6.0.3", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" + "module-error": "^1.0.1" } }, - "iterate-iterator": { - "version": "1.0.2" + "levn": { + "version": "0.4.1", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } }, - "iterate-value": { - "version": "1.0.2", + "lie": { + "version": "3.3.0", "requires": { - "es-get-iterator": "^1.0.2", - "iterate-iterator": "^1.0.1" + "immediate": "~3.0.5" } }, - "js-sha3": { - "version": "0.8.0" + "lines-and-columns": { + "version": "1.2.4", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "dev": true + } + } + }, + "locate-path": { + "version": "6.0.0", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "dev": true + }, + "lodash.ismatch": { + "version": "4.4.0", + "dev": true }, - "jsbn": { - "version": "0.1.1" + "lodash.isplainobject": { + "version": "4.0.6", + "dev": true, + "optional": true }, - "json-buffer": { - "version": "3.0.0" + "lodash.map": { + "version": "4.6.0", + "dev": true }, - "json-schema": { - "version": "0.4.0" + "lodash.merge": { + "version": "4.6.2", + "dev": true }, - "json-schema-traverse": { - "version": "0.4.1" + "lodash.mergewith": { + "version": "4.6.2", + "dev": true, + "optional": true }, - "json-stringify-safe": { - "version": "5.0.1" + "lodash.truncate": { + "version": "4.4.2", + "dev": true }, - "jsonfile": { - "version": "2.4.0", - "requires": { - "graceful-fs": "^4.1.6" - } + "lodash.uniq": { + "version": "4.5.0", + "dev": true, + "optional": true }, - "jsprim": { - "version": "1.4.2", + "log-symbols": { + "version": "4.1.0", + "dev": true, "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" } }, - "keccak": { - "version": "3.0.2", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - } + "longest": { + "version": "2.0.1", + "dev": true }, - "keyv": { - "version": "3.1.0", + "loupe": { + "version": "2.3.6", + "dev": true, "requires": { - "json-buffer": "3.0.0" + "get-func-name": "^2.0.0" } }, - "klaw": { - "version": "1.3.1", + "lru-cache": { + "version": "5.1.1", "requires": { - "graceful-fs": "^4.1.9" + "yallist": "^3.0.2" } }, - "long": { - "version": "4.0.0" - }, - "lowercase-keys": { - "version": "1.0.1" + "lunr": { + "version": "2.3.9", + "dev": true }, - "lru-cache": { - "version": "6.0.0", + "make-dir": { + "version": "3.1.0", + "dev": true, "requires": { - "yallist": "^4.0.0" + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } } }, "make-error": { "version": "1.3.6", "dev": true }, - "md5.js": { - "version": "1.3.5", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0" + "map-obj": { + "version": "4.3.0", + "dev": true }, - "memorystream": { - "version": "0.3.1" + "marked": { + "version": "4.3.0", + "dev": true }, - "merge-descriptors": { - "version": "1.0.1" + "mcl-wasm": { + "version": "0.7.9" }, - "merge-options": { - "version": "3.0.4", + "memory-level": { + "version": "1.0.0", "requires": { - "is-plain-obj": "^2.1.0" + "abstract-level": "^1.0.0", + "functional-red-black-tree": "^1.0.1", + "module-error": "^1.0.1" } }, - "methods": { - "version": "1.1.2" + "memorystream": { + "version": "0.3.1" }, - "miller-rabin": { - "version": "4.0.1", + "meow": { + "version": "6.1.1", + "dev": true, "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "^4.0.2", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" + }, + "dependencies": { + "type-fest": { + "version": "0.13.1", + "dev": true + }, + "yargs-parser": { + "version": "18.1.3", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } } }, - "mime": { - "version": "1.6.0" + "merge": { + "version": "2.1.1", + "dev": true }, - "mime-db": { - "version": "1.52.0" + "merge2": { + "version": "1.4.1", + "dev": true + }, + "micro-ftch": { + "version": "0.3.1" }, - "mime-types": { - "version": "2.1.35", + "micromatch": { + "version": "4.0.5", + "dev": true, "requires": { - "mime-db": "1.52.0" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, - "mimic-response": { - "version": "1.0.1" + "mimic-fn": { + "version": "2.1.0", + "dev": true }, - "min-document": { - "version": "2.19.0", - "requires": { - "dom-walk": "^0.1.0" - } + "min-indent": { + "version": "1.0.1", + "dev": true }, "minimalistic-assert": { "version": "1.0.1" @@ -45303,500 +49951,723 @@ }, "minimatch": { "version": "3.1.2", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "1.2.6" + "version": "1.2.7", + "dev": true }, - "minipass": { - "version": "2.9.0", + "minimist-options": { + "version": "4.1.0", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + } + }, + "mocha": { + "version": "10.2.0", + "dev": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" }, "dependencies": { - "yallist": { - "version": "3.1.1" + "ansi-colors": { + "version": "4.1.1", + "dev": true + }, + "argparse": { + "version": "2.0.1", + "dev": true + }, + "glob": { + "version": "7.2.0", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "js-yaml": { + "version": "4.1.0", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "minimatch": { + "version": "5.0.1", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + } + } + }, + "ms": { + "version": "2.1.3", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yargs-parser": { + "version": "20.2.4", + "dev": true } } }, - "minizlib": { - "version": "1.3.3", - "requires": { - "minipass": "^2.9.0" - } + "modify-values": { + "version": "1.0.1", + "dev": true }, - "mkdirp": { - "version": "0.5.6", - "requires": { - "minimist": "^1.2.6" - } + "module-error": { + "version": "1.0.2" }, - "mkdirp-promise": { - "version": "5.0.1", - "requires": { - "mkdirp": "*" - } + "ms": { + "version": "2.1.2" }, - "mock-fs": { - "version": "4.14.0" + "mute-stream": { + "version": "0.0.8", + "dev": true }, - "moment": { - "version": "2.29.3", - "optional": true + "nanoid": { + "version": "3.3.3", + "dev": true }, - "ms": { - "version": "2.1.2" + "napi-macros": { + "version": "2.2.2" }, - "multiaddr": { - "version": "10.0.1", - "requires": { - "dns-over-http-resolver": "^1.2.3", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - } + "natural-compare": { + "version": "1.4.0", + "dev": true }, - "multiaddr-to-uri": { - "version": "8.0.0", - "requires": { - "multiaddr": "^10.0.0" - } + "neo-async": { + "version": "2.6.2", + "dev": true }, - "multibase": { - "version": "0.6.1", + "nice-try": { + "version": "1.0.5", + "dev": true + }, + "node-fetch": { + "version": "2.6.12", "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - } + "whatwg-url": "^5.0.0" } }, - "multicodec": { - "version": "0.5.7", + "node-gyp-build": { + "version": "4.6.0" + }, + "normalize-package-data": { + "version": "2.5.0", + "dev": true, "requires": { - "varint": "^5.0.0" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" }, "dependencies": { - "varint": { - "version": "5.0.2" + "semver": { + "version": "5.7.2", + "dev": true } } }, - "multiformats": { - "version": "9.6.5" + "normalize-path": { + "version": "3.0.0", + "dev": true }, - "multihashes": { - "version": "0.4.21", + "npm-run-all": { + "version": "4.1.5", + "dev": true, "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" }, "dependencies": { - "buffer": { - "version": "5.7.1", + "ansi-styles": { + "version": "3.2.1", + "dev": true, "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "color-convert": "^1.9.0" } }, - "multibase": { - "version": "0.7.0", + "chalk": { + "version": "2.4.2", + "dev": true, "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "varint": { - "version": "5.0.2" - } - } - }, - "mv": { - "version": "2.1.1", - "optional": true, - "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "optional": true, + "color-convert": { + "version": "1.9.3", + "dev": true, "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "color-name": "1.1.3" } }, - "rimraf": { - "version": "2.4.5", - "optional": true, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "dev": true + }, + "semver": { + "version": "5.7.2", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "dev": true, "requires": { - "glob": "^6.0.1" + "isexe": "^2.0.0" } } } }, - "nan": { - "version": "2.15.0", - "optional": true - }, - "nano-json-stream-parser": { - "version": "0.1.2" - }, - "nanoid": { - "version": "3.3.4" - }, - "native-fetch": { - "version": "3.0.0", - "requires": {} - }, - "ncp": { - "version": "2.0.0", - "optional": true - }, - "negotiator": { - "version": "0.6.3" + "object-assign": { + "version": "4.1.1", + "dev": true }, - "next-tick": { - "version": "1.1.0" + "object-inspect": { + "version": "1.12.3", + "dev": true }, - "node-addon-api": { - "version": "2.0.2" + "object-keys": { + "version": "1.1.1", + "dev": true }, - "node-fetch": { - "version": "2.6.7", + "object.assign": { + "version": "4.1.4", + "dev": true, "requires": { - "whatwg-url": "^5.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" } }, - "node-gyp-build": { - "version": "4.4.0" - }, - "normalize-url": { - "version": "4.5.1" - }, - "number-to-bn": { - "version": "1.7.0", + "object.values": { + "version": "1.1.6", + "dev": true, "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6" - } + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, - "oauth-sign": { - "version": "0.9.0" - }, - "object-assign": { - "version": "4.1.1" - }, - "object-inspect": { - "version": "1.12.0" + "once": { + "version": "1.4.0", + "dev": true, + "requires": { + "wrappy": "1" + } }, - "object-keys": { - "version": "1.1.1" + "onetime": { + "version": "5.1.2", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } }, - "object.assign": { - "version": "4.1.2", + "open": { + "version": "7.4.2", + "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" } }, - "oboe": { - "version": "2.1.5", + "open-cli": { + "version": "6.0.1", + "dev": true, "requires": { - "http-https": "^1.0.0" + "file-type": "^14.1.4", + "get-stdin": "^7.0.0", + "meow": "^6.1.0", + "open": "^7.0.3", + "temp-write": "^4.0.0" + }, + "dependencies": { + "get-stdin": { + "version": "7.0.0", + "dev": true + } } }, - "on-finished": { - "version": "2.4.1", + "optionator": { + "version": "0.9.3", + "dev": true, "requires": { - "ee-first": "1.1.1" + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" } }, - "once": { - "version": "1.4.0", + "ora": { + "version": "5.4.1", + "dev": true, "requires": { - "wrappy": "1" + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" } }, "os-tmpdir": { "version": "1.0.2" }, - "p-cancelable": { - "version": "1.1.0" - }, - "p-defer": { - "version": "3.0.0" + "p-limit": { + "version": "3.1.0", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } }, - "p-fifo": { - "version": "1.0.0", + "p-locate": { + "version": "5.0.0", + "dev": true, "requires": { - "fast-fifo": "^1.0.0", - "p-defer": "^3.0.0" + "p-limit": "^3.0.2" } }, - "p-finally": { - "version": "1.0.0" + "p-try": { + "version": "1.0.0", + "dev": true }, - "p-timeout": { - "version": "1.2.1", + "pako": { + "version": "1.0.11" + }, + "parent-module": { + "version": "1.0.1", + "dev": true, "requires": { - "p-finally": "^1.0.0" + "callsites": "^3.0.0" } }, - "parse-asn1": { - "version": "5.1.6", + "parse-json": { + "version": "5.2.0", + "dev": true, "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" } }, - "parse-duration": { - "version": "1.0.2" - }, - "parse-headers": { - "version": "2.0.5" + "parse-passwd": { + "version": "1.0.0", + "dev": true }, - "parseurl": { - "version": "1.3.3" + "path-exists": { + "version": "4.0.0", + "dev": true }, "path-is-absolute": { - "version": "1.0.1" + "version": "1.0.1", + "dev": true }, - "path-to-regexp": { - "version": "0.1.7" + "path-key": { + "version": "3.1.1", + "dev": true }, - "pbkdf2": { - "version": "3.1.2", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } + "path-parse": { + "version": "1.0.7", + "dev": true }, - "performance-now": { - "version": "2.1.0" + "path-type": { + "version": "4.0.0", + "dev": true }, - "prepend-http": { - "version": "2.0.0" + "pathval": { + "version": "1.1.1", + "dev": true }, - "process": { - "version": "0.11.10" + "peek-readable": { + "version": "4.1.0", + "dev": true }, - "promise.any": { - "version": "2.0.4", - "requires": { - "array.prototype.map": "^1.0.4", - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-aggregate-error": "^1.0.7", - "get-intrinsic": "^1.1.1", - "iterate-value": "^1.0.2" - } - }, - "protobufjs": { - "version": "6.11.2", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "proxy-addr": { - "version": "2.0.7", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } + "picomatch": { + "version": "2.3.1", + "dev": true }, - "psl": { - "version": "1.8.0" + "pidtree": { + "version": "0.3.1", + "dev": true }, - "public-encrypt": { - "version": "4.0.3", + "pify": { + "version": "3.0.0", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "dev": true, "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "pinkie": "^2.0.0" } }, - "pump": { - "version": "3.0.0", + "pkg-dir": { + "version": "4.2.0", + "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "dev": true + } } }, + "prelude-ls": { + "version": "1.2.1", + "dev": true + }, + "prettier": { + "version": "2.8.8", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1" + }, + "progress": { + "version": "2.0.3", + "dev": true + }, "punycode": { - "version": "2.1.1" + "version": "2.3.0", + "dev": true }, - "qs": { - "version": "6.10.3", - "requires": { - "side-channel": "^1.0.4" - } + "q": { + "version": "1.5.1", + "dev": true }, - "query-string": { - "version": "5.1.1", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } + "queue-microtask": { + "version": "1.2.3" + }, + "quick-lru": { + "version": "4.0.1", + "dev": true }, "randombytes": { "version": "2.1.0", + "dev": true, "requires": { "safe-buffer": "^5.1.0" } }, - "randomfill": { - "version": "1.0.4", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1" - }, - "raw-body": { - "version": "2.5.1", + "read-pkg": { + "version": "3.0.0", + "dev": true, "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" }, "dependencies": { - "iconv-lite": { - "version": "0.4.24", + "path-type": { + "version": "3.0.0", + "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "pify": "^3.0.0" } } } }, - "react-native-fetch-api": { - "version": "2.0.0", + "read-pkg-up": { + "version": "7.0.1", + "dev": true, "requires": { - "p-defer": "^3.0.0" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "dev": true + } + } + }, + "type-fest": { + "version": "0.8.1", + "dev": true + } } }, "readable-stream": { - "version": "3.6.0", + "version": "3.6.2", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, - "receptacle": { - "version": "1.3.2", + "readable-web-to-node-stream": { + "version": "2.0.0", + "dev": true + }, + "readdirp": { + "version": "3.6.0", + "dev": true, "requires": { - "ms": "^2.1.1" + "picomatch": "^2.2.1" + } + }, + "redent": { + "version": "3.0.0", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" } }, "regexp.prototype.flags": { - "version": "1.4.3", + "version": "1.5.0", + "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" } }, - "request": { - "version": "2.88.2", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "form-data": { - "version": "2.3.3", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.5.3" - } - } + "regexpp": { + "version": "3.2.0", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "dev": true }, "require-from-string": { - "version": "2.0.2" + "version": "2.0.2", + "dev": true }, - "responselike": { - "version": "1.0.2", + "resolve": { + "version": "1.22.2", + "dev": true, "requires": { - "lowercase-keys": "^1.0.0" + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, - "retimer": { - "version": "3.0.0" + "resolve-dir": { + "version": "1.0.1", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "dev": true + }, + "resolve-global": { + "version": "1.0.0", + "dev": true, + "requires": { + "global-dirs": "^0.1.1" + } + }, + "restore-cursor": { + "version": "3.1.0", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "reusify": { + "version": "1.0.4", + "dev": true }, "rimraf": { "version": "3.0.2", @@ -45805,152 +50676,147 @@ "glob": "^7.1.3" } }, - "ripemd160": { - "version": "2.0.2", + "run-async": { + "version": "2.4.1", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "dev": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "queue-microtask": "^1.2.2" } }, - "rlp": { - "version": "2.2.7", + "run-parallel-limit": { + "version": "1.1.0", "requires": { - "bn.js": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } + "queue-microtask": "^1.2.2" + } + }, + "rustbn.js": { + "version": "0.2.0" + }, + "rxjs": { + "version": "7.8.1", + "dev": true, + "requires": { + "tslib": "^2.1.0" } }, "safe-buffer": { - "version": "5.2.1" + "version": "5.1.2" }, - "safe-json-stringify": { - "version": "1.2.0", - "optional": true + "safe-regex-test": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } }, "safer-buffer": { - "version": "2.1.2" + "version": "2.1.2", + "dev": true }, "scrypt-js": { "version": "3.0.1" }, - "secp256k1": { - "version": "4.0.3", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, "semver": { - "version": "7.3.7", + "version": "7.5.4", "requires": { "lru-cache": "^6.0.0" - } - }, - "send": { - "version": "0.18.0", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" }, "dependencies": { - "debug": { - "version": "2.6.9", + "lru-cache": { + "version": "6.0.0", "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0" - } + "yallist": "^4.0.0" } }, - "ms": { - "version": "2.1.3" + "yallist": { + "version": "4.0.0" } } }, - "serve-static": { - "version": "1.15.0", + "serialize-javascript": { + "version": "6.0.0", + "dev": true, "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" + "randombytes": "^2.1.0" } }, - "servify": { - "version": "0.1.12", + "setimmediate": { + "version": "1.0.5" + }, + "shebang-command": { + "version": "2.0.0", + "dev": true, "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" + "shebang-regex": "^3.0.0" } }, - "setimmediate": { - "version": "1.0.5" + "shebang-regex": { + "version": "3.0.0", + "dev": true }, - "setprototypeof": { - "version": "1.2.0" + "shell-quote": { + "version": "1.8.1", + "dev": true }, - "sha.js": { - "version": "2.4.11", + "shiki": { + "version": "0.14.3", + "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" } }, "side-channel": { "version": "1.0.4", + "dev": true, "requires": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", "object-inspect": "^1.9.0" } }, - "simple-concat": { - "version": "1.0.1" + "signal-exit": { + "version": "3.0.7", + "dev": true + }, + "slash": { + "version": "3.0.0", + "dev": true }, - "simple-get": { - "version": "2.8.2", + "slice-ansi": { + "version": "4.0.0", + "dev": true, "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" } }, "solc": { - "version": "0.7.6", + "version": "0.8.20", "requires": { "command-exists": "^1.2.8", - "commander": "3.0.2", + "commander": "^8.1.0", "follow-redirects": "^1.12.1", - "fs-extra": "^0.30.0", "js-sha3": "0.8.0", "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", "semver": "^5.5.0", "tmp": "0.0.33" }, "dependencies": { + "commander": { + "version": "8.3.0" + }, "semver": { - "version": "5.7.1" + "version": "5.7.2" } } }, @@ -45958,577 +50824,594 @@ "version": "0.6.1", "dev": true }, - "source-map-support": { - "version": "0.5.21", + "spdx-correct": { + "version": "3.2.0", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sshpk": { - "version": "1.17.0", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "statuses": { - "version": "2.0.1" + "spdx-exceptions": { + "version": "2.3.0", + "dev": true }, - "stream-to-it": { - "version": "0.2.4", + "spdx-expression-parse": { + "version": "3.0.1", + "dev": true, "requires": { - "get-iterator": "^1.0.2" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "strict-uri-encode": { - "version": "1.1.0" - }, - "string_decoder": { - "version": "1.3.0", - "requires": { - "safe-buffer": "~5.2.0" - } + "spdx-license-ids": { + "version": "3.0.13", + "dev": true }, - "string.prototype.trimend": { - "version": "1.0.5", + "split": { + "version": "1.0.1", + "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "through": "2" } }, - "string.prototype.trimstart": { - "version": "1.0.5", + "split2": { + "version": "3.2.2", + "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "readable-stream": "^3.0.0" } }, - "strip-hex-prefix": { - "version": "1.0.0", - "requires": { - "is-hex-prefixed": "1.0.0" - } + "sprintf-js": { + "version": "1.0.3", + "dev": true }, - "swarm-js": { - "version": "0.1.40", + "standard-version": { + "version": "9.5.0", + "dev": true, "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" + "chalk": "^2.4.2", + "conventional-changelog": "3.1.25", + "conventional-changelog-config-spec": "2.1.0", + "conventional-changelog-conventionalcommits": "4.6.3", + "conventional-recommended-bump": "6.1.0", + "detect-indent": "^6.0.0", + "detect-newline": "^3.1.0", + "dotgitignore": "^2.1.0", + "figures": "^3.1.0", + "find-up": "^5.0.0", + "git-semver-tags": "^4.0.0", + "semver": "^7.1.1", + "stringify-package": "^1.0.1", + "yargs": "^16.0.0" }, "dependencies": { - "buffer": { - "version": "5.7.1", + "ansi-styles": { + "version": "3.2.1", + "dev": true, "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "color-convert": "^1.9.0" } }, - "fs-extra": { - "version": "4.0.3", + "chalk": { + "version": "2.4.2", + "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "get-stream": { - "version": "3.0.0" - }, - "got": { - "version": "7.1.0", + "color-convert": { + "version": "1.9.3", + "dev": true, "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" + "color-name": "1.1.3" } }, - "is-plain-obj": { - "version": "1.1.0" - }, - "jsonfile": { - "version": "4.0.0", - "requires": { - "graceful-fs": "^4.1.6" - } + "color-name": { + "version": "1.1.3", + "dev": true }, - "p-cancelable": { - "version": "0.3.0" + "escape-string-regexp": { + "version": "1.0.5", + "dev": true }, - "prepend-http": { - "version": "1.0.4" + "has-flag": { + "version": "3.0.0", + "dev": true }, - "url-parse-lax": { - "version": "1.0.0", + "supports-color": { + "version": "5.5.0", + "dev": true, "requires": { - "prepend-http": "^1.0.1" + "has-flag": "^3.0.0" } } } }, - "tar": { - "version": "4.4.19", + "stream-events": { + "version": "1.0.5", + "dev": true, + "requires": { + "stubs": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.3.0", "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" + "safe-buffer": "~5.2.0" }, "dependencies": { - "yallist": { - "version": "3.1.1" + "safe-buffer": { + "version": "5.2.1" } } }, - "timed-out": { - "version": "4.0.1" - }, - "timeout-abort-controller": { - "version": "3.0.0", + "string-width": { + "version": "4.2.3", + "dev": true, "requires": { - "retimer": "^3.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } }, - "tmp": { - "version": "0.0.33", + "string.prototype.padend": { + "version": "3.1.4", + "dev": true, "requires": { - "os-tmpdir": "~1.0.2" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, - "to-readable-stream": { - "version": "1.0.0" + "string.prototype.trim": { + "version": "1.2.7", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } }, - "toidentifier": { - "version": "1.0.1" + "string.prototype.trimend": { + "version": "1.0.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } }, - "tough-cookie": { - "version": "2.5.0", + "string.prototype.trimstart": { + "version": "1.0.6", + "dev": true, "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, - "tr46": { - "version": "0.0.3" + "stringify-package": { + "version": "1.0.1", + "dev": true }, - "ts-node": { - "version": "9.1.1", + "strip-ansi": { + "version": "6.0.1", "dev": true, "requires": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" + "ansi-regex": "^5.0.1" } }, - "tunnel-agent": { - "version": "0.6.0", + "strip-bom": { + "version": "4.0.0", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "dev": true, "requires": { - "safe-buffer": "^5.0.1" + "min-indent": "^1.0.0" } }, - "tweetnacl": { - "version": "0.14.5" - }, - "type": { - "version": "1.2.0" + "strip-json-comments": { + "version": "3.1.1", + "dev": true }, - "type-is": { - "version": "1.6.18", + "strip-outer": { + "version": "1.0.1", + "dev": true, "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "escape-string-regexp": "^1.0.2" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } } }, - "typedarray-to-buffer": { - "version": "3.1.5", + "strtok3": { + "version": "6.3.0", + "dev": true, "requires": { - "is-typedarray": "^1.0.0" + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.1.0" } }, - "typescript": { - "version": "4.6.4", + "stubs": { + "version": "3.0.0", "dev": true }, - "uint8arrays": { - "version": "3.0.0", + "supports-color": { + "version": "7.2.0", + "dev": true, "requires": { - "multiformats": "^9.4.2" + "has-flag": "^4.0.0" } }, - "ultron": { - "version": "1.1.1" + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true }, - "unbox-primitive": { - "version": "1.0.2", + "table": { + "version": "6.8.1", + "dev": true, "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" } }, - "universalify": { - "version": "0.1.2" + "teeny-request": { + "version": "7.1.1", + "dev": true, + "requires": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + } }, - "unpipe": { - "version": "1.0.0" + "temp-dir": { + "version": "1.0.0", + "dev": true }, - "uri-js": { - "version": "4.4.1", + "temp-write": { + "version": "4.0.0", + "dev": true, "requires": { - "punycode": "^2.1.0" + "graceful-fs": "^4.1.15", + "is-stream": "^2.0.0", + "make-dir": "^3.0.0", + "temp-dir": "^1.0.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "dev": true + } } }, - "url-parse-lax": { - "version": "3.0.0", + "test-exclude": { + "version": "6.0.0", + "dev": true, "requires": { - "prepend-http": "^2.0.0" + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" } }, - "url-set-query": { - "version": "1.0.0" + "text-extensions": { + "version": "1.9.0", + "dev": true }, - "url-to-options": { - "version": "1.0.1" + "text-table": { + "version": "0.2.0", + "dev": true }, - "utf-8-validate": { - "version": "5.0.9", + "through": { + "version": "2.3.8", + "dev": true + }, + "through2": { + "version": "4.0.2", + "dev": true, "requires": { - "node-gyp-build": "^4.3.0" + "readable-stream": "3" } }, - "utf8": { - "version": "3.0.0" - }, - "util": { - "version": "0.12.4", + "tmp": { + "version": "0.0.33", "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" + "os-tmpdir": "~1.0.2" } }, - "util-deprecate": { - "version": "1.0.2" - }, - "utils-merge": { - "version": "1.0.1" + "to-regex-range": { + "version": "5.0.1", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } }, - "uuid": { - "version": "3.4.0" + "token-types": { + "version": "2.1.1", + "dev": true, + "requires": { + "@tokenizer/token": "^0.1.1", + "ieee754": "^1.2.1" + }, + "dependencies": { + "@tokenizer/token": { + "version": "0.1.1", + "dev": true + } + } }, - "varint": { - "version": "6.0.0" + "tr46": { + "version": "0.0.3" }, - "vary": { - "version": "1.1.2" + "trim-newlines": { + "version": "3.0.1", + "dev": true }, - "verror": { - "version": "1.10.0", + "trim-repeated": { + "version": "1.0.0", + "dev": true, "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "escape-string-regexp": "^1.0.2" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } } }, - "web3": { - "version": "1.7.3", + "ts-node": { + "version": "10.9.1", + "dev": true, "requires": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "dependencies": { + "acorn": { + "version": "8.10.0", + "dev": true + }, + "diff": { + "version": "4.0.2", + "dev": true + } } }, - "web3-bzz": { - "version": "1.7.3", + "tsconfig-paths": { + "version": "3.14.2", + "dev": true, "requires": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" }, "dependencies": { - "@types/node": { - "version": "12.20.52" + "strip-bom": { + "version": "3.0.0", + "dev": true } } }, - "web3-core": { - "version": "1.7.3", + "tslib": { + "version": "2.4.0" + }, + "tsutils": { + "version": "3.21.0", + "dev": true, "requires": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" + "tslib": "^1.8.1" }, "dependencies": { - "@types/node": { - "version": "12.20.52" + "tslib": { + "version": "1.14.1", + "dev": true } } }, - "web3-core-helpers": { - "version": "1.7.3", - "requires": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-method": { - "version": "1.7.3", + "type-check": { + "version": "0.4.0", + "dev": true, "requires": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" + "prelude-ls": "^1.2.1" } }, - "web3-core-promievent": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4" - } + "type-detect": { + "version": "4.0.8", + "dev": true }, - "web3-core-requestmanager": { - "version": "1.7.3", - "requires": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" - } + "type-fest": { + "version": "0.20.2", + "dev": true }, - "web3-core-subscriptions": { - "version": "1.7.3", + "typed-array-length": { + "version": "1.0.4", + "dev": true, "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" } }, - "web3-eth": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - } + "typedarray": { + "version": "0.0.6", + "dev": true }, - "web3-eth-abi": { - "version": "1.7.3", + "typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, "requires": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" + "is-typedarray": "^1.0.0" } }, - "web3-eth-accounts": { - "version": "1.7.3", + "typedoc": { + "version": "0.24.8", + "dev": true, "requires": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" + "lunr": "^2.3.9", + "marked": "^4.3.0", + "minimatch": "^9.0.0", + "shiki": "^0.14.1" }, "dependencies": { - "eth-lib": { - "version": "0.2.8", + "brace-expansion": { + "version": "2.0.1", + "dev": true, "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "balanced-match": "^1.0.0" } }, - "uuid": { - "version": "3.3.2" + "minimatch": { + "version": "9.0.3", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } } } }, - "web3-eth-contract": { - "version": "1.7.3", - "requires": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" - } + "typescript": { + "version": "5.1.6" }, - "web3-eth-ens": { - "version": "1.7.3", - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - } + "uglify-js": { + "version": "3.17.4", + "dev": true, + "optional": true }, - "web3-eth-iban": { - "version": "1.7.3", + "unbox-primitive": { + "version": "1.0.2", + "dev": true, "requires": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" } }, - "web3-eth-personal": { - "version": "1.7.3", + "unique-string": { + "version": "2.0.0", + "dev": true, "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } + "crypto-random-string": "^2.0.0" } }, - "web3-net": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - } + "universalify": { + "version": "2.0.0", + "dev": true }, - "web3-providers-http": { - "version": "1.7.3", + "uri-js": { + "version": "4.4.1", + "dev": true, "requires": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" + "punycode": "^2.1.0" } }, - "web3-providers-ipc": { - "version": "1.7.3", + "urlgrey": { + "version": "1.0.0", + "dev": true, "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" + "fast-url-parser": "^1.1.3" } }, - "web3-providers-ws": { - "version": "1.7.3", + "util-deprecate": { + "version": "1.0.2" + }, + "uuid": { + "version": "8.3.2", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "dev": true + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true + }, + "v8-to-istanbul": { + "version": "9.1.0", + "dev": true, "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "dependencies": { + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + } } }, - "web3-shh": { - "version": "1.7.3", + "validate-npm-package-license": { + "version": "3.0.4", + "dev": true, "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "web3-utils": { - "version": "1.7.3", + "vscode-oniguruma": { + "version": "1.7.0", + "dev": true + }, + "vscode-textmate": { + "version": "8.0.0", + "dev": true + }, + "vscode-uri": { + "version": "3.0.7", + "dev": true + }, + "wcwidth": { + "version": "1.0.1", + "dev": true, "requires": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "defaults": "^1.0.3" } }, "webidl-conversions": { "version": "3.0.1" }, - "websocket": { - "version": "1.0.34", - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } - } + "whatwg-fetch": { + "version": "3.6.2" }, "whatwg-url": { "version": "5.0.0", @@ -46537,8 +51420,16 @@ "webidl-conversions": "^3.0.0" } }, + "which": { + "version": "2.0.2", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, "which-boxed-primitive": { "version": "1.0.2", + "dev": true, "requires": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -46548,403 +51439,122 @@ } }, "which-typed-array": { - "version": "1.1.8", + "version": "1.1.10", + "dev": true, "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", "for-each": "^0.3.3", + "gopd": "^1.0.1", "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" + "is-typed-array": "^1.1.10" } }, - "wrappy": { - "version": "1.0.2" + "word-wrap": { + "version": "1.2.3", + "dev": true }, - "ws": { - "version": "3.3.3", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2" - } - } + "wordwrap": { + "version": "1.0.0", + "dev": true }, - "xhr": { - "version": "2.6.0", - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } + "workerpool": { + "version": "6.2.1", + "dev": true }, - "xhr-request": { - "version": "1.1.0", + "wrap-ansi": { + "version": "7.0.0", + "dev": true, "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } }, - "xhr-request-promise": { - "version": "0.1.3", - "requires": { - "xhr-request": "^1.1.0" - } + "wrappy": { + "version": "1.0.2", + "dev": true }, - "xhr2-cookies": { - "version": "1.1.0", + "write-file-atomic": { + "version": "3.0.3", + "dev": true, "requires": { - "cookiejar": "^2.1.1" + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, + "ws": { + "version": "7.4.6", + "requires": {} + }, + "xdg-basedir": { + "version": "4.0.0", + "dev": true + }, "xtend": { - "version": "4.0.2" + "version": "4.0.2", + "dev": true }, - "yaeti": { - "version": "0.0.6" + "y18n": { + "version": "5.0.8", + "dev": true }, "yallist": { - "version": "4.0.0" + "version": "3.1.1" + }, + "yargs": { + "version": "16.2.0", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "dev": true + }, + "yargs-unparser": { + "version": "2.0.0", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "dev": true + }, + "decamelize": { + "version": "4.0.0", + "dev": true + }, + "is-plain-obj": { + "version": "2.1.0", + "dev": true + } + } }, "yn": { "version": "3.1.1", "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "dev": true } } }, - "@ethereumjs/common": { - "version": "2.6.4", - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" - } - }, - "@ethereumjs/tx": { - "version": "3.5.1", - "requires": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" - } - }, - "@ethersproject/abi": { - "version": "5.6.2", - "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.6.1", - "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "@ethersproject/address": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "@ethersproject/base64": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "@ethersproject/basex": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.6.1", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "@ethersproject/bytes": { - "version": "5.6.1", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/constants": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "@ethersproject/contracts": { - "version": "5.6.1", - "requires": { - "@ethersproject/abi": "^5.6.0", - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0" - } - }, - "@ethersproject/hash": { - "version": "5.6.0", - "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/hdnode": { - "version": "5.6.1", - "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/basex": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/pbkdf2": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/sha2": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0", - "@ethersproject/strings": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/wordlists": "^5.6.0" - } - }, - "@ethersproject/json-wallets": { - "version": "5.6.0", - "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/hdnode": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/pbkdf2": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.0", - "@ethersproject/strings": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "@ethersproject/keccak256": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/logger": { - "version": "5.6.0" - }, - "@ethersproject/networks": { - "version": "5.6.2", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/pbkdf2": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/sha2": "^5.6.0" - } - }, - "@ethersproject/properties": { - "version": "5.6.0", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/providers": { - "version": "5.6.6", - "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/basex": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/sha2": "^5.6.0", - "@ethersproject/strings": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0", - "bech32": "1.1.4", - "ws": "7.4.6" - } - }, - "@ethersproject/random": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/rlp": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/sha2": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "hash.js": "1.1.7" - } - }, - "@ethersproject/signing-key": { - "version": "5.6.1", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "@ethersproject/solidity": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/sha2": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/strings": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/transactions": { - "version": "5.6.0", - "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "@ethersproject/units": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/wallet": { - "version": "5.6.1", - "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/hdnode": "^5.6.0", - "@ethersproject/json-wallets": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/wordlists": "^5.6.0" - } - }, - "@ethersproject/web": { - "version": "5.6.0", - "requires": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/wordlists": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, "@evocateur/libnpmaccess": { "version": "3.1.2", "dev": true, @@ -46972,7 +51582,7 @@ }, "dependencies": { "semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true } } @@ -47039,8 +51649,12 @@ "glob": "^7.1.3" } }, + "safe-buffer": { + "version": "5.2.1", + "dev": true + }, "semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true }, "which": { @@ -47052,15 +51666,236 @@ } } }, + "@hapi/accept": { + "version": "5.0.2", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/ammo": { + "version": "5.0.1", + "requires": { + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/b64": { + "version": "5.0.0", + "requires": { + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/boom": { + "version": "9.1.4", + "requires": { + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/bounce": { + "version": "2.0.0", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/bourne": { + "version": "2.1.0" + }, + "@hapi/call": { + "version": "8.0.1", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/catbox": { + "version": "11.1.1", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x", + "@hapi/podium": "4.x.x", + "@hapi/validate": "1.x.x" + } + }, + "@hapi/catbox-memory": { + "version": "5.0.1", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/content": { + "version": "5.0.2", + "requires": { + "@hapi/boom": "9.x.x" + } + }, + "@hapi/cryptiles": { + "version": "5.1.0", + "requires": { + "@hapi/boom": "9.x.x" + } + }, + "@hapi/file": { + "version": "2.0.0" + }, + "@hapi/hapi": { + "version": "20.3.0", + "requires": { + "@hapi/accept": "^5.0.1", + "@hapi/ammo": "^5.0.1", + "@hapi/boom": "^9.1.0", + "@hapi/bounce": "^2.0.0", + "@hapi/call": "^8.0.0", + "@hapi/catbox": "^11.1.1", + "@hapi/catbox-memory": "^5.0.0", + "@hapi/heavy": "^7.0.1", + "@hapi/hoek": "^9.0.4", + "@hapi/mimos": "^6.0.0", + "@hapi/podium": "^4.1.1", + "@hapi/shot": "^5.0.5", + "@hapi/somever": "^3.0.0", + "@hapi/statehood": "^7.0.3", + "@hapi/subtext": "^7.1.0", + "@hapi/teamwork": "^5.1.0", + "@hapi/topo": "^5.0.0", + "@hapi/validate": "^1.1.1" + } + }, + "@hapi/heavy": { + "version": "7.0.1", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x", + "@hapi/validate": "1.x.x" + } + }, + "@hapi/hoek": { + "version": "9.3.0" + }, + "@hapi/iron": { + "version": "6.0.0", + "requires": { + "@hapi/b64": "5.x.x", + "@hapi/boom": "9.x.x", + "@hapi/bourne": "2.x.x", + "@hapi/cryptiles": "5.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/mimos": { + "version": "6.0.0", + "requires": { + "@hapi/hoek": "9.x.x", + "mime-db": "1.x.x" + } + }, + "@hapi/nigel": { + "version": "4.0.2", + "requires": { + "@hapi/hoek": "^9.0.4", + "@hapi/vise": "^4.0.0" + } + }, + "@hapi/pez": { + "version": "5.1.0", + "requires": { + "@hapi/b64": "5.x.x", + "@hapi/boom": "9.x.x", + "@hapi/content": "^5.0.2", + "@hapi/hoek": "9.x.x", + "@hapi/nigel": "4.x.x" + } + }, + "@hapi/podium": { + "version": "4.1.3", + "requires": { + "@hapi/hoek": "9.x.x", + "@hapi/teamwork": "5.x.x", + "@hapi/validate": "1.x.x" + } + }, + "@hapi/shot": { + "version": "5.0.5", + "requires": { + "@hapi/hoek": "9.x.x", + "@hapi/validate": "1.x.x" + } + }, + "@hapi/somever": { + "version": "3.0.1", + "requires": { + "@hapi/bounce": "2.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/statehood": { + "version": "7.0.4", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/bounce": "2.x.x", + "@hapi/bourne": "2.x.x", + "@hapi/cryptiles": "5.x.x", + "@hapi/hoek": "9.x.x", + "@hapi/iron": "6.x.x", + "@hapi/validate": "1.x.x" + } + }, + "@hapi/subtext": { + "version": "7.1.0", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/bourne": "2.x.x", + "@hapi/content": "^5.0.2", + "@hapi/file": "2.x.x", + "@hapi/hoek": "9.x.x", + "@hapi/pez": "^5.1.0", + "@hapi/wreck": "17.x.x" + } + }, + "@hapi/teamwork": { + "version": "5.1.1" + }, + "@hapi/topo": { + "version": "5.1.0", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@hapi/validate": { + "version": "1.1.3", + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0" + } + }, + "@hapi/vise": { + "version": "4.0.0", + "requires": { + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/wreck": { + "version": "17.2.0", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/bourne": "2.x.x", + "@hapi/hoek": "9.x.x" + } + }, "@humanwhocodes/config-array": { - "version": "0.9.5", + "version": "0.11.10", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" } }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true + }, "@humanwhocodes/object-schema": { "version": "1.2.1", "dev": true @@ -47075,7 +51910,7 @@ }, "dependencies": { "@ipld/dag-cbor": { - "version": "7.0.1", + "version": "7.0.3", "dev": true, "requires": { "cborg": "^1.6.0", @@ -47086,19 +51921,47 @@ }, "@ipld/dag-cbor": { "version": "6.0.15", - "dev": true, + "requires": { + "cborg": "^1.5.4", + "multiformats": "^9.5.4" + } + }, + "@ipld/dag-json": { + "version": "8.0.11", "requires": { "cborg": "^1.5.4", "multiformats": "^9.5.4" } }, "@ipld/dag-pb": { - "version": "2.1.16", - "dev": true, + "version": "2.1.18", "requires": { "multiformats": "^9.5.4" } }, + "@istanbuljs/schema": { + "version": "0.1.3", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@jsdevtools/ono": { + "version": "7.1.3" + }, "@leichtgewicht/ip-codec": { "version": "2.0.4", "dev": true @@ -47120,7 +51983,7 @@ }, "dependencies": { "semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true } } @@ -47155,7 +52018,7 @@ }, "dependencies": { "semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true } } @@ -47186,50 +52049,6 @@ "chalk": "^2.3.1", "execa": "^1.0.0", "strong-log-transformer": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } } }, "@lerna/clean": { @@ -47254,62 +52073,116 @@ "dedent": "^0.7.0", "npmlog": "^4.1.2", "yargs": "^14.2.2" - } - }, - "@lerna/collect-uncommitted": { - "version": "3.16.5", - "dev": true, - "requires": { - "@lerna/child-process": "3.16.5", - "chalk": "^2.3.1", - "figgy-pudding": "^3.5.1", - "npmlog": "^4.1.2" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", + "ansi-regex": { + "version": "4.1.1", + "dev": true + }, + "cliui": { + "version": "5.0.0", "dev": true, "requires": { - "color-convert": "^1.9.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, - "chalk": { - "version": "2.4.2", + "find-up": { + "version": "3.0.0", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "locate-path": "^3.0.0" } }, - "color-convert": { - "version": "1.9.3", + "locate-path": { + "version": "3.0.0", "dev": true, "requires": { - "color-name": "1.1.3" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "color-name": { - "version": "1.1.3", - "dev": true + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true + "p-locate": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } }, - "has-flag": { + "path-exists": { "version": "3.0.0", "dev": true }, - "supports-color": { - "version": "5.5.0", + "string-width": { + "version": "3.1.0", "dev": true, "requires": { - "has-flag": "^3.0.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "14.2.3", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^15.0.1" + } + }, + "yargs-parser": { + "version": "15.0.3", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } }, + "@lerna/collect-uncommitted": { + "version": "3.16.5", + "dev": true, + "requires": { + "@lerna/child-process": "3.16.5", + "chalk": "^2.3.1", + "figgy-pudding": "^3.5.1", + "npmlog": "^4.1.2" + } + }, "@lerna/collect-updates": { "version": "3.20.0", "dev": true, @@ -47361,7 +52234,7 @@ }, "dependencies": { "semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true } } @@ -47394,6 +52267,14 @@ "version": "1.1.3", "dev": true }, + "@types/glob": { + "version": "7.2.0", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "array-union": { "version": "1.0.2", "dev": true, @@ -47556,7 +52437,7 @@ } }, "semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true }, "slash": { @@ -47682,7 +52563,7 @@ }, "dependencies": { "semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true } } @@ -47755,50 +52636,6 @@ "@lerna/query-graph": "3.18.5", "chalk": "^2.3.1", "columnify": "^1.5.4" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } } }, "@lerna/log-packed": { @@ -47917,7 +52754,7 @@ }, "dependencies": { "semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true } } @@ -47930,7 +52767,7 @@ }, "dependencies": { "semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true } } @@ -47967,6 +52804,14 @@ "version": "1.1.3", "dev": true }, + "@types/glob": { + "version": "7.2.0", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "array-union": { "version": "1.0.2", "dev": true, @@ -48196,7 +53041,7 @@ }, "dependencies": { "semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true } } @@ -48235,6 +53080,10 @@ "rimraf": "^2.6.2" }, "dependencies": { + "path-exists": { + "version": "3.0.0", + "dev": true + }, "rimraf": { "version": "2.7.1", "dev": true, @@ -48357,55 +53206,13 @@ "write-json-file": "^3.2.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, "semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true }, "slash": { "version": "2.0.0", "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, @@ -48418,15 +53225,40 @@ } }, "@motrix/nat-api": { - "version": "0.3.2", + "version": "0.3.4", "dev": true, "requires": { - "async": "^3.2.0", - "debug": "^4.3.1", + "async": "^3.2.4", + "debug": "^4.3.4", "default-gateway": "^6.0.3", - "request": "^2.88.2", + "node-fetch": "^2.6.9", "unordered-array-remove": "^1.0.2", - "xml2js": "^0.4.23" + "xml2js": "^0.5.0" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.12", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "dev": true + }, + "webidl-conversions": { + "version": "3.0.1", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } } }, "@mrmlnc/readdir-enhanced": { @@ -48437,9 +53269,6 @@ "glob-to-regexp": "^0.3.0" } }, - "@multiformats/base-x": { - "version": "4.0.1" - }, "@multiformats/murmur3": { "version": "1.1.3", "dev": true, @@ -48448,13 +53277,16 @@ "murmurhash3js-revisited": "^3.0.0" } }, + "@napi-rs/snappy-darwin-arm64": { + "version": "7.1.1", + "optional": true + }, "@noble/ed25519": { - "version": "1.6.0", + "version": "1.7.3", "dev": true }, "@noble/secp256k1": { - "version": "1.5.5", - "dev": true + "version": "1.7.1" }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -48484,29 +53316,69 @@ } }, "@octokit/core": { - "version": "3.6.0", + "version": "5.0.0", "dev": true, "peer": true, "requires": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.0.0", + "@octokit/request": "^8.0.2", + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^11.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" }, "dependencies": { + "@octokit/auth-token": { + "version": "4.0.0", + "dev": true, + "peer": true + }, + "@octokit/endpoint": { + "version": "9.0.0", + "dev": true, + "peer": true, + "requires": { + "@octokit/types": "^11.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/openapi-types": { + "version": "18.0.0", + "dev": true, + "peer": true + }, + "@octokit/request": { + "version": "8.0.4", + "dev": true, + "peer": true, + "requires": { + "@octokit/endpoint": "^9.0.0", + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^11.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, "@octokit/request-error": { - "version": "2.1.0", + "version": "5.0.0", "dev": true, "peer": true, "requires": { - "@octokit/types": "^6.0.3", + "@octokit/types": "^11.0.0", "deprecation": "^2.0.0", "once": "^1.4.0" } }, + "@octokit/types": { + "version": "11.1.0", + "dev": true, + "peer": true, + "requires": { + "@octokit/openapi-types": "^18.0.0" + } + }, "universal-user-agent": { "version": "6.0.0", "dev": true, @@ -48530,15 +53402,60 @@ } }, "@octokit/graphql": { - "version": "4.8.0", + "version": "7.0.1", "dev": true, "peer": true, "requires": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", + "@octokit/request": "^8.0.1", + "@octokit/types": "^11.0.0", "universal-user-agent": "^6.0.0" }, "dependencies": { + "@octokit/endpoint": { + "version": "9.0.0", + "dev": true, + "peer": true, + "requires": { + "@octokit/types": "^11.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/openapi-types": { + "version": "18.0.0", + "dev": true, + "peer": true + }, + "@octokit/request": { + "version": "8.0.4", + "dev": true, + "peer": true, + "requires": { + "@octokit/endpoint": "^9.0.0", + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^11.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/request-error": { + "version": "5.0.0", + "dev": true, + "peer": true, + "requires": { + "@octokit/types": "^11.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "@octokit/types": { + "version": "11.1.0", + "dev": true, + "peer": true, + "requires": { + "@octokit/openapi-types": "^18.0.0" + } + }, "universal-user-agent": { "version": "6.0.0", "dev": true, @@ -48547,7 +53464,7 @@ } }, "@octokit/openapi-types": { - "version": "11.2.0", + "version": "12.11.0", "dev": true }, "@octokit/plugin-enterprise-rest": { @@ -48614,7 +53531,7 @@ } }, "node-fetch": { - "version": "2.6.7", + "version": "2.6.12", "dev": true, "requires": { "whatwg-url": "^5.0.0" @@ -48683,58 +53600,111 @@ } }, "@octokit/types": { - "version": "6.34.0", + "version": "6.41.0", "dev": true, "requires": { - "@octokit/openapi-types": "^11.2.0" + "@octokit/openapi-types": "^12.11.0" } }, "@protobufjs/aspromise": { - "version": "1.1.2", - "dev": true + "version": "1.1.2" }, "@protobufjs/base64": { - "version": "1.1.2", - "dev": true + "version": "1.1.2" }, "@protobufjs/codegen": { - "version": "2.0.4", - "dev": true + "version": "2.0.4" }, "@protobufjs/eventemitter": { - "version": "1.1.0", - "dev": true + "version": "1.1.0" }, "@protobufjs/fetch": { "version": "1.1.0", - "dev": true, "requires": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" } }, "@protobufjs/float": { - "version": "1.0.2", - "dev": true + "version": "1.0.2" }, "@protobufjs/inquire": { - "version": "1.1.0", - "dev": true + "version": "1.1.0" }, "@protobufjs/path": { - "version": "1.1.2", - "dev": true + "version": "1.1.2" }, "@protobufjs/pool": { - "version": "1.1.0", - "dev": true + "version": "1.1.0" }, "@protobufjs/utf8": { - "version": "1.1.0", - "dev": true + "version": "1.1.0" }, - "@sindresorhus/is": { - "version": "0.14.0" + "@puppeteer/browsers": { + "version": "1.4.3", + "requires": { + "debug": "4.3.4", + "extract-zip": "2.0.1", + "progress": "2.0.3", + "proxy-agent": "6.2.1", + "tar-fs": "3.0.3", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.1" + }, + "dependencies": { + "cliui": { + "version": "8.0.1", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "emoji-regex": { + "version": "8.0.0" + }, + "is-fullwidth-code-point": { + "version": "3.0.0" + }, + "string-width": { + "version": "4.2.3", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "y18n": { + "version": "5.0.8" + }, + "yargs": { + "version": "17.7.1", + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1" + } + } + }, + "@sideway/address": { + "version": "4.1.4", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sideway/formula": { + "version": "3.0.1" + }, + "@sideway/pinpoint": { + "version": "2.0.0" }, "@socket.io/component-emitter": { "version": "3.1.0", @@ -48821,7 +53791,7 @@ } }, "@stablelib/random": { - "version": "1.0.1", + "version": "1.0.2", "dev": true, "requires": { "@stablelib/binary": "^1.0.1", @@ -48842,29 +53812,23 @@ "dev": true }, "@stablelib/x25519": { - "version": "1.0.2", + "version": "1.0.3", "dev": true, "requires": { "@stablelib/keyagreement": "^1.0.1", - "@stablelib/random": "^1.0.1", + "@stablelib/random": "^1.0.2", "@stablelib/wipe": "^1.0.1" } }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "requires": { - "defer-to-connect": "^1.0.1" - } + "@tokenizer/token": { + "version": "0.3.0" }, - "@types/bn.js": { - "version": "4.11.6", - "requires": { - "@types/node": "*" - } + "@tootallnate/once": { + "version": "1.1.2", + "dev": true }, "@types/body-parser": { "version": "1.19.2", - "dev": true, "requires": { "@types/connect": "*", "@types/node": "*" @@ -48877,20 +53841,12 @@ "@types/node": "*" } }, - "@types/busboy": { - "version": "0.3.2", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/chai": { - "version": "4.3.1", + "version": "4.3.5", "dev": true }, "@types/connect": { "version": "3.4.35", - "dev": true, "requires": { "@types/node": "*" } @@ -48900,11 +53856,14 @@ "dev": true }, "@types/cors": { - "version": "2.8.12", - "dev": true + "version": "2.8.13", + "dev": true, + "requires": { + "@types/node": "*" + } }, "@types/debug": { - "version": "4.1.7", + "version": "4.1.8", "dev": true, "requires": { "@types/ms": "*" @@ -48918,61 +53877,56 @@ } }, "@types/express": { - "version": "4.17.13", - "dev": true, + "version": "4.17.17", "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", + "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, - "@types/express-fileupload": { - "version": "1.2.2", - "dev": true, - "requires": { - "@types/busboy": "^0", - "@types/express": "*" - } - }, "@types/express-serve-static-core": { - "version": "4.17.28", - "dev": true, + "version": "4.17.35", "requires": { "@types/node": "*", "@types/qs": "*", - "@types/range-parser": "*" + "@types/range-parser": "*", + "@types/send": "*" } }, "@types/express-session": { - "version": "1.17.4", + "version": "1.17.7", "dev": true, "requires": { "@types/express": "*" } }, "@types/glob": { - "version": "7.2.0", + "version": "8.1.0", "dev": true, "requires": { - "@types/minimatch": "*", + "@types/minimatch": "^5.1.2", "@types/node": "*" } }, - "@types/json-schema": { - "version": "7.0.11", + "@types/http-errors": { + "version": "2.0.1" + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", "dev": true }, + "@types/json-schema": { + "version": "7.0.12" + }, "@types/long": { - "version": "4.0.2", - "dev": true + "version": "4.0.2" }, "@types/mime": { - "version": "1.3.2", - "dev": true + "version": "1.3.2" }, "@types/minimatch": { - "version": "3.0.5", + "version": "5.1.2", "dev": true }, "@types/minimist": { @@ -48983,11 +53937,17 @@ "version": "0.7.31", "dev": true }, + "@types/multer": { + "version": "1.4.7", + "requires": { + "@types/express": "*" + } + }, "@types/node": { - "version": "16.11.36" + "version": "16.18.38" }, "@types/node-fetch": { - "version": "2.6.1", + "version": "2.6.4", "requires": { "@types/node": "*", "form-data": "^3.0.0" @@ -48997,19 +53957,11 @@ "version": "2.4.1", "dev": true }, - "@types/pbkdf2": { - "version": "3.1.0", - "requires": { - "@types/node": "*" - } - }, "@types/qs": { - "version": "6.9.7", - "dev": true + "version": "6.9.7" }, "@types/range-parser": { - "version": "1.2.4", - "dev": true + "version": "1.2.4" }, "@types/retry": { "version": "0.12.0", @@ -49023,18 +53975,17 @@ "@types/node": "*" } }, - "@types/secp256k1": { - "version": "4.0.3", + "@types/semver": { + "version": "7.5.0", + "dev": true + }, + "@types/send": { + "version": "0.17.1", "requires": { + "@types/mime": "^1", "@types/node": "*" } }, - "@types/semver": { - "version": "7.3.12", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz", - "integrity": "sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==", - "dev": true - }, "@types/serve-index": { "version": "1.9.1", "dev": true, @@ -49043,73 +53994,97 @@ } }, "@types/serve-static": { - "version": "1.13.10", - "dev": true, + "version": "1.15.2", "requires": { - "@types/mime": "^1", + "@types/http-errors": "*", + "@types/mime": "*", "@types/node": "*" } }, "@types/superagent": { - "version": "3.8.7", + "version": "4.1.13", "dev": true, "requires": { "@types/cookiejar": "*", "@types/node": "*" } }, + "@types/swagger-ui-express": { + "version": "4.1.3", + "dev": true, + "requires": { + "@types/express": "*", + "@types/serve-static": "*" + } + }, + "@types/triple-beam": { + "version": "1.3.2" + }, + "@types/yamljs": { + "version": "0.2.31", + "dev": true + }, + "@types/yauzl": { + "version": "2.10.0", + "optional": true, + "requires": { + "@types/node": "*" + } + }, "@typescript-eslint/eslint-plugin": { - "version": "5.25.0", + "version": "5.62.0", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.25.0", - "@typescript-eslint/type-utils": "5.25.0", - "@typescript-eslint/utils": "5.25.0", + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "regexpp": "^3.2.0", + "natural-compare-lite": "^1.4.0", "semver": "^7.3.7", "tsutils": "^3.21.0" } }, "@typescript-eslint/parser": { - "version": "5.25.0", + "version": "5.62.0", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.25.0", - "@typescript-eslint/types": "5.25.0", - "@typescript-eslint/typescript-estree": "5.25.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.25.0", + "version": "5.62.0", "dev": true, "requires": { - "@typescript-eslint/types": "5.25.0", - "@typescript-eslint/visitor-keys": "5.25.0" + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" } }, "@typescript-eslint/type-utils": { - "version": "5.25.0", + "version": "5.62.0", "dev": true, "requires": { - "@typescript-eslint/utils": "5.25.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.25.0", + "version": "5.62.0", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.25.0", + "version": "5.62.0", "dev": true, "requires": { - "@typescript-eslint/types": "5.25.0", - "@typescript-eslint/visitor-keys": "5.25.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -49118,22 +54093,24 @@ } }, "@typescript-eslint/utils": { - "version": "5.25.0", + "version": "5.62.0", "dev": true, "requires": { + "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.25.0", - "@typescript-eslint/types": "5.25.0", - "@typescript-eslint/typescript-estree": "5.25.0", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.25.0", + "version": "5.62.0", "dev": true, "requires": { - "@typescript-eslint/types": "5.25.0", + "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" } }, @@ -49150,14 +54127,14 @@ "mz": "^2.5.0" } }, - "@zxing/text-encoding": { - "version": "0.9.0", - "optional": true - }, "abbrev": { "version": "1.1.1", "dev": true }, + "abitype": { + "version": "0.8.0", + "requires": {} + }, "abort-controller": { "version": "3.0.0", "dev": true, @@ -49182,8 +54159,17 @@ "level-concat-iterator": "^3.0.0", "level-supports": "^2.0.1", "queue-microtask": "^1.2.3" + }, + "dependencies": { + "level-supports": { + "version": "2.1.0", + "dev": true + } } }, + "abstract-logging": { + "version": "2.0.1" + }, "accepts": { "version": "1.3.8", "requires": { @@ -49192,16 +54178,18 @@ } }, "acorn": { - "version": "8.7.1", - "dev": true + "version": "8.10.0" }, "acorn-jsx": { "version": "5.3.2", "dev": true, "requires": {} }, + "acorn-walk": { + "version": "8.2.0" + }, "aes-js": { - "version": "3.0.0" + "version": "4.0.0-beta.5" }, "agent-base": { "version": "4.3.0", @@ -49236,6 +54224,7 @@ }, "ajv": { "version": "6.12.6", + "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -49243,6 +54232,26 @@ "uri-js": "^4.2.2" } }, + "ajv-formats": { + "version": "2.1.1", + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0" + } + } + }, "ansi-colors": { "version": "3.2.3", "dev": true @@ -49252,14 +54261,12 @@ "dev": true }, "ansi-regex": { - "version": "5.0.1", - "dev": true + "version": "5.0.1" }, "ansi-styles": { - "version": "4.3.0", - "dev": true, + "version": "3.2.1", "requires": { - "color-convert": "^2.0.1" + "color-convert": "^1.9.0" } }, "any-promise": { @@ -49275,13 +54282,16 @@ } }, "anymatch": { - "version": "3.1.2", + "version": "3.1.3", "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, + "append-field": { + "version": "1.0.0" + }, "aproba": { "version": "2.0.0", "dev": true @@ -49294,8 +54304,12 @@ "readable-stream": "^2.0.6" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "dev": true + }, "readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -49307,10 +54321,6 @@ "util-deprecate": "~1.0.1" } }, - "safe-buffer": { - "version": "5.1.2", - "dev": true - }, "string_decoder": { "version": "1.1.1", "dev": true, @@ -49325,7 +54335,27 @@ "dev": true }, "argparse": { - "version": "2.0.1", + "version": "1.0.10", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "args": { + "version": "5.0.3", + "requires": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + }, + "dependencies": { + "camelcase": { + "version": "5.0.0" + } + } + }, + "argv": { + "version": "0.0.2", "dev": true }, "arr-diff": { @@ -49340,6 +54370,17 @@ "version": "3.1.0", "dev": true }, + "array-back": { + "version": "3.1.0" + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, "array-differ": { "version": "2.1.0", "dev": true @@ -49371,31 +54412,50 @@ "version": "0.3.2", "dev": true }, + "array.prototype.reduce": { + "version": "1.0.5", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + } + }, "arrify": { "version": "1.0.1", "dev": true }, "asap": { - "version": "2.0.6", - "dev": true + "version": "2.0.6" }, "asn1": { "version": "0.2.6", + "dev": true, "requires": { "safer-buffer": "~2.1.0" } }, "asn1.js": { "version": "5.4.1", + "dev": true, "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0", "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "dev": true + } } }, "assert-plus": { - "version": "1.0.0" + "version": "1.0.0", + "dev": true }, "assertion-error": { "version": "1.1.0", @@ -49405,12 +54465,17 @@ "version": "1.0.0", "dev": true }, + "ast-types": { + "version": "0.13.4", + "requires": { + "tslib": "^2.0.1" + } + }, "async": { - "version": "3.2.3", - "dev": true + "version": "3.2.4" }, - "async-limiter": { - "version": "1.0.1" + "async-exit-hook": { + "version": "2.0.1" }, "asynckit": { "version": "0.4.0" @@ -49423,18 +54488,26 @@ "version": "2.0.0", "dev": true }, + "atomic-sleep": { + "version": "1.0.0" + }, "available-typed-arrays": { - "version": "1.0.5" + "version": "1.0.5", + "dev": true }, "aws-sign2": { - "version": "0.7.0" + "version": "0.7.0", + "dev": true }, "aws4": { - "version": "1.11.0" + "version": "1.12.0", + "dev": true + }, + "b4a": { + "version": "1.6.4" }, "balanced-match": { - "version": "1.0.2", - "devOptional": true + "version": "1.0.2" }, "base": { "version": "0.11.2", @@ -49458,33 +54531,33 @@ } } }, - "base-x": { - "version": "3.0.9", - "requires": { - "safe-buffer": "^5.0.1" - } - }, "base64-js": { "version": "1.5.1" }, + "basic-ftp": { + "version": "5.0.3" + }, "batch": { "version": "0.6.1" }, "bcrypt-pbkdf": { "version": "1.0.2", + "dev": true, "requires": { "tweetnacl": "^0.14.3" } }, - "bech32": { - "version": "1.1.4" - }, "before-after-hook": { - "version": "2.2.2", + "version": "2.2.3", + "dev": true + }, + "big-integer": { + "version": "1.6.51", "dev": true }, "bignumber.js": { - "version": "9.0.2" + "version": "9.1.1", + "dev": true }, "binary-extensions": { "version": "2.2.0", @@ -49498,8 +54571,7 @@ } }, "bl": { - "version": "5.0.0", - "dev": true, + "version": "5.1.0", "requires": { "buffer": "^6.0.3", "inherits": "^2.0.4", @@ -49507,11 +54579,11 @@ } }, "blakejs": { - "version": "1.2.1" + "version": "1.2.1", + "dev": true }, "blob-to-it": { "version": "1.0.4", - "dev": true, "requires": { "browser-readablestream-to-it": "^1.0.3" } @@ -49544,13 +54616,11 @@ } }, "bluebird": { - "version": "3.7.2" - }, - "bn.js": { - "version": "4.12.0" + "version": "3.7.2", + "dev": true }, "body-parser": { - "version": "1.20.0", + "version": "1.20.1", "requires": { "bytes": "3.1.2", "content-type": "~1.0.4", @@ -49560,7 +54630,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.10.3", + "qs": "6.11.0", "raw-body": "2.5.1", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -49574,12 +54644,24 @@ }, "ms": { "version": "2.0.0" + }, + "qs": { + "version": "6.11.0", + "requires": { + "side-channel": "^1.0.4" + } } } }, + "bplist-parser": { + "version": "0.2.0", + "dev": true, + "requires": { + "big-integer": "^1.6.44" + } + }, "brace-expansion": { "version": "1.1.11", - "devOptional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -49593,88 +54675,18 @@ } }, "brorand": { - "version": "1.1.0" + "version": "1.1.0", + "dev": true }, "browser-readablestream-to-it": { - "version": "1.0.3", - "dev": true + "version": "1.0.3" }, "browser-stdout": { "version": "1.3.1", "dev": true }, - "browserify-aes": { - "version": "1.2.0", - "requires": { - "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" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "bs58": { - "version": "4.0.1", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } + "btoa": { + "version": "1.2.1" }, "btoa-lite": { "version": "1.0.0", @@ -49682,24 +54694,20 @@ }, "buffer": { "version": "6.0.3", - "dev": true, "requires": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, - "buffer-from": { - "version": "1.1.2", - "dev": true - }, - "buffer-to-arraybuffer": { - "version": "0.0.5" + "buffer-crc32": { + "version": "0.2.13" }, - "buffer-xor": { - "version": "1.0.3" + "buffer-from": { + "version": "1.1.2" }, "bufferutil": { - "version": "4.0.6", + "version": "4.0.7", + "optional": true, "requires": { "node-gyp-build": "^4.3.0" } @@ -49713,6 +54721,13 @@ "version": "1.0.3", "dev": true }, + "bundle-name": { + "version": "3.0.0", + "dev": true, + "requires": { + "run-applescript": "^5.0.0" + } + }, "bunyan": { "version": "1.8.15", "requires": { @@ -49723,9 +54738,9 @@ } }, "busboy": { - "version": "0.3.1", + "version": "1.6.0", "requires": { - "dicer": "0.3.0" + "streamsearch": "^1.1.0" } }, "byline": { @@ -49739,6 +54754,24 @@ "bytes": { "version": "3.1.2" }, + "c8": { + "version": "8.0.0", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + } + }, "cacache": { "version": "12.0.4", "dev": true, @@ -49791,35 +54824,6 @@ "unset-value": "^1.0.0" } }, - "cacheable-request": { - "version": "6.1.0", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "requires": { - "pump": "^3.0.0" - } - }, - "http-cache-semantics": { - "version": "4.1.0" - }, - "lowercase-keys": { - "version": "2.0.0" - }, - "normalize-url": { - "version": "4.5.1" - } - } - }, "call-bind": { "version": "1.0.2", "requires": { @@ -49828,8 +54832,7 @@ } }, "call-me-maybe": { - "version": "1.0.1", - "dev": true + "version": "1.0.2" }, "caller-callsite": { "version": "2.0.0", @@ -49852,8 +54855,7 @@ } }, "callsites": { - "version": "3.1.0", - "dev": true + "version": "3.1.0" }, "camelcase": { "version": "5.3.1", @@ -49869,23 +54871,23 @@ } }, "caseless": { - "version": "0.12.0" + "version": "0.12.0", + "dev": true }, "catering": { "version": "2.1.1", "dev": true }, "cborg": { - "version": "1.9.2", - "dev": true + "version": "1.10.2" }, "chai": { - "version": "4.3.6", + "version": "4.3.7", "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", - "deep-eql": "^3.0.1", + "deep-eql": "^4.1.2", "get-func-name": "^2.0.0", "loupe": "^2.3.1", "pathval": "^1.1.1", @@ -49893,30 +54895,35 @@ } }, "chai-http": { - "version": "4.3.0", + "version": "4.4.0", "dev": true, "requires": { "@types/chai": "4", - "@types/superagent": "^3.8.3", - "cookiejar": "^2.1.1", + "@types/superagent": "4.1.13", + "charset": "^1.0.1", + "cookiejar": "^2.1.4", "is-ip": "^2.0.0", "methods": "^1.1.2", - "qs": "^6.5.1", - "superagent": "^3.7.0" + "qs": "^6.11.2", + "superagent": "^8.0.9" } }, "chalk": { - "version": "4.1.2", - "dev": true, + "version": "2.4.2", "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "chardet": { "version": "0.7.0", "dev": true }, + "charset": { + "version": "1.0.1", + "dev": true + }, "check-error": { "version": "1.0.2", "dev": true @@ -49945,7 +54952,14 @@ } }, "chownr": { - "version": "1.1.4" + "version": "1.1.4", + "dev": true + }, + "chromium-bidi": { + "version": "0.4.16", + "requires": { + "mitt": "3.0.0" + } }, "ci-info": { "version": "2.0.0", @@ -49969,31 +54983,12 @@ "base64-js": "^1.3.1", "ieee754": "^1.1.13" } - }, - "multihashes": { - "version": "1.0.1", - "dev": true, - "requires": { - "buffer": "^5.6.0", - "multibase": "^1.0.1", - "varint": "^5.0.0" - } - }, - "varint": { - "version": "5.0.2", - "dev": true } } }, - "cipher-base": { - "version": "1.0.4", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, "class-is": { - "version": "1.1.0" + "version": "1.1.0", + "dev": true }, "class-utils": { "version": "0.3.6", @@ -50079,32 +55074,29 @@ "dev": true }, "cliui": { - "version": "5.0.0", + "version": "7.0.4", "dev": true, "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.1", + "emoji-regex": { + "version": "8.0.0", "dev": true }, - "string-width": { - "version": "3.1.0", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } + "is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true }, - "strip-ansi": { - "version": "5.2.0", + "string-width": { + "version": "4.2.3", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } } } @@ -50131,16 +55123,21 @@ } } }, - "clone-response": { - "version": "1.0.2", - "requires": { - "mimic-response": "^1.0.0" - } - }, "code-point-at": { "version": "1.1.0", "dev": true }, + "codecov": { + "version": "3.8.3", + "dev": true, + "requires": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + } + }, "collection-visit": { "version": "1.0.0", "dev": true, @@ -50149,16 +55146,35 @@ "object-visit": "^1.0.0" } }, + "color": { + "version": "3.2.1", + "requires": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, "color-convert": { - "version": "2.0.1", - "dev": true, + "version": "1.9.3", "requires": { - "color-name": "~1.1.4" + "color-name": "1.1.3" } }, "color-name": { + "version": "1.1.3" + }, + "color-string": { + "version": "1.9.1", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorspace": { "version": "1.1.4", - "dev": true + "requires": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } }, "columnify": { "version": "1.6.0", @@ -50174,8 +55190,37 @@ "delayed-stream": "~1.0.0" } }, + "command-exists": { + "version": "1.2.9" + }, + "command-line-args": { + "version": "5.2.1", + "requires": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + } + }, + "command-line-usage": { + "version": "6.1.3", + "requires": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "dependencies": { + "array-back": { + "version": "4.0.2" + }, + "typical": { + "version": "5.2.0" + } + } + }, "commander": { - "version": "9.2.0" + "version": "9.5.0" }, "compare-func": { "version": "2.0.0", @@ -50199,12 +55244,10 @@ } }, "component-emitter": { - "version": "1.3.0", - "dev": true + "version": "1.3.0" }, "concat-map": { - "version": "0.0.1", - "devOptional": true + "version": "0.0.1" }, "concat-stream": { "version": "2.0.0", @@ -50232,79 +55275,15 @@ "version": "0.5.4", "requires": { "safe-buffer": "5.2.1" - } - }, - "content-hash": { - "version": "2.5.2", - "requires": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" }, "dependencies": { - "buffer": { - "version": "5.7.1", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "cids": { - "version": "0.7.5", - "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "dependencies": { - "multicodec": { - "version": "1.0.4", - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - } - } - }, - "multibase": { - "version": "0.6.1", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multicodec": { - "version": "0.5.7", - "requires": { - "varint": "^5.0.0" - } - }, - "multihashes": { - "version": "0.4.21", - "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - }, - "dependencies": { - "multibase": { - "version": "0.7.0", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } - }, - "varint": { - "version": "5.0.2" + "safe-buffer": { + "version": "5.2.1" } } }, "content-type": { - "version": "1.0.4" + "version": "1.0.5" }, "conventional-changelog-angular": { "version": "5.0.13", @@ -50354,7 +55333,7 @@ }, "dependencies": { "semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true }, "through2": { @@ -50479,6 +55458,10 @@ } } }, + "convert-source-map": { + "version": "1.9.0", + "dev": true + }, "cookie": { "version": "0.5.0" }, @@ -50486,7 +55469,7 @@ "version": "1.0.6" }, "cookiejar": { - "version": "2.1.3" + "version": "2.1.4" }, "copy-concurrently": { "version": "1.0.5", @@ -50544,13 +55527,6 @@ "parse-json": "^4.0.0" }, "dependencies": { - "argparse": { - "version": "1.0.10", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, "import-fresh": { "version": "2.0.0", "dev": true, @@ -50559,59 +55535,43 @@ "resolve-from": "^3.0.0" } }, - "js-yaml": { - "version": "3.14.1", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, "resolve-from": { "version": "3.0.0", "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "dev": true } } }, - "crc-32": { - "version": "1.2.2" - }, - "create-ecdh": { - "version": "4.0.4", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "create-hash": { - "version": "1.2.0", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "requires": { - "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" - } - }, "create-require": { "version": "1.1.1", "dev": true }, + "cross-fetch": { + "version": "4.0.0", + "requires": { + "node-fetch": "^2.6.12" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.12", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "tr46": { + "version": "0.0.3" + }, + "webidl-conversions": { + "version": "3.0.1" + }, + "whatwg-url": { + "version": "5.0.0", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, "cross-spawn": { "version": "7.0.3", "dev": true, @@ -50621,20 +55581,17 @@ "which": "^2.0.1" } }, - "crypto-browserify": { - "version": "3.12.0", + "crypto-random-string": { + "version": "4.0.0", + "dev": true, "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "type-fest": "^1.0.1" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0", + "dev": true + } } }, "currently-unhandled": { @@ -50645,14 +55602,14 @@ } }, "cyclist": { - "version": "1.0.1", + "version": "1.0.2", "dev": true }, - "d": { - "version": "1.0.1", + "dag-jose": { + "version": "1.0.0", "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "@ipld/dag-cbor": "^6.0.3", + "multiformats": "^9.0.2" } }, "dargs": { @@ -50664,10 +55621,14 @@ }, "dashdash": { "version": "1.14.1", + "dev": true, "requires": { "assert-plus": "^1.0.0" } }, + "data-uri-to-buffer": { + "version": "5.0.1" + }, "datastore-core": { "version": "6.0.7", "dev": true, @@ -50709,6 +55670,17 @@ "it-sort": "^1.0.0", "it-take": "^1.0.1", "level": "^7.0.0" + }, + "dependencies": { + "level": { + "version": "7.0.1", + "dev": true, + "requires": { + "level-js": "^6.1.0", + "level-packager": "^6.0.1", + "leveldown": "^6.1.0" + } + } } }, "datastore-pubsub": { @@ -50741,7 +55713,7 @@ "dev": true }, "decamelize-keys": { - "version": "1.1.0", + "version": "1.1.1", "dev": true, "requires": { "decamelize": "^1.1.0", @@ -50755,28 +55727,90 @@ } }, "decode-uri-component": { - "version": "0.2.0" - }, - "decompress-response": { - "version": "3.3.0", - "requires": { - "mimic-response": "^1.0.0" - } + "version": "0.2.2", + "dev": true }, "dedent": { "version": "0.7.0", "dev": true }, "deep-eql": { - "version": "3.0.1", + "version": "4.1.3", "dev": true, "requires": { "type-detect": "^4.0.0" } }, + "deep-extend": { + "version": "0.6.0" + }, "deep-is": { - "version": "0.1.4", - "dev": true + "version": "0.1.4" + }, + "default-browser": { + "version": "4.0.0", + "dev": true, + "requires": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "dependencies": { + "execa": { + "version": "7.1.1", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "dev": true + }, + "is-stream": { + "version": "3.0.0", + "dev": true + }, + "mimic-fn": { + "version": "4.0.0", + "dev": true + }, + "npm-run-path": { + "version": "5.1.0", + "dev": true, + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "path-key": { + "version": "4.0.0", + "dev": true + } + } + }, + "default-browser-id": { + "version": "3.0.0", + "dev": true, + "requires": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + } }, "default-gateway": { "version": "6.0.3", @@ -50804,6 +55838,10 @@ "version": "6.0.1", "dev": true }, + "human-signals": { + "version": "2.1.0", + "dev": true + }, "is-stream": { "version": "2.0.1", "dev": true @@ -50825,19 +55863,20 @@ "requires": { "mimic-fn": "^2.1.0" } + }, + "strip-final-newline": { + "version": "2.0.0", + "dev": true } } }, "defaults": { - "version": "1.0.3", + "version": "1.0.4", "dev": true, "requires": { "clone": "^1.0.2" } }, - "defer-to-connect": { - "version": "1.1.3" - }, "deferred-leveldown": { "version": "7.0.0", "dev": true, @@ -50846,8 +55885,13 @@ "inherits": "^2.0.3" } }, + "define-lazy-prop": { + "version": "3.0.0", + "dev": true + }, "define-properties": { - "version": "1.1.4", + "version": "1.2.0", + "dev": true, "requires": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -50861,6 +55905,15 @@ "isobject": "^3.0.1" } }, + "degenerator": { + "version": "4.0.4", + "requires": { + "ast-types": "^0.13.4", + "escodegen": "^1.14.3", + "esprima": "^4.0.1", + "vm2": "^3.9.19" + } + }, "delayed-stream": { "version": "1.0.0" }, @@ -50879,13 +55932,6 @@ "version": "2.3.1", "dev": true }, - "des.js": { - "version": "1.0.1", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, "destroy": { "version": "1.2.0" }, @@ -50893,32 +55939,20 @@ "version": "5.0.0", "dev": true }, + "devtools-protocol": { + "version": "0.0.1135028" + }, "dezalgo": { "version": "1.0.4", - "dev": true, "requires": { "asap": "^2.0.0", "wrappy": "1" } }, - "dicer": { - "version": "0.3.0", - "requires": { - "streamsearch": "0.1.2" - } - }, "diff": { "version": "3.5.0", "dev": true }, - "diffie-hellman": { - "version": "5.0.3", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, "dir-glob": { "version": "3.0.1", "dev": true, @@ -50926,13 +55960,19 @@ "path-type": "^4.0.0" } }, + "directory-tree": { + "version": "3.5.1", + "requires": { + "command-line-args": "^5.2.0", + "command-line-usage": "^6.1.1" + } + }, "dlv": { "version": "1.1.3", "dev": true }, "dns-over-http-resolver": { "version": "1.2.3", - "dev": true, "requires": { "debug": "^4.3.1", "native-fetch": "^3.0.0", @@ -50940,7 +55980,7 @@ } }, "dns-packet": { - "version": "5.3.1", + "version": "5.6.0", "dev": true, "requires": { "@leichtgewicht/ip-codec": "^2.0.1" @@ -50953,9 +55993,6 @@ "esutils": "^2.0.2" } }, - "dom-walk": { - "version": "0.1.2" - }, "dot-prop": { "version": "4.2.1", "dev": true, @@ -50977,9 +56014,6 @@ "version": "0.1.2", "dev": true }, - "duplexer3": { - "version": "0.1.4" - }, "duplexify": { "version": "3.7.1", "dev": true, @@ -50990,8 +56024,12 @@ "stream-shift": "^1.0.0" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "dev": true + }, "readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -51003,10 +56041,6 @@ "util-deprecate": "~1.0.1" } }, - "safe-buffer": { - "version": "5.1.2", - "dev": true - }, "string_decoder": { "version": "1.1.1", "dev": true, @@ -51018,28 +56052,36 @@ }, "ecc-jsbn": { "version": "0.1.2", + "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" }, "dependencies": { "jsbn": { - "version": "0.1.1" + "version": "0.1.1", + "dev": true } } }, "ee-first": { "version": "1.1.1" }, + "ejs": { + "version": "3.1.9", + "requires": { + "jake": "^10.8.5" + } + }, "electron-fetch": { - "version": "1.7.4", - "dev": true, + "version": "1.9.1", "requires": { "encoding": "^0.1.13" } }, "elliptic": { "version": "6.5.4", + "dev": true, "requires": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -51048,25 +56090,32 @@ "inherits": "^2.0.4", "minimalistic-assert": "^1.0.1", "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "dev": true + } } }, "emoji-regex": { "version": "7.0.3", "dev": true }, + "enabled": { + "version": "2.0.0" + }, "encodeurl": { "version": "1.0.2" }, "encoding": { "version": "0.1.13", - "devOptional": true, "requires": { "iconv-lite": "^0.6.2" }, "dependencies": { "iconv-lite": { "version": "0.6.3", - "devOptional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" } @@ -51090,25 +56139,25 @@ } }, "engine.io-client": { - "version": "6.2.2", + "version": "6.5.1", "dev": true, "requires": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", - "ws": "~8.2.3", + "engine.io-parser": "~5.1.0", + "ws": "~8.11.0", "xmlhttprequest-ssl": "~2.0.0" }, "dependencies": { "ws": { - "version": "8.2.3", + "version": "8.11.0", "dev": true, "requires": {} } } }, "engine.io-parser": { - "version": "5.0.4", + "version": "5.1.0", "dev": true }, "env-paths": { @@ -51116,83 +56165,92 @@ "dev": true }, "envinfo": { - "version": "7.8.1", + "version": "7.10.0", "dev": true }, "err-code": { - "version": "3.0.1", - "dev": true + "version": "3.0.1" }, "error-ex": { "version": "1.3.2", - "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "es-abstract": { - "version": "1.20.1", + "version": "1.21.2", + "dev": true, "requires": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", + "get-intrinsic": "^1.2.0", "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", + "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" }, "dependencies": { "object.assign": { - "version": "4.1.2", + "version": "4.1.4", + "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } } } }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "dev": true + }, + "es-set-tostringtag": { + "version": "2.0.1", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, "es-to-primitive": { "version": "1.2.1", + "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" } }, - "es5-ext": { - "version": "0.10.61", - "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, "es6-promise": { "version": "4.2.8", "dev": true @@ -51201,67 +56259,135 @@ "version": "7.0.0", "dev": true }, - "es6-symbol": { - "version": "3.1.3", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, "escalade": { - "version": "3.1.1", - "dev": true + "version": "3.1.1" }, "escape-html": { "version": "1.0.3" }, "escape-string-regexp": { - "version": "4.0.0", - "dev": true + "version": "1.0.5" + }, + "escodegen": { + "version": "1.14.3", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "levn": { + "version": "0.3.0", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2" + }, + "type-check": { + "version": "0.3.2", + "requires": { + "prelude-ls": "~1.1.2" + } + } + } }, "eslint": { - "version": "8.15.0", + "version": "8.44.0", "dev": true, "requires": { - "@eslint/eslintrc": "^1.2.3", - "@humanwhocodes/config-array": "^0.9.2", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.1.0", + "@eslint/js": "8.44.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.6.0", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + }, "eslint-scope": { - "version": "7.1.1", + "version": "7.2.0", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -51271,13 +56397,29 @@ "estraverse": { "version": "5.3.0", "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "eslint-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "version": "8.8.0", "dev": true, "requires": {} }, @@ -51289,38 +56431,24 @@ "estraverse": "^4.1.1" } }, - "eslint-utils": { - "version": "3.0.0", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "dev": true - } - } - }, "eslint-visitor-keys": { - "version": "3.3.0", + "version": "3.4.1", "dev": true }, "espree": { - "version": "9.3.2", + "version": "9.6.0", "dev": true, "requires": { - "acorn": "^8.7.1", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.1" } }, "esprima": { - "version": "4.0.1", - "dev": true + "version": "4.0.1" }, "esquery": { - "version": "1.4.0", + "version": "1.5.0", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -51346,143 +56474,35 @@ } }, "estraverse": { - "version": "4.3.0", - "dev": true + "version": "4.3.0" }, "esutils": { - "version": "2.0.3", - "dev": true + "version": "2.0.3" }, "etag": { "version": "1.8.1" }, - "eth-ens-namehash": { - "version": "2.0.8", - "requires": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7" - } - } - }, - "eth-lib": { - "version": "0.1.29", + "ethers": { + "version": "6.6.2", "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" + "@adraffy/ens-normalize": "1.9.2", + "@noble/hashes": "1.1.2", + "@noble/secp256k1": "1.7.1", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" }, "dependencies": { - "safe-buffer": { - "version": "5.1.2" + "@noble/hashes": { + "version": "1.1.2" }, - "ws": { - "version": "3.3.3", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - } - } - }, - "ethereum-bloom-filters": { - "version": "1.0.10", - "requires": { - "js-sha3": "^0.8.0" - } - }, - "ethereum-cryptography": { - "version": "0.1.3", - "requires": { - "@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" - } - }, - "ethereumjs-util": { - "version": "7.1.4", - "requires": { - "@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" - }, - "dependencies": { - "@types/bn.js": { - "version": "5.1.0", - "requires": { - "@types/node": "*" - } + "@types/node": { + "version": "18.15.13" }, - "bn.js": { - "version": "5.2.0" - } - } - }, - "ethers": { - "version": "5.6.6", - "requires": { - "@ethersproject/abi": "5.6.2", - "@ethersproject/abstract-provider": "5.6.0", - "@ethersproject/abstract-signer": "5.6.1", - "@ethersproject/address": "5.6.0", - "@ethersproject/base64": "5.6.0", - "@ethersproject/basex": "5.6.0", - "@ethersproject/bignumber": "5.6.1", - "@ethersproject/bytes": "5.6.1", - "@ethersproject/constants": "5.6.0", - "@ethersproject/contracts": "5.6.1", - "@ethersproject/hash": "5.6.0", - "@ethersproject/hdnode": "5.6.1", - "@ethersproject/json-wallets": "5.6.0", - "@ethersproject/keccak256": "5.6.0", - "@ethersproject/logger": "5.6.0", - "@ethersproject/networks": "5.6.2", - "@ethersproject/pbkdf2": "5.6.0", - "@ethersproject/properties": "5.6.0", - "@ethersproject/providers": "5.6.6", - "@ethersproject/random": "5.6.0", - "@ethersproject/rlp": "5.6.0", - "@ethersproject/sha2": "5.6.0", - "@ethersproject/signing-key": "5.6.1", - "@ethersproject/solidity": "5.6.0", - "@ethersproject/strings": "5.6.0", - "@ethersproject/transactions": "5.6.0", - "@ethersproject/units": "5.6.0", - "@ethersproject/wallet": "5.6.1", - "@ethersproject/web": "5.6.0", - "@ethersproject/wordlists": "5.6.0" - } - }, - "ethjs-unit": { - "version": "0.1.6", - "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6" + "ws": { + "version": "8.5.0", + "requires": {} } } }, @@ -51502,13 +56522,6 @@ "version": "3.3.0", "dev": true }, - "evp_bytestokey": { - "version": "1.0.3", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "execa": { "version": "1.0.0", "dev": true, @@ -51538,7 +56551,7 @@ "dev": true }, "semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true }, "shebang-command": { @@ -51655,11 +56668,11 @@ } }, "express": { - "version": "4.18.1", + "version": "4.18.2", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.0", + "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.5.0", @@ -51678,7 +56691,7 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.10.3", + "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.18.0", @@ -51698,13 +56711,62 @@ }, "ms": { "version": "2.0.0" + }, + "qs": { + "version": "6.11.0", + "requires": { + "side-channel": "^1.0.4" + } + }, + "safe-buffer": { + "version": "5.2.1" } } }, "express-fileupload": { - "version": "1.3.1", + "version": "1.4.0", "requires": { - "busboy": "^0.3.1" + "busboy": "^1.6.0" + } + }, + "express-openapi-validator": { + "version": "5.0.4", + "requires": { + "@apidevtools/json-schema-ref-parser": "^9.1.2", + "@types/multer": "^1.4.7", + "ajv": "^8.11.2", + "ajv-draft-04": "^1.0.0", + "ajv-formats": "^2.1.1", + "content-type": "^1.0.5", + "lodash.clonedeep": "^4.5.0", + "lodash.get": "^4.4.2", + "lodash.uniq": "^4.5.0", + "lodash.zipobject": "^4.1.3", + "media-typer": "^1.1.0", + "multer": "^1.4.5-lts.1", + "ono": "^7.1.3", + "path-to-regexp": "^6.2.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-draft-04": { + "version": "1.0.0", + "requires": {} + }, + "json-schema-traverse": { + "version": "1.0.0" + }, + "path-to-regexp": { + "version": "6.2.1" + } } }, "express-session": { @@ -51731,29 +56793,15 @@ }, "ms": { "version": "2.0.0" - } - } - }, - "express-validator": { - "version": "6.14.0", - "requires": { - "lodash": "^4.17.21", - "validator": "^13.7.0" - } - }, - "ext": { - "version": "1.6.0", - "requires": { - "type": "^2.5.0" - }, - "dependencies": { - "type": { - "version": "2.6.0" + }, + "safe-buffer": { + "version": "5.2.1" } } }, "extend": { - "version": "3.0.2" + "version": "3.0.2", + "dev": true }, "extend-shallow": { "version": "3.0.2", @@ -51806,18 +56854,35 @@ } } }, + "extract-zip": { + "version": "2.0.1", + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "requires": { + "pump": "^3.0.0" + } + } + } + }, "extsprintf": { - "version": "1.3.0" + "version": "1.3.0", + "dev": true }, "fast-deep-equal": { "version": "3.1.3" }, "fast-fifo": { - "version": "1.1.0", - "dev": true + "version": "1.3.0" }, "fast-glob": { - "version": "3.2.11", + "version": "3.3.0", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -51837,23 +56902,51 @@ } }, "fast-json-stable-stringify": { - "version": "2.1.0" + "version": "2.1.0", + "dev": true }, "fast-levenshtein": { - "version": "2.0.6", - "dev": true + "version": "2.0.6" + }, + "fast-redact": { + "version": "3.2.0" + }, + "fast-safe-stringify": { + "version": "2.1.1" + }, + "fast-url-parser": { + "version": "1.1.3", + "dev": true, + "requires": { + "punycode": "^1.3.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "dev": true + } + } }, "fast-write-atomic": { "version": "0.2.1", "dev": true }, "fastq": { - "version": "1.13.0", + "version": "1.15.0", "dev": true, "requires": { "reusify": "^1.0.4" } }, + "fd-slicer": { + "version": "1.1.0", + "requires": { + "pend": "~1.2.0" + } + }, + "fecha": { + "version": "4.2.3" + }, "figgy-pudding": { "version": "3.5.2", "dev": true @@ -51863,12 +56956,6 @@ "dev": true, "requires": { "escape-string-regexp": "^1.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - } } }, "file-entry-cache": { @@ -51878,10 +56965,41 @@ "flat-cache": "^3.0.4" } }, + "file-type": { + "version": "16.5.4", + "requires": { + "readable-web-to-node-stream": "^3.0.0", + "strtok3": "^6.2.4", + "token-types": "^4.1.1" + } + }, "file-uri-to-path": { "version": "1.0.0", "dev": true }, + "filelist": { + "version": "1.0.4", + "requires": { + "minimatch": "^5.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "filesize": { + "version": "8.0.7" + }, "fill-range": { "version": "7.0.1", "dev": true, @@ -51916,11 +57034,18 @@ } } }, - "find-up": { + "find-replace": { "version": "3.0.0", + "requires": { + "array-back": "^3.0.1" + } + }, + "find-up": { + "version": "5.0.0", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" } }, "flat": { @@ -51938,8 +57063,11 @@ "rimraf": "^3.0.2" } }, + "flatstr": { + "version": "1.0.12" + }, "flatted": { - "version": "3.2.5", + "version": "3.2.7", "dev": true }, "flush-write-stream": { @@ -51950,8 +57078,12 @@ "readable-stream": "^2.3.6" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "dev": true + }, "readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -51963,10 +57095,6 @@ "util-deprecate": "~1.0.1" } }, - "safe-buffer": { - "version": "5.1.2", - "dev": true - }, "string_decoder": { "version": "1.1.1", "dev": true, @@ -51976,12 +57104,19 @@ } } }, + "fn.name": { + "version": "1.1.0" + }, "fnv1a": { "version": "1.1.1", "dev": true }, + "follow-redirects": { + "version": "1.15.2" + }, "for-each": { "version": "0.3.3", + "dev": true, "requires": { "is-callable": "^1.1.3" } @@ -51990,8 +57125,17 @@ "version": "1.0.2", "dev": true }, + "foreground-child": { + "version": "2.0.0", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + } + }, "forever-agent": { - "version": "0.6.1" + "version": "0.6.1", + "dev": true }, "form-data": { "version": "3.0.1", @@ -52002,8 +57146,13 @@ } }, "formidable": { - "version": "1.2.6", - "dev": true + "version": "2.1.2", + "requires": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + } }, "forwarded": { "version": "0.2.0" @@ -52026,8 +57175,12 @@ "readable-stream": "^2.0.0" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "dev": true + }, "readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -52039,10 +57192,6 @@ "util-deprecate": "~1.0.1" } }, - "safe-buffer": { - "version": "5.1.2", - "dev": true - }, "string_decoder": { "version": "1.1.1", "dev": true, @@ -52054,7 +57203,6 @@ }, "fs-extra": { "version": "8.1.0", - "dev": true, "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -52063,6 +57211,7 @@ }, "fs-minipass": { "version": "1.2.7", + "dev": true, "requires": { "minipass": "^2.6.0" } @@ -52077,8 +57226,12 @@ "readable-stream": "1 || 2" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "dev": true + }, "readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -52090,10 +57243,6 @@ "util-deprecate": "~1.0.1" } }, - "safe-buffer": { - "version": "5.1.2", - "dev": true - }, "string_decoder": { "version": "1.1.1", "dev": true, @@ -52104,8 +57253,12 @@ } }, "fs.realpath": { - "version": "1.0.0", - "dev": true + "version": "1.0.0" + }, + "fsevents": { + "version": "2.1.3", + "dev": true, + "optional": true }, "fsu": { "version": "1.1.1", @@ -52116,6 +57269,7 @@ }, "function.prototype.name": { "version": "1.1.5", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -52123,47 +57277,132 @@ "functions-have-names": "^1.2.2" } }, - "functional-red-black-tree": { - "version": "1.0.1", - "dev": true - }, "functions-have-names": { - "version": "1.2.3" + "version": "1.2.3", + "dev": true }, "ganache": { - "version": "7.1.0", + "version": "7.9.0", "dev": true, "requires": { - "@trufflesuite/bigint-buffer": "1.1.9", + "@trufflesuite/bigint-buffer": "1.1.10", + "@trufflesuite/uws-js-unofficial": "20.10.0-unofficial.2", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "5.1.1", + "@types/seedrandom": "3.0.1", + "abstract-level": "1.0.3", + "abstract-leveldown": "7.2.0", + "async-eventemitter": "0.2.4", "bufferutil": "4.0.5", "emittery": "0.10.0", - "keccak": "3.0.1", + "keccak": "3.0.2", "leveldown": "6.1.0", - "secp256k1": "4.0.2", + "secp256k1": "4.0.3", "utf-8-validate": "5.0.7" }, "dependencies": { "@trufflesuite/bigint-buffer": { - "version": "1.1.9", + "version": "1.1.10", + "bundled": true, + "dev": true, + "requires": { + "node-gyp-build": "4.4.0" + }, + "dependencies": { + "node-gyp-build": { + "version": "4.4.0", + "bundled": true, + "dev": true + } + } + }, + "@trufflesuite/uws-js-unofficial": { + "version": "20.10.0-unofficial.2", "dev": true, "requires": { - "node-gyp-build": "4.3.0" + "bufferutil": "4.0.5", + "utf-8-validate": "5.0.7", + "ws": "8.2.3" } }, - "base64-js": { - "version": "1.5.1", + "@types/bn.js": { + "version": "5.1.0", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/lru-cache": { + "version": "5.1.1", "dev": true }, - "bn.js": { - "version": "4.12.0", + "@types/node": { + "version": "17.0.0", + "dev": true + }, + "@types/seedrandom": { + "version": "3.0.1", + "dev": true + }, + "abstract-level": { + "version": "1.0.3", + "dev": true, + "requires": { + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" + }, + "dependencies": { + "level-supports": { + "version": "4.0.1", + "dev": true + } + } + }, + "abstract-leveldown": { + "version": "7.2.0", + "bundled": true, + "dev": true, + "requires": { + "buffer": "^6.0.3", + "catering": "^2.0.0", + "is-buffer": "^2.0.5", + "level-concat-iterator": "^3.0.0", + "level-supports": "^2.0.1", + "queue-microtask": "^1.2.3" + } + }, + "async": { + "version": "2.6.4", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-eventemitter": { + "version": "0.2.4", + "dev": true, + "requires": { + "async": "^2.4.0" + } + }, + "base64-js": { + "version": "1.5.1", + "bundled": true, "dev": true }, "brorand": { "version": "1.1.0", + "bundled": true, "dev": true }, "buffer": { "version": "6.0.3", + "bundled": true, "dev": true, "requires": { "base64-js": "^1.3.1", @@ -52180,6 +57419,7 @@ }, "catering": { "version": "2.1.0", + "bundled": true, "dev": true, "requires": { "queue-tick": "^1.0.0" @@ -52187,6 +57427,7 @@ }, "elliptic": { "version": "6.5.4", + "bundled": true, "dev": true, "requires": { "bn.js": "^4.11.9", @@ -52196,6 +57437,13 @@ "inherits": "^2.0.4", "minimalistic-assert": "^1.0.1", "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true, + "dev": true + } } }, "emittery": { @@ -52204,6 +57452,7 @@ }, "hash.js": { "version": "1.1.7", + "bundled": true, "dev": true, "requires": { "inherits": "^2.0.3", @@ -52212,6 +57461,7 @@ }, "hmac-drbg": { "version": "1.0.1", + "bundled": true, "dev": true, "requires": { "hash.js": "^1.0.3", @@ -52221,95 +57471,136 @@ }, "ieee754": { "version": "1.2.1", + "bundled": true, "dev": true }, "inherits": { "version": "2.0.4", + "bundled": true, "dev": true }, "is-buffer": { "version": "2.0.5", + "bundled": true, "dev": true }, "keccak": { - "version": "3.0.1", + "version": "3.0.2", + "bundled": true, "dev": true, "requires": { "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + } + }, + "level-concat-iterator": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "catering": "^2.1.0" + } + }, + "level-supports": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "level-transcoder": { + "version": "1.0.1", + "dev": true, + "requires": { + "buffer": "^6.0.3", + "module-error": "^1.0.1" } }, "leveldown": { "version": "6.1.0", + "bundled": true, "dev": true, "requires": { "abstract-leveldown": "^7.2.0", "napi-macros": "~2.0.0", "node-gyp-build": "^4.3.0" - }, - "dependencies": { - "abstract-leveldown": { - "version": "7.2.0", - "dev": true, - "requires": { - "buffer": "^6.0.3", - "catering": "^2.0.0", - "is-buffer": "^2.0.5", - "level-concat-iterator": "^3.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" - } - }, - "level-concat-iterator": { - "version": "3.1.0", - "dev": true, - "requires": { - "catering": "^2.1.0" - } - }, - "level-supports": { - "version": "2.1.0", - "dev": true - } } }, + "lodash": { + "version": "4.17.21", + "dev": true + }, "minimalistic-assert": { "version": "1.0.1", + "bundled": true, "dev": true }, "minimalistic-crypto-utils": { "version": "1.0.1", + "bundled": true, + "dev": true + }, + "module-error": { + "version": "1.0.2", "dev": true }, "napi-macros": { "version": "2.0.0", + "bundled": true, "dev": true }, "node-addon-api": { "version": "2.0.2", + "bundled": true, "dev": true }, "node-gyp-build": { "version": "4.3.0", + "bundled": true, "dev": true }, "queue-microtask": { "version": "1.2.3", + "bundled": true, "dev": true }, "queue-tick": { "version": "1.0.0", + "bundled": true, + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "bundled": true, "dev": true }, "secp256k1": { - "version": "4.0.2", + "version": "4.0.3", + "bundled": true, "dev": true, "requires": { - "elliptic": "^6.5.2", + "elliptic": "^6.5.4", "node-addon-api": "^2.0.0", "node-gyp-build": "^4.2.0" } }, + "string_decoder": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, "utf-8-validate": { "version": "5.0.7", "dev": true, @@ -52317,6 +57608,16 @@ "requires": { "node-gyp-build": "^4.3.0" } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "ws": { + "version": "8.2.3", + "dev": true, + "requires": {} } } }, @@ -52376,24 +57677,23 @@ "dev": true }, "get-caller-file": { - "version": "2.0.5", - "dev": true + "version": "2.0.5" }, "get-func-name": { "version": "2.0.0", "dev": true }, "get-intrinsic": { - "version": "1.1.1", + "version": "1.2.1", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" } }, "get-iterator": { - "version": "1.0.2", - "dev": true + "version": "1.0.2" }, "get-pkg-repo": { "version": "1.4.0", @@ -52426,6 +57726,10 @@ "pinkie-promise": "^2.0.0" } }, + "get-stdin": { + "version": "4.0.1", + "dev": true + }, "indent-string": { "version": "2.1.0", "dev": true, @@ -52433,6 +57737,10 @@ "repeating": "^2.0.0" } }, + "isarray": { + "version": "1.0.0", + "dev": true + }, "load-json-file": { "version": "1.1.0", "dev": true, @@ -52509,7 +57817,7 @@ } }, "readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -52529,10 +57837,6 @@ "strip-indent": "^1.0.1" } }, - "safe-buffer": { - "version": "5.1.2", - "dev": true - }, "string_decoder": { "version": "1.1.1", "dev": true, @@ -52573,28 +57877,40 @@ "dev": true }, "get-stdin": { - "version": "4.0.1", + "version": "9.0.0", "dev": true }, "get-stream": { "version": "4.1.0", + "dev": true, "requires": { "pump": "^3.0.0" } }, "get-symbol-description": { "version": "1.0.0", + "dev": true, "requires": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" } }, + "get-uri": { + "version": "6.0.1", + "requires": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^5.0.1", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + } + }, "get-value": { "version": "2.0.6", "dev": true }, "getpass": { "version": "0.1.7", + "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -52631,6 +57947,10 @@ "version": "1.1.0", "dev": true }, + "isarray": { + "version": "1.0.0", + "dev": true + }, "map-obj": { "version": "2.0.0", "dev": true @@ -52663,7 +57983,7 @@ "dev": true }, "readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -52683,10 +58003,6 @@ "strip-indent": "^2.0.0" } }, - "safe-buffer": { - "version": "5.1.2", - "dev": true - }, "split2": { "version": "2.2.0", "dev": true, @@ -52802,7 +58118,7 @@ } }, "semver": { - "version": "6.3.0", + "version": "6.3.1", "dev": true }, "strip-indent": { @@ -52839,7 +58155,6 @@ }, "glob": { "version": "7.2.3", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -52860,18 +58175,18 @@ "version": "0.3.0", "dev": true }, - "global": { - "version": "4.4.0", + "globals": { + "version": "13.20.0", + "dev": true, "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" + "type-fest": "^0.20.2" } }, - "globals": { - "version": "13.15.0", + "globalthis": { + "version": "1.0.3", "dev": true, "requires": { - "type-fest": "^0.20.2" + "define-properties": "^1.1.3" } }, "globby": { @@ -52886,29 +58201,25 @@ "slash": "^3.0.0" } }, - "got": { - "version": "9.6.0", + "gopd": { + "version": "1.0.1", + "dev": true, "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "dependencies": { - "p-cancelable": { - "version": "1.1.0" - } + "get-intrinsic": "^1.1.3" } }, "graceful-fs": { - "version": "4.2.10" + "version": "4.2.11" + }, + "graphemer": { + "version": "1.4.0", + "dev": true + }, + "graphlib": { + "version": "2.1.8", + "requires": { + "lodash": "^4.17.15" + } }, "growl": { "version": "1.10.5", @@ -52933,11 +58244,22 @@ "wordwrap": "^1.0.0" } }, + "hapi-pino": { + "version": "8.5.0", + "requires": { + "@hapi/hoek": "^9.0.0", + "abstract-logging": "^2.0.0", + "pino": "^6.0.0", + "pino-pretty": "^4.0.0" + } + }, "har-schema": { - "version": "2.0.0" + "version": "2.0.0", + "dev": true }, "har-validator": { "version": "5.1.5", + "dev": true, "requires": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -52954,32 +58276,28 @@ } }, "has-bigints": { - "version": "1.0.2" + "version": "1.0.2", + "dev": true }, "has-flag": { - "version": "4.0.0", - "dev": true + "version": "3.0.0" }, "has-property-descriptors": { "version": "1.0.0", + "dev": true, "requires": { "get-intrinsic": "^1.1.1" } }, - "has-symbol-support-x": { - "version": "1.4.2" + "has-proto": { + "version": "1.0.1" }, "has-symbols": { "version": "1.0.3" }, - "has-to-string-tag-x": { - "version": "1.4.1", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, "has-tostringtag": { "version": "1.0.0", + "dev": true, "requires": { "has-symbols": "^1.0.2" } @@ -53034,16 +58352,9 @@ } } }, - "hash-base": { - "version": "3.1.0", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, "hash.js": { "version": "1.1.7", + "dev": true, "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -53061,8 +58372,12 @@ "version": "0.2.7", "dev": true }, + "hexoid": { + "version": "1.0.0" + }, "hmac-drbg": { "version": "1.0.1", + "dev": true, "requires": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -53073,6 +58388,10 @@ "version": "2.8.9", "dev": true }, + "html-escaper": { + "version": "2.0.2", + "dev": true + }, "http-cache-semantics": { "version": "3.8.1", "dev": true @@ -53087,9 +58406,6 @@ "toidentifier": "1.0.1" } }, - "http-https": { - "version": "1.0.0" - }, "http-proxy-agent": { "version": "2.1.0", "dev": true, @@ -53113,6 +58429,7 @@ }, "http-signature": { "version": "1.2.0", + "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -53140,7 +58457,7 @@ } }, "human-signals": { - "version": "2.1.0", + "version": "4.3.1", "dev": true }, "humanize-ms": { @@ -53156,17 +58473,6 @@ "safer-buffer": ">= 2.1.2 < 3" } }, - "idna-uts46-hx": { - "version": "2.3.1", - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0" - } - } - }, "ieee754": { "version": "1.2.1" }, @@ -53175,7 +58481,7 @@ "dev": true }, "ignore": { - "version": "5.2.0", + "version": "5.2.4", "dev": true }, "ignore-walk": { @@ -53185,18 +58491,12 @@ "minimatch": "^3.0.4" } }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" - }, "immutable": { "version": "3.8.2", "dev": true }, "import-fresh": { "version": "3.3.0", - "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -53224,7 +58524,6 @@ }, "inflight": { "version": "1.0.6", - "devOptional": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -53252,7 +58551,7 @@ }, "dependencies": { "semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true } } @@ -53280,54 +58579,12 @@ "version": "4.1.1", "dev": true }, - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, "strip-ansi": { "version": "5.2.0", "dev": true, "requires": { "ansi-regex": "^4.1.0" } - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, @@ -53340,29 +58597,27 @@ } }, "interface-datastore": { - "version": "6.1.0", - "dev": true, + "version": "6.1.1", "requires": { - "interface-store": "^2.0.1", + "interface-store": "^2.0.2", "nanoid": "^3.0.2", "uint8arrays": "^3.0.0" } }, "interface-store": { - "version": "2.0.2", - "dev": true + "version": "2.0.2" }, "internal-slot": { - "version": "1.0.3", + "version": "1.0.5", + "dev": true, "requires": { - "get-intrinsic": "^1.1.0", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" } }, "ip": { - "version": "1.1.5", - "dev": true + "version": "1.1.8" }, "ip-address": { "version": "8.1.0", @@ -53370,6 +58625,12 @@ "requires": { "jsbn": "1.1.0", "sprintf-js": "1.1.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.2", + "dev": true + } } }, "ip-regex": { @@ -53377,7 +58638,7 @@ "dev": true }, "ipaddr.js": { - "version": "2.0.1", + "version": "2.1.0", "dev": true }, "ipfs-bitswap": { @@ -53474,12 +58735,28 @@ "uint8arrays": "^3.0.0" }, "dependencies": { - "ipfs-unixfs": { - "version": "6.0.7", + "ipfs-http-client": { + "version": "54.0.2", "dev": true, "requires": { + "@ipld/dag-cbor": "^6.0.5", + "@ipld/dag-pb": "^2.1.3", + "abort-controller": "^3.0.0", + "any-signal": "^2.1.2", + "debug": "^4.1.1", "err-code": "^3.0.1", - "protobufjs": "^6.10.2" + "ipfs-core-types": "^0.8.4", + "ipfs-core-utils": "^0.12.2", + "ipfs-utils": "^9.0.2", + "it-first": "^1.0.6", + "it-last": "^1.0.4", + "merge-options": "^3.0.4", + "multiaddr": "^10.0.0", + "multiformats": "^9.4.13", + "native-abort-controller": "^1.0.3", + "parse-duration": "^1.0.0", + "stream-to-it": "^0.2.2", + "uint8arrays": "^3.0.0" } } } @@ -53547,40 +58824,128 @@ "parse-duration": "^1.0.0", "timeout-abort-controller": "^1.1.1", "uint8arrays": "^3.0.0" - }, - "dependencies": { - "ipfs-unixfs": { - "version": "6.0.7", - "dev": true, - "requires": { - "err-code": "^3.0.1", - "protobufjs": "^6.10.2" - } - } } }, "ipfs-http-client": { - "version": "54.0.2", - "dev": true, + "version": "56.0.3", "requires": { - "@ipld/dag-cbor": "^6.0.5", + "@ipld/dag-cbor": "^7.0.0", + "@ipld/dag-json": "^8.0.1", "@ipld/dag-pb": "^2.1.3", - "abort-controller": "^3.0.0", - "any-signal": "^2.1.2", + "any-signal": "^3.0.0", + "dag-jose": "^1.0.0", "debug": "^4.1.1", "err-code": "^3.0.1", - "ipfs-core-types": "^0.8.4", - "ipfs-core-utils": "^0.12.2", - "ipfs-utils": "^9.0.2", + "ipfs-core-types": "^0.10.3", + "ipfs-core-utils": "^0.14.3", + "ipfs-utils": "^9.0.6", "it-first": "^1.0.6", "it-last": "^1.0.4", "merge-options": "^3.0.4", "multiaddr": "^10.0.0", - "multiformats": "^9.4.13", - "native-abort-controller": "^1.0.3", + "multiformats": "^9.5.1", "parse-duration": "^1.0.0", "stream-to-it": "^0.2.2", "uint8arrays": "^3.0.0" + }, + "dependencies": { + "@ipld/dag-cbor": { + "version": "7.0.3", + "requires": { + "cborg": "^1.6.0", + "multiformats": "^9.5.4" + } + }, + "any-signal": { + "version": "3.0.1" + }, + "ipfs-core-types": { + "version": "0.10.3", + "requires": { + "@ipld/dag-pb": "^2.1.3", + "interface-datastore": "^6.0.2", + "ipfs-unixfs": "^6.0.3", + "multiaddr": "^10.0.0", + "multiformats": "^9.5.1" + } + }, + "ipfs-core-utils": { + "version": "0.14.3", + "requires": { + "any-signal": "^3.0.0", + "blob-to-it": "^1.0.1", + "browser-readablestream-to-it": "^1.0.1", + "debug": "^4.1.1", + "err-code": "^3.0.1", + "ipfs-core-types": "^0.10.3", + "ipfs-unixfs": "^6.0.3", + "ipfs-utils": "^9.0.6", + "it-all": "^1.0.4", + "it-map": "^1.0.4", + "it-peekable": "^1.0.2", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "multiaddr": "^10.0.0", + "multiaddr-to-uri": "^8.0.0", + "multiformats": "^9.5.1", + "nanoid": "^3.1.23", + "parse-duration": "^1.0.0", + "timeout-abort-controller": "^3.0.0", + "uint8arrays": "^3.0.0" + } + }, + "timeout-abort-controller": { + "version": "3.0.0", + "requires": { + "retimer": "^3.0.0" + } + } + } + }, + "ipfs-http-gateway": { + "version": "0.9.3", + "requires": { + "@hapi/ammo": "^5.0.1", + "@hapi/boom": "^9.1.0", + "@hapi/hapi": "^20.0.0", + "debug": "^4.1.1", + "hapi-pino": "^8.3.0", + "ipfs-core-types": "^0.10.3", + "ipfs-http-response": "^2.0.3", + "is-ipfs": "^6.0.1", + "it-last": "^1.0.4", + "it-to-stream": "^1.0.0", + "joi": "^17.2.1", + "multiformats": "^9.5.1", + "uint8arrays": "^3.0.0", + "uri-to-multiaddr": "^6.0.0" + }, + "dependencies": { + "ipfs-core-types": { + "version": "0.10.3", + "requires": { + "@ipld/dag-pb": "^2.1.3", + "interface-datastore": "^6.0.2", + "ipfs-unixfs": "^6.0.3", + "multiaddr": "^10.0.0", + "multiformats": "^9.5.1" + } + } + } + }, + "ipfs-http-response": { + "version": "2.0.3", + "requires": { + "debug": "^4.3.1", + "ejs": "^3.1.6", + "file-type": "^16.0.0", + "filesize": "^8.0.0", + "it-buffer": "^0.1.1", + "it-concat": "^2.0.0", + "it-reader": "^3.0.0", + "it-to-stream": "^1.0.0", + "mime-types": "^2.1.30", + "p-try-each": "^1.0.1" } }, "ipfs-repo": { @@ -53634,64 +58999,40 @@ } }, "ipfs-unixfs": { - "version": "1.0.3", - "dev": true, + "version": "6.0.9", "requires": { - "err-code": "^2.0.0", - "protons": "^1.2.0" - }, - "dependencies": { - "err-code": { - "version": "2.0.3", - "dev": true - } + "err-code": "^3.0.1", + "protobufjs": "^6.10.2" } }, "ipfs-unixfs-exporter": { - "version": "7.0.8", + "version": "7.0.11", "dev": true, "requires": { - "@ipld/dag-cbor": "^6.0.4", + "@ipld/dag-cbor": "^7.0.2", "@ipld/dag-pb": "^2.0.2", "@multiformats/murmur3": "^1.0.3", "err-code": "^3.0.1", "hamt-sharding": "^2.0.0", - "interface-blockstore": "^1.0.0", + "interface-blockstore": "^2.0.3", "ipfs-unixfs": "^6.0.0", "it-last": "^1.0.5", "multiformats": "^9.4.2", "uint8arrays": "^3.0.0" }, "dependencies": { - "interface-blockstore": { - "version": "1.0.2", - "dev": true, - "requires": { - "err-code": "^3.0.1", - "interface-store": "^1.0.2", - "it-all": "^1.0.5", - "it-drain": "^1.0.4", - "it-filter": "^1.0.2", - "it-take": "^1.0.1", - "multiformats": "^9.0.4" - } - }, - "interface-store": { - "version": "1.0.2", - "dev": true - }, - "ipfs-unixfs": { - "version": "6.0.7", + "@ipld/dag-cbor": { + "version": "7.0.3", "dev": true, "requires": { - "err-code": "^3.0.1", - "protobufjs": "^6.10.2" + "cborg": "^1.6.0", + "multiformats": "^9.5.4" } } } }, "ipfs-unixfs-importer": { - "version": "9.0.8", + "version": "9.0.10", "dev": true, "requires": { "@ipld/dag-pb": "^2.0.2", @@ -53699,7 +59040,7 @@ "bl": "^5.0.0", "err-code": "^3.0.1", "hamt-sharding": "^2.0.0", - "interface-blockstore": "^1.0.0", + "interface-blockstore": "^2.0.3", "ipfs-unixfs": "^6.0.0", "it-all": "^1.0.5", "it-batch": "^1.0.8", @@ -53709,62 +59050,50 @@ "multiformats": "^9.4.2", "rabin-wasm": "^0.1.4", "uint8arrays": "^3.0.0" - }, - "dependencies": { - "interface-blockstore": { - "version": "1.0.2", - "dev": true, - "requires": { - "err-code": "^3.0.1", - "interface-store": "^1.0.2", - "it-all": "^1.0.5", - "it-drain": "^1.0.4", - "it-filter": "^1.0.2", - "it-take": "^1.0.1", - "multiformats": "^9.0.4" - } - }, - "interface-store": { - "version": "1.0.2", - "dev": true - }, - "ipfs-unixfs": { - "version": "6.0.7", - "dev": true, - "requires": { - "err-code": "^3.0.1", - "protobufjs": "^6.10.2" - } - } } }, "ipfs-utils": { - "version": "9.0.6", - "dev": true, + "version": "9.0.14", "requires": { "any-signal": "^3.0.0", + "browser-readablestream-to-it": "^1.0.0", "buffer": "^6.0.1", "electron-fetch": "^1.7.2", "err-code": "^3.0.1", "is-electron": "^2.2.0", "iso-url": "^1.1.5", + "it-all": "^1.0.4", "it-glob": "^1.0.1", "it-to-stream": "^1.0.0", "merge-options": "^3.0.4", "nanoid": "^3.1.20", "native-fetch": "^3.0.0", - "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "react-native-fetch-api": "^2.0.0", + "node-fetch": "^2.6.8", + "react-native-fetch-api": "^3.0.0", "stream-to-it": "^0.2.2" }, "dependencies": { "any-signal": { - "version": "3.0.1", - "dev": true + "version": "3.0.1" }, "node-fetch": { - "version": "npm:@achingbrain/node-fetch@2.6.7", - "dev": true + "version": "2.6.12", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "tr46": { + "version": "0.0.3" + }, + "webidl-conversions": { + "version": "3.0.1" + }, + "whatwg-url": { + "version": "5.0.0", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } } } }, @@ -53834,19 +59163,21 @@ "kind-of": "^6.0.0" } }, - "is-arguments": { - "version": "1.1.1", + "is-array-buffer": { + "version": "3.0.2", + "dev": true, "requires": { "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" } }, "is-arrayish": { - "version": "0.2.1", - "dev": true + "version": "0.2.1" }, "is-bigint": { "version": "1.0.4", + "dev": true, "requires": { "has-bigints": "^1.0.1" } @@ -53860,6 +59191,7 @@ }, "is-boolean-object": { "version": "1.1.2", + "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -53870,7 +59202,8 @@ "dev": true }, "is-callable": { - "version": "1.2.4" + "version": "1.2.7", + "dev": true }, "is-ci": { "version": "2.0.0", @@ -53880,7 +59213,7 @@ } }, "is-core-module": { - "version": "2.9.0", + "version": "2.12.1", "dev": true, "requires": { "has": "^1.0.3" @@ -53895,6 +59228,7 @@ }, "is-date-object": { "version": "1.0.5", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } @@ -53912,13 +59246,16 @@ "version": "0.3.1", "dev": true }, + "is-docker": { + "version": "3.0.0", + "dev": true + }, "is-domain-name": { "version": "1.0.1", "dev": true }, "is-electron": { - "version": "2.2.1", - "dev": true + "version": "2.2.2" }, "is-extendable": { "version": "1.0.1", @@ -53948,15 +59285,6 @@ "version": "2.0.0", "dev": true }, - "is-function": { - "version": "1.0.2" - }, - "is-generator-function": { - "version": "1.0.10", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, "is-glob": { "version": "4.0.3", "dev": true, @@ -53964,8 +59292,12 @@ "is-extglob": "^2.1.1" } }, - "is-hex-prefixed": { - "version": "1.0.0" + "is-inside-container": { + "version": "1.0.0", + "dev": true, + "requires": { + "is-docker": "^3.0.0" + } }, "is-ip": { "version": "2.0.0", @@ -53976,7 +59308,6 @@ }, "is-ipfs": { "version": "6.0.2", - "dev": true, "requires": { "iso-url": "^1.1.3", "mafmt": "^10.0.0", @@ -53990,7 +59321,8 @@ "dev": true }, "is-negative-zero": { - "version": "2.0.2" + "version": "2.0.2", + "dev": true }, "is-number": { "version": "7.0.0", @@ -53998,6 +59330,7 @@ }, "is-number-object": { "version": "1.0.7", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } @@ -54006,12 +59339,12 @@ "version": "1.0.1", "dev": true }, - "is-object": { - "version": "1.0.2" + "is-path-inside": { + "version": "3.0.3", + "dev": true }, "is-plain-obj": { - "version": "2.1.0", - "dev": true + "version": "2.1.0" }, "is-plain-object": { "version": "5.0.0", @@ -54019,38 +59352,40 @@ }, "is-regex": { "version": "1.1.4", + "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" } }, - "is-retry-allowed": { - "version": "1.2.0" - }, "is-shared-array-buffer": { "version": "1.0.2", + "dev": true, "requires": { "call-bind": "^1.0.2" } }, "is-ssh": { - "version": "1.3.3", + "version": "1.4.0", "dev": true, "requires": { - "protocols": "^1.1.0" + "protocols": "^2.0.1" } }, "is-stream": { - "version": "1.1.0" + "version": "1.1.0", + "dev": true }, "is-string": { "version": "1.0.7", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, "is-symbol": { "version": "1.0.4", + "dev": true, "requires": { "has-symbols": "^1.0.2" } @@ -54063,17 +59398,19 @@ } }, "is-typed-array": { - "version": "1.1.9", + "version": "1.1.10", + "dev": true, "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", "for-each": "^0.3.3", + "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" } }, "is-typedarray": { - "version": "1.0.0" + "version": "1.0.0", + "dev": true }, "is-utf8": { "version": "0.2.1", @@ -54081,6 +59418,7 @@ }, "is-weakref": { "version": "1.0.2", + "dev": true, "requires": { "call-bind": "^1.0.2" } @@ -54089,8 +59427,22 @@ "version": "1.0.2", "dev": true }, + "is-wsl": { + "version": "2.2.0", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + }, + "dependencies": { + "is-docker": { + "version": "2.2.1", + "dev": true + } + } + }, "isarray": { - "version": "1.0.0" + "version": "2.0.5", + "dev": true }, "isexe": { "version": "2.0.0", @@ -54109,26 +59461,52 @@ } }, "iso-url": { - "version": "1.2.1", - "dev": true + "version": "1.2.1" }, "isobject": { "version": "3.0.1", "dev": true }, "isstream": { - "version": "0.1.2" + "version": "0.1.2", + "dev": true }, - "isurl": { - "version": "1.0.0", + "istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true + }, + "istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-reports": { + "version": "3.1.5", + "dev": true, "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" } }, "it-all": { - "version": "1.0.6", - "dev": true + "version": "1.0.6" }, "it-batch": { "version": "1.0.9", @@ -54136,12 +59514,17 @@ }, "it-buffer": { "version": "0.1.3", - "dev": true, "requires": { "bl": "^5.0.0", "buffer": "^6.0.3" } }, + "it-concat": { + "version": "2.0.0", + "requires": { + "bl": "^5.0.0" + } + }, "it-drain": { "version": "1.0.5", "dev": true @@ -54151,15 +59534,18 @@ "dev": true }, "it-first": { - "version": "1.0.7", - "dev": true + "version": "1.0.7" }, "it-glob": { "version": "1.0.2", - "dev": true, "requires": { "@types/minimatch": "^3.0.4", "minimatch": "^3.0.4" + }, + "dependencies": { + "@types/minimatch": { + "version": "3.0.5" + } } }, "it-handshake": { @@ -54172,8 +59558,7 @@ } }, "it-last": { - "version": "1.0.6", - "dev": true + "version": "1.0.6" }, "it-length": { "version": "1.0.4", @@ -54189,8 +59574,7 @@ } }, "it-map": { - "version": "1.0.6", - "dev": true + "version": "1.0.6" }, "it-merge": { "version": "1.0.4", @@ -54214,7 +59598,7 @@ } }, "it-parallel-batch": { - "version": "1.0.10", + "version": "1.0.11", "dev": true, "requires": { "it-batch": "^1.0.9" @@ -54230,8 +59614,7 @@ } }, "it-peekable": { - "version": "1.0.3", - "dev": true + "version": "1.0.3" }, "it-pipe": { "version": "1.1.0", @@ -54246,7 +59629,6 @@ }, "it-reader": { "version": "3.0.0", - "dev": true, "requires": { "bl": "^5.0.0" } @@ -54272,15 +59654,6 @@ "it-concat": "^2.0.0", "it-reader": "^3.0.0", "p-defer": "^3.0.0" - }, - "dependencies": { - "it-concat": { - "version": "2.0.0", - "dev": true, - "requires": { - "bl": "^5.0.0" - } - } } }, "it-to-buffer": { @@ -54292,7 +59665,6 @@ }, "it-to-stream": { "version": "1.0.0", - "dev": true, "requires": { "buffer": "^6.0.3", "fast-fifo": "^1.0.0", @@ -54312,47 +59684,121 @@ "ws": "^7.3.1" } }, + "jake": { + "version": "10.8.7", + "requires": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + }, + "has-flag": { + "version": "4.0.0" + }, + "supports-color": { + "version": "7.2.0", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jmespath": { + "version": "0.15.0" + }, + "joi": { + "version": "17.9.2", + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "joycon": { + "version": "2.2.5" + }, "js-sha3": { "version": "0.8.0" }, "js-tokens": { - "version": "4.0.0", - "dev": true + "version": "4.0.0" }, "js-yaml": { - "version": "4.1.0", - "dev": true, + "version": "3.14.1", "requires": { - "argparse": "^2.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { "version": "1.1.0", "dev": true }, - "json-buffer": { - "version": "3.0.0" - }, "json-parse-better-errors": { "version": "1.0.2", "dev": true }, "json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true + "version": "2.3.1" + }, + "json-refs": { + "version": "3.0.15", + "requires": { + "commander": "~4.1.1", + "graphlib": "^2.1.8", + "js-yaml": "^3.13.1", + "lodash": "^4.17.15", + "native-promise-only": "^0.8.1", + "path-loader": "^1.0.10", + "slash": "^3.0.0", + "uri-js": "^4.2.2" + }, + "dependencies": { + "commander": { + "version": "4.1.1" + } + } }, "json-schema": { - "version": "0.4.0" + "version": "0.4.0", + "dev": true }, "json-schema-traverse": { - "version": "0.4.1" + "version": "0.4.1", + "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "dev": true }, "json-stringify-safe": { - "version": "5.0.1" + "version": "5.0.1", + "dev": true }, "jsonfile": { "version": "4.0.0", @@ -54374,6 +59820,7 @@ }, "jsprim": { "version": "1.4.2", + "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -54381,46 +59828,6 @@ "verror": "1.10.0" } }, - "jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "just-debounce-it": { "version": "1.5.0", "dev": true @@ -54440,28 +59847,17 @@ "randombytes": "^2.1.0" } }, - "keccak": { - "version": "3.0.2", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - } - }, "keypair": { "version": "1.0.4", "dev": true }, - "keyv": { - "version": "3.1.0", - "requires": { - "json-buffer": "3.0.0" - } - }, "kind-of": { "version": "6.0.3", "dev": true }, + "kuler": { + "version": "2.0.0" + }, "lerna": { "version": "3.22.1", "dev": true, @@ -54486,15 +59882,6 @@ "npmlog": "^4.1.2" } }, - "level": { - "version": "7.0.1", - "dev": true, - "requires": { - "level-js": "^6.1.0", - "level-packager": "^6.0.1", - "leveldown": "^6.1.0" - } - }, "level-codec": { "version": "10.0.0", "dev": true, @@ -54540,10 +59927,6 @@ "levelup": "^5.1.1" } }, - "level-supports": { - "version": "2.1.0", - "dev": true - }, "leveldown": { "version": "6.1.1", "dev": true, @@ -54551,6 +59934,12 @@ "abstract-leveldown": "^7.2.0", "napi-macros": "~2.0.0", "node-gyp-build": "^4.3.0" + }, + "dependencies": { + "napi-macros": { + "version": "2.0.0", + "dev": true + } } }, "levelup": { @@ -54563,8 +59952,17 @@ "level-iterator-stream": "^5.0.0", "level-supports": "^2.0.1", "queue-microtask": "^1.2.3" + }, + "dependencies": { + "level-supports": { + "version": "2.1.0", + "dev": true + } } }, + "leven": { + "version": "2.1.0" + }, "levn": { "version": "0.4.1", "dev": true, @@ -54931,17 +60329,8 @@ "p-timeout": "^4.1.0" } }, - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "requires": { - "immediate": "~3.0.5" - } - }, "lines-and-columns": { - "version": "1.2.4", - "dev": true + "version": "1.2.4" }, "load-json-file": { "version": "5.3.0", @@ -54961,11 +60350,10 @@ } }, "locate-path": { - "version": "3.0.0", + "version": "6.0.0", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^5.0.0" } }, "lodash": { @@ -54975,13 +60363,14 @@ "version": "3.0.0", "dev": true }, + "lodash.camelcase": { + "version": "4.3.0" + }, "lodash.clonedeep": { - "version": "4.5.0", - "dev": true + "version": "4.5.0" }, "lodash.get": { - "version": "4.4.2", - "dev": true + "version": "4.4.2" }, "lodash.isempty": { "version": "4.4.0", @@ -55035,63 +60424,31 @@ "dev": true }, "lodash.uniq": { - "version": "4.5.0", - "dev": true + "version": "4.5.0" + }, + "lodash.zipobject": { + "version": "4.1.3" }, "log-symbols": { "version": "3.0.0", "dev": true, "requires": { "chalk": "^2.4.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + } + }, + "logform": { + "version": "2.5.1", + "requires": { + "@colors/colors": "1.5.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" } }, "long": { - "version": "4.0.0", - "dev": true + "version": "4.0.0" }, "loose-envify": { "version": "1.4.0", @@ -55109,15 +60466,12 @@ } }, "loupe": { - "version": "2.3.4", + "version": "2.3.6", "dev": true, "requires": { "get-func-name": "^2.0.0" } }, - "lowercase-keys": { - "version": "1.0.1" - }, "lru-cache": { "version": "5.1.1", "dev": true, @@ -55130,25 +60484,24 @@ "dev": true }, "macos-release": { - "version": "2.5.0", + "version": "2.5.1", "dev": true }, "mafmt": { "version": "10.0.0", - "dev": true, "requires": { "multiaddr": "^10.0.0" } }, "make-dir": { - "version": "1.3.0", + "version": "3.1.0", "dev": true, "requires": { - "pify": "^3.0.0" + "semver": "^6.0.0" }, "dependencies": { - "pify": { - "version": "3.0.0", + "semver": { + "version": "6.3.1", "dev": true } } @@ -55189,16 +60542,8 @@ "object-visit": "^1.0.0" } }, - "md5.js": { - "version": "1.3.5", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, "media-typer": { - "version": "0.3.0" + "version": "1.1.0" }, "memorystore": { "version": "1.6.7", @@ -55219,6 +60564,9 @@ } } }, + "memorystream": { + "version": "0.3.1" + }, "meow": { "version": "8.1.2", "dev": true, @@ -55275,6 +60623,13 @@ "validate-npm-package-license": "^3.0.1" } }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, "p-locate": { "version": "4.1.0", "dev": true, @@ -55292,10 +60647,6 @@ "lines-and-columns": "^1.1.6" } }, - "path-exists": { - "version": "4.0.0", - "dev": true - }, "read-pkg": { "version": "5.2.0", "dev": true, @@ -55321,7 +60672,7 @@ } }, "semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true }, "type-fest": { @@ -55360,7 +60711,6 @@ }, "merge-options": { "version": "3.0.4", - "dev": true, "requires": { "is-plain-obj": "^2.1.0" } @@ -55384,13 +60734,6 @@ "picomatch": "^2.3.1" } }, - "miller-rabin": { - "version": "4.0.1", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, "mime": { "version": "1.6.0" }, @@ -55407,34 +60750,26 @@ "version": "1.2.0", "dev": true }, - "mimic-response": { - "version": "1.0.1" - }, - "min-document": { - "version": "2.19.0", - "requires": { - "dom-walk": "^0.1.0" - } - }, "min-indent": { "version": "1.0.1", "dev": true }, "minimalistic-assert": { - "version": "1.0.1" + "version": "1.0.1", + "dev": true }, "minimalistic-crypto-utils": { - "version": "1.0.1" + "version": "1.0.1", + "dev": true }, "minimatch": { "version": "3.1.2", - "devOptional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "1.2.6" + "version": "1.2.8" }, "minimist-options": { "version": "4.1.0", @@ -55453,6 +60788,7 @@ }, "minipass": { "version": "2.9.0", + "dev": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -55460,6 +60796,7 @@ }, "minizlib": { "version": "1.3.3", + "dev": true, "requires": { "minipass": "^2.9.0" } @@ -55490,8 +60827,12 @@ "typedarray": "^0.0.6" } }, + "isarray": { + "version": "1.0.0", + "dev": true + }, "readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -55503,10 +60844,6 @@ "util-deprecate": "~1.0.1" } }, - "safe-buffer": { - "version": "5.1.2", - "dev": true - }, "string_decoder": { "version": "1.1.1", "dev": true, @@ -55524,6 +60861,9 @@ } } }, + "mitt": { + "version": "3.0.0" + }, "mixin-deep": { "version": "1.3.2", "dev": true, @@ -55533,10 +60873,15 @@ } }, "mkdirp": { - "version": "1.0.4" + "version": "1.0.4", + "dev": true + }, + "mkdirp-classic": { + "version": "0.5.3" }, "mkdirp-promise": { "version": "5.0.1", + "dev": true, "requires": { "mkdirp": "*" } @@ -55575,11 +60920,13 @@ "version": "4.1.1", "dev": true }, - "argparse": { - "version": "1.0.10", + "cliui": { + "version": "5.0.0", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, "debug": { @@ -55589,9 +60936,12 @@ "ms": "^2.1.1" } }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true + "find-up": { + "version": "3.0.0", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } }, "glob": { "version": "7.1.3", @@ -55605,10 +60955,6 @@ "path-is-absolute": "^1.0.0" } }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, "js-yaml": { "version": "3.13.1", "dev": true, @@ -55617,6 +60963,14 @@ "esprima": "^4.0.0" } }, + "locate-path": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, "minimatch": { "version": "3.0.4", "dev": true, @@ -55635,8 +60989,22 @@ "version": "2.1.1", "dev": true }, - "sprintf-js": { - "version": "1.0.3", + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", "dev": true }, "string-width": { @@ -55673,6 +61041,15 @@ "isexe": "^2.0.0" } }, + "wrap-ansi": { + "version": "5.1.0", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, "yargs": { "version": "13.3.2", "dev": true, @@ -55715,9 +61092,46 @@ "uuid": "^8.3.2" }, "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, "diff": { - "version": "5.0.0", + "version": "5.1.0", + "dev": true + }, + "has-flag": { + "version": "4.0.0", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -55739,15 +61153,41 @@ "yargs": "^17.2.1" }, "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, "cliui": { - "version": "7.0.4", + "version": "8.0.1", "dev": true, "requires": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, "dateformat": { "version": "4.6.3", "dev": true @@ -55765,6 +61205,10 @@ "universalify": "^2.0.0" } }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, "is-fullwidth-code-point": { "version": "3.0.0", "dev": true @@ -55786,51 +61230,46 @@ "strip-ansi": "^6.0.1" } }, - "universalify": { - "version": "2.0.0", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", + "supports-color": { + "version": "7.2.0", "dev": true, "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "has-flag": "^4.0.0" } }, + "universalify": { + "version": "2.0.0", + "dev": true + }, "y18n": { "version": "5.0.8", "dev": true }, "yargs": { - "version": "17.5.1", + "version": "17.7.2", "dev": true, "requires": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "yargs-parser": "^21.1.1" } }, "yargs-parser": { - "version": "21.0.1", + "version": "21.1.1", "dev": true } } }, - "mock-fs": { - "version": "4.14.0" - }, "modify-values": { "version": "1.0.1", "dev": true }, "moment": { - "version": "2.29.3", + "version": "2.29.4", "optional": true }, "mortice": { @@ -55875,12 +61314,64 @@ } } }, + "mri": { + "version": "1.1.4" + }, "ms": { "version": "2.1.2" }, + "multer": { + "version": "1.4.5-lts.1", + "requires": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.2", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "isarray": { + "version": "1.0.0" + }, + "mkdirp": { + "version": "0.5.6", + "requires": { + "minimist": "^1.2.6" + } + }, + "readable-stream": { + "version": "2.3.8", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "multiaddr": { "version": "10.0.1", - "dev": true, "requires": { "dns-over-http-resolver": "^1.2.3", "err-code": "^3.0.1", @@ -55891,12 +61382,10 @@ }, "dependencies": { "ip-regex": { - "version": "4.3.0", - "dev": true + "version": "4.3.0" }, "is-ip": { "version": "3.1.0", - "dev": true, "requires": { "ip-regex": "^4.0.0" } @@ -55905,7 +61394,6 @@ }, "multiaddr-to-uri": { "version": "8.0.0", - "dev": true, "requires": { "multiaddr": "^10.0.0" } @@ -55918,6 +61406,13 @@ "buffer": "^5.5.0" }, "dependencies": { + "base-x": { + "version": "3.0.9", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, "buffer": { "version": "5.7.1", "dev": true, @@ -55959,28 +61454,28 @@ } }, "multiformats": { - "version": "9.6.5" + "version": "9.9.0" }, "multihashes": { - "version": "3.1.2", + "version": "1.0.1", + "dev": true, "requires": { - "multibase": "^3.1.0", - "uint8arrays": "^2.0.5", - "varint": "^6.0.0" + "buffer": "^5.6.0", + "multibase": "^1.0.1", + "varint": "^5.0.0" }, "dependencies": { - "multibase": { - "version": "3.1.2", + "buffer": { + "version": "5.7.1", + "dev": true, "requires": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "uint8arrays": { - "version": "2.1.10", - "requires": { - "multiformats": "^9.4.2" - } + "varint": { + "version": "5.0.2", + "dev": true } } }, @@ -56004,21 +61499,8 @@ "ieee754": "^1.1.13" } }, - "err-code": { - "version": "2.0.3", - "dev": true - }, - "multihashes": { - "version": "1.0.1", - "dev": true, - "requires": { - "buffer": "^5.6.0", - "multibase": "^1.0.1", - "varint": "^5.0.0" - } - }, - "varint": { - "version": "5.0.2", + "err-code": { + "version": "2.0.3", "dev": true } } @@ -56116,15 +61598,11 @@ } }, "nan": { - "version": "2.15.0", + "version": "2.17.0", "devOptional": true }, - "nano-json-stream-parser": { - "version": "0.1.2" - }, "nanoid": { - "version": "3.3.4", - "dev": true + "version": "3.3.6" }, "nanomatch": { "version": "1.2.13", @@ -56143,10 +61621,6 @@ "to-regex": "^3.0.1" } }, - "napi-macros": { - "version": "2.0.0", - "dev": true - }, "native-abort-controller": { "version": "1.0.4", "dev": true, @@ -56154,13 +61628,19 @@ }, "native-fetch": { "version": "3.0.0", - "dev": true, "requires": {} }, + "native-promise-only": { + "version": "0.8.1" + }, "natural-compare": { "version": "1.4.0", "dev": true }, + "natural-compare-lite": { + "version": "1.4.0", + "dev": true + }, "ncp": { "version": "2.0.0", "optional": true @@ -56173,11 +61653,7 @@ "dev": true }, "netmask": { - "version": "2.0.2", - "dev": true - }, - "next-tick": { - "version": "1.1.0" + "version": "2.0.2" }, "nice-try": { "version": "1.0.5", @@ -56192,7 +61668,8 @@ "dev": true }, "node-addon-api": { - "version": "2.0.2" + "version": "2.0.2", + "dev": true }, "node-environment-flags": { "version": "1.0.6", @@ -56203,7 +61680,7 @@ }, "dependencies": { "semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true } } @@ -56274,7 +61751,7 @@ } }, "semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true }, "which": { @@ -56287,7 +61764,8 @@ } }, "node-gyp-build": { - "version": "4.4.0" + "version": "4.6.0", + "devOptional": true }, "nopt": { "version": "4.0.3", @@ -56308,7 +61786,7 @@ }, "dependencies": { "semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true } } @@ -56366,7 +61844,7 @@ }, "dependencies": { "semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true } } @@ -56390,8 +61868,62 @@ }, "dependencies": { "semver": { - "version": "5.7.1", + "version": "5.7.2", + "dev": true + } + } + }, + "npm-run-all": { + "version": "4.1.5", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "dev": true + }, + "semver": { + "version": "5.7.2", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", "dev": true + }, + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -56422,20 +61954,9 @@ "version": "1.0.1", "dev": true }, - "number-to-bn": { - "version": "1.7.0", - "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6" - } - } - }, "oauth-sign": { - "version": "0.9.0" + "version": "0.9.0", + "dev": true }, "object-assign": { "version": "4.1.1" @@ -56499,10 +62020,11 @@ } }, "object-inspect": { - "version": "1.12.0" + "version": "1.12.3" }, "object-keys": { - "version": "1.1.1" + "version": "1.1.1", + "dev": true }, "object-visit": { "version": "1.0.1", @@ -56522,12 +62044,14 @@ } }, "object.getownpropertydescriptors": { - "version": "2.1.3", + "version": "2.1.6", "dev": true, "requires": { + "array.prototype.reduce": "^1.0.5", "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.2.0", + "es-abstract": "^1.21.2", + "safe-array-concat": "^1.0.0" } }, "object.pick": { @@ -56537,12 +62061,6 @@ "isobject": "^3.0.1" } }, - "oboe": { - "version": "2.1.5", - "requires": { - "http-https": "^1.0.0" - } - }, "observable-webworkers": { "version": "1.0.0", "dev": true @@ -56566,6 +62084,12 @@ "wrappy": "1" } }, + "one-time": { + "version": "1.0.0", + "requires": { + "fn.name": "1.x.x" + } + }, "onetime": { "version": "2.0.1", "dev": true, @@ -56573,20 +62097,282 @@ "mimic-fn": "^1.0.0" } }, + "ono": { + "version": "7.1.3", + "requires": { + "@jsdevtools/ono": "7.1.3" + } + }, + "open": { + "version": "9.1.0", + "dev": true, + "requires": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + } + }, + "open-cli": { + "version": "7.2.0", + "dev": true, + "requires": { + "file-type": "^18.2.1", + "get-stdin": "^9.0.0", + "meow": "^11.0.0", + "open": "^9.0.0", + "tempy": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "7.0.1", + "dev": true + }, + "camelcase-keys": { + "version": "8.0.2", + "dev": true, + "requires": { + "camelcase": "^7.0.0", + "map-obj": "^4.3.0", + "quick-lru": "^6.1.1", + "type-fest": "^2.13.0" + }, + "dependencies": { + "type-fest": { + "version": "2.19.0", + "dev": true + } + } + }, + "decamelize": { + "version": "6.0.0", + "dev": true + }, + "file-type": { + "version": "18.5.0", + "dev": true, + "requires": { + "readable-web-to-node-stream": "^3.0.2", + "strtok3": "^7.0.0", + "token-types": "^5.0.1" + } + }, + "find-up": { + "version": "6.3.0", + "dev": true, + "requires": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + } + }, + "hosted-git-info": { + "version": "5.2.1", + "dev": true, + "requires": { + "lru-cache": "^7.5.1" + } + }, + "indent-string": { + "version": "5.0.0", + "dev": true + }, + "locate-path": { + "version": "7.2.0", + "dev": true, + "requires": { + "p-locate": "^6.0.0" + } + }, + "lru-cache": { + "version": "7.18.3", + "dev": true + }, + "meow": { + "version": "11.0.0", + "dev": true, + "requires": { + "@types/minimist": "^1.2.2", + "camelcase-keys": "^8.0.2", + "decamelize": "^6.0.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^4.0.1", + "read-pkg-up": "^9.1.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^3.1.0", + "yargs-parser": "^21.1.1" + } + }, + "normalize-package-data": { + "version": "4.0.1", + "dev": true, + "requires": { + "hosted-git-info": "^5.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + } + }, + "p-limit": { + "version": "4.0.0", + "dev": true, + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "p-locate": { + "version": "6.0.0", + "dev": true, + "requires": { + "p-limit": "^4.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "path-exists": { + "version": "5.0.0", + "dev": true + }, + "peek-readable": { + "version": "5.0.0", + "dev": true + }, + "quick-lru": { + "version": "6.1.1", + "dev": true + }, + "read-pkg": { + "version": "7.1.0", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^2.0.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "4.1.0", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "type-fest": { + "version": "2.19.0", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "9.1.0", + "dev": true, + "requires": { + "find-up": "^6.3.0", + "read-pkg": "^7.1.0", + "type-fest": "^2.5.0" + }, + "dependencies": { + "type-fest": { + "version": "2.19.0", + "dev": true + } + } + }, + "redent": { + "version": "4.0.0", + "dev": true, + "requires": { + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + } + }, + "strip-indent": { + "version": "4.0.0", + "dev": true, + "requires": { + "min-indent": "^1.0.1" + } + }, + "strtok3": { + "version": "7.0.0", + "dev": true, + "requires": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.0.0" + } + }, + "token-types": { + "version": "5.0.1", + "dev": true, + "requires": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + } + }, + "trim-newlines": { + "version": "4.1.1", + "dev": true + }, + "type-fest": { + "version": "3.13.0", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true + }, + "yargs-parser": { + "version": "21.1.1", + "dev": true + }, + "yocto-queue": { + "version": "1.0.0", + "dev": true + } + } + }, "opener": { "version": "1.5.2", "dev": true }, "optionator": { - "version": "0.9.1", + "version": "0.9.3", "dev": true, "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" } }, "os-homedir": { @@ -56602,8 +62388,7 @@ } }, "os-tmpdir": { - "version": "1.0.2", - "dev": true + "version": "1.0.2" }, "osenv": { "version": "0.1.5", @@ -56626,32 +62411,31 @@ "dev": true }, "p-defer": { - "version": "3.0.0", - "dev": true + "version": "3.0.0" }, "p-fifo": { "version": "1.0.0", - "dev": true, "requires": { "fast-fifo": "^1.0.0", "p-defer": "^3.0.0" } }, "p-finally": { - "version": "1.0.0" + "version": "1.0.0", + "dev": true }, "p-limit": { - "version": "2.3.0", + "version": "3.1.0", "dev": true, "requires": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" } }, "p-locate": { - "version": "3.0.0", + "version": "5.0.0", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^3.0.2" } }, "p-map": { @@ -56708,6 +62492,15 @@ "requires": { "p-limit": "^2.2.2", "p-reflect": "^2.1.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + } } }, "p-some": { @@ -56726,6 +62519,9 @@ "version": "2.2.0", "dev": true }, + "p-try-each": { + "version": "1.0.1" + }, "p-waterfall": { "version": "1.0.0", "dev": true, @@ -56733,8 +62529,69 @@ "p-reduce": "^1.0.0" } }, + "pac-proxy-agent": { + "version": "6.0.3", + "requires": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "pac-resolver": "^6.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "dependencies": { + "agent-base": { + "version": "7.1.0", + "requires": { + "debug": "^4.3.4" + } + }, + "http-proxy-agent": { + "version": "7.0.0", + "requires": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + } + }, + "https-proxy-agent": { + "version": "7.0.1", + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + }, + "ip": { + "version": "2.0.0" + }, + "socks": { + "version": "2.7.1", + "requires": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + } + }, + "socks-proxy-agent": { + "version": "8.0.1", + "requires": { + "agent-base": "^7.0.1", + "debug": "^4.3.4", + "socks": "^2.7.1" + } + } + } + }, + "pac-resolver": { + "version": "6.0.2", + "requires": { + "degenerator": "^4.0.4", + "ip": "^1.1.8", + "netmask": "^2.0.2" + } + }, "pako": { - "version": "1.0.11" + "version": "1.0.11", + "dev": true }, "parallel-transform": { "version": "1.2.0", @@ -56745,8 +62602,12 @@ "readable-stream": "^2.1.5" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "dev": true + }, "readable-stream": { - "version": "2.3.7", + "version": "2.3.8", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -56758,10 +62619,6 @@ "util-deprecate": "~1.0.1" } }, - "safe-buffer": { - "version": "5.1.2", - "dev": true - }, "string_decoder": { "version": "1.1.1", "dev": true, @@ -56773,32 +62630,17 @@ }, "parent-module": { "version": "1.0.1", - "dev": true, "requires": { "callsites": "^3.0.0" } }, - "parse-asn1": { - "version": "5.1.6", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, "parse-duration": { - "version": "1.0.2", - "dev": true + "version": "1.1.0" }, "parse-github-repo-url": { "version": "1.4.1", "dev": true }, - "parse-headers": { - "version": "2.0.5" - }, "parse-json": { "version": "4.0.0", "dev": true, @@ -56808,23 +62650,35 @@ } }, "parse-path": { - "version": "4.0.3", + "version": "4.0.4", "dev": true, "requires": { "is-ssh": "^1.3.0", "protocols": "^1.4.0", "qs": "^6.9.4", "query-string": "^6.13.8" + }, + "dependencies": { + "protocols": { + "version": "1.4.8", + "dev": true + } } }, "parse-url": { - "version": "6.0.0", + "version": "6.0.5", "dev": true, "requires": { "is-ssh": "^1.3.0", "normalize-url": "^6.1.0", "parse-path": "^4.0.0", "protocols": "^1.4.0" + }, + "dependencies": { + "protocols": { + "version": "1.4.8", + "dev": true + } } }, "parseurl": { @@ -56839,17 +62693,52 @@ "dev": true }, "path-exists": { - "version": "3.0.0", + "version": "4.0.0", "dev": true }, "path-is-absolute": { - "version": "1.0.1", - "devOptional": true + "version": "1.0.1" }, "path-key": { "version": "3.1.1", "dev": true }, + "path-loader": { + "version": "1.0.12", + "requires": { + "native-promise-only": "^0.8.1", + "superagent": "^7.1.6" + }, + "dependencies": { + "form-data": { + "version": "4.0.0", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "mime": { + "version": "2.6.0" + }, + "superagent": { + "version": "7.1.6", + "requires": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.3", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.0.1", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.10.3", + "readable-stream": "^3.6.0", + "semver": "^7.3.7" + } + } + } + }, "path-parse": { "version": "1.0.7", "dev": true @@ -56858,22 +62747,14 @@ "version": "0.1.7" }, "path-type": { - "version": "4.0.0", - "dev": true + "version": "4.0.0" }, "pathval": { "version": "1.1.1", "dev": true }, - "pbkdf2": { - "version": "3.1.2", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } + "peek-readable": { + "version": "4.1.0" }, "peer-id": { "version": "0.15.4", @@ -56913,13 +62794,21 @@ "asn1.js": "^5.0.1" } }, + "pend": { + "version": "1.2.0" + }, "performance-now": { - "version": "2.1.0" + "version": "2.1.0", + "dev": true }, "picomatch": { "version": "2.3.1", "dev": true }, + "pidtree": { + "version": "0.3.1", + "dev": true + }, "pify": { "version": "4.0.1", "dev": true @@ -56935,11 +62824,114 @@ "pinkie": "^2.0.0" } }, + "pino": { + "version": "6.14.0", + "requires": { + "fast-redact": "^3.0.0", + "fast-safe-stringify": "^2.0.8", + "flatstr": "^1.0.12", + "pino-std-serializers": "^3.1.0", + "process-warning": "^1.0.0", + "quick-format-unescaped": "^4.0.3", + "sonic-boom": "^1.0.2" + } + }, + "pino-pretty": { + "version": "4.8.0", + "requires": { + "@hapi/bourne": "^2.0.0", + "args": "^5.0.1", + "chalk": "^4.0.0", + "dateformat": "^4.5.1", + "fast-safe-stringify": "^2.0.7", + "jmespath": "^0.15.0", + "joycon": "^2.2.5", + "pump": "^3.0.0", + "readable-stream": "^3.6.0", + "rfdc": "^1.3.0", + "split2": "^3.1.1", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + }, + "dateformat": { + "version": "4.6.3" + }, + "has-flag": { + "version": "4.0.0" + }, + "supports-color": { + "version": "7.2.0", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "pino-std-serializers": { + "version": "3.2.0" + }, "pkg-dir": { "version": "3.0.0", "dev": true, "requires": { "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "dev": true + } } }, "posix-character-classes": { @@ -56950,11 +62942,12 @@ "version": "1.2.1", "dev": true }, - "prepend-http": { - "version": "2.0.0" + "prettier": { + "version": "2.8.8", + "dev": true }, "private-ip": { - "version": "2.3.3", + "version": "2.3.4", "dev": true, "requires": { "ip-regex": "^4.3.0", @@ -56976,12 +62969,15 @@ } } }, - "process": { - "version": "0.11.10" - }, "process-nextick-args": { "version": "2.0.1" }, + "process-warning": { + "version": "1.0.0" + }, + "progress": { + "version": "2.0.3" + }, "promise-inflight": { "version": "1.0.1", "dev": true @@ -57044,8 +63040,7 @@ "dev": true }, "protobufjs": { - "version": "6.11.2", - "dev": true, + "version": "6.11.3", "requires": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -57067,7 +63062,7 @@ "dev": true }, "protocols": { - "version": "1.4.8", + "version": "2.0.1", "dev": true }, "protoduck": { @@ -57113,22 +63108,71 @@ } } }, + "proxy-agent": { + "version": "6.2.1", + "requires": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^6.0.3", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.1" + }, + "dependencies": { + "agent-base": { + "version": "7.1.0", + "requires": { + "debug": "^4.3.4" + } + }, + "http-proxy-agent": { + "version": "7.0.0", + "requires": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + } + }, + "https-proxy-agent": { + "version": "7.0.1", + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + }, + "ip": { + "version": "2.0.0" + }, + "lru-cache": { + "version": "7.18.3" + }, + "socks": { + "version": "2.7.1", + "requires": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + } + }, + "socks-proxy-agent": { + "version": "8.0.1", + "requires": { + "agent-base": "^7.0.1", + "debug": "^4.3.4", + "socks": "^2.7.1" + } + } + } + }, + "proxy-from-env": { + "version": "1.1.0" + }, "pseudomap": { "version": "1.0.2" }, "psl": { - "version": "1.8.0" - }, - "public-encrypt": { - "version": "4.0.3", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } + "version": "1.9.0", + "dev": true }, "pump": { "version": "3.0.0", @@ -57157,14 +63201,68 @@ } }, "punycode": { - "version": "2.1.1" + "version": "2.3.0" + }, + "puppeteer": { + "version": "20.8.0", + "requires": { + "@puppeteer/browsers": "1.4.3", + "cosmiconfig": "8.2.0", + "puppeteer-core": "20.8.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1" + }, + "cosmiconfig": { + "version": "8.2.0", + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + } + }, + "js-yaml": { + "version": "4.1.0", + "requires": { + "argparse": "^2.0.1" + } + }, + "parse-json": { + "version": "5.2.0", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + } + } + }, + "puppeteer-core": { + "version": "20.8.0", + "requires": { + "@puppeteer/browsers": "1.4.3", + "chromium-bidi": "0.4.16", + "cross-fetch": "4.0.0", + "debug": "4.3.4", + "devtools-protocol": "0.0.1135028", + "ws": "8.13.0" + }, + "dependencies": { + "ws": { + "version": "8.13.0", + "requires": {} + } + } }, "q": { "version": "1.5.1", "dev": true }, "qs": { - "version": "6.10.3", + "version": "6.11.2", "requires": { "side-channel": "^1.0.4" } @@ -57183,6 +63281,12 @@ "version": "1.2.3", "dev": true }, + "queue-tick": { + "version": "1.0.1" + }, + "quick-format-unescaped": { + "version": "4.0.4" + }, "quick-lru": { "version": "4.0.1", "dev": true @@ -57204,17 +63308,11 @@ }, "randombytes": { "version": "2.1.0", + "dev": true, "requires": { "safe-buffer": "^5.1.0" } }, - "randomfill": { - "version": "1.0.4", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, "range-parser": { "version": "1.2.1" }, @@ -57232,8 +63330,7 @@ "dev": true }, "react-native-fetch-api": { - "version": "2.0.0", - "dev": true, + "version": "3.0.0", "requires": { "p-defer": "^3.0.0" } @@ -57343,17 +63440,27 @@ "p-try": { "version": "1.0.0", "dev": true + }, + "path-exists": { + "version": "3.0.0", + "dev": true } } }, "readable-stream": { - "version": "3.6.0", + "version": "3.6.2", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, + "readable-web-to-node-stream": { + "version": "3.0.2", + "requires": { + "readable-stream": "^3.6.0" + } + }, "readdir-scoped-modules": { "version": "1.1.0", "dev": true, @@ -57373,7 +63480,6 @@ }, "receptacle": { "version": "1.3.2", - "dev": true, "requires": { "ms": "^2.1.1" } @@ -57386,6 +63492,9 @@ "strip-indent": "^3.0.0" } }, + "reduce-flatten": { + "version": "2.0.0" + }, "regex-not": { "version": "1.0.2", "dev": true, @@ -57395,17 +63504,14 @@ } }, "regexp.prototype.flags": { - "version": "1.4.3", + "version": "1.5.0", + "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" } }, - "regexpp": { - "version": "3.2.0", - "dev": true - }, "repeat-element": { "version": "1.1.4", "dev": true @@ -57423,6 +63529,7 @@ }, "request": { "version": "2.88.2", + "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -57448,6 +63555,7 @@ "dependencies": { "form-data": { "version": "2.3.3", + "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -57455,26 +63563,30 @@ } }, "qs": { - "version": "6.5.3" + "version": "6.5.3", + "dev": true }, "uuid": { - "version": "3.4.0" + "version": "3.4.0", + "dev": true } } }, "require-directory": { - "version": "2.1.1", - "dev": true + "version": "2.1.1" + }, + "require-from-string": { + "version": "2.0.2" }, "require-main-filename": { "version": "2.0.0", "dev": true }, "resolve": { - "version": "1.22.0", + "version": "1.22.2", "dev": true, "requires": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.11.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -57493,19 +63605,12 @@ } }, "resolve-from": { - "version": "4.0.0", - "dev": true + "version": "4.0.0" }, "resolve-url": { "version": "0.2.1", "dev": true }, - "responselike": { - "version": "1.0.2", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, "restore-cursor": { "version": "2.0.0", "dev": true, @@ -57519,8 +63624,7 @@ "dev": true }, "retimer": { - "version": "3.0.0", - "dev": true + "version": "3.0.0" }, "retry": { "version": "0.13.1", @@ -57530,6 +63634,9 @@ "version": "1.0.4", "dev": true }, + "rfdc": { + "version": "1.3.0" + }, "rimraf": { "version": "3.0.2", "dev": true, @@ -57537,21 +63644,61 @@ "glob": "^7.1.3" } }, - "ripemd160": { - "version": "2.0.2", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rlp": { - "version": "2.2.7", + "run-applescript": { + "version": "5.0.0", + "dev": true, "requires": { - "bn.js": "^5.2.0" + "execa": "^5.0.0" }, "dependencies": { - "bn.js": { - "version": "5.2.0" + "execa": { + "version": "5.1.1", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "dev": true } } }, @@ -57591,10 +63738,26 @@ "dev": true, "requires": { "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "dev": true + } + } + }, + "safe-array-concat": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" } }, "safe-buffer": { - "version": "5.2.1" + "version": "5.1.2" }, "safe-json-stringify": { "version": "1.2.0", @@ -57607,6 +63770,18 @@ "ret": "~0.1.10" } }, + "safe-regex-test": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safe-stable-stringify": { + "version": "2.4.3" + }, "safer-buffer": { "version": "2.1.2" }, @@ -57621,11 +63796,9 @@ "version": "1.2.4", "dev": true }, - "scrypt-js": { - "version": "3.0.1" - }, "secp256k1": { "version": "4.0.3", + "dev": true, "requires": { "elliptic": "^6.5.4", "node-addon-api": "^2.0.0", @@ -57633,7 +63806,7 @@ } }, "semver": { - "version": "7.3.7", + "version": "7.5.4", "requires": { "lru-cache": "^6.0.0" }, @@ -57736,16 +63909,6 @@ "send": "0.18.0" } }, - "servify": { - "version": "0.1.12", - "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - } - }, "set-blocking": { "version": "2.0.0", "dev": true @@ -57784,19 +63947,9 @@ } } }, - "setimmediate": { - "version": "1.0.5" - }, "setprototypeof": { "version": "1.2.0" }, - "sha.js": { - "version": "2.4.11", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, "shallow-clone": { "version": "3.0.1", "dev": true, @@ -57815,6 +63968,10 @@ "version": "3.0.0", "dev": true }, + "shell-quote": { + "version": "1.8.1", + "dev": true + }, "side-channel": { "version": "1.0.4", "requires": { @@ -57840,28 +63997,26 @@ } } }, - "simple-concat": { - "version": "1.0.1" - }, - "simple-get": { - "version": "2.8.2", + "simple-swizzle": { + "version": "0.2.2", "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2" + } } }, "slash": { - "version": "3.0.0", - "dev": true + "version": "3.0.0" }, "slide": { "version": "1.1.6", "dev": true }, "smart-buffer": { - "version": "4.2.0", - "dev": true + "version": "4.2.0" }, "snapdragon": { "version": "0.8.2", @@ -57999,18 +64154,37 @@ } } }, + "snappy": { + "version": "7.1.1", + "optional": true, + "requires": { + "@napi-rs/snappy-android-arm-eabi": "7.1.1", + "@napi-rs/snappy-android-arm64": "7.1.1", + "@napi-rs/snappy-darwin-arm64": "7.1.1", + "@napi-rs/snappy-darwin-x64": "7.1.1", + "@napi-rs/snappy-freebsd-x64": "7.1.1", + "@napi-rs/snappy-linux-arm-gnueabihf": "7.1.1", + "@napi-rs/snappy-linux-arm64-gnu": "7.1.1", + "@napi-rs/snappy-linux-arm64-musl": "7.1.1", + "@napi-rs/snappy-linux-x64-gnu": "7.1.1", + "@napi-rs/snappy-linux-x64-musl": "7.1.1", + "@napi-rs/snappy-win32-arm64-msvc": "7.1.1", + "@napi-rs/snappy-win32-ia32-msvc": "7.1.1", + "@napi-rs/snappy-win32-x64-msvc": "7.1.1" + } + }, "socket.io-client": { - "version": "4.5.1", + "version": "4.7.1", "dev": true, "requires": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", - "engine.io-client": "~6.2.1", - "socket.io-parser": "~4.2.0" + "engine.io-client": "~6.5.1", + "socket.io-parser": "~4.2.4" } }, "socket.io-parser": { - "version": "4.2.0", + "version": "4.2.4", "dev": true, "requires": { "@socket.io/component-emitter": "~3.1.0", @@ -58023,6 +64197,12 @@ "requires": { "ip": "1.1.5", "smart-buffer": "^4.1.0" + }, + "dependencies": { + "ip": { + "version": "1.1.5", + "dev": true + } } }, "socks-proxy-agent": { @@ -58049,6 +64229,33 @@ } } }, + "solc": { + "version": "0.8.20", + "requires": { + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "dependencies": { + "commander": { + "version": "8.3.0" + }, + "semver": { + "version": "5.7.2" + } + } + }, + "sonic-boom": { + "version": "1.4.1", + "requires": { + "atomic-sleep": "^1.0.0", + "flatstr": "^1.0.12" + } + }, "sort-keys": { "version": "4.2.0", "dev": true, @@ -58058,7 +64265,7 @@ }, "source-map": { "version": "0.6.1", - "dev": true + "devOptional": true }, "source-map-resolve": { "version": "0.5.3", @@ -58088,7 +64295,7 @@ "dev": true }, "spdx-correct": { - "version": "3.1.1", + "version": "3.2.0", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -58108,7 +64315,7 @@ } }, "spdx-license-ids": { - "version": "3.0.11", + "version": "3.0.13", "dev": true }, "split": { @@ -58131,17 +64338,16 @@ }, "split2": { "version": "3.2.2", - "dev": true, "requires": { "readable-stream": "^3.0.0" } }, "sprintf-js": { - "version": "1.1.2", - "dev": true + "version": "1.0.3" }, "sshpk": { "version": "1.17.0", + "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -58155,7 +64361,8 @@ }, "dependencies": { "jsbn": { - "version": "0.1.1" + "version": "0.1.1", + "dev": true } } }, @@ -58170,6 +64377,9 @@ "version": "0.1.8", "dev": true }, + "stack-trace": { + "version": "0.0.10" + }, "static-extend": { "version": "0.1.2", "dev": true, @@ -58247,13 +64457,19 @@ "stream-shift": "^1.0.0" } }, + "stream-events": { + "version": "1.0.5", + "dev": true, + "requires": { + "stubs": "^3.0.0" + } + }, "stream-shift": { "version": "1.0.1", "dev": true }, "stream-to-it": { "version": "0.2.4", - "dev": true, "requires": { "get-iterator": "^1.0.2" } @@ -58263,7 +64479,14 @@ "dev": true }, "streamsearch": { - "version": "0.1.2" + "version": "1.1.0" + }, + "streamx": { + "version": "2.15.0", + "requires": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } }, "strict-uri-encode": { "version": "2.0.0", @@ -58273,6 +64496,11 @@ "version": "1.3.0", "requires": { "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1" + } } }, "string-width": { @@ -58296,25 +64524,44 @@ } } }, + "string.prototype.padend": { + "version": "3.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trim": { + "version": "1.2.7", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, "string.prototype.trimend": { - "version": "1.0.5", + "version": "1.0.6", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" } }, "string.prototype.trimstart": { - "version": "1.0.5", + "version": "1.0.6", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" } }, "strip-ansi": { "version": "6.0.1", - "dev": true, "requires": { "ansi-regex": "^5.0.1" } @@ -58328,15 +64575,9 @@ "dev": true }, "strip-final-newline": { - "version": "2.0.0", + "version": "3.0.0", "dev": true }, - "strip-hex-prefix": { - "version": "1.0.0", - "requires": { - "is-hex-prefixed": "1.0.0" - } - }, "strip-indent": { "version": "3.0.0", "dev": true, @@ -58345,8 +64586,7 @@ } }, "strip-json-comments": { - "version": "3.1.1", - "dev": true + "version": "3.1.1" }, "strong-log-transformer": { "version": "2.1.0", @@ -58357,153 +64597,87 @@ "through": "^2.3.4" } }, + "strtok3": { + "version": "6.3.0", + "requires": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.1.0" + } + }, + "stubs": { + "version": "3.0.0", + "dev": true + }, "superagent": { - "version": "3.8.3", + "version": "8.0.9", "dev": true, "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.2.0", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.3.5" + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.1.2", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" }, "dependencies": { - "debug": { - "version": "3.2.7", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, "form-data": { - "version": "2.5.1", + "version": "4.0.0", "dev": true, "requires": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" } }, - "readable-stream": { - "version": "2.3.7", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", + "mime": { + "version": "2.6.0", "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } } } }, "supports-color": { - "version": "7.2.0", - "dev": true, + "version": "5.5.0", "requires": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" } }, "supports-preserve-symlinks-flag": { "version": "1.0.0", "dev": true }, - "swarm-js": { - "version": "0.1.40", + "swagger-ui-dist": { + "version": "5.1.0" + }, + "swagger-ui-express": { + "version": "4.6.3", "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" + "swagger-ui-dist": ">=4.11.0" + } + }, + "table-layout": { + "version": "1.0.2", + "requires": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" }, "dependencies": { - "buffer": { - "version": "5.7.1", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "fs-extra": { - "version": "4.0.3", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "get-stream": { - "version": "3.0.0" - }, - "got": { - "version": "7.1.0", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0" - }, - "p-cancelable": { - "version": "0.3.0" - }, - "p-timeout": { - "version": "1.2.1", - "requires": { - "p-finally": "^1.0.0" - } - }, - "prepend-http": { - "version": "1.0.4" + "array-back": { + "version": "4.0.2" }, - "url-parse-lax": { - "version": "1.0.0", - "requires": { - "prepend-http": "^1.0.1" - } + "typical": { + "version": "5.2.0" } } }, "tar": { "version": "4.4.19", + "dev": true, "requires": { "chownr": "^1.1.4", "fs-minipass": "^1.2.7", @@ -58516,12 +64690,33 @@ "dependencies": { "mkdirp": { "version": "0.5.6", + "dev": true, "requires": { "minimist": "^1.2.6" } + }, + "safe-buffer": { + "version": "5.2.1", + "dev": true } } }, + "tar-fs": { + "version": "3.0.3", + "requires": { + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^3.1.0" + } + }, + "tar-stream": { + "version": "3.1.6", + "requires": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, "tcomb": { "version": "3.2.29", "dev": true @@ -58533,6 +64728,43 @@ "tcomb": "^3.0.0" } }, + "teeny-request": { + "version": "7.1.1", + "dev": true, + "requires": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + }, + "dependencies": { + "agent-base": { + "version": "6.0.2", + "dev": true, + "requires": { + "debug": "4" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + } + } + }, "temp-dir": { "version": "1.0.0", "dev": true @@ -58549,6 +64781,13 @@ "uuid": "^3.0.1" }, "dependencies": { + "make-dir": { + "version": "1.3.0", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, "pify": { "version": "3.0.0", "dev": true @@ -58559,10 +64798,46 @@ } } }, + "tempy": { + "version": "3.1.0", + "dev": true, + "requires": { + "is-stream": "^3.0.0", + "temp-dir": "^3.0.0", + "type-fest": "^2.12.2", + "unique-string": "^3.0.0" + }, + "dependencies": { + "is-stream": { + "version": "3.0.0", + "dev": true + }, + "temp-dir": { + "version": "3.0.0", + "dev": true + }, + "type-fest": { + "version": "2.19.0", + "dev": true + } + } + }, + "test-exclude": { + "version": "6.0.0", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, "text-extensions": { "version": "1.9.0", "dev": true }, + "text-hex": { + "version": "1.0.0" + }, "text-table": { "version": "0.2.0", "dev": true @@ -58582,8 +64857,7 @@ } }, "through": { - "version": "2.3.8", - "dev": true + "version": "2.3.8" }, "through2": { "version": "3.0.2", @@ -58604,9 +64878,6 @@ "lodash.throttle": "^4.1.1" } }, - "timed-out": { - "version": "4.0.1" - }, "timeout-abort-controller": { "version": "1.1.1", "dev": true, @@ -58622,12 +64893,15 @@ } }, "timestamp-nano": { - "version": "1.0.0", + "version": "1.0.1", + "dev": true + }, + "titleize": { + "version": "3.0.0", "dev": true }, "tmp": { "version": "0.0.33", - "dev": true, "requires": { "os-tmpdir": "~1.0.2" } @@ -58652,9 +64926,6 @@ } } }, - "to-readable-stream": { - "version": "1.0.0" - }, "to-regex": { "version": "3.0.2", "dev": true, @@ -58675,8 +64946,16 @@ "toidentifier": { "version": "1.0.1" }, + "token-types": { + "version": "4.2.1", + "requires": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + } + }, "tough-cookie": { "version": "2.5.0", + "dev": true, "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -58693,6 +64972,9 @@ "version": "3.0.1", "dev": true }, + "triple-beam": { + "version": "1.4.1" + }, "truncate-utf8-bytes": { "version": "1.0.2", "dev": true, @@ -58719,8 +65001,7 @@ } }, "tslib": { - "version": "1.14.1", - "dev": true + "version": "2.4.0" }, "tslint": { "version": "5.20.1", @@ -58734,53 +65015,14 @@ "diff": "^4.0.1", "glob": "^7.1.1", "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.29.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "peer": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "argparse": { - "version": "1.0.10", - "dev": true, - "peer": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "peer": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "peer": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true, - "peer": true - }, + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.29.0" + }, + "dependencies": { "commander": { "version": "2.20.3", "dev": true, @@ -58791,25 +65033,6 @@ "dev": true, "peer": true }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "peer": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true, - "peer": true - }, - "js-yaml": { - "version": "3.14.1", - "dev": true, - "peer": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, "mkdirp": { "version": "0.5.6", "dev": true, @@ -58819,23 +65042,15 @@ } }, "semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true, "peer": true }, - "sprintf-js": { - "version": "1.0.3", + "tslib": { + "version": "1.14.1", "dev": true, "peer": true }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "peer": true, - "requires": { - "has-flag": "^3.0.0" - } - }, "tsutils": { "version": "2.29.0", "dev": true, @@ -58851,19 +65066,24 @@ "dev": true, "requires": { "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "dev": true + } } }, "tunnel-agent": { "version": "0.6.0", + "dev": true, "requires": { "safe-buffer": "^5.0.1" } }, "tweetnacl": { - "version": "0.14.5" - }, - "type": { - "version": "1.2.0" + "version": "0.14.5", + "dev": true }, "type-check": { "version": "0.4.0", @@ -58885,21 +65105,27 @@ "requires": { "media-typer": "0.3.0", "mime-types": "~2.1.24" + }, + "dependencies": { + "media-typer": { + "version": "0.3.0" + } } }, - "typedarray": { - "version": "0.0.6", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", + "typed-array-length": { + "version": "1.0.4", + "dev": true, "requires": { - "is-typedarray": "^1.0.0" + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" } }, + "typedarray": { + "version": "0.0.6" + }, "typescript": { - "version": "4.6.4", - "dev": true + "version": "4.9.5" }, "typestrict": { "version": "1.0.2", @@ -58909,6 +65135,10 @@ "tslint-sonarts": "^1.8.0" }, "dependencies": { + "tslib": { + "version": "1.14.1", + "dev": true + }, "tslint-microsoft-contrib": { "version": "5.2.1", "dev": true, @@ -58937,8 +65167,11 @@ } } }, + "typical": { + "version": "4.0.0" + }, "uglify-js": { - "version": "3.15.5", + "version": "3.17.4", "dev": true, "optional": true }, @@ -58953,21 +65186,18 @@ } }, "uint8arrays": { - "version": "3.0.0", - "dev": true, + "version": "3.1.1", "requires": { "multiformats": "^9.4.2" } }, - "ultron": { - "version": "1.1.1" - }, "umask": { "version": "1.1.0", "dev": true }, "unbox-primitive": { "version": "1.0.2", + "dev": true, "requires": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -58975,6 +65205,22 @@ "which-boxed-primitive": "^1.0.2" } }, + "unbzip2-stream": { + "version": "1.4.3", + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } + } + }, "union-value": { "version": "1.0.1", "dev": true, @@ -59005,6 +65251,13 @@ "imurmurhash": "^0.1.4" } }, + "unique-string": { + "version": "3.0.0", + "dev": true, + "requires": { + "crypto-random-string": "^4.0.0" + } + }, "universal-user-agent": { "version": "4.0.1", "dev": true, @@ -59051,9 +65304,17 @@ "has-values": { "version": "0.1.4", "dev": true + }, + "isarray": { + "version": "1.0.0", + "dev": true } } }, + "untildify": { + "version": "4.0.0", + "dev": true + }, "upath": { "version": "1.2.0", "dev": true @@ -59064,22 +65325,35 @@ "punycode": "^2.1.0" } }, + "uri-to-multiaddr": { + "version": "6.0.0", + "requires": { + "is-ip": "^3.1.0", + "multiaddr": "^10.0.0" + }, + "dependencies": { + "ip-regex": { + "version": "4.3.0" + }, + "is-ip": { + "version": "3.1.0", + "requires": { + "ip-regex": "^4.0.0" + } + } + } + }, "urix": { "version": "0.1.0", "dev": true }, - "url-parse-lax": { - "version": "3.0.0", + "urlgrey": { + "version": "1.0.0", + "dev": true, "requires": { - "prepend-http": "^2.0.0" + "fast-url-parser": "^1.1.3" } }, - "url-set-query": { - "version": "1.0.0" - }, - "url-to-options": { - "version": "1.0.1" - }, "ursa-optional": { "version": "0.10.2", "dev": true, @@ -59093,29 +65367,16 @@ "dev": true }, "utf-8-validate": { - "version": "5.0.9", + "version": "5.0.10", + "optional": true, "requires": { "node-gyp-build": "^4.3.0" } }, - "utf8": { - "version": "3.0.0" - }, "utf8-byte-length": { "version": "1.0.4", "dev": true }, - "util": { - "version": "0.12.4", - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, "util-deprecate": { "version": "1.0.2" }, @@ -59133,9 +65394,14 @@ "version": "8.3.2", "dev": true }, - "v8-compile-cache": { - "version": "2.3.0", - "dev": true + "v8-to-istanbul": { + "version": "9.1.0", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } }, "validate-npm-package-license": { "version": "3.0.4", @@ -59153,7 +65419,8 @@ } }, "validator": { - "version": "13.7.0" + "version": "13.9.0", + "dev": true }, "varint": { "version": "6.0.0" @@ -59176,12 +65443,20 @@ }, "verror": { "version": "1.10.0", + "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, + "vm2": { + "version": "3.9.19", + "requires": { + "acorn": "^8.7.0", + "acorn-walk": "^8.2.0" + } + }, "wcwidth": { "version": "1.0.1", "dev": true, @@ -59189,305 +65464,10 @@ "defaults": "^1.0.3" } }, - "web-encoding": { - "version": "1.1.5", - "requires": { - "@zxing/text-encoding": "0.9.0", - "util": "^0.12.3" - } - }, - "web3": { - "version": "1.7.3", - "requires": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-bzz": { - "version": "1.7.3", - "requires": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-core": { - "version": "1.7.3", - "requires": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-core-helpers": { - "version": "1.7.3", - "requires": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-method": { - "version": "1.7.3", - "requires": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-promievent": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4" - }, - "dependencies": { - "eventemitter3": { - "version": "4.0.4" - } - } - }, - "web3-core-requestmanager": { - "version": "1.7.3", - "requires": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" - } - }, - "web3-core-subscriptions": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" - }, - "dependencies": { - "eventemitter3": { - "version": "4.0.4" - } - } - }, - "web3-eth": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-abi": { - "version": "1.7.3", - "requires": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@ethersproject/abi": { - "version": "5.0.7", - "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - } - } - }, - "web3-eth-accounts": { - "version": "1.7.3", - "requires": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "uuid": { - "version": "3.3.2" - } - } - }, - "web3-eth-contract": { - "version": "1.7.3", - "requires": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-ens": { - "version": "1.7.3", - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-iban": { - "version": "1.7.3", - "requires": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" - } - }, - "web3-eth-personal": { - "version": "1.7.3", - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-net": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-providers-http": { - "version": "1.7.3", - "requires": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.7.3", - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" - } - }, - "web3-providers-ws": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" - }, - "dependencies": { - "eventemitter3": { - "version": "4.0.4" - } - } - }, - "web3-shh": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" - } - }, - "web3-utils": { - "version": "1.7.3", - "requires": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - }, "webidl-conversions": { "version": "4.0.2", "dev": true }, - "websocket": { - "version": "1.0.34", - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } - } - }, "whatwg-url": { "version": "7.1.0", "dev": true, @@ -59513,6 +65493,7 @@ }, "which-boxed-primitive": { "version": "1.0.2", + "dev": true, "requires": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -59522,18 +65503,19 @@ } }, "which-module": { - "version": "2.0.0", + "version": "2.0.1", "dev": true }, "which-typed-array": { - "version": "1.1.8", + "version": "1.1.10", + "dev": true, "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", "for-each": "^0.3.3", + "gopd": "^1.0.1", "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" + "is-typed-array": "^1.1.10" } }, "wide-align": { @@ -59550,59 +65532,99 @@ "execa": "^1.0.0" } }, + "winston": { + "version": "3.10.0", + "requires": { + "@colors/colors": "1.5.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.5.0" + }, + "dependencies": { + "is-stream": { + "version": "2.0.1" + } + } + }, + "winston-loki": { + "version": "6.0.6", + "requires": { + "async-exit-hook": "2.0.1", + "btoa": "^1.2.1", + "protobufjs": "^6.8.8", + "snappy": "7.1.1", + "winston-transport": "^4.3.0" + } + }, + "winston-transport": { + "version": "4.5.0", + "requires": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + } + }, "word-wrap": { - "version": "1.2.3", - "dev": true + "version": "1.2.3" }, "wordwrap": { "version": "1.0.0", "dev": true }, + "wordwrapjs": { + "version": "4.0.1", + "requires": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "dependencies": { + "typical": { + "version": "5.2.0" + } + } + }, "wrap-ansi": { - "version": "5.1.0", - "dev": true, + "version": "7.0.0", "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.1", - "dev": true - }, "ansi-styles": { - "version": "3.2.1", - "dev": true, + "version": "4.3.0", "requires": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" } }, "color-convert": { - "version": "1.9.3", - "dev": true, + "version": "2.0.1", "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "dev": true + "version": "1.1.4" }, - "string-width": { - "version": "3.1.0", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } + "emoji-regex": { + "version": "8.0.0" }, - "strip-ansi": { - "version": "5.2.0", - "dev": true, + "is-fullwidth-code-point": { + "version": "3.0.0" + }, + "string-width": { + "version": "4.2.3", "requires": { - "ansi-regex": "^4.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } } } @@ -59644,7 +65666,7 @@ } }, "semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true }, "sort-keys": { @@ -59668,6 +65690,13 @@ "version": "1.1.0", "dev": true }, + "make-dir": { + "version": "1.3.0", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, "pify": { "version": "3.0.0", "dev": true @@ -59695,56 +65724,11 @@ }, "ws": { "version": "7.4.6", + "dev": true, "requires": {} }, - "xhr": { - "version": "2.6.0", - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xhr-request": { - "version": "1.1.0", - "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - }, - "dependencies": { - "query-string": { - "version": "5.1.1", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "strict-uri-encode": { - "version": "1.1.0" - } - } - }, - "xhr-request-promise": { - "version": "0.1.3", - "requires": { - "xhr-request": "^1.1.0" - } - }, - "xhr2-cookies": { - "version": "1.1.0", - "requires": { - "cookiejar": "^2.1.1" - } - }, "xml2js": { - "version": "0.4.23", + "version": "0.5.0", "dev": true, "requires": { "sax": ">=0.6.0", @@ -59770,56 +65754,50 @@ "version": "4.0.3", "dev": true }, - "yaeti": { - "version": "0.0.6" - }, "yallist": { - "version": "3.1.1" + "version": "3.1.1", + "dev": true + }, + "yamljs": { + "version": "0.3.0", + "requires": { + "argparse": "^1.0.7", + "glob": "^7.0.5" + } }, "yargs": { - "version": "14.2.3", + "version": "16.2.0", "dev": true, "requires": { - "cliui": "^5.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^15.0.1" + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "dependencies": { - "ansi-regex": { - "version": "4.1.1", + "emoji-regex": { + "version": "8.0.0", "dev": true }, - "string-width": { - "version": "3.1.0", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } + "is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true }, - "strip-ansi": { - "version": "5.2.0", + "string-width": { + "version": "4.2.3", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } }, - "yargs-parser": { - "version": "15.0.3", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "y18n": { + "version": "5.0.8", + "dev": true } } }, @@ -59840,6 +65818,48 @@ "version": "4.1.1", "dev": true }, + "cliui": { + "version": "5.0.0", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "find-up": { + "version": "3.0.0", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "dev": true + }, "string-width": { "version": "3.1.0", "dev": true, @@ -59856,6 +65876,15 @@ "ansi-regex": "^4.1.0" } }, + "wrap-ansi": { + "version": "5.1.0", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, "yargs": { "version": "13.3.2", "dev": true, @@ -59882,9 +65911,20 @@ } } }, + "yauzl": { + "version": "2.10.0", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "yn": { "version": "3.1.1", "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "dev": true } } } diff --git a/package.json b/package.json index 4aa4cf57c..c57fcfa35 100644 --- a/package.json +++ b/package.json @@ -9,30 +9,30 @@ }, "scripts": { "prepublishOnly": "npm install && npm run build", - "clean": "rimraf ./dist", "build": "tsc", - "pretest": "npm run build:lerna", - "test": "TESTING=true DOTENV_CONFIG_PATH=./environments/.env mocha -r dotenv/config --exit", + "build:clean": "rm -rf node_modules/ packages/bytecode-utils/node_modules/ packages/contract-call-decoder/node_modules/ packages/lib-sourcify/node_modules/ && npm install && npx lerna bootstrap && npx lerna run build", + "build:lerna": "lerna run build", + "test": "TESTING=true DOTENV_CONFIG_PATH=./environments/.env c8 --reporter=none mocha -r dotenv/config --exit", "test:monitor": "TESTING=true DOTENV_CONFIG_PATH=./environments/.env mocha test/monitor.js --exit", "test:server": "TESTING=true DOTENV_CONFIG_PATH=./environments/.env mocha -r dotenv/config test/server.js --exit", "test:chains": "TESTING=true mocha test/chains/chain-tests.js --reporter mochawesome --reporter-options reportDir=chain-tests-report,reportFilename=report --exit", "lint": "eslint . --ext .ts", "lint-tests": "eslint ./test --ext .js", "lint-fix": "eslint . --fix --ext .ts", - "coverage": "node ./node_modules/nyc/bin/nyc.js --reporter=lcov --reporter=text-summary ./node_modules/tape/bin/tape ./test/index.js", + "coverage": "node ./node_modules/c8/bin/c8.js --reporter=lcov --reporter=text-summary ./node_modules/tape/bin/tape ./test/index.js", "coveralls": "npm run coverage && node ./node_modules/coveralls/bin/coveralls.js =10" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ava/typescript": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@ava/typescript/-/typescript-1.1.1.tgz", + "integrity": "sha512-KbLUAe2cWXK63WLK6LnOJonjwEDU/8MNXCOA1ooX/YFZgKRmeAD1kZu+2K0ks5fnOCEcckNQAooyBNGdZUmMQA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=13.5.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/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==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@cbor-extract/cbor-extract-darwin-arm64": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.1.1.tgz", + "integrity": "sha512-blVBy5MXz6m36Vx0DfLd7PChOQKEs8lK2bD1WJn/vVgG4FXZiZmZb2GECHFvVPA5T7OnODd9xZiL3nMCv6QUhA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@commitlint/config-validator": { + "version": "17.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.4.4.tgz", + "integrity": "sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg==", + "dev": true, + "optional": true, + "dependencies": { + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/execute-rule": { + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz", + "integrity": "sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/load": { + "version": "17.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.5.0.tgz", + "integrity": "sha512-l+4W8Sx4CD5rYFsrhHH8HP01/8jEP7kKf33Xlx2Uk2out/UKoKPYMOIRcDH5ppT8UXLMV+x6Wm5osdRKKgaD1Q==", + "dev": true, + "optional": true, + "dependencies": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.4.4", + "@commitlint/types": "^17.4.4", + "@types/node": "*", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/load/node_modules/cosmiconfig-typescript-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz", + "integrity": "sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=7", + "ts-node": ">=10", + "typescript": ">=3" + } + }, + "node_modules/@commitlint/load/node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "optional": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/@commitlint/resolve-extends": { + "version": "17.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.4.4.tgz", + "integrity": "sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A==", + "dev": true, + "optional": true, + "dependencies": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/types": { + "version": "17.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.4.4.tgz", + "integrity": "sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==", + "dev": true, + "optional": true, + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@concordance/react": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@concordance/react/-/react-2.0.0.tgz", + "integrity": "sha512-huLSkUuM2/P+U0uy2WwlKuixMsTODD8p4JVQBI4VKeopkiN0C7M3N9XYVawb4M+4spN5RrO/eLhk7KoQX6nsfA==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1" + }, + "engines": { + "node": ">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0" + } + }, + "node_modules/@concordance/react/node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "optional": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "optional": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ] + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true, + "optional": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "optional": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "optional": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "optional": true + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.16.19", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.19.tgz", + "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==" + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", + "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^4.0.0", + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", + "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", + "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "dev": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", + "integrity": "sha512-dEamhpPEwRUBpLNHeuCm/v+g0anFByHahxodVO/BbAarHVBBg2MccCwf9K+o1Pof+2btdnkJelYVUWjW/VrATw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "engines": { + "node": ">=0.6.10" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrgv": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arrgv/-/arrgv-1.0.2.tgz", + "integrity": "sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/ava": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/ava/-/ava-3.15.0.tgz", + "integrity": "sha512-HGAnk1SHPk4Sx6plFAUkzV/XC1j9+iQhOzt4vBly18/yo0AV8Oytx7mtJd/CR8igCJ5p160N/Oo/cNJi2uSeWA==", + "dev": true, + "dependencies": { + "@concordance/react": "^2.0.0", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "ansi-styles": "^5.0.0", + "arrgv": "^1.0.2", + "arrify": "^2.0.1", + "callsites": "^3.1.0", + "chalk": "^4.1.0", + "chokidar": "^3.4.3", + "chunkd": "^2.0.1", + "ci-info": "^2.0.0", + "ci-parallel-vars": "^1.0.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "code-excerpt": "^3.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.1", + "convert-source-map": "^1.7.0", + "currently-unhandled": "^0.4.1", + "debug": "^4.3.1", + "del": "^6.0.0", + "emittery": "^0.8.0", + "equal-length": "^1.0.0", + "figures": "^3.2.0", + "globby": "^11.0.1", + "ignore-by-default": "^2.0.0", + "import-local": "^3.0.2", + "indent-string": "^4.0.0", + "is-error": "^2.2.2", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "lodash": "^4.17.20", + "matcher": "^3.0.0", + "md5-hex": "^3.0.1", + "mem": "^8.0.0", + "ms": "^2.1.3", + "ora": "^5.2.0", + "p-event": "^4.2.0", + "p-map": "^4.0.0", + "picomatch": "^2.2.2", + "pkg-conf": "^3.1.0", + "plur": "^4.0.0", + "pretty-ms": "^7.0.1", + "read-pkg": "^5.2.0", + "resolve-cwd": "^3.0.0", + "slash": "^3.0.0", + "source-map-support": "^0.5.19", + "stack-utils": "^2.0.3", + "strip-ansi": "^6.0.0", + "supertap": "^2.0.0", + "temp-dir": "^2.0.0", + "trim-off-newlines": "^1.0.1", + "update-notifier": "^5.0.1", + "write-file-atomic": "^3.0.3", + "yargs": "^16.2.0" + }, + "bin": { + "ava": "cli.js" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <12.17.0 || >=12.17.0 <13 || >=14.0.0 <15 || >=15" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "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/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", + "dev": true + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/c8": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.0.tgz", + "integrity": "sha512-XHA5vSfCLglAc0Xt8eLBZMv19lgiBSjnb1FLAQgnwkuhJYEonpilhEB4Ea3jPAbm0FhD6VVJrc0z73jPe7JyGQ==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cbor-extract": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.1.1.tgz", + "integrity": "sha512-1UX977+L+zOJHsp0mWFG13GLwO6ucKgSmSW6JTl8B9GUvACvHeIVpFqhU92299Z6PfD09aTXDell5p+lp1rUFA==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.0.3" + }, + "bin": { + "download-cbor-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@cbor-extract/cbor-extract-darwin-arm64": "2.1.1", + "@cbor-extract/cbor-extract-darwin-x64": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm64": "2.1.1", + "@cbor-extract/cbor-extract-linux-x64": "2.1.1", + "@cbor-extract/cbor-extract-win32-x64": "2.1.1" + } + }, + "node_modules/cbor-x": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/cbor-x/-/cbor-x-1.5.3.tgz", + "integrity": "sha512-adrN0S67C7jY2hgqeGcw+Uj6iEGLQa5D/p6/9YNl5AaVIYJaJz/bARfWsP8UikBZWbhS27LN0DJK4531vo9ODw==", + "optionalDependencies": { + "cbor-extract": "^2.1.1" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "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/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/chalk/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==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/chalk/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==", + "dev": true + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chunkd": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chunkd/-/chunkd-2.0.1.tgz", + "integrity": "sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==", + "dev": true + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/ci-parallel-vars": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ci-parallel-vars/-/ci-parallel-vars-1.0.1.tgz", + "integrity": "sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/clean-yaml-object": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", + "integrity": "sha512-3yONmlN9CSAkzNwnRCiJQ7Q2xK5mWuEfL3PuTZcAUzhObbXsfsnMptJzXwz93nc5zn9V9TwCVMmV7w4xsm43dw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", + "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/code-excerpt": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-3.0.0.tgz", + "integrity": "sha512-VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw==", + "dev": true, + "dependencies": { + "convert-to-spaces": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/codecov": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz", + "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==", + "deprecated": "https://about.codecov.io/blog/codecov-uploader-deprecation-plan/", + "dev": true, + "dependencies": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + }, + "bin": { + "codecov": "bin/codecov" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/commitizen": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.3.0.tgz", + "integrity": "sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==", + "dev": true, + "dependencies": { + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + }, + "bin": { + "commitizen": "bin/commitizen", + "cz": "bin/git-cz", + "git-cz": "bin/git-cz" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concordance": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", + "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", + "dev": true, + "dependencies": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" + } + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-commit-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", + "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/convert-to-spaces": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz", + "integrity": "sha512-cj09EBuObp9gZNQCzc7hByQyrs6jVGE+o9kSJmeUoj+GiPiJvi5LYqEH/Hmme4+MTLHM+Ejtq+FChpjjEnsPdQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/cosmiconfig": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "dev": true, + "optional": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "optional": true + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "optional": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dev": true, + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cz-conventional-changelog": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz", + "integrity": "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@commitlint/load": ">6.1.1" + } + }, + "node_modules/cz-conventional-changelog/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/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==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/cz-conventional-changelog/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/date-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", + "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", + "dev": true, + "dependencies": { + "time-zone": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debug/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==", + "dev": true + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "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==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/equal-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/equal-length/-/equal-length-1.0.1.tgz", + "integrity": "sha512-TK2m7MvWPt/v3dan0BCNp99pytIE5UGrUj7F0KZirNX8xz8fDFUAZfgm8uB5FuQq9u0sMeDocYBfEhsd1nwGoA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz", + "integrity": "sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw==", + "dev": true, + "dependencies": { + "get-stdin": "^6.0.0" + }, + "bin": { + "eslint-config-prettier-check": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=3.14.1" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-eslint-comments": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", + "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "engines": { + "node": ">=6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-eslint-comments/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==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-plugin-functional": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-functional/-/eslint-plugin-functional-3.7.2.tgz", + "integrity": "sha512-BuWPOeE0nuXYlZjObYOHnYf7G3iG+sysxw84I579MsrH+hy5XdXb2sdabmXQ5z7eFGCg2/DWNbZ/yz5GAgtcUg==", + "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "^4.9.1", + "array.prototype.flatmap": "^1.2.4", + "deepmerge": "^4.2.2", + "escape-string-regexp": "^4.0.0", + "object.fromentries": "^2.0.3" + }, + "engines": { + "node": ">=10.18.0" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0", + "tsutils": "^3.0.0", + "typescript": "^3.4.1 || ^4.0.0" + }, + "peerDependenciesMeta": { + "tsutils": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-functional/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dev": true, + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/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==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-node-modules": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.3.tgz", + "integrity": "sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==", + "dev": true, + "dependencies": { + "findup-sync": "^4.0.0", + "merge": "^2.1.1" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/findup-sync": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", + "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", + "dev": true, + "optional": true, + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "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/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-by-default": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-2.1.0.tgz", + "integrity": "sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==", + "dev": true, + "engines": { + "node": ">=10 <11 || >=12 <13 || >=14" + } + }, + "node_modules/ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "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==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/inquirer": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", + "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/irregular-plurals": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz", + "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-error": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.2.tgz", + "integrity": "sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-installed-globally/node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-installed-globally/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/load-json-file": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "optional": true + }, + "node_modules/lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true, + "optional": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true, + "optional": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/longest": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", + "integrity": "sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/matcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/md5-hex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", + "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", + "dev": true, + "dependencies": { + "blueimp-md5": "^2.10.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mem": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", + "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", + "dev": true, + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/mem?sponsor=1" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", + "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-fetch": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz", + "integrity": "sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA==", + "optional": true, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/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==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/onetime/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "dev": true, + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", + "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-conf/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/plur": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", + "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", + "dev": true, + "dependencies": { + "irregular-plurals": "^3.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-ms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", + "dev": true, + "dependencies": { + "parse-ms": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "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/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "dev": true, + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-global": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", + "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", + "dev": true, + "optional": true, + "dependencies": { + "global-dirs": "^0.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.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==", + "dev": true, + "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/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi/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==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/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==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/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==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stream-events": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", + "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", + "dev": true, + "dependencies": { + "stubs": "^3.0.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", + "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==", + "dev": true + }, + "node_modules/supertap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supertap/-/supertap-2.0.0.tgz", + "integrity": "sha512-jRzcXlCeDYvKoZGA5oRhYyR3jUIYu0enkSxtmAgHRlD7HwrovTpH4bDSi0py9FtuA8si9cW/fKommJHuaoDHJA==", + "dev": true, + "dependencies": { + "arrify": "^2.0.1", + "indent-string": "^4.0.0", + "js-yaml": "^3.14.0", + "serialize-error": "^7.0.1", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/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==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/table/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==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/table/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==", + "dev": true + }, + "node_modules/table/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/teeny-request": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", + "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==", + "dev": true, + "dependencies": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/time-zone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", + "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/trim-off-newlines": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.3.tgz", + "integrity": "sha512-kh6Tu6GbeSNMGfrrZh6Bb/4ZEHV1QlB4xNDBeog8Y9/QwFlKTRyWvY3Fs9tRDAMZliVUwieMgEdIeL/FtqjkJg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ts-node": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "dev": true, + "dependencies": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "typescript": ">=2.7" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/urlgrey": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz", + "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==", + "dev": true, + "dependencies": { + "fast-url-parser": "^1.1.3" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "optional": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/well-known-symbols": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", + "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.10.tgz", + "integrity": "sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/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==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/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==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/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==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, + "@ava/typescript": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@ava/typescript/-/typescript-1.1.1.tgz", + "integrity": "sha512-KbLUAe2cWXK63WLK6LnOJonjwEDU/8MNXCOA1ooX/YFZgKRmeAD1kZu+2K0ks5fnOCEcckNQAooyBNGdZUmMQA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true + }, + "@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "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==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@cbor-extract/cbor-extract-darwin-arm64": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.1.1.tgz", + "integrity": "sha512-blVBy5MXz6m36Vx0DfLd7PChOQKEs8lK2bD1WJn/vVgG4FXZiZmZb2GECHFvVPA5T7OnODd9xZiL3nMCv6QUhA==", + "optional": true + }, + "@commitlint/config-validator": { + "version": "17.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.4.4.tgz", + "integrity": "sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg==", + "dev": true, + "optional": true, + "requires": { + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" + } + }, + "@commitlint/execute-rule": { + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz", + "integrity": "sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==", + "dev": true, + "optional": true + }, + "@commitlint/load": { + "version": "17.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.5.0.tgz", + "integrity": "sha512-l+4W8Sx4CD5rYFsrhHH8HP01/8jEP7kKf33Xlx2Uk2out/UKoKPYMOIRcDH5ppT8UXLMV+x6Wm5osdRKKgaD1Q==", + "dev": true, + "optional": true, + "requires": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.4.4", + "@commitlint/types": "^17.4.4", + "@types/node": "*", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + }, + "dependencies": { + "cosmiconfig-typescript-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz", + "integrity": "sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==", + "dev": true, + "optional": true, + "requires": {} + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "optional": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + } + } + }, + "@commitlint/resolve-extends": { + "version": "17.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.4.4.tgz", + "integrity": "sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A==", + "dev": true, + "optional": true, + "requires": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + } + }, + "@commitlint/types": { + "version": "17.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.4.4.tgz", + "integrity": "sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0" + } + }, + "@concordance/react": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@concordance/react/-/react-2.0.0.tgz", + "integrity": "sha512-huLSkUuM2/P+U0uy2WwlKuixMsTODD8p4JVQBI4VKeopkiN0C7M3N9XYVawb4M+4spN5RrO/eLhk7KoQX6nsfA==", + "dev": true, + "requires": { + "arrify": "^1.0.1" + }, + "dependencies": { + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true + } + } + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "optional": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "optional": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } + } + }, + "@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true, + "optional": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "optional": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "optional": true + }, + "@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "optional": true + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@types/node": { + "version": "18.16.19", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.19.tgz", + "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==" + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", + "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", + "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", + "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + } + }, + "@typescript-eslint/types": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + } + }, + "acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "requires": { + "string-width": "^4.1.0" + } + }, + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", + "integrity": "sha512-dEamhpPEwRUBpLNHeuCm/v+g0anFByHahxodVO/BbAarHVBBg2MccCwf9K+o1Pof+2btdnkJelYVUWjW/VrATw==", + "dev": true + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true + }, + "array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "arrgv": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arrgv/-/arrgv-1.0.2.tgz", + "integrity": "sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==", + "dev": true + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "ava": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/ava/-/ava-3.15.0.tgz", + "integrity": "sha512-HGAnk1SHPk4Sx6plFAUkzV/XC1j9+iQhOzt4vBly18/yo0AV8Oytx7mtJd/CR8igCJ5p160N/Oo/cNJi2uSeWA==", + "dev": true, + "requires": { + "@concordance/react": "^2.0.0", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "ansi-styles": "^5.0.0", + "arrgv": "^1.0.2", + "arrify": "^2.0.1", + "callsites": "^3.1.0", + "chalk": "^4.1.0", + "chokidar": "^3.4.3", + "chunkd": "^2.0.1", + "ci-info": "^2.0.0", + "ci-parallel-vars": "^1.0.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "code-excerpt": "^3.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.1", + "convert-source-map": "^1.7.0", + "currently-unhandled": "^0.4.1", + "debug": "^4.3.1", + "del": "^6.0.0", + "emittery": "^0.8.0", + "equal-length": "^1.0.0", + "figures": "^3.2.0", + "globby": "^11.0.1", + "ignore-by-default": "^2.0.0", + "import-local": "^3.0.2", + "indent-string": "^4.0.0", + "is-error": "^2.2.2", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "lodash": "^4.17.20", + "matcher": "^3.0.0", + "md5-hex": "^3.0.1", + "mem": "^8.0.0", + "ms": "^2.1.3", + "ora": "^5.2.0", + "p-event": "^4.2.0", + "p-map": "^4.0.0", + "picomatch": "^2.2.2", + "pkg-conf": "^3.1.0", + "plur": "^4.0.0", + "pretty-ms": "^7.0.1", + "read-pkg": "^5.2.0", + "resolve-cwd": "^3.0.0", + "slash": "^3.0.0", + "source-map-support": "^0.5.19", + "stack-utils": "^2.0.3", + "strip-ansi": "^6.0.0", + "supertap": "^2.0.0", + "temp-dir": "^2.0.0", + "trim-off-newlines": "^1.0.1", + "update-notifier": "^5.0.1", + "write-file-atomic": "^3.0.3", + "yargs": "^16.2.0" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", + "dev": true + }, + "boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "requires": { + "base-x": "^4.0.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "c8": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.0.tgz", + "integrity": "sha512-XHA5vSfCLglAc0Xt8eLBZMv19lgiBSjnb1FLAQgnwkuhJYEonpilhEB4Ea3jPAbm0FhD6VVJrc0z73jPe7JyGQ==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, + "cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "cbor-extract": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.1.1.tgz", + "integrity": "sha512-1UX977+L+zOJHsp0mWFG13GLwO6ucKgSmSW6JTl8B9GUvACvHeIVpFqhU92299Z6PfD09aTXDell5p+lp1rUFA==", + "optional": true, + "requires": { + "@cbor-extract/cbor-extract-darwin-arm64": "2.1.1", + "@cbor-extract/cbor-extract-darwin-x64": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm64": "2.1.1", + "@cbor-extract/cbor-extract-linux-x64": "2.1.1", + "@cbor-extract/cbor-extract-win32-x64": "2.1.1", + "node-gyp-build-optional-packages": "5.0.3" + } + }, + "cbor-x": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/cbor-x/-/cbor-x-1.5.3.tgz", + "integrity": "sha512-adrN0S67C7jY2hgqeGcw+Uj6iEGLQa5D/p6/9YNl5AaVIYJaJz/bARfWsP8UikBZWbhS27LN0DJK4531vo9ODw==", + "requires": { + "cbor-extract": "^2.1.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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==", + "dev": true + } + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chunkd": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chunkd/-/chunkd-2.0.1.tgz", + "integrity": "sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==", + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "ci-parallel-vars": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ci-parallel-vars/-/ci-parallel-vars-1.0.1.tgz", + "integrity": "sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "clean-yaml-object": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", + "integrity": "sha512-3yONmlN9CSAkzNwnRCiJQ7Q2xK5mWuEfL3PuTZcAUzhObbXsfsnMptJzXwz93nc5zn9V9TwCVMmV7w4xsm43dw==", + "dev": true + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", + "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", + "dev": true + }, + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + }, + "clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "code-excerpt": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-3.0.0.tgz", + "integrity": "sha512-VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw==", + "dev": true, + "requires": { + "convert-to-spaces": "^1.0.1" + } + }, + "codecov": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz", + "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==", + "dev": true, + "requires": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "commitizen": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.3.0.tgz", + "integrity": "sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==", + "dev": true, + "requires": { + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + } + }, + "common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "concordance": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", + "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", + "dev": true, + "requires": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + } + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "conventional-commit-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", + "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "convert-to-spaces": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz", + "integrity": "sha512-cj09EBuObp9gZNQCzc7hByQyrs6jVGE+o9kSJmeUoj+GiPiJvi5LYqEH/Hmme4+MTLHM+Ejtq+FChpjjEnsPdQ==", + "dev": true + }, + "cosmiconfig": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "dev": true, + "optional": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "optional": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "optional": true, + "requires": { + "argparse": "^2.0.1" + } + } + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cz-conventional-changelog": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz", + "integrity": "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==", + "dev": true, + "requires": { + "@commitlint/load": ">6.1.1", + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "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==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "date-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", + "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", + "dev": true, + "requires": { + "time-zone": "^1.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, + "defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + } + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true + }, + "detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true + }, + "emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true + }, + "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==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "equal-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/equal-length/-/equal-length-1.0.1.tgz", + "integrity": "sha512-TK2m7MvWPt/v3dan0BCNp99pytIE5UGrUj7F0KZirNX8xz8fDFUAZfgm8uB5FuQq9u0sMeDocYBfEhsd1nwGoA==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz", + "integrity": "sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw==", + "dev": true, + "requires": { + "get-stdin": "^6.0.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-eslint-comments": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", + "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, + "eslint-plugin-functional": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-functional/-/eslint-plugin-functional-3.7.2.tgz", + "integrity": "sha512-BuWPOeE0nuXYlZjObYOHnYf7G3iG+sysxw84I579MsrH+hy5XdXb2sdabmXQ5z7eFGCg2/DWNbZ/yz5GAgtcUg==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "^4.9.1", + "array.prototype.flatmap": "^1.2.4", + "deepmerge": "^4.2.2", + "escape-string-regexp": "^4.0.0", + "object.fromentries": "^2.0.3" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "dev": true, + "requires": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "fast-glob": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dev": true, + "requires": { + "punycode": "^1.3.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + } + } + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-node-modules": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.3.tgz", + "integrity": "sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==", + "dev": true, + "requires": { + "findup-sync": "^4.0.0", + "merge": "^2.1.1" + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "findup-sync": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", + "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", + "dev": true, + "optional": true, + "requires": { + "ini": "^1.3.4" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "ignore-by-default": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-2.1.0.tgz", + "integrity": "sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "dev": true + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "inquirer": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", + "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + } + }, + "internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "irregular-plurals": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz", + "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==", + "dev": true + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-error": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.2.tgz", + "integrity": "sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "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==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "dependencies": { + "global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "requires": { + "ini": "2.0.0" + } + }, + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + } + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, + "is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "load-json-file": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true + } + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "optional": true + }, + "lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true, + "optional": true + }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true, + "optional": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "longest": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", + "integrity": "sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==", + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "requires": { + "escape-string-regexp": "^4.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + } + } + }, + "md5-hex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", + "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", + "dev": true, + "requires": { + "blueimp-md5": "^2.10.0" + } + }, + "mem": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", + "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + } + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true + }, + "merge": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", + "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-fetch": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-gyp-build-optional-packages": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz", + "integrity": "sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA==", + "optional": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true + }, + "npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "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==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + } + } + }, + "optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + } + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", + "dev": true + }, + "p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "dev": true, + "requires": { + "p-timeout": "^3.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "dev": true + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pkg-conf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", + "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + } + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "plur": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", + "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", + "dev": true, + "requires": { + "irregular-plurals": "^3.2.0" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true + }, + "prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true + }, + "pretty-ms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", + "dev": true, + "requires": { + "parse-ms": "^2.1.0" + } + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true + } + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "dev": true, + "requires": { + "rc": "1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve-global": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", + "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", + "dev": true, + "optional": true, + "requires": { + "global-dirs": "^0.1.1" + } + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "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==", + "dev": true + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "requires": { + "type-fest": "^0.13.1" + }, + "dependencies": { + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true + } + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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==", + "dev": true + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "stream-events": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", + "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", + "dev": true, + "requires": { + "stubs": "^3.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "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==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.padend": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", + "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==", + "dev": true + }, + "supertap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supertap/-/supertap-2.0.0.tgz", + "integrity": "sha512-jRzcXlCeDYvKoZGA5oRhYyR3jUIYu0enkSxtmAgHRlD7HwrovTpH4bDSi0py9FtuA8si9cW/fKommJHuaoDHJA==", + "dev": true, + "requires": { + "arrify": "^2.0.1", + "indent-string": "^4.0.0", + "js-yaml": "^3.14.0", + "serialize-error": "^7.0.1", + "strip-ansi": "^6.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + } + } + }, + "teeny-request": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", + "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==", + "dev": true, + "requires": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + } + }, + "temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "time-zone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", + "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "trim-off-newlines": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.3.tgz", + "integrity": "sha512-kh6Tu6GbeSNMGfrrZh6Bb/4ZEHV1QlB4xNDBeog8Y9/QwFlKTRyWvY3Fs9tRDAMZliVUwieMgEdIeL/FtqjkJg==", + "dev": true + }, + "ts-node": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "dev": true, + "requires": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + } + }, + "tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + } + } + }, + "tslib": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "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==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "urlgrey": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz", + "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==", + "dev": true, + "requires": { + "fast-url-parser": "^1.1.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "optional": true + }, + "v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "well-known-symbols": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", + "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.10.tgz", + "integrity": "sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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==", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/packages/bytecode-utils/package.json b/packages/bytecode-utils/package.json new file mode 100644 index 000000000..4fa1620e6 --- /dev/null +++ b/packages/bytecode-utils/package.json @@ -0,0 +1,92 @@ +{ + "name": "@ethereum-sourcify/bytecode-utils", + "version": "1.1.1", + "description": "Decode the CBOR encoded data at the end of an Ethereum contract's bytecode.", + "main": "build/main/index.js", + "typings": "build/main/index.d.ts", + "module": "build/module/index.js", + "repository": "https://github.com/ethereum/sourcify", + "license": "MIT", + "keywords": [ + "sourcify", + "ethereum", + "cbor", + "contract", + "smart-contract", + "metadata", + "solidity", + "ipfs" + ], + "scripts": { + "build": "run-p build:*", + "build:main": "tsc -p tsconfig.json", + "build:module": "tsc -p tsconfig.module.json", + "test": "run-s build test:*", + "test:lint": "eslint src --ext .ts", + "test:prettier": "prettier \"src/**/*.ts\" --list-different", + "test:unit": "c8 --reporter=none ava", + "watch:build": "tsc -p tsconfig.json -w", + "watch:test": "c8 ava --watch", + "cov": "run-s build test:unit cov:html cov:lcov && open-cli coverage/index.html", + "cov:lcov": "c8 report --reporter=lcov", + "cov:send-disabled": "run-s cov:lcov && codecov", + "cov:check": "c8 report && c8 check-coverage --lines 100 --functions 100 --branches 100", + "reset-hard": "git clean -dfx && git reset --hard && yarn", + "prepare-release": "run-s reset-hard test cov:check" + }, + "engines": { + "node": ">=10" + }, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@types/node": "^18.11.9", + "bs58": "^5.0.0", + "cbor-x": "^1.4.1" + }, + "devDependencies": { + "@ava/typescript": "^1.1.1", + "@typescript-eslint/eslint-plugin": "^4.0.1", + "@typescript-eslint/parser": "^4.0.1", + "ava": "^3.12.1", + "c8": "^8.0.0", + "codecov": "^3.5.0", + "cz-conventional-changelog": "^3.3.0", + "eslint": "^7.8.0", + "eslint-config-prettier": "^6.11.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-functional": "^3.0.2", + "eslint-plugin-import": "^2.22.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.1.1", + "ts-node": "^9.0.0", + "typescript": "^4.9.3" + }, + "files": [ + "build/main", + "build/module", + "!**/*.spec.*", + "!**/*.json", + "LICENSE", + "README.md" + ], + "ava": { + "failFast": true, + "timeout": "60s", + "typescript": { + "rewritePaths": { + "src/": "build/main/" + } + }, + "files": [ + "!build/module/**" + ] + }, + "prettier": { + "singleQuote": true + }, + "c8": { + "exclude": [ + "**/*.spec.js" + ] + } +} diff --git a/packages/bytecode-utils/src/index.ts b/packages/bytecode-utils/src/index.ts new file mode 100644 index 000000000..9643ce104 --- /dev/null +++ b/packages/bytecode-utils/src/index.ts @@ -0,0 +1 @@ +export * from './lib/bytecode'; diff --git a/packages/bytecode-utils/src/lib/bytecode.spec.ts b/packages/bytecode-utils/src/lib/bytecode.spec.ts new file mode 100644 index 000000000..baae7c172 --- /dev/null +++ b/packages/bytecode-utils/src/lib/bytecode.spec.ts @@ -0,0 +1,80 @@ +import { readFileSync } from 'fs'; + +import test from 'ava'; + +import { decode, splitAuxdata } from './bytecode'; + +type Error = { + message: string; +}; + +const BYTECODES_FOLDER = './src/lib/bytecodes'; +const BYTECODE_IPFS = readFileSync(`${BYTECODES_FOLDER}/ipfs.hex`).toString(); +const BYTECODE_BZZR1 = readFileSync(`${BYTECODES_FOLDER}/bzzr1.hex`).toString(); +const BYTECODE_WRONG = readFileSync(`${BYTECODES_FOLDER}/wrong.hex`).toString(); +const BYTECODE_EXPERIMENTAL = readFileSync( + `${BYTECODES_FOLDER}/experimental.hex` +).toString(); +const BYTECODE_WITHOUT0X = readFileSync( + `${BYTECODES_FOLDER}/without0x.hex` +).toString(); +const BYTECODE_WITHOUTAUXDATA = readFileSync( + `${BYTECODES_FOLDER}/withoutauxdata.hex` +).toString(); + +test("return the whole bytecode when the bytecode that doesn't contain auxdata", (t) => { + const [execution, auxadata, length] = splitAuxdata(BYTECODE_WITHOUTAUXDATA); + t.is(auxadata, undefined); + t.is(length, undefined); + t.is(`${execution}`, BYTECODE_WITHOUTAUXDATA); +}); + +test('split succesfully bytecode into execution bytecode and auxadata', (t) => { + const [execution, auxadata, length] = splitAuxdata(BYTECODE_IPFS); + t.is( + auxadata, + 'a2646970667358221220dceca8706b29e917dacf25fceef95acac8d90d765ac926663ce4096195952b6164736f6c634300060b' + ); + t.is(`${execution}${auxadata}${length}`, BYTECODE_IPFS); +}); + +test('bytecode decode cbor with `ipfs` property', (t) => { + t.is( + decode(BYTECODE_IPFS).ipfs, + 'QmdD3hpMj6mEFVy9DP4QqjHaoeYbhKsYvApX1YZNfjTVWp' + ); +}); + +test('bytecode decode cbor with `bzzr1` property', (t) => { + t.is( + decode(BYTECODE_BZZR1).bzzr1, + '0x71e0c183217ae3e9a1406ae7b58c2f36e09f2b16b10e19d46ceb821f3ee6abad' + ); +}); + +test('bytecode decode cbor with `experimental` property', (t) => { + t.is(decode(BYTECODE_EXPERIMENTAL).experimental, true); +}); + +test('bytecode decode should fail gracefully when input is undefined', (t) => { + try { + decode(''); + } catch (e) { + t.is((e as Error).message, 'Bytecode cannot be null'); + } +}); + +test('decode a bytecode not starting with 0x', (t) => { + t.is( + decode(BYTECODE_WITHOUT0X).ipfs, + 'QmbFc3AoHDC977j2UH2WwYSwsSRrBGj8bsiiyigXhHzyuZ' + ); +}); + +test('bytecode decode should fail gracefully when input is corrupted', (t) => { + try { + decode(BYTECODE_WRONG); + } catch (e) { + t.is((e as Error).message, 'Auxdata is not in the execution bytecode'); + } +}); diff --git a/packages/bytecode-utils/src/lib/bytecode.ts b/packages/bytecode-utils/src/lib/bytecode.ts new file mode 100644 index 000000000..994fe3947 --- /dev/null +++ b/packages/bytecode-utils/src/lib/bytecode.ts @@ -0,0 +1,119 @@ +import { arrayify, hexlify } from '@ethersproject/bytes'; +import bs58 from 'bs58'; +import * as CBOR from 'cbor-x'; + +type CBOR = { + bytes: string; + length: number; +}; + +// eslint-disable-next-line functional/no-mixed-type +type DecodedObject = { + ipfs?: string; + solcVersion?: string; + [key: string]: string | Uint8Array | undefined | boolean; +}; + +/** + * Decode contract's bytecode + * @param bytecode - hex of the bytecode with 0x prefix + * @returns Object describing the contract + */ +export const decode = (bytecode: string): DecodedObject => { + if (bytecode.length === 0) { + throw Error('Bytecode cannot be null'); + } + if (bytecode.substring(0, 2) !== '0x') { + bytecode = '0x' + bytecode; + } + + // split auxdata + const [, auxdata] = splitAuxdata(bytecode); + + if (!auxdata) { + throw Error('Auxdata is not in the execution bytecode'); + } + + // cbor decode the object and get a json + const cborDecodedObject = CBOR.decode(arrayify(`0x${auxdata}`)); + + const result: DecodedObject = {}; + + // Decode all the parameters from the json + Object.keys(cborDecodedObject).forEach((key: string) => { + switch (key) { + case 'ipfs': { + const ipfsCID = bs58.encode(cborDecodedObject.ipfs); + result.ipfs = ipfsCID; + break; + } + case 'solc': { + // nightly builds are string encoded + if (typeof cborDecodedObject.solc === 'string') { + result.solcVersion = cborDecodedObject.solc; + } else { + result.solcVersion = cborDecodedObject.solc.join('.'); + } + break; + } + case 'experimental': { + result.experimental = cborDecodedObject.experimental; + break; + } + case 'bzzr0': + case 'bzzr1': + default: { + result[key] = hexlify(cborDecodedObject[key]); + break; + } + } + }); + + return result; +}; + +/** + * Splits bytecode into execution bytecode and auxdata + * If the bytecode has no CBOR encoded part, returns the whole bytecode + * @param bytecode - hex of the bytecode with 0x prefix + * @returns string[] - [ executionBytecode, auxdata?, cborBytesLength?] all as hexStrings + */ +export const splitAuxdata = (bytecode: string): string[] => { + if (bytecode.length === 0) { + throw Error('Bytecode cannot be null'); + } + if (bytecode.substring(0, 2) !== '0x') { + bytecode = '0x' + bytecode; + } + + const bytesLength = 4; + + // Take latest 2 bytes of the bytecode (length of the cbor object) + const cborLenghtHex = `${bytecode.slice(-bytesLength)}`; + const cborLength = parseInt(cborLenghtHex, 16); + const cborBytesLength = cborLength * 2; + + // If the length of the cbor is more or equal to the length of the execution bytecode, it means there is no cbor + if (bytecode.length - bytesLength - cborBytesLength <= 0) { + return [bytecode]; + } + // Extract the cbor object using the extracted lenght + const auxdata = bytecode.substring( + bytecode.length - bytesLength - cborBytesLength, + bytecode.length - bytesLength + ); + + // Extract exection bytecode + const executionBytecode = bytecode.substring( + 0, + bytecode.length - bytesLength - cborBytesLength + ); + + try { + // return the complete array only if the auxdata is actually cbor encoded + CBOR.decode(arrayify(`0x${auxdata}`)); + return [executionBytecode, auxdata, cborLenghtHex]; + } catch (e) { + return [bytecode]; + } +}; diff --git a/packages/bytecode-utils/src/lib/bytecodes/bzzr1.hex b/packages/bytecode-utils/src/lib/bytecodes/bzzr1.hex new file mode 100644 index 000000000..bf9609848 --- /dev/null +++ b/packages/bytecode-utils/src/lib/bytecodes/bzzr1.hex @@ -0,0 +1 @@ +0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063893d20e8116100ad578063a9059cbb11610071578063a9059cbb1461035a578063b09f126614610386578063d28d88521461038e578063dd62ed3e14610396578063f2fde38b146103c45761012c565b8063893d20e8146102dd5780638da5cb5b1461030157806395d89b4114610309578063a0712d6814610311578063a457c2d71461032e5761012c565b806332424aa3116100f457806332424aa31461025c578063395093511461026457806342966c681461029057806370a08231146102ad578063715018a6146102d35761012c565b806306fdde0314610131578063095ea7b3146101ae57806318160ddd146101ee57806323b872dd14610208578063313ce5671461023e575b600080fd5b6101396103ea565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017357818101518382015260200161015b565b50505050905090810190601f1680156101a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101da600480360360408110156101c457600080fd5b506001600160a01b038135169060200135610480565b604080519115158252519081900360200190f35b6101f661049d565b60408051918252519081900360200190f35b6101da6004803603606081101561021e57600080fd5b506001600160a01b038135811691602081013590911690604001356104a3565b610246610530565b6040805160ff9092168252519081900360200190f35b610246610539565b6101da6004803603604081101561027a57600080fd5b506001600160a01b038135169060200135610542565b6101da600480360360208110156102a657600080fd5b5035610596565b6101f6600480360360208110156102c357600080fd5b50356001600160a01b03166105b1565b6102db6105cc565b005b6102e5610680565b604080516001600160a01b039092168252519081900360200190f35b6102e561068f565b61013961069e565b6101da6004803603602081101561032757600080fd5b50356106ff565b6101da6004803603604081101561034457600080fd5b506001600160a01b03813516906020013561077c565b6101da6004803603604081101561037057600080fd5b506001600160a01b0381351690602001356107ea565b6101396107fe565b61013961088c565b6101f6600480360360408110156103ac57600080fd5b506001600160a01b03813581169160200135166108e7565b6102db600480360360208110156103da57600080fd5b50356001600160a01b0316610912565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104765780601f1061044b57610100808354040283529160200191610476565b820191906000526020600020905b81548152906001019060200180831161045957829003601f168201915b5050505050905090565b600061049461048d610988565b848461098c565b50600192915050565b60035490565b60006104b0848484610a78565b610526846104bc610988565b6105218560405180606001604052806028815260200161100e602891396001600160a01b038a166000908152600260205260408120906104fa610988565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610bd616565b61098c565b5060019392505050565b60045460ff1690565b60045460ff1681565b600061049461054f610988565b846105218560026000610560610988565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610c6d16565b60006105a96105a3610988565b83610cce565b506001919050565b6001600160a01b031660009081526001602052604090205490565b6105d4610988565b6000546001600160a01b03908116911614610636576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061068a61068f565b905090565b6000546001600160a01b031690565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104765780601f1061044b57610100808354040283529160200191610476565b6000610709610988565b6000546001600160a01b0390811691161461076b576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6105a9610776610988565b83610dca565b6000610494610789610988565b846105218560405180606001604052806025815260200161107f60259139600260006107b3610988565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610bd616565b60006104946107f7610988565b8484610a78565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108845780601f1061085957610100808354040283529160200191610884565b820191906000526020600020905b81548152906001019060200180831161086757829003601f168201915b505050505081565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108845780601f1061085957610100808354040283529160200191610884565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61091a610988565b6000546001600160a01b0390811691161461097c576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61098581610ebc565b50565b3390565b6001600160a01b0383166109d15760405162461bcd60e51b8152600401808060200182810382526024815260200180610fc46024913960400191505060405180910390fd5b6001600160a01b038216610a165760405162461bcd60e51b81526004018080602001828103825260228152602001806110e76022913960400191505060405180910390fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610abd5760405162461bcd60e51b8152600401808060200182810382526025815260200180610f9f6025913960400191505060405180910390fd5b6001600160a01b038216610b025760405162461bcd60e51b815260040180806020018281038252602381526020018061105c6023913960400191505060405180910390fd5b610b4581604051806060016040528060268152602001611036602691396001600160a01b038616600090815260016020526040902054919063ffffffff610bd616565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610b7a908263ffffffff610c6d16565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610c655760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c2a578181015183820152602001610c12565b50505050905090810190601f168015610c575780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610cc7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610d135760405162461bcd60e51b81526004018080602001828103825260218152602001806110a46021913960400191505060405180910390fd5b610d56816040518060600160405280602281526020016110c5602291396001600160a01b038516600090815260016020526040902054919063ffffffff610bd616565b6001600160a01b038316600090815260016020526040902055600354610d82908263ffffffff610f5c16565b6003556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b038216610e25576040805162461bcd60e51b815260206004820152601f60248201527f42455032303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600354610e38908263ffffffff610c6d16565b6003556001600160a01b038216600090815260016020526040902054610e64908263ffffffff610c6d16565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038116610f015760405162461bcd60e51b8152600401808060200182810382526026815260200180610fe86026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610cc783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bd656fe42455032303a207472616e736665722066726f6d20746865207a65726f206164647265737342455032303a20617070726f76652066726f6d20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737342455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f42455032303a206275726e2066726f6d20746865207a65726f206164647265737342455032303a206275726e20616d6f756e7420657863656564732062616c616e636542455032303a20617070726f766520746f20746865207a65726f2061646472657373a265627a7a7231582071e0c183217ae3e9a1406ae7b58c2f36e09f2b16b10e19d46ceb821f3ee6abad64736f6c63430005100032 \ No newline at end of file diff --git a/packages/bytecode-utils/src/lib/bytecodes/experimental.hex b/packages/bytecode-utils/src/lib/bytecodes/experimental.hex new file mode 100644 index 000000000..f3d4057b9 --- /dev/null +++ b/packages/bytecode-utils/src/lib/bytecodes/experimental.hex @@ -0,0 +1 @@ +0x6080604052600436106100aa576100176000356100b7565b80632e64cec1811461003357636057361d811461006d576100a7565b3415610042576100416100ea565b5b61004d3660046100f4565b6100556102ad565b61005d6100e0565b6100678282610125565b81810382f35b341561007c5761007b6100ea565b5b61008736600461016c565b61009081610252565b6100986100e0565b6100a181610199565b81810382f35b50505b6100b26101a5565b6102ce565b60007c010000000000000000000000000000000000000000000000000000000082049050919050565b6000604051905090565b600080fd5b600080fd5b6000818…61010c565b9050919050565b6000819050919050565b61023882610203565b61024b61024482610225565b83546101b7565b8255505050565b808061025f81600061022f565b505050565b600090565b6000600182049050919050565b6000819050919050565b600061029361028e83610269565b610276565b9050919050565b60006102a68254610280565b9050919050565b60006102b7610264565b8091506102c4600061029a565b8080935050505090565bfea3646970667358221220bfdd0169ba76579372f6637e9fd849a7cefae9eede22f3fa7031e547a2738ab06c6578706572696d656e74616cf564736f6c634300080a0041 \ No newline at end of file diff --git a/packages/bytecode-utils/src/lib/bytecodes/ipfs.hex b/packages/bytecode-utils/src/lib/bytecodes/ipfs.hex new file mode 100644 index 000000000..55b0b9405 --- /dev/null +++ b/packages/bytecode-utils/src/lib/bytecodes/ipfs.hex @@ -0,0 +1 @@ +0x60806040526004361061003f5760003560e01c806301ffc9a71461004457806322895118146100a4578063621fd130146101ba578063c5f2892f14610244575b600080fd5b34801561005057600080fd5b506100906004803603602081101561006757600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661026b565b604080519115158252519081900360200190f35b6101b8600480360360808110156100ba57600080fd5b8101906020810181356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91939092909160208101903564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91939092909160208101903564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b919350915035610304565b005b3480156101c657600080fd5b506101cf6110b5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102095781810151838201526020016101f1565b50505050905090810190601f1680156102365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025057600080fd5b506102596110c7565b60408051918252519081900360200190f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f8564090700000000000000000000000000000000000000000000000000000000145b92915050565b6030861461035d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118056026913960400191505060405180910390fd5b602084146103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061179c6036913960400191505060405180910390fd5b6060821461040f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806118786029913960400191505060405180910390fd5b670de0b6b3a7640000341015610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118526026913960400191505060405180910390fd5b633b9aca003406156104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806117d26033913960400191505060405180910390fd5b633b9aca00340467ffffffffffffffff811115610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061182b6027913960400191505060405180910390fd5b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114ba565b6040805160a0808252810189905290819060208201908201606083016080840160c085018e8e80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910187810386528c815260200190508c8c808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920188810386528c5181528c51602091820193918e019250908190849084905b83811015610648578181015183820152602001610630565b50505050905090810190601f1680156106755780820380516001836020036101000a031916815260200191505b5086810383528881526020018989808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018881038452895181528951602091820193918b019250908190849084905b838110156106ef5781810151838201526020016106d7565b50505050905090810190601f16801561071c5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390a1600060028a8a600060801b604051602001808484808284377fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941691909301908152604080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0818403018152601090920190819052815191955093508392506020850191508083835b602083106107fc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107bf565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610859573d6000803e3d6000fd5b5050506040513d602081101561086e57600080fd5b5051905060006002806108846040848a8c6116fe565b6040516020018083838082843780830192505050925050506040516020818303038152906040526040518082805190602001908083835b602083106108f857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108bb565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610955573d6000803e3d6000fd5b5050506040513d602081101561096a57600080fd5b5051600261097b896040818d6116fe565b60405160009060200180848480828437919091019283525050604080518083038152602092830191829052805190945090925082918401908083835b602083106109f457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109b7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610a51573d6000803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610ada57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a9d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d6020811015610b4c57600080fd5b50516040805160208101858152929350600092600292839287928f928f92018383808284378083019250505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610bd957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b9c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610c36573d6000803e3d6000fd5b5050506040513d6020811015610c4b57600080fd5b50516040518651600291889160009188916020918201918291908601908083835b60208310610ca957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050018367ffffffffffffffff191667ffffffffffffffff1916815260180182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310610d4e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d11565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610dab573d6000803e3d6000fd5b5050506040513d6020811015610dc057600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610e3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610df7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610e91573d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b50519050858114610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806117486054913960600191505060405180910390fd5b60205463ffffffff11610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117276021913960400191505060405180910390fd5b602080546001019081905560005b60208110156110a9578160011660011415610fa0578260008260208110610f9157fe5b0155506110ac95505050505050565b600260008260208110610faf57fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061102557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fe8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015611082573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd5b50519250600282049150600101610f6e565b50fe5b50505050505050565b60606110c26020546114ba565b905090565b6020546000908190815b60208110156112f05781600116600114156111e6576002600082602081106110f557fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061116b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161112e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156111c8573d6000803e3d6000fd5b5050506040513d60208110156111dd57600080fd5b505192506112e2565b600283602183602081106111f657fe5b015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061126b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161122e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156112c8573d6000803e3d6000fd5b5050506040513d60208110156112dd57600080fd5b505192505b6002820491506001016110d1565b506002826112ff6020546114ba565b600060401b6040516020018084815260200183805190602001908083835b6020831061135a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000095909516920191825250604080518083037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8018152601890920190819052815191955093508392850191508083835b6020831061143f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611402565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa15801561149c573d6000803e3d6000fd5b5050506040513d60208110156114b157600080fd5b50519250505090565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b826000815181106114f457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060061a60f81b8260018151811061153757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060051a60f81b8260028151811061157a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060041a60f81b826003815181106115bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060031a60f81b8260048151811061160057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060021a60f81b8260058151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060011a60f81b8260068151811061168657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060001a60f81b826007815181106116c957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050919050565b6000808585111561170d578182fd5b83861115611719578182fd5b505082019391909203915056fe4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c6c4465706f736974436f6e74726163743a207265636f6e7374727563746564204465706f7369744461746120646f6573206e6f74206d6174636820737570706c696564206465706f7369745f646174615f726f6f744465706f736974436f6e74726163743a20696e76616c6964207769746864726177616c5f63726564656e7469616c73206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677765694465706f736974436f6e74726163743a20696e76616c6964207075626b6579206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f20686967684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f206c6f774465706f736974436f6e74726163743a20696e76616c6964207369676e6174757265206c656e677468a2646970667358221220dceca8706b29e917dacf25fceef95acac8d90d765ac926663ce4096195952b6164736f6c634300060b0033 \ No newline at end of file diff --git a/packages/bytecode-utils/src/lib/bytecodes/without0x.hex b/packages/bytecode-utils/src/lib/bytecodes/without0x.hex new file mode 100644 index 000000000..9466c1c2d --- /dev/null +++ b/packages/bytecode-utils/src/lib/bytecodes/without0x.hex @@ -0,0 +1 @@ +6080604052600436106100aa576100176000356100b7565b80632e64cec1811461003357636057361d811461006d576100a7565b3415610042576100416100ea565b5b61004d3660046100f4565b6100556102ad565b61005d6100e0565b6100678282610125565b81810382f35b341561007c5761007b6100ea565b5b61008736600461016c565b61009081610252565b6100986100e0565b6100a181610199565b81810382f35b50505b6100b26101a5565b6102ce565b60007c010000000000000000000000000000000000000000000000000000000082049050919050565b6000604051905090565b600080fd5b600080fd5b6000818…61010c565b9050919050565b6000819050919050565b61023882610203565b61024b61024482610225565b83546101b7565b8255505050565b808061025f81600061022f565b505050565b600090565b6000600182049050919050565b6000819050919050565b600061029361028e83610269565b610276565b9050919050565b60006102a68254610280565b9050919050565b60006102b7610264565b8091506102c4600061029a565b8080935050505090565bfea3646970667358221220bfdd0169ba76579372f6637e9fd849a7cefae9eede22f3fa7031e547a2738ab06c6578706572696d656e74616cf564736f6c634300080a0041 \ No newline at end of file diff --git a/packages/bytecode-utils/src/lib/bytecodes/withoutauxdata.hex b/packages/bytecode-utils/src/lib/bytecodes/withoutauxdata.hex new file mode 100644 index 000000000..4303d5679 --- /dev/null +++ b/packages/bytecode-utils/src/lib/bytecodes/withoutauxdata.hex @@ -0,0 +1 @@ +0x606060405236156100985760e060020a60003504630bbcc2d4811461013057806313af4035146101d6578063260439421461020c5780633bbed4a0146102675780633ed48679146102a057806343b7db2b146103fe5780635cf0f3571461044b578063651e723c1461047f57806366d003ac1461054a5780638a9564c21461055c5780638da5cb5b1461057457806393423e9c14610586575b610609600060015b60025481101561061b5732600160a060020a03166002600050828154811015610002576000919091526000805160206108988339815191520154600160a060020a0316141561062057600036111561062857600354604051600160a060020a03919091169060009036908083838082843750505090810191908083038183866161da5a03f191505091505061061d565b61060960246004803591820191013560008054600160a060020a0390811633909116141561066657610663838380806020026020016040519081016040528093929190818152602001838360200280828437505050505050600080805b835182101561064f5760006001600050600086858151811015610002576020908102909101810151600160a060020a031690915252604081205411156106895760009250610654565b61060960043560008054600160a060020a0390811633909116141561065e578054600160a060020a03191682179055600161065e565b610609600060015b60025481101561061b5732600160a060020a03166002600050828154811015610002576000919091526000805160206108988339815191520154600160a060020a0316141561066c57600191505061061d565b61060960043560008054600160a060020a0390811633909116141561065e575060038054600160a060020a03191682179055600161065e565b6040805160443560048181013560208181028581018201909652818552610609958335956024803596606495929491019282918501908490808284375050604080519635808901356020818102808b018201909452818a52979998608498909750602492909201955093508392508501908490808284375094965050933593505060a43591505060008060015b6002548110156106745732600160a060020a03166002600050828154811015610002576000919091526000805160206108988339815191520154600160a060020a0316141561068157600354604080517fbeabacc8000000000000000000000000000000000000000000000000000000008152600160a060020a038c811660048301528881166024830152604482018890529151929091169350839163beabacc89160648181019260209290919082900301816000876161da5a03f115610002575050604051519350610676915050565b61060960043560008054600160a060020a0390811633909116141561065e5761065b82600160a060020a038116600090815260016020819052604082205490829082101561076457610654565b61063260043560028054829081101561000257506000526000805160206108988339815191520154600160a060020a031681565b6040805160443560048181013560208181028581018201909652818552610609958335956024803596606495929491019282918501908490808284375050604080519635808901356020818102808b018201909452818a529799986084989097506024929092019550935083925085019084908082843750506040805160a435808a013560208181028085018201909552818452989a9935999860c49850929650602491909101945092508291908501908490808284375060019d9c50505050505050505050505050565b610632600354600160a060020a031681565b61060960043560016020526000908152604090205481565b610632600054600160a060020a031681565b610609600435600354604080517f93423e9c000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152915160009390921691839183916393423e9c91602481810192602092909190829003018187876161da5a03f1156100025750506040515193508391506106549050565b60408051918252519081900360200190f35b505b90565b6001016100a0565b600091505061061d565b60408051600160a060020a03929092168252519081900360200190f35b600192505b5050919050565b90505b919050565b90505b92915050565b600101610214565b505b509695505050505050565b60010161032d565b60028054600181018083559091908280158290116106d45760008390526106d4906000805160206108988339815191529081019083015b8082111561061b57600081556001016106c0565b505050905083828151811015610002579060200190602002015160026000508281548110156100025750600090815260008051602061089883398151915283018054600160a060020a031916909217909155845182916001918790869081101561000257505060208581028801810151600160a060020a031682529190915260409020556001919091019061018d565b600160a060020a038416600090815260016020819052604082209190915560025490830110156108125760028054600019810190811015610002575080547f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acd0154600160a060020a03166000818152604090208490558154909250829190849081101561000257506000525060008051602061089883398151915282018054600160a060020a031916821790555b600280546000198101908110156100025750805460008290527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acd018054600160a060020a03191690558054600019810180835590919082801582901161088b5781836000526020600020918201910161088b91906106c0565b505050506001925061065456405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace \ No newline at end of file diff --git a/packages/bytecode-utils/src/lib/bytecodes/wrong.hex b/packages/bytecode-utils/src/lib/bytecodes/wrong.hex new file mode 100644 index 000000000..2f3416ab3 --- /dev/null +++ b/packages/bytecode-utils/src/lib/bytecodes/wrong.hex @@ -0,0 +1 @@ +0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063893d20e8116100ad578063a9059cbb11610071578063a9059cbb1461035a578063b09f126614610386578063d28d88521461038e578063dd62ed3e14610396578063f2fde38b146103c45761012c565b8063893d20e8146102dd5780638da5cb5b1461030157806395d89b4114610309578063a0712d6814610311578063a457c2d71461032e5761012c565b806332424aa3116100f457806332424aa31461025c578063395093511461026457806342966c681461029057806370a08231146102ad578063715018a6146102d35761012c565b806306fdde0314610131578063095ea7b3146101ae57806318160ddd146101ee57806323b872dd14610208578063313ce5671461023e575b600080fd5b6101396103ea565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017357818101518382015260200161015b565b50505050905090810190601f1680156101a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101da600480360360408110156101c457600080fd5b506001600160a01b038135169060200135610480565b604080519115158252519081900360200190f35b6101f661049d565b60408051918252519081900360200190f35b6101da6004803603606081101561021e57600080fd5b506001600160a01b038135811691602081013590911690604001356104a3565b610246610530565b6040805160ff9092168252519081900360200190f35b610246610539565b6101da6004803603604081101561027a57600080fd5b506001600160a01b038135169060200135610542565b6101da600480360360208110156102a657600080fd5b5035610596565b6101f6600480360360208110156102c357600080fd5b50356001600160a01b03166105b1565b6102db6105cc565b005b6102e5610680565b604080516001600160a01b039092168252519081900360200190f35b6102e561068f565b61013961069e565b6101da6004803603602081101561032757600080fd5b50356106ff565b6101da6004803603604081101561034457600080fd5b506001600160a01b03813516906020013561077c565b6101da6004803603604081101561037057600080fd5b506001600160a01b0381351690602001356107ea565b6101396107fe565b61013961088c565b6101f6600480360360408110156103ac57600080fd5b506001600160a01b03813581169160200135166108e7565b6102db600480360360208110156103da57600080fd5b50356001600160a01b0316610912565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104765780601f1061044b57610100808354040283529160200191610476565b820191906000526020600020905b81548152906001019060200180831161045957829003601f168201915b5050505050905090565b600061049461048d610988565b848461098c565b50600192915050565b60035490565b60006104b0848484610a78565b610526846104bc610988565b6105218560405180606001604052806028815260200161100e602891396001600160a01b038a166000908152600260205260408120906104fa610988565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610bd616565b61098c565b5060019392505050565b60045460ff1690565b60045460ff1681565b600061049461054f610988565b846105218560026000610560610988565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610c6d16565b60006105a96105a3610988565b83610cce565b506001919050565b6001600160a01b031660009081526001602052604090205490565b6105d4610988565b6000546001600160a01b03908116911614610636576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061068a61068f565b905090565b6000546001600160a01b031690565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104765780601f1061044b57610100808354040283529160200191610476565b6000610709610988565b6000546001600160a01b0390811691161461076b576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6105a9610776610988565b83610dca565b6000610494610789610988565b846105218560405180606001604052806025815260200161107f60259139600260006107b3610988565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610bd616565b60006104946107f7610988565b8484610a78565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108845780601f1061085957610100808354040283529160200191610884565b820191906000526020600020905b81548152906001019060200180831161086757829003601f168201915b505050505081565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108845780601f1061085957610100808354040283529160200191610884565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61091a610988565b6000546001600160a01b0390811691161461097c576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61098581610ebc565b50565b3390565b6001600160a01b0383166109d15760405162461bcd60e51b8152600401808060200182810382526024815260200180610fc46024913960400191505060405180910390fd5b6001600160a01b038216610a165760405162461bcd60e51b81526004018080602001828103825260228152602001806110e76022913960400191505060405180910390fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610abd5760405162461bcd60e51b8152600401808060200182810382526025815260200180610f9f6025913960400191505060405180910390fd5b6001600160a01b038216610b025760405162461bcd60e51b815260040180806020018281038252602381526020018061105c6023913960400191505060405180910390fd5b610b4581604051806060016040528060268152602001611036602691396001600160a01b038616600090815260016020526040902054919063ffffffff610bd616565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610b7a908263ffffffff610c6d16565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610c655760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c2a578181015183820152602001610c12565b50505050905090810190601f168015610c575780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610cc7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610d135760405162461bcd60e51b81526004018080602001828103825260218152602001806110a46021913960400191505060405180910390fd5b610d56816040518060600160405280602281526020016110c5602291396001600160a01b038516600090815260016020526040902054919063ffffffff610bd616565b6001600160a01b038316600090815260016020526040902055600354610d82908263ffffffff610f5c16565b6003556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b038216610e25576040805162461bcd60e51b815260206004820152601f60248201527f42455032303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600354610e38908263ffffffff610c6d16565b6003556001600160a01b038216600090815260016020526040902054610e64908263ffffffff610c6d16565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038116610f015760405162461bcd60e51b8152600401808060200182810382526026815260200180610fe86026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610cc783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bd656fe42455032303a207472616e736665722066726f6d20746865207a65726f206164647265737342455032303a20617070726f76652066726f6d20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737342455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f42455032303a206275726e2066726f6d20746865207a65726f206164647265737342455032303a206275726e20616d6f756e7420657863656564732062616c616e636542455032303a20617070726f766520746f20746865207a65726f2061646472657373a265627a7a7231582071e0c183217ae3e9a1406ae7b58c2f36e09f2b16b10e19d46ceb821f30032 \ No newline at end of file diff --git a/packages/bytecode-utils/tsconfig.json b/packages/bytecode-utils/tsconfig.json new file mode 100644 index 000000000..85922d6d4 --- /dev/null +++ b/packages/bytecode-utils/tsconfig.json @@ -0,0 +1,48 @@ +{ + "compilerOptions": { + "incremental": true, + "target": "es2017", + "outDir": "build/main", + "rootDir": "src", + "moduleResolution": "node", + "module": "commonjs", + "declaration": true, + "declarationMap": true, + "inlineSourceMap": true, + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, + "resolveJsonModule": true /* Include modules imported with .json extension. */, + + "strict": true /* Enable all strict type-checking options. */, + + /* Strict Type-Checking Options */ + // "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, + // "strictNullChecks": true /* Enable strict null checks. */, + // "strictFunctionTypes": true /* Enable strict checking of function types. */, + // "strictPropertyInitialization": true /* Enable strict checking of property initialization in classes. */, + // "noImplicitThis": true /* Raise error on 'this' expressions with an implied 'any' type. */, + // "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, + + /* Additional Checks */ + "noUnusedLocals": true /* Report errors on unused locals. */, + "noUnusedParameters": true /* Report errors on unused parameters. */, + "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, + "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, + + /* Debugging Options */ + "traceResolution": false /* Report module resolution log messages. */, + "listEmittedFiles": false /* Print names of generated files part of the compilation. */, + "listFiles": false /* Print names of files part of the compilation. */, + "pretty": true /* Stylize errors and messages using color and context. */, + + /* Experimental Options */ + // "experimentalDecorators": true /* Enables experimental support for ES7 decorators. */, + // "emitDecoratorMetadata": true /* Enables experimental support for emitting type metadata for decorators. */, + + "lib": ["es2017", "dom"], + "types": ["node"], + "typeRoots": ["node_modules/@types", "src/types"] + }, + "include": ["src/**/*.ts"], + "exclude": ["node_modules/**"], + "compileOnSave": false +} diff --git a/packages/bytecode-utils/tsconfig.module.json b/packages/bytecode-utils/tsconfig.module.json new file mode 100644 index 000000000..dfb74fa3a --- /dev/null +++ b/packages/bytecode-utils/tsconfig.module.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "target": "esnext", + "outDir": "build/module", + "module": "esnext" + }, + "exclude": [ + "node_modules/**" + ] +} diff --git a/packages/contract-call-decoder/.eslintrc.json b/packages/contract-call-decoder/.eslintrc.json new file mode 100644 index 000000000..b597d9572 --- /dev/null +++ b/packages/contract-call-decoder/.eslintrc.json @@ -0,0 +1,32 @@ +{ + "root": true, + "parser": "@typescript-eslint/parser", + "env": { "es6": true }, + "ignorePatterns": ["node_modules", "build", "coverage"], + "plugins": ["import", "eslint-comments", "functional"], + "extends": [ + "eslint:recommended", + "plugin:eslint-comments/recommended", + "plugin:@typescript-eslint/recommended", + "plugin:import/typescript", + "prettier", + "prettier/@typescript-eslint" + ], + "globals": { "BigInt": true, "console": true, "WebAssembly": true }, + "rules": { + "@typescript-eslint/explicit-module-boundary-types": "off", + "eslint-comments/disable-enable-pair": [ + "error", + { "allowWholeFile": true } + ], + "eslint-comments/no-unused-disable": "error", + "import/order": [ + "error", + { "newlines-between": "always", "alphabetize": { "order": "asc" } } + ], + "sort-imports": [ + "error", + { "ignoreDeclarationSort": true, "ignoreCase": true } + ] + } +} diff --git a/packages/contract-call-decoder/.gitignore b/packages/contract-call-decoder/.gitignore new file mode 100644 index 000000000..b69aa95ff --- /dev/null +++ b/packages/contract-call-decoder/.gitignore @@ -0,0 +1,8 @@ +.idea/* +build +node_modules +test +src/**.js +coverage +*.log +yarn.lock diff --git a/packages/contract-call-decoder/.prettierignore b/packages/contract-call-decoder/.prettierignore new file mode 100644 index 000000000..0e80a3c86 --- /dev/null +++ b/packages/contract-call-decoder/.prettierignore @@ -0,0 +1,2 @@ +# package.json is formatted by package managers, so we ignore it here +package.json \ No newline at end of file diff --git a/packages/contract-call-decoder/LICENSE b/packages/contract-call-decoder/LICENSE new file mode 100644 index 000000000..4d209962a --- /dev/null +++ b/packages/contract-call-decoder/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 + +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/packages/contract-call-decoder/README.md b/packages/contract-call-decoder/README.md new file mode 100644 index 000000000..ccacbc82e --- /dev/null +++ b/packages/contract-call-decoder/README.md @@ -0,0 +1,104 @@ +# contract-call-decoder + +Package to decode Ethereum transactions into human-readable format using the [ABI JSON](https://docs.soliditylang.org/en/latest/abi-spec.html#json) and the [NatSpec](https://docs.soliditylang.org/en/latest/natspec-format.html) documentation, which are both found in the [Solidity contract metadata](https://docs.soliditylang.org/en/develop/metadata.html). + +The decoder will also evaluate the [NatSpec Dynamic Expressions](https://docs.soliditylang.org/en/develop/natspec-format.html#dynamic-expressions) meaning it will fill in the values of the parameters found in the call. So for the function: + +```solidity +/// @dev Has to be called by the owner. The _index value `_index` can't be larger than the people array length. +function chooseFavoritePerson(uint256 _index) public returns (Person memory, uint) { +``` + +the decoding of `chooseFavoritePerson(1)` call will be: + +``` +Has to be called by the owner. The _index value 1 can't be larger than the people array length. +``` + +## Install + +``` +yarn add @ethereum-sourcify/contract-call-decoder +``` + +## Usage + +Example below given for the `chooseFavoritePerson(3)` method of the contract `SimpleStorageNatSpec` (verified at Sepolia [0x09aFa1879fa654226D522f7099583d54ee8F18f4](https://repo.sourcify.dev/contracts/full_match/11155111/0x09aFa1879fa654226D522f7099583d54ee8F18f4/)) + +```ts +import { + decodeContractCall, + MetadataSources, +} from '@ethereum-sourcify/contract-call-decoder'; + +// ethers and web3 transactions are compatible +const tx = { + to: '0x09aFa1879fa654226D522f7099583d54ee8F18f4', + data: '0xae7cd3ce0000000000000000000000000000000000000000000000000000000000000001', // chooseFavoritePerson(3) +}; + +// Using metadata fetched from Sourcify API https://repo.sourcify.dev... +let decodedObj: DecodedContractCall; + +// async function +decodedObj = await decodeContractCall(tx, { chainId: 11155111 }); + +import provider from 'eth-provider'; + +// Using metadata fetched from the embeded IPFS hash inside contract's bytecode +decodedObj = await decodeContractCall(tx, { + source: MetadataSources.BytecodeMetadata, + rpcProvider: provider('https://rpc.sepolia.dev');, // RPC Provider to fetch the contract bytecode +}); +``` + +Returned `DecodedContractCall` is slightly different than the `userdoc` and `devdoc` output in the metadata +and grouped under "contract" and the "method" being called. + +```js +// Output: +{ + "contract": { + // @author field above the contract + "author": "John Doe", + // @title field above the contract + "title": "A simple example contract to demonstrate NatSpec", + // @dev field above the contract + "details": "This message is intended for contract developers. Add technical details etc. here", + // @custom:experimental + "custom": { + "experimental": "This is an experimental tag." + } + }, + "method": { + // Required, Canonical function selector string + "selector": "chooseFavoritePerson(uint256)", + // Required + "abi": {...}, + // @dev field above the function + "details": "Has to be called by the owner. The _index value 1 can't be larger than the people array length.", + // @param fields + "params": { + "_index": "The index of the favorite person" + }, + // @return fields + "returns": { + "_0": "Newly chosen favorite Person", + "_1": "The index of the new favorite Person", + }, + // @notice field + "notice": "Chooses the person at index 1 as the favorite person", + // TODO: This output is incorrect? + // Required + "decodedParams": [ + 1n, + ], + // @custom:status + "custom": { + "status": "production-ready" + } + } +} +``` + +Right now the contract-call-decoder uses `@blossom-labs/rosette-radspec` to interpret the notice, but it's experimental. This feature might change in the future. diff --git a/packages/contract-call-decoder/package-lock.json b/packages/contract-call-decoder/package-lock.json new file mode 100644 index 000000000..99ab026b8 --- /dev/null +++ b/packages/contract-call-decoder/package-lock.json @@ -0,0 +1,22027 @@ +{ + "name": "@ethereum-sourcify/contract-call-decoder", + "version": "0.2.2", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@ethereum-sourcify/contract-call-decoder", + "version": "0.2.1", + "license": "MIT", + "dependencies": { + "@blossom-labs/rosette-radspec": "^0.2.1", + "@ethereum-sourcify/bytecode-utils": "*", + "@ethersproject/abi": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/providers": "^5.7.2", + "@ethersproject/transactions": "^5.7.0", + "ethereum-provider": "^0.7.7", + "isomorphic-fetch": "^3.0.0" + }, + "devDependencies": { + "@ava/typescript": "^1.1.1", + "@typescript-eslint/eslint-plugin": "^4.0.1", + "@typescript-eslint/parser": "^4.0.1", + "ava": "^3.12.1", + "c8": "^8.0.0", + "codecov": "^3.5.0", + "cz-conventional-changelog": "^3.3.0", + "eslint": "^7.8.0", + "eslint-config-prettier": "^6.11.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-functional": "^3.0.2", + "eslint-plugin-import": "^2.22.0", + "eth-provider": "^0.13.6", + "npm-run-all": "^4.1.5", + "prettier": "^2.1.1", + "ts-node": "^9.0.0", + "typescript": "^4.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils": { + "name": "@ethereum-sourcify/bytecode-utils", + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@types/node": "^18.11.9", + "bs58": "^5.0.0", + "cbor-x": "^1.4.1" + }, + "devDependencies": { + "@ava/typescript": "^1.1.1", + "@typescript-eslint/eslint-plugin": "^4.0.1", + "@typescript-eslint/parser": "^4.0.1", + "ava": "^3.12.1", + "c8": "^8.0.0", + "codecov": "^3.5.0", + "cz-conventional-changelog": "^3.3.0", + "eslint": "^7.8.0", + "eslint-config-prettier": "^6.11.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-functional": "^3.0.2", + "eslint-plugin-import": "^2.22.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.1.1", + "ts-node": "^9.0.0", + "typescript": "^4.9.3" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/@ava/typescript": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=13.5.0" + } + }, + "../bytecode-utils/node_modules/@babel/code-frame": { + "version": "7.12.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "../bytecode-utils/node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "../bytecode-utils/node_modules/@babel/highlight": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "../bytecode-utils/node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "../bytecode-utils/node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/@cbor-extract/cbor-extract-darwin-arm64": { + "version": "2.1.1", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "../bytecode-utils/node_modules/@commitlint/config-validator": { + "version": "17.4.4", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v14" + } + }, + "../bytecode-utils/node_modules/@commitlint/execute-rule": { + "version": "17.4.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=v14" + } + }, + "../bytecode-utils/node_modules/@commitlint/load": { + "version": "17.5.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.4.4", + "@commitlint/types": "^17.4.4", + "@types/node": "*", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "../bytecode-utils/node_modules/@commitlint/load/node_modules/cosmiconfig-typescript-loader": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=7", + "ts-node": ">=10", + "typescript": ">=3" + } + }, + "../bytecode-utils/node_modules/@commitlint/load/node_modules/ts-node": { + "version": "10.9.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "../bytecode-utils/node_modules/@commitlint/resolve-extends": { + "version": "17.4.4", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "../bytecode-utils/node_modules/@commitlint/types": { + "version": "17.4.4", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" + } + }, + "../bytecode-utils/node_modules/@concordance/react": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "arrify": "^1.0.1" + }, + "engines": { + "node": ">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0" + } + }, + "../bytecode-utils/node_modules/@concordance/react/node_modules/arrify": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "../bytecode-utils/node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "../bytecode-utils/node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "../bytecode-utils/node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "../bytecode-utils/node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "../bytecode-utils/node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "../bytecode-utils/node_modules/@ethersproject/logger": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT" + }, + "../bytecode-utils/node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "../bytecode-utils/node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true, + "license": "BSD-3-Clause" + }, + "../bytecode-utils/node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "../bytecode-utils/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "../bytecode-utils/node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "../bytecode-utils/node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "../bytecode-utils/node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "../bytecode-utils/node_modules/@sindresorhus/is": { + "version": "0.14.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/@tootallnate/once": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "../bytecode-utils/node_modules/@tsconfig/node10": { + "version": "1.0.9", + "dev": true, + "license": "MIT", + "optional": true + }, + "../bytecode-utils/node_modules/@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "license": "MIT", + "optional": true + }, + "../bytecode-utils/node_modules/@tsconfig/node14": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "optional": true + }, + "../bytecode-utils/node_modules/@tsconfig/node16": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "optional": true + }, + "../bytecode-utils/node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/@types/json-schema": { + "version": "7.0.12", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/@types/json5": { + "version": "0.0.29", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/@types/node": { + "version": "18.16.19", + "license": "MIT" + }, + "../bytecode-utils/node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^4.0.0", + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "../bytecode-utils/node_modules/@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "../bytecode-utils/node_modules/@typescript-eslint/parser": { + "version": "4.33.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "../bytecode-utils/node_modules/@typescript-eslint/scope-manager": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "../bytecode-utils/node_modules/@typescript-eslint/types": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "../bytecode-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "../bytecode-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "../bytecode-utils/node_modules/acorn": { + "version": "8.10.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "../bytecode-utils/node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "../bytecode-utils/node_modules/acorn-walk": { + "version": "8.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "../bytecode-utils/node_modules/agent-base": { + "version": "6.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "../bytecode-utils/node_modules/aggregate-error": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/ajv": { + "version": "8.12.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "../bytecode-utils/node_modules/ansi-align": { + "version": "3.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "../bytecode-utils/node_modules/ansi-colors": { + "version": "4.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/ansi-escapes": { + "version": "4.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/ansi-styles": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../bytecode-utils/node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "../bytecode-utils/node_modules/arg": { + "version": "4.1.3", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/argparse": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "../bytecode-utils/node_modules/argv": { + "version": "0.0.2", + "dev": true, + "engines": { + "node": ">=0.6.10" + } + }, + "../bytecode-utils/node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/array-find-index": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/array-includes": { + "version": "3.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/array-union": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/array.prototype.flat": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/arrgv": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "../bytecode-utils/node_modules/arrify": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/astral-regex": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/at-least-node": { + "version": "1.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "../bytecode-utils/node_modules/ava": { + "version": "3.15.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@concordance/react": "^2.0.0", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "ansi-styles": "^5.0.0", + "arrgv": "^1.0.2", + "arrify": "^2.0.1", + "callsites": "^3.1.0", + "chalk": "^4.1.0", + "chokidar": "^3.4.3", + "chunkd": "^2.0.1", + "ci-info": "^2.0.0", + "ci-parallel-vars": "^1.0.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "code-excerpt": "^3.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.1", + "convert-source-map": "^1.7.0", + "currently-unhandled": "^0.4.1", + "debug": "^4.3.1", + "del": "^6.0.0", + "emittery": "^0.8.0", + "equal-length": "^1.0.0", + "figures": "^3.2.0", + "globby": "^11.0.1", + "ignore-by-default": "^2.0.0", + "import-local": "^3.0.2", + "indent-string": "^4.0.0", + "is-error": "^2.2.2", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "lodash": "^4.17.20", + "matcher": "^3.0.0", + "md5-hex": "^3.0.1", + "mem": "^8.0.0", + "ms": "^2.1.3", + "ora": "^5.2.0", + "p-event": "^4.2.0", + "p-map": "^4.0.0", + "picomatch": "^2.2.2", + "pkg-conf": "^3.1.0", + "plur": "^4.0.0", + "pretty-ms": "^7.0.1", + "read-pkg": "^5.2.0", + "resolve-cwd": "^3.0.0", + "slash": "^3.0.0", + "source-map-support": "^0.5.19", + "stack-utils": "^2.0.3", + "strip-ansi": "^6.0.0", + "supertap": "^2.0.0", + "temp-dir": "^2.0.0", + "trim-off-newlines": "^1.0.1", + "update-notifier": "^5.0.1", + "write-file-atomic": "^3.0.3", + "yargs": "^16.2.0" + }, + "bin": { + "ava": "cli.js" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <12.17.0 || >=12.17.0 <13 || >=14.0.0 <15 || >=15" + } + }, + "../bytecode-utils/node_modules/available-typed-arrays": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/base-x": { + "version": "4.0.0", + "license": "MIT" + }, + "../bytecode-utils/node_modules/base64-js": { + "version": "1.5.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "../bytecode-utils/node_modules/binary-extensions": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/bl": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "../bytecode-utils/node_modules/blueimp-md5": { + "version": "2.19.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/boxen": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "../bytecode-utils/node_modules/braces": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/bs58": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "../bytecode-utils/node_modules/buffer": { + "version": "5.7.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "../bytecode-utils/node_modules/buffer-from": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/c8": { + "version": "8.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=12" + } + }, + "../bytecode-utils/node_modules/cacheable-request": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/cachedir": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/call-bind": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/camelcase": { + "version": "6.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/cbor-extract": { + "version": "2.1.1", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.0.3" + }, + "bin": { + "download-cbor-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@cbor-extract/cbor-extract-darwin-arm64": "2.1.1", + "@cbor-extract/cbor-extract-darwin-x64": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm64": "2.1.1", + "@cbor-extract/cbor-extract-linux-x64": "2.1.1", + "@cbor-extract/cbor-extract-win32-x64": "2.1.1" + } + }, + "../bytecode-utils/node_modules/cbor-x": { + "version": "1.5.3", + "license": "MIT", + "optionalDependencies": { + "cbor-extract": "^2.1.1" + } + }, + "../bytecode-utils/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "../bytecode-utils/node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../bytecode-utils/node_modules/chalk/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "../bytecode-utils/node_modules/chalk/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/chardet": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/chokidar": { + "version": "3.5.3", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "../bytecode-utils/node_modules/chunkd": { + "version": "2.0.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/ci-info": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/ci-parallel-vars": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/clean-stack": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/clean-yaml-object": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/cli-boxes": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/cli-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/cli-spinners": { + "version": "2.9.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/cli-truncate": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/cli-width": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "../bytecode-utils/node_modules/cliui": { + "version": "7.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "../bytecode-utils/node_modules/clone": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "../bytecode-utils/node_modules/clone-response": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/code-excerpt": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "convert-to-spaces": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/codecov": { + "version": "3.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + }, + "bin": { + "codecov": "bin/codecov" + }, + "engines": { + "node": ">=4.0" + } + }, + "../bytecode-utils/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "../bytecode-utils/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/commitizen": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + }, + "bin": { + "commitizen": "bin/commitizen", + "cz": "bin/git-cz", + "git-cz": "bin/git-cz" + }, + "engines": { + "node": ">= 12" + } + }, + "../bytecode-utils/node_modules/common-path-prefix": { + "version": "3.0.0", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/concordance": { + "version": "5.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" + } + }, + "../bytecode-utils/node_modules/configstore": { + "version": "5.0.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/conventional-commit-types": { + "version": "3.0.0", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/convert-source-map": { + "version": "1.9.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/convert-to-spaces": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "../bytecode-utils/node_modules/cosmiconfig": { + "version": "8.2.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "../bytecode-utils/node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0", + "optional": true + }, + "../bytecode-utils/node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "../bytecode-utils/node_modules/create-require": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/cross-spawn": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "../bytecode-utils/node_modules/crypto-random-string": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/currently-unhandled": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/cz-conventional-changelog": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@commitlint/load": ">6.1.1" + } + }, + "../bytecode-utils/node_modules/cz-conventional-changelog/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/cz-conventional-changelog/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/cz-conventional-changelog/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "../bytecode-utils/node_modules/cz-conventional-changelog/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/cz-conventional-changelog/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/date-time": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "time-zone": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/debug": { + "version": "4.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "../bytecode-utils/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/decompress-response": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/deep-extend": { + "version": "0.6.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "../bytecode-utils/node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/deepmerge": { + "version": "4.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/defaults": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/defer-to-connect": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/define-properties": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/del": { + "version": "6.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/detect-file": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/detect-indent": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/diff": { + "version": "4.0.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "../bytecode-utils/node_modules/dir-glob": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/doctrine": { + "version": "3.0.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "../bytecode-utils/node_modules/dot-prop": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/duplexer3": { + "version": "0.1.5", + "dev": true, + "license": "BSD-3-Clause" + }, + "../bytecode-utils/node_modules/emittery": { + "version": "0.8.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "../bytecode-utils/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/end-of-stream": { + "version": "1.4.4", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "../bytecode-utils/node_modules/enquirer": { + "version": "2.3.6", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "../bytecode-utils/node_modules/equal-length": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/error-ex": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "../bytecode-utils/node_modules/es-abstract": { + "version": "1.21.2", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/es-set-tostringtag": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "../bytecode-utils/node_modules/es-shim-unscopables": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + } + }, + "../bytecode-utils/node_modules/es-to-primitive": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/escalade": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/escape-goat": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/eslint": { + "version": "7.32.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "../bytecode-utils/node_modules/eslint-config-prettier": { + "version": "6.15.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-stdin": "^6.0.0" + }, + "bin": { + "eslint-config-prettier-check": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=3.14.1" + } + }, + "../bytecode-utils/node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + } + }, + "../bytecode-utils/node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "../bytecode-utils/node_modules/eslint-module-utils": { + "version": "2.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "../bytecode-utils/node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "../bytecode-utils/node_modules/eslint-plugin-eslint-comments": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "engines": { + "node": ">=6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "../bytecode-utils/node_modules/eslint-plugin-eslint-comments/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "../bytecode-utils/node_modules/eslint-plugin-functional": { + "version": "3.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "^4.9.1", + "array.prototype.flatmap": "^1.2.4", + "deepmerge": "^4.2.2", + "escape-string-regexp": "^4.0.0", + "object.fromentries": "^2.0.3" + }, + "engines": { + "node": ">=10.18.0" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0", + "tsutils": "^3.0.0", + "typescript": "^3.4.1 || ^4.0.0" + }, + "peerDependenciesMeta": { + "tsutils": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "../bytecode-utils/node_modules/eslint-plugin-functional/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/eslint-plugin-import": { + "version": "2.27.5", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "../bytecode-utils/node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "../bytecode-utils/node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "../bytecode-utils/node_modules/eslint-scope": { + "version": "5.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "../bytecode-utils/node_modules/eslint-utils": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "../bytecode-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "../bytecode-utils/node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/eslint/node_modules/eslint-utils": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "../bytecode-utils/node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "../bytecode-utils/node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/espree": { + "version": "7.3.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "../bytecode-utils/node_modules/espree/node_modules/acorn": { + "version": "7.4.1", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "../bytecode-utils/node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/esprima": { + "version": "4.0.1", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/esquery": { + "version": "1.5.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "../bytecode-utils/node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "../bytecode-utils/node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "../bytecode-utils/node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "../bytecode-utils/node_modules/estraverse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "../bytecode-utils/node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/expand-tilde": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/external-editor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/fast-diff": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0" + }, + "../bytecode-utils/node_modules/fast-glob": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "../bytecode-utils/node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/fast-url-parser": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^1.3.2" + } + }, + "../bytecode-utils/node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/fastq": { + "version": "1.15.0", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "../bytecode-utils/node_modules/figures": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "../bytecode-utils/node_modules/file-entry-cache": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "../bytecode-utils/node_modules/fill-range": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/find-node-modules": { + "version": "2.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "findup-sync": "^4.0.0", + "merge": "^2.1.1" + } + }, + "../bytecode-utils/node_modules/find-root": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/findup-sync": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "../bytecode-utils/node_modules/flat-cache": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "../bytecode-utils/node_modules/flatted": { + "version": "3.2.7", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/for-each": { + "version": "0.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "../bytecode-utils/node_modules/foreground-child": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "../bytecode-utils/node_modules/fs-extra": { + "version": "9.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/fsevents": { + "version": "2.3.2", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "../bytecode-utils/node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/function.prototype.name": { + "version": "1.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/functional-red-black-tree": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "../bytecode-utils/node_modules/get-intrinsic": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/get-stdin": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/get-stream": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/get-symbol-description": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "../bytecode-utils/node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "../bytecode-utils/node_modules/global-dirs": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/global-modules": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/global-prefix": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "../bytecode-utils/node_modules/globals": { + "version": "13.20.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/globalthis": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/globby": { + "version": "11.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/gopd": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/got": { + "version": "9.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "../bytecode-utils/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/has": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "../bytecode-utils/node_modules/has-bigints": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/has-property-descriptors": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/has-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/has-symbols": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/has-tostringtag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/has-yarn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/homedir-polyfill": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/hosted-git-info": { + "version": "2.8.9", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/html-escaper": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/http-cache-semantics": { + "version": "4.1.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "../bytecode-utils/node_modules/http-proxy-agent": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "../bytecode-utils/node_modules/https-proxy-agent": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "../bytecode-utils/node_modules/iconv-lite": { + "version": "0.4.24", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/ieee754": { + "version": "1.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "../bytecode-utils/node_modules/ignore": { + "version": "5.2.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "../bytecode-utils/node_modules/ignore-by-default": { + "version": "2.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10 <11 || >=12 <13 || >=14" + } + }, + "../bytecode-utils/node_modules/ignore-walk": { + "version": "3.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "../bytecode-utils/node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/import-lazy": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/import-local": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "../bytecode-utils/node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "../bytecode-utils/node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/ini": { + "version": "1.3.8", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/inquirer": { + "version": "8.2.5", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "../bytecode-utils/node_modules/internal-slot": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "../bytecode-utils/node_modules/irregular-plurals": { + "version": "3.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/is-array-buffer": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/is-bigint": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-binary-path": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/is-boolean-object": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-callable": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-ci": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "../bytecode-utils/node_modules/is-core-module": { + "version": "2.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-date-object": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-error": { + "version": "2.2.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/is-installed-globally": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/is-installed-globally/node_modules/global-dirs": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/is-installed-globally/node_modules/ini": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/is-interactive": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/is-negative-zero": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-npm": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "../bytecode-utils/node_modules/is-number-object": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-obj": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/is-path-cwd": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/is-path-inside": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/is-plain-object": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/is-promise": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/is-regex": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-string": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-symbol": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-typed-array": { + "version": "1.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-typedarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/is-unicode-supported": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/is-utf8": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/is-weakref": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-windows": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/is-yarn-global": { + "version": "0.3.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/istanbul-reports": { + "version": "3.1.5", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/js-string-escape": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "../bytecode-utils/node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/js-yaml": { + "version": "3.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "../bytecode-utils/node_modules/json-buffer": { + "version": "3.0.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/json-parse-better-errors": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/json5": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "../bytecode-utils/node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "../bytecode-utils/node_modules/keyv": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "../bytecode-utils/node_modules/latest-version": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "../bytecode-utils/node_modules/lines-and-columns": { + "version": "1.2.4", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/load-json-file": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/load-json-file/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/load-json-file/node_modules/type-fest": { + "version": "0.3.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/lodash.isplainobject": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "optional": true + }, + "../bytecode-utils/node_modules/lodash.map": { + "version": "4.6.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/lodash.mergewith": { + "version": "4.6.2", + "dev": true, + "license": "MIT", + "optional": true + }, + "../bytecode-utils/node_modules/lodash.truncate": { + "version": "4.4.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/lodash.uniq": { + "version": "4.5.0", + "dev": true, + "license": "MIT", + "optional": true + }, + "../bytecode-utils/node_modules/log-symbols": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/longest": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/lowercase-keys": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/make-dir": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "../bytecode-utils/node_modules/make-error": { + "version": "1.3.6", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/map-age-cleaner": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/matcher": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/matcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/md5-hex": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "blueimp-md5": "^2.10.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/mem": { + "version": "8.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/mem?sponsor=1" + } + }, + "../bytecode-utils/node_modules/memorystream": { + "version": "0.3.1", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "../bytecode-utils/node_modules/merge": { + "version": "2.1.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/merge2": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "../bytecode-utils/node_modules/micromatch": { + "version": "4.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "../bytecode-utils/node_modules/mimic-fn": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/mimic-response": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "../bytecode-utils/node_modules/minimist": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/mute-stream": { + "version": "0.0.8", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/nice-try": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/node-fetch": { + "version": "2.6.12", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "../bytecode-utils/node_modules/node-gyp-build-optional-packages": { + "version": "5.0.3", + "license": "MIT", + "optional": true, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "../bytecode-utils/node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "../bytecode-utils/node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "../bytecode-utils/node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/normalize-url": { + "version": "4.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/npm-run-all": { + "version": "4.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/load-json-file": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/parse-json": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/path-type": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/pify": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/read-pkg": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "../bytecode-utils/node_modules/object-inspect": { + "version": "1.12.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "../bytecode-utils/node_modules/object.assign": { + "version": "4.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/object.fromentries": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/object.values": { + "version": "1.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "../bytecode-utils/node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/onetime/node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/optionator": { + "version": "0.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "../bytecode-utils/node_modules/ora": { + "version": "5.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/os-tmpdir": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/p-cancelable": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/p-defer": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/p-event": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/p-finally": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/p-map": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/p-timeout": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/package-json": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/package-json/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "../bytecode-utils/node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/parse-json": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/parse-ms": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/parse-passwd": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/path-type": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "../bytecode-utils/node_modules/pidtree": { + "version": "0.3.1", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "../bytecode-utils/node_modules/pify": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/pkg-conf": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/pkg-conf/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/pkg-conf/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/pkg-conf/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/pkg-conf/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/pkg-conf/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/plur": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "irregular-plurals": "^3.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "../bytecode-utils/node_modules/prepend-http": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/prettier": { + "version": "2.8.8", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "../bytecode-utils/node_modules/pretty-ms": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-ms": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/progress": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "../bytecode-utils/node_modules/pump": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "../bytecode-utils/node_modules/punycode": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/pupa": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "../bytecode-utils/node_modules/rc": { + "version": "1.2.8", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "../bytecode-utils/node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/read-pkg": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/readable-stream": { + "version": "3.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "../bytecode-utils/node_modules/readdirp": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "../bytecode-utils/node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/regexpp": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "../bytecode-utils/node_modules/registry-auth-token": { + "version": "4.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "../bytecode-utils/node_modules/registry-url": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/require-from-string": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/resolve": { + "version": "1.22.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/resolve-cwd": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/resolve-dir": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/resolve-global": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "global-dirs": "^0.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/responselike": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "../bytecode-utils/node_modules/restore-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/reusify": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "../bytecode-utils/node_modules/run-async": { + "version": "2.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "../bytecode-utils/node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "../bytecode-utils/node_modules/rxjs": { + "version": "7.8.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "../bytecode-utils/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "../bytecode-utils/node_modules/safe-regex-test": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/semver": { + "version": "7.5.4", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/semver-diff": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/semver-diff/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "../bytecode-utils/node_modules/serialize-error": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/serialize-error/node_modules/type-fest": { + "version": "0.13.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/shell-quote": { + "version": "1.8.1", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/side-channel": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/slice-ansi": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../bytecode-utils/node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "../bytecode-utils/node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/source-map-support": { + "version": "0.5.21", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "../bytecode-utils/node_modules/spdx-correct": { + "version": "3.2.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "../bytecode-utils/node_modules/spdx-exceptions": { + "version": "2.3.0", + "dev": true, + "license": "CC-BY-3.0" + }, + "../bytecode-utils/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "../bytecode-utils/node_modules/spdx-license-ids": { + "version": "3.0.13", + "dev": true, + "license": "CC0-1.0" + }, + "../bytecode-utils/node_modules/sprintf-js": { + "version": "1.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "../bytecode-utils/node_modules/stack-utils": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/stream-events": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "stubs": "^3.0.0" + } + }, + "../bytecode-utils/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "../bytecode-utils/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/string.prototype.padend": { + "version": "3.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/string.prototype.trim": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/string.prototype.trimend": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/strip-bom": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/stubs": { + "version": "3.0.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/supertap": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "arrify": "^2.0.1", + "indent-string": "^4.0.0", + "js-yaml": "^3.14.0", + "serialize-error": "^7.0.1", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/table": { + "version": "6.8.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "../bytecode-utils/node_modules/table/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../bytecode-utils/node_modules/table/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "../bytecode-utils/node_modules/table/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/table/node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "../bytecode-utils/node_modules/teeny-request": { + "version": "7.1.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/temp-dir": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/test-exclude": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/through": { + "version": "2.3.8", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/time-zone": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/tmp": { + "version": "0.0.33", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "../bytecode-utils/node_modules/to-readable-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "../bytecode-utils/node_modules/tr46": { + "version": "0.0.3", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/trim-off-newlines": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/ts-node": { + "version": "9.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "typescript": ">=2.7" + } + }, + "../bytecode-utils/node_modules/tsconfig-paths": { + "version": "3.14.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "../bytecode-utils/node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/tslib": { + "version": "2.6.0", + "dev": true, + "license": "0BSD" + }, + "../bytecode-utils/node_modules/tsutils": { + "version": "3.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "../bytecode-utils/node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, + "../bytecode-utils/node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "../bytecode-utils/node_modules/type-fest": { + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/typed-array-length": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "../bytecode-utils/node_modules/typescript": { + "version": "4.9.5", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "../bytecode-utils/node_modules/unbox-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/unique-string": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/universalify": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "../bytecode-utils/node_modules/update-notifier": { + "version": "5.1.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "../bytecode-utils/node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "../bytecode-utils/node_modules/url-parse-lax": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/urlgrey": { + "version": "1.0.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "fast-url-parser": "^1.1.3" + } + }, + "../bytecode-utils/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/uuid": { + "version": "8.3.2", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "../bytecode-utils/node_modules/v8-compile-cache": { + "version": "2.3.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "optional": true + }, + "../bytecode-utils/node_modules/v8-to-istanbul": { + "version": "9.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "../bytecode-utils/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "../bytecode-utils/node_modules/wcwidth": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "../bytecode-utils/node_modules/webidl-conversions": { + "version": "3.0.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "../bytecode-utils/node_modules/well-known-symbols": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/whatwg-url": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "../bytecode-utils/node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "../bytecode-utils/node_modules/which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/which-typed-array": { + "version": "1.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/widest-line": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/word-wrap": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "../bytecode-utils/node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../bytecode-utils/node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "../bytecode-utils/node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/write-file-atomic": { + "version": "3.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "../bytecode-utils/node_modules/xdg-basedir": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/y18n": { + "version": "5.0.8", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/yargs": { + "version": "16.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/yargs-parser": { + "version": "20.2.9", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/yn": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ava/typescript": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=13.5.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/runtime": { + "version": "7.22.6", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@blossom-labs/rosette-radspec": { + "version": "0.2.1", + "license": "MIT", + "dependencies": { + "date-fns": "^2.26.0" + }, + "peerDependencies": { + "ethers": "^5.6.4" + } + }, + "node_modules/@commitlint/config-validator": { + "version": "17.4.4", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/execute-rule": { + "version": "17.4.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/load": { + "version": "17.5.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.4.4", + "@commitlint/types": "^17.4.4", + "@types/node": "*", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/load/node_modules/cosmiconfig-typescript-loader": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=7", + "ts-node": ">=10", + "typescript": ">=3" + } + }, + "node_modules/@commitlint/load/node_modules/ts-node": { + "version": "10.9.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/@commitlint/resolve-extends": { + "version": "17.4.4", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/types": { + "version": "17.4.4", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@concordance/react": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "arrify": "^1.0.1" + }, + "engines": { + "node": ">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0" + } + }, + "node_modules/@concordance/react/node_modules/arrify": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@ethereum-sourcify/bytecode-utils": { + "resolved": "../bytecode-utils", + "link": true + }, + "node_modules/@ethersproject/abi": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/basex": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/contracts": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT" + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.7.2", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "node_modules/@ethersproject/random": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/solidity": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.12", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.4.1", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^4.0.0", + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "4.33.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aes-js": { + "version": "3.0.0", + "license": "MIT", + "peer": true + }, + "node_modules/agent-base": { + "version": "6.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/argv": { + "version": "0.0.2", + "dev": true, + "engines": { + "node": ">=0.6.10" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-includes": { + "version": "3.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrgv": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/ava": { + "version": "3.15.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@concordance/react": "^2.0.0", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "ansi-styles": "^5.0.0", + "arrgv": "^1.0.2", + "arrify": "^2.0.1", + "callsites": "^3.1.0", + "chalk": "^4.1.0", + "chokidar": "^3.4.3", + "chunkd": "^2.0.1", + "ci-info": "^2.0.0", + "ci-parallel-vars": "^1.0.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "code-excerpt": "^3.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.1", + "convert-source-map": "^1.7.0", + "currently-unhandled": "^0.4.1", + "debug": "^4.3.1", + "del": "^6.0.0", + "emittery": "^0.8.0", + "equal-length": "^1.0.0", + "figures": "^3.2.0", + "globby": "^11.0.1", + "ignore-by-default": "^2.0.0", + "import-local": "^3.0.2", + "indent-string": "^4.0.0", + "is-error": "^2.2.2", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "lodash": "^4.17.20", + "matcher": "^3.0.0", + "md5-hex": "^3.0.1", + "mem": "^8.0.0", + "ms": "^2.1.3", + "ora": "^5.2.0", + "p-event": "^4.2.0", + "p-map": "^4.0.0", + "picomatch": "^2.2.2", + "pkg-conf": "^3.1.0", + "plur": "^4.0.0", + "pretty-ms": "^7.0.1", + "read-pkg": "^5.2.0", + "resolve-cwd": "^3.0.0", + "slash": "^3.0.0", + "source-map-support": "^0.5.19", + "stack-utils": "^2.0.3", + "strip-ansi": "^6.0.0", + "supertap": "^2.0.0", + "temp-dir": "^2.0.0", + "trim-off-newlines": "^1.0.1", + "update-notifier": "^5.0.1", + "write-file-atomic": "^3.0.3", + "yargs": "^16.2.0" + }, + "bin": { + "ava": "cli.js" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <12.17.0 || >=12.17.0 <13 || >=14.0.0 <15 || >=15" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bech32": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/blueimp-md5": { + "version": "2.19.0", + "dev": true, + "license": "MIT" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "license": "MIT" + }, + "node_modules/boxen": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/buffer": { + "version": "5.7.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/c8": { + "version": "8.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cachedir": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "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/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/chalk/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/chalk/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/chardet": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "3.5.3", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chunkd": { + "version": "2.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ci-info": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ci-parallel-vars": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/clean-yaml-object": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/code-excerpt": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "convert-to-spaces": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/codecov": { + "version": "3.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + }, + "bin": { + "codecov": "bin/codecov" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/commitizen": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + }, + "bin": { + "commitizen": "bin/commitizen", + "cz": "bin/git-cz", + "git-cz": "bin/git-cz" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/concordance": { + "version": "5.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" + } + }, + "node_modules/configstore": { + "version": "5.0.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-commit-types": { + "version": "3.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-to-spaces": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/cookiejar": { + "version": "2.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "8.2.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0", + "optional": true + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cz-conventional-changelog": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@commitlint/load": ">6.1.1" + } + }, + "node_modules/cz-conventional-changelog/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/cz-conventional-changelog/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/date-fns": { + "version": "2.30.0", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/date-time": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "time-zone": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/define-properties": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "6.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "license": "MIT", + "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", + "license": "MIT" + }, + "node_modules/emittery": { + "version": "0.8.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/equal-length": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.21.2", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint": { + "version": "7.32.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "6.15.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-stdin": "^6.0.0" + }, + "bin": { + "eslint-config-prettier-check": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=3.14.1" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-eslint-comments": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "engines": { + "node": ">=6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-eslint-comments/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-plugin-functional": { + "version": "3.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "^4.9.1", + "array.prototype.flatmap": "^1.2.4", + "deepmerge": "^4.2.2", + "escape-string-regexp": "^4.0.0", + "object.fromentries": "^2.0.3" + }, + "engines": { + "node": ">=10.18.0" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0", + "tsutils": "^3.0.0", + "typescript": "^3.4.1 || ^4.0.0" + }, + "peerDependenciesMeta": { + "tsutils": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-functional/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.27.5", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-utils": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/espree": { + "version": "7.3.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/acorn": { + "version": "7.4.1", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eth-provider": { + "version": "0.13.6", + "dev": true, + "license": "GPL-3.0", + "dependencies": { + "ethereum-provider": "0.7.7", + "events": "3.3.0", + "oboe": "2.1.5", + "uuid": "9.0.0", + "ws": "8.9.0", + "xhr2-cookies": "1.1.0" + } + }, + "node_modules/eth-provider/node_modules/ws": { + "version": "8.9.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/ethereum-provider": { + "version": "0.7.7", + "license": "GPL-3.0", + "dependencies": { + "events": "3.3.0" + } + }, + "node_modules/ethers": { + "version": "5.7.2", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.15.0", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-node-modules": { + "version": "2.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "findup-sync": "^4.0.0", + "merge": "^2.1.1" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/findup-sync": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stdin": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.20.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "node_modules/has": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "dev": true, + "license": "ISC" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-https": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.2.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-by-default": { + "version": "2.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10 <11 || >=12 <13 || >=14" + } + }, + "node_modules/ignore-walk": { + "version": "3.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "dev": true, + "license": "ISC" + }, + "node_modules/inquirer": { + "version": "8.2.5", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/irregular-plurals": { + "version": "3.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-error": { + "version": "2.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-installed-globally/node_modules/global-dirs": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-installed-globally/node_modules/ini": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/isomorphic-fetch": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "license": "MIT" + }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "dev": true, + "license": "MIT" + }, + "node_modules/load-json-file": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/type-fest": { + "version": "0.3.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lodash.map": { + "version": "4.6.0", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/longest": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "dev": true, + "license": "ISC" + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/matcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/md5-hex": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "blueimp-md5": "^2.10.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mem": { + "version": "8.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/mem?sponsor=1" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge": { + "version": "2.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "dev": true, + "license": "ISC" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.6.12", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/load-json-file": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/parse-json": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/path-type": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/pify": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/read-pkg": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/oboe": { + "version": "2.1.5", + "dev": true, + "license": "BSD", + "dependencies": { + "http-https": "^1.0.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/onetime/node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-event": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-ms": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-conf/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/plur": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "irregular-plurals": "^3.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-ms": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-ms": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/rc": { + "version": "1.2.8", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-global": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "global-dirs": "^0.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "license": "MIT", + "peer": true + }, + "node_modules/semver": { + "version": "7.5.4", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "0.13.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stream-events": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "stubs": "^3.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stubs": { + "version": "3.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/supertap": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "arrify": "^2.0.1", + "indent-string": "^4.0.0", + "js-yaml": "^3.14.0", + "serialize-error": "^7.0.1", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/table": { + "version": "6.8.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/table/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/table/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/table/node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/teeny-request": { + "version": "7.1.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/teeny-request/node_modules/uuid": { + "version": "8.3.2", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/through": { + "version": "2.3.8", + "dev": true, + "license": "MIT" + }, + "node_modules/time-zone": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/trim-off-newlines": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ts-node": { + "version": "9.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "typescript": ">=2.7" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.0", + "dev": true, + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/urlgrey": { + "version": "1.0.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "fast-url-parser": "^1.1.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/uuid": { + "version": "9.0.0", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/well-known-symbols": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=6" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.4.6", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/xhr2-cookies": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cookiejar": "^2.1.1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "16.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true + }, + "@ava/typescript": { + "version": "1.1.1", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "@babel/code-frame": { + "version": "7.12.11", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.22.5", + "dev": true + }, + "@babel/highlight": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/runtime": { + "version": "7.22.6", + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true + }, + "@blossom-labs/rosette-radspec": { + "version": "0.2.1", + "requires": { + "date-fns": "^2.26.0" + } + }, + "@commitlint/config-validator": { + "version": "17.4.4", + "dev": true, + "optional": true, + "requires": { + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" + } + }, + "@commitlint/execute-rule": { + "version": "17.4.0", + "dev": true, + "optional": true + }, + "@commitlint/load": { + "version": "17.5.0", + "dev": true, + "optional": true, + "requires": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.4.4", + "@commitlint/types": "^17.4.4", + "@types/node": "*", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + }, + "dependencies": { + "cosmiconfig-typescript-loader": { + "version": "4.3.0", + "dev": true, + "optional": true, + "requires": {} + }, + "ts-node": { + "version": "10.9.1", + "dev": true, + "optional": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + } + } + }, + "@commitlint/resolve-extends": { + "version": "17.4.4", + "dev": true, + "optional": true, + "requires": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + } + }, + "@commitlint/types": { + "version": "17.4.4", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0" + } + }, + "@concordance/react": { + "version": "2.0.0", + "dev": true, + "requires": { + "arrify": "^1.0.1" + }, + "dependencies": { + "arrify": { + "version": "1.0.1", + "dev": true + } + } + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "optional": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "optional": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@eslint/eslintrc": { + "version": "0.4.3", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ignore": { + "version": "4.0.6", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } + } + }, + "@ethereum-sourcify/bytecode-utils": { + "version": "file:../bytecode-utils", + "requires": { + "@ava/typescript": "^1.1.1", + "@ethersproject/bytes": "^5.7.0", + "@types/node": "^18.11.9", + "@typescript-eslint/eslint-plugin": "^4.0.1", + "@typescript-eslint/parser": "^4.0.1", + "ava": "^3.12.1", + "bs58": "^5.0.0", + "c8": "^8.0.0", + "cbor-x": "^1.4.1", + "codecov": "^3.5.0", + "cz-conventional-changelog": "^3.3.0", + "eslint": "^7.8.0", + "eslint-config-prettier": "^6.11.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-functional": "^3.0.2", + "eslint-plugin-import": "^2.22.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.1.1", + "ts-node": "^9.0.0", + "typescript": "^4.9.3" + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true + }, + "@ava/typescript": { + "version": "1.1.1", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "@babel/code-frame": { + "version": "7.12.11", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.22.5", + "dev": true + }, + "@babel/highlight": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true + }, + "@cbor-extract/cbor-extract-darwin-arm64": { + "version": "2.1.1", + "optional": true + }, + "@commitlint/config-validator": { + "version": "17.4.4", + "dev": true, + "optional": true, + "requires": { + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" + } + }, + "@commitlint/execute-rule": { + "version": "17.4.0", + "dev": true, + "optional": true + }, + "@commitlint/load": { + "version": "17.5.0", + "dev": true, + "optional": true, + "requires": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.4.4", + "@commitlint/types": "^17.4.4", + "@types/node": "*", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + }, + "dependencies": { + "cosmiconfig-typescript-loader": { + "version": "4.3.0", + "dev": true, + "optional": true, + "requires": {} + }, + "ts-node": { + "version": "10.9.1", + "dev": true, + "optional": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + } + } + }, + "@commitlint/resolve-extends": { + "version": "17.4.4", + "dev": true, + "optional": true, + "requires": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + } + }, + "@commitlint/types": { + "version": "17.4.4", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0" + } + }, + "@concordance/react": { + "version": "2.0.0", + "dev": true, + "requires": { + "arrify": "^1.0.1" + }, + "dependencies": { + "arrify": { + "version": "1.0.1", + "dev": true + } + } + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "optional": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "optional": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@eslint/eslintrc": { + "version": "0.4.3", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ignore": { + "version": "4.0.6", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } + } + }, + "@ethersproject/bytes": { + "version": "5.7.0", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/logger": { + "version": "5.7.0" + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "dev": true + }, + "@tsconfig/node10": { + "version": "1.0.9", + "dev": true, + "optional": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "optional": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "dev": true, + "optional": true + }, + "@tsconfig/node16": { + "version": "1.0.4", + "dev": true, + "optional": true + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.12", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "dev": true + }, + "@types/node": { + "version": "18.16.19" + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + } + }, + "@typescript-eslint/types": { + "version": "4.33.0", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + } + }, + "acorn": { + "version": "8.10.0", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "dev": true, + "requires": { + "debug": "4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "8.12.0", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ansi-align": { + "version": "3.0.1", + "dev": true, + "requires": { + "string-width": "^4.1.0" + } + }, + "ansi-colors": { + "version": "4.1.3", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.1", + "dev": true + }, + "ansi-styles": { + "version": "5.2.0", + "dev": true + }, + "anymatch": { + "version": "3.1.3", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "argv": { + "version": "0.0.2", + "dev": true + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-find-index": { + "version": "1.0.2", + "dev": true + }, + "array-includes": { + "version": "3.1.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "dev": true + }, + "array.prototype.flat": { + "version": "1.3.1", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.1", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "arrgv": { + "version": "1.0.2", + "dev": true + }, + "arrify": { + "version": "2.0.1", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "dev": true + }, + "ava": { + "version": "3.15.0", + "dev": true, + "requires": { + "@concordance/react": "^2.0.0", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "ansi-styles": "^5.0.0", + "arrgv": "^1.0.2", + "arrify": "^2.0.1", + "callsites": "^3.1.0", + "chalk": "^4.1.0", + "chokidar": "^3.4.3", + "chunkd": "^2.0.1", + "ci-info": "^2.0.0", + "ci-parallel-vars": "^1.0.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "code-excerpt": "^3.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.1", + "convert-source-map": "^1.7.0", + "currently-unhandled": "^0.4.1", + "debug": "^4.3.1", + "del": "^6.0.0", + "emittery": "^0.8.0", + "equal-length": "^1.0.0", + "figures": "^3.2.0", + "globby": "^11.0.1", + "ignore-by-default": "^2.0.0", + "import-local": "^3.0.2", + "indent-string": "^4.0.0", + "is-error": "^2.2.2", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "lodash": "^4.17.20", + "matcher": "^3.0.0", + "md5-hex": "^3.0.1", + "mem": "^8.0.0", + "ms": "^2.1.3", + "ora": "^5.2.0", + "p-event": "^4.2.0", + "p-map": "^4.0.0", + "picomatch": "^2.2.2", + "pkg-conf": "^3.1.0", + "plur": "^4.0.0", + "pretty-ms": "^7.0.1", + "read-pkg": "^5.2.0", + "resolve-cwd": "^3.0.0", + "slash": "^3.0.0", + "source-map-support": "^0.5.19", + "stack-utils": "^2.0.3", + "strip-ansi": "^6.0.0", + "supertap": "^2.0.0", + "temp-dir": "^2.0.0", + "trim-off-newlines": "^1.0.1", + "update-notifier": "^5.0.1", + "write-file-atomic": "^3.0.3", + "yargs": "^16.2.0" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "dev": true + }, + "base-x": { + "version": "4.0.0" + }, + "base64-js": { + "version": "1.5.1", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "dev": true + }, + "bl": { + "version": "4.1.0", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "blueimp-md5": { + "version": "2.19.0", + "dev": true + }, + "boxen": { + "version": "5.1.2", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "bs58": { + "version": "5.0.0", + "requires": { + "base-x": "^4.0.0" + } + }, + "buffer": { + "version": "5.7.1", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "dev": true + }, + "c8": { + "version": "8.0.0", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + } + }, + "cacheable-request": { + "version": "6.1.0", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "dev": true + } + } + }, + "cachedir": { + "version": "2.3.0", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "dev": true + }, + "camelcase": { + "version": "6.3.0", + "dev": true + }, + "cbor-extract": { + "version": "2.1.1", + "optional": true, + "requires": { + "@cbor-extract/cbor-extract-darwin-arm64": "2.1.1", + "@cbor-extract/cbor-extract-darwin-x64": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm64": "2.1.1", + "@cbor-extract/cbor-extract-linux-x64": "2.1.1", + "@cbor-extract/cbor-extract-win32-x64": "2.1.1", + "node-gyp-build-optional-packages": "5.0.3" + } + }, + "cbor-x": { + "version": "1.5.3", + "requires": { + "cbor-extract": "^2.1.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + } + } + }, + "chardet": { + "version": "0.7.0", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chunkd": { + "version": "2.0.1", + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "dev": true + }, + "ci-parallel-vars": { + "version": "1.0.1", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "dev": true + }, + "clean-yaml-object": { + "version": "0.1.0", + "dev": true + }, + "cli-boxes": { + "version": "2.2.1", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.9.0", + "dev": true + }, + "cli-truncate": { + "version": "2.1.0", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "cli-width": { + "version": "3.0.0", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "dev": true + }, + "clone-response": { + "version": "1.0.3", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "code-excerpt": { + "version": "3.0.0", + "dev": true, + "requires": { + "convert-to-spaces": "^1.0.1" + } + }, + "codecov": { + "version": "3.8.3", + "dev": true, + "requires": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "commitizen": { + "version": "4.3.0", + "dev": true, + "requires": { + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + } + }, + "common-path-prefix": { + "version": "3.0.0", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "dev": true + }, + "concordance": { + "version": "5.0.4", + "dev": true, + "requires": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + } + }, + "configstore": { + "version": "5.0.1", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "conventional-commit-types": { + "version": "3.0.0", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "dev": true + }, + "convert-to-spaces": { + "version": "1.0.2", + "dev": true + }, + "cosmiconfig": { + "version": "8.2.0", + "dev": true, + "optional": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "dev": true, + "optional": true + }, + "js-yaml": { + "version": "4.1.0", + "dev": true, + "optional": true, + "requires": { + "argparse": "^2.0.1" + } + } + } + }, + "create-require": { + "version": "1.1.1", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cz-conventional-changelog": { + "version": "3.3.0", + "dev": true, + "requires": { + "@commitlint/load": ">6.1.1", + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "date-time": { + "version": "3.1.0", + "dev": true, + "requires": { + "time-zone": "^1.0.0" + } + }, + "debug": { + "version": "4.3.4", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "dev": true + } + } + }, + "decompress-response": { + "version": "3.3.0", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "dedent": { + "version": "0.7.0", + "dev": true + }, + "deep-extend": { + "version": "0.6.0", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "dev": true + }, + "deepmerge": { + "version": "4.3.1", + "dev": true + }, + "defaults": { + "version": "1.0.4", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "dev": true + }, + "define-properties": { + "version": "1.2.0", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "del": { + "version": "6.1.1", + "dev": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + } + }, + "detect-file": { + "version": "1.0.0", + "dev": true + }, + "detect-indent": { + "version": "6.1.0", + "dev": true + }, + "diff": { + "version": "4.0.2", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dot-prop": { + "version": "5.3.0", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer3": { + "version": "0.1.5", + "dev": true + }, + "emittery": { + "version": "0.8.1", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enquirer": { + "version": "2.3.6", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "equal-length": { + "version": "1.0.1", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.21.2", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "dev": true + }, + "escape-goat": { + "version": "2.1.1", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "dev": true + }, + "eslint": { + "version": "7.32.0", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + }, + "eslint-utils": { + "version": "2.1.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + } + } + }, + "ignore": { + "version": "4.0.6", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "6.15.0", + "dev": true, + "requires": { + "get-stdin": "^6.0.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.7", + "dev": true, + "requires": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.8.0", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-eslint-comments": { + "version": "3.2.0", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } + } + }, + "eslint-plugin-functional": { + "version": "3.7.2", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "^4.9.1", + "array.prototype.flatmap": "^1.2.4", + "deepmerge": "^4.2.2", + "escape-string-regexp": "^4.0.0", + "object.fromentries": "^2.0.3" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.27.5", + "dev": true, + "requires": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "doctrine": { + "version": "2.1.0", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "dev": true + }, + "espree": { + "version": "7.3.1", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "dev": true + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "dev": true + }, + "esquery": { + "version": "1.5.0", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "dev": true + }, + "expand-tilde": { + "version": "2.0.2", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "external-editor": { + "version": "3.1.0", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "dev": true + }, + "fast-diff": { + "version": "1.3.0", + "dev": true + }, + "fast-glob": { + "version": "3.3.0", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "dev": true + }, + "fast-url-parser": { + "version": "1.1.3", + "dev": true, + "requires": { + "punycode": "^1.3.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "dev": true + } + } + }, + "fastq": { + "version": "1.15.0", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "figures": { + "version": "3.2.0", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } + } + }, + "file-entry-cache": { + "version": "6.0.1", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-node-modules": { + "version": "2.1.3", + "dev": true, + "requires": { + "findup-sync": "^4.0.0", + "merge": "^2.1.1" + } + }, + "find-root": { + "version": "1.1.0", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "findup-sync": { + "version": "4.0.0", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + } + }, + "flat-cache": { + "version": "3.0.4", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "foreground-child": { + "version": "2.0.0", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.1", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-stdin": { + "version": "6.0.0", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "0.1.1", + "dev": true, + "optional": true, + "requires": { + "ini": "^1.3.4" + } + }, + "global-modules": { + "version": "1.0.0", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "globals": { + "version": "13.20.0", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globalthis": { + "version": "1.0.3", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "globby": { + "version": "11.1.0", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "got": { + "version": "9.6.0", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.11", + "dev": true + }, + "has": { + "version": "1.0.3", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-yarn": { + "version": "2.1.0", + "dev": true + }, + "homedir-polyfill": { + "version": "1.0.3", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.1", + "dev": true + }, + "http-proxy-agent": { + "version": "4.0.1", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "iconv-lite": { + "version": "0.4.24", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "dev": true + }, + "ignore": { + "version": "5.2.4", + "dev": true + }, + "ignore-by-default": { + "version": "2.1.0", + "dev": true + }, + "ignore-walk": { + "version": "3.0.4", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-fresh": { + "version": "3.3.0", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "dev": true + } + } + }, + "import-lazy": { + "version": "2.1.0", + "dev": true + }, + "import-local": { + "version": "3.1.0", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "dev": true + }, + "ini": { + "version": "1.3.8", + "dev": true + }, + "inquirer": { + "version": "8.2.5", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + } + }, + "internal-slot": { + "version": "1.0.5", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "irregular-plurals": { + "version": "3.5.0", + "dev": true + }, + "is-array-buffer": { + "version": "3.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.12.1", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-error": { + "version": "2.2.2", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.4.0", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "dependencies": { + "global-dirs": { + "version": "3.0.1", + "dev": true, + "requires": { + "ini": "2.0.0" + } + }, + "ini": { + "version": "2.0.0", + "dev": true + } + } + }, + "is-interactive": { + "version": "1.0.0", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.2", + "dev": true + }, + "is-npm": { + "version": "5.0.0", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "dev": true + }, + "is-promise": { + "version": "4.0.0", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.10", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "dev": true + }, + "is-weakref": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-windows": { + "version": "1.0.2", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true + }, + "istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-reports": { + "version": "3.1.5", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "js-string-escape": { + "version": "1.0.1", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-buffer": { + "version": "3.0.0", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true + }, + "json5": { + "version": "1.0.2", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "3.1.0", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "latest-version": { + "version": "5.1.0", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "levn": { + "version": "0.4.1", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "dev": true + }, + "load-json-file": { + "version": "5.3.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "dev": true + }, + "type-fest": { + "version": "0.3.1", + "dev": true + } + } + }, + "locate-path": { + "version": "6.0.0", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "dev": true, + "optional": true + }, + "lodash.map": { + "version": "4.6.0", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.2", + "dev": true, + "optional": true + }, + "lodash.truncate": { + "version": "4.4.2", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "dev": true, + "optional": true + }, + "log-symbols": { + "version": "4.1.0", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "longest": { + "version": "2.0.1", + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "dev": true + }, + "map-age-cleaner": { + "version": "0.1.3", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "matcher": { + "version": "3.0.0", + "dev": true, + "requires": { + "escape-string-regexp": "^4.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + } + } + }, + "md5-hex": { + "version": "3.0.1", + "dev": true, + "requires": { + "blueimp-md5": "^2.10.0" + } + }, + "mem": { + "version": "8.1.1", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + } + }, + "memorystream": { + "version": "0.3.1", + "dev": true + }, + "merge": { + "version": "2.1.1", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mimic-fn": { + "version": "3.1.0", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "dev": true + }, + "ms": { + "version": "2.1.3", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "dev": true + }, + "node-fetch": { + "version": "2.6.12", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-gyp-build-optional-packages": { + "version": "5.0.3", + "optional": true + }, + "normalize-package-data": { + "version": "2.5.0", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "dev": true + }, + "normalize-url": { + "version": "4.5.1", + "dev": true + }, + "npm-run-all": { + "version": "4.1.5", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-key": { + "version": "2.0.1", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "semver": { + "version": "5.7.2", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "object-inspect": { + "version": "1.12.3", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.fromentries": { + "version": "2.0.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.values": { + "version": "1.1.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "once": { + "version": "1.4.0", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "dev": true + } + } + }, + "optionator": { + "version": "0.9.3", + "dev": true, + "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + } + }, + "ora": { + "version": "5.4.1", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "dev": true + }, + "p-cancelable": { + "version": "1.1.0", + "dev": true + }, + "p-defer": { + "version": "1.0.0", + "dev": true + }, + "p-event": { + "version": "4.2.0", + "dev": true, + "requires": { + "p-timeout": "^3.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-map": { + "version": "4.0.0", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-timeout": { + "version": "3.2.0", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "parent-module": { + "version": "1.0.1", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-ms": { + "version": "2.1.0", + "dev": true + }, + "parse-passwd": { + "version": "1.0.0", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "dev": true + }, + "pidtree": { + "version": "0.3.1", + "dev": true + }, + "pify": { + "version": "4.0.1", + "dev": true + }, + "pkg-conf": { + "version": "3.1.0", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "dev": true + } + } + }, + "pkg-dir": { + "version": "4.2.0", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "plur": { + "version": "4.0.0", + "dev": true, + "requires": { + "irregular-plurals": "^3.2.0" + } + }, + "prelude-ls": { + "version": "1.2.1", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "dev": true + }, + "prettier": { + "version": "2.8.8", + "dev": true + }, + "pretty-ms": { + "version": "7.0.1", + "dev": true, + "requires": { + "parse-ms": "^2.1.0" + } + }, + "progress": { + "version": "2.0.3", + "dev": true + }, + "pump": { + "version": "3.0.0", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.3.0", + "dev": true + }, + "pupa": { + "version": "2.1.1", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, + "queue-microtask": { + "version": "1.2.3", + "dev": true + }, + "rc": { + "version": "1.2.8", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "dev": true + } + } + }, + "read-pkg": { + "version": "5.2.0", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "dev": true + } + } + }, + "readable-stream": { + "version": "3.6.2", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regexp.prototype.flags": { + "version": "1.5.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, + "regexpp": { + "version": "3.2.0", + "dev": true + }, + "registry-auth-token": { + "version": "4.2.2", + "dev": true, + "requires": { + "rc": "1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "require-directory": { + "version": "2.1.1", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "dev": true + }, + "resolve": { + "version": "1.22.2", + "dev": true, + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "dev": true + }, + "resolve-global": { + "version": "1.0.0", + "dev": true, + "optional": true, + "requires": { + "global-dirs": "^0.1.1" + } + }, + "responselike": { + "version": "1.0.2", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "reusify": { + "version": "1.0.4", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.4.1", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "7.8.1", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "dev": true + }, + "safe-regex-test": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2", + "dev": true + }, + "semver": { + "version": "7.5.4", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "semver-diff": { + "version": "3.1.1", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "serialize-error": { + "version": "7.0.1", + "dev": true, + "requires": { + "type-fest": "^0.13.1" + }, + "dependencies": { + "type-fest": { + "version": "0.13.1", + "dev": true + } + } + }, + "shebang-command": { + "version": "2.0.0", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "dev": true + }, + "shell-quote": { + "version": "1.8.1", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "dev": true + }, + "slash": { + "version": "3.0.0", + "dev": true + }, + "slice-ansi": { + "version": "3.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + } + } + }, + "source-map": { + "version": "0.6.1", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "spdx-correct": { + "version": "3.2.0", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "stream-events": { + "version": "1.0.5", + "dev": true, + "requires": { + "stubs": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "4.2.3", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.padend": { + "version": "3.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trim": { + "version": "1.2.7", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-ansi": { + "version": "6.0.1", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "dev": true + }, + "stubs": { + "version": "3.0.0", + "dev": true + }, + "supertap": { + "version": "2.0.0", + "dev": true, + "requires": { + "arrify": "^2.0.1", + "indent-string": "^4.0.0", + "js-yaml": "^3.14.0", + "serialize-error": "^7.0.1", + "strip-ansi": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true + }, + "table": { + "version": "6.8.1", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + } + } + }, + "teeny-request": { + "version": "7.1.1", + "dev": true, + "requires": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + } + }, + "temp-dir": { + "version": "2.0.0", + "dev": true + }, + "test-exclude": { + "version": "6.0.0", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "dev": true + }, + "through": { + "version": "2.3.8", + "dev": true + }, + "time-zone": { + "version": "1.0.0", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-readable-stream": { + "version": "1.0.0", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "dev": true + }, + "trim-off-newlines": { + "version": "1.0.3", + "dev": true + }, + "ts-node": { + "version": "9.1.1", + "dev": true, + "requires": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + } + }, + "tsconfig-paths": { + "version": "3.14.2", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "dev": true + } + } + }, + "tslib": { + "version": "2.6.0", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "dev": true + } + } + }, + "type-check": { + "version": "0.4.0", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "dev": true + }, + "typed-array-length": { + "version": "1.0.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.9.5", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "unique-string": { + "version": "2.0.0", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "dev": true + }, + "update-notifier": { + "version": "5.1.0", + "dev": true, + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "urlgrey": { + "version": "1.0.0", + "dev": true, + "requires": { + "fast-url-parser": "^1.1.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "dev": true + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true, + "optional": true + }, + "v8-to-istanbul": { + "version": "9.1.0", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "dev": true + }, + "well-known-symbols": { + "version": "2.0.0", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.10", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "widest-line": { + "version": "3.1.0", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "dev": true + }, + "yn": { + "version": "3.1.1", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "dev": true + } + } + }, + "@ethersproject/abi": { + "version": "5.7.0", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.7.0", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.7.0", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/address": { + "version": "5.7.0", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "@ethersproject/base64": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "@ethersproject/basex": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "@ethersproject/bytes": { + "version": "5.7.0", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/constants": { + "version": "5.7.0", + "requires": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "@ethersproject/contracts": { + "version": "5.7.0", + "peer": true, + "requires": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "@ethersproject/hash": { + "version": "5.7.0", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/hdnode": { + "version": "5.7.0", + "peer": true, + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/json-wallets": { + "version": "5.7.0", + "peer": true, + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "@ethersproject/keccak256": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "@ethersproject/logger": { + "version": "5.7.0" + }, + "@ethersproject/networks": { + "version": "5.7.1", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/pbkdf2": { + "version": "5.7.0", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "@ethersproject/properties": { + "version": "5.7.0", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/providers": { + "version": "5.7.2", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "@ethersproject/random": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/rlp": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/sha2": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "@ethersproject/signing-key": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "@ethersproject/solidity": { + "version": "5.7.0", + "peer": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/strings": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/transactions": { + "version": "5.7.0", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "@ethersproject/units": { + "version": "5.7.0", + "peer": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/wallet": { + "version": "5.7.0", + "peer": true, + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/web": { + "version": "5.7.1", + "requires": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/wordlists": { + "version": "5.7.0", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "dev": true + }, + "@tsconfig/node10": { + "version": "1.0.9", + "dev": true, + "optional": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "optional": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "dev": true, + "optional": true + }, + "@tsconfig/node16": { + "version": "1.0.4", + "dev": true, + "optional": true + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.12", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "dev": true + }, + "@types/node": { + "version": "20.4.1", + "dev": true, + "optional": true + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + } + }, + "@typescript-eslint/types": { + "version": "4.33.0", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + } + }, + "acorn": { + "version": "8.10.0", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "dev": true + }, + "aes-js": { + "version": "3.0.0", + "peer": true + }, + "agent-base": { + "version": "6.0.2", + "dev": true, + "requires": { + "debug": "4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "8.12.0", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ansi-align": { + "version": "3.0.1", + "dev": true, + "requires": { + "string-width": "^4.1.0" + } + }, + "ansi-colors": { + "version": "4.1.3", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.1", + "dev": true + }, + "ansi-styles": { + "version": "5.2.0", + "dev": true + }, + "anymatch": { + "version": "3.1.3", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "argv": { + "version": "0.0.2", + "dev": true + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-find-index": { + "version": "1.0.2", + "dev": true + }, + "array-includes": { + "version": "3.1.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "dev": true + }, + "array.prototype.flat": { + "version": "1.3.1", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.1", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "arrgv": { + "version": "1.0.2", + "dev": true + }, + "arrify": { + "version": "2.0.1", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "dev": true + }, + "ava": { + "version": "3.15.0", + "dev": true, + "requires": { + "@concordance/react": "^2.0.0", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "ansi-styles": "^5.0.0", + "arrgv": "^1.0.2", + "arrify": "^2.0.1", + "callsites": "^3.1.0", + "chalk": "^4.1.0", + "chokidar": "^3.4.3", + "chunkd": "^2.0.1", + "ci-info": "^2.0.0", + "ci-parallel-vars": "^1.0.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "code-excerpt": "^3.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.1", + "convert-source-map": "^1.7.0", + "currently-unhandled": "^0.4.1", + "debug": "^4.3.1", + "del": "^6.0.0", + "emittery": "^0.8.0", + "equal-length": "^1.0.0", + "figures": "^3.2.0", + "globby": "^11.0.1", + "ignore-by-default": "^2.0.0", + "import-local": "^3.0.2", + "indent-string": "^4.0.0", + "is-error": "^2.2.2", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "lodash": "^4.17.20", + "matcher": "^3.0.0", + "md5-hex": "^3.0.1", + "mem": "^8.0.0", + "ms": "^2.1.3", + "ora": "^5.2.0", + "p-event": "^4.2.0", + "p-map": "^4.0.0", + "picomatch": "^2.2.2", + "pkg-conf": "^3.1.0", + "plur": "^4.0.0", + "pretty-ms": "^7.0.1", + "read-pkg": "^5.2.0", + "resolve-cwd": "^3.0.0", + "slash": "^3.0.0", + "source-map-support": "^0.5.19", + "stack-utils": "^2.0.3", + "strip-ansi": "^6.0.0", + "supertap": "^2.0.0", + "temp-dir": "^2.0.0", + "trim-off-newlines": "^1.0.1", + "update-notifier": "^5.0.1", + "write-file-atomic": "^3.0.3", + "yargs": "^16.2.0" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "dev": true + }, + "bech32": { + "version": "1.1.4" + }, + "binary-extensions": { + "version": "2.2.0", + "dev": true + }, + "bl": { + "version": "4.1.0", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "blueimp-md5": { + "version": "2.19.0", + "dev": true + }, + "bn.js": { + "version": "5.2.1" + }, + "boxen": { + "version": "5.1.2", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0" + }, + "buffer": { + "version": "5.7.1", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "dev": true + }, + "c8": { + "version": "8.0.0", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + } + }, + "cacheable-request": { + "version": "6.1.0", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "dev": true + } + } + }, + "cachedir": { + "version": "2.3.0", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "dev": true + }, + "camelcase": { + "version": "6.3.0", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + } + } + }, + "chardet": { + "version": "0.7.0", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chunkd": { + "version": "2.0.1", + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "dev": true + }, + "ci-parallel-vars": { + "version": "1.0.1", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "dev": true + }, + "clean-yaml-object": { + "version": "0.1.0", + "dev": true + }, + "cli-boxes": { + "version": "2.2.1", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.9.0", + "dev": true + }, + "cli-truncate": { + "version": "2.1.0", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "cli-width": { + "version": "3.0.0", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "dev": true + }, + "clone-response": { + "version": "1.0.3", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "code-excerpt": { + "version": "3.0.0", + "dev": true, + "requires": { + "convert-to-spaces": "^1.0.1" + } + }, + "codecov": { + "version": "3.8.3", + "dev": true, + "requires": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "commitizen": { + "version": "4.3.0", + "dev": true, + "requires": { + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + } + }, + "common-path-prefix": { + "version": "3.0.0", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "dev": true + }, + "concordance": { + "version": "5.0.4", + "dev": true, + "requires": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + } + }, + "configstore": { + "version": "5.0.1", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "conventional-commit-types": { + "version": "3.0.0", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "dev": true + }, + "convert-to-spaces": { + "version": "1.0.2", + "dev": true + }, + "cookiejar": { + "version": "2.1.4", + "dev": true + }, + "cosmiconfig": { + "version": "8.2.0", + "dev": true, + "optional": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "dev": true, + "optional": true + }, + "js-yaml": { + "version": "4.1.0", + "dev": true, + "optional": true, + "requires": { + "argparse": "^2.0.1" + } + } + } + }, + "create-require": { + "version": "1.1.1", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cz-conventional-changelog": { + "version": "3.3.0", + "dev": true, + "requires": { + "@commitlint/load": ">6.1.1", + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "date-fns": { + "version": "2.30.0", + "requires": { + "@babel/runtime": "^7.21.0" + } + }, + "date-time": { + "version": "3.1.0", + "dev": true, + "requires": { + "time-zone": "^1.0.0" + } + }, + "debug": { + "version": "4.3.4", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "dev": true + } + } + }, + "decompress-response": { + "version": "3.3.0", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "dedent": { + "version": "0.7.0", + "dev": true + }, + "deep-extend": { + "version": "0.6.0", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "dev": true + }, + "deepmerge": { + "version": "4.3.1", + "dev": true + }, + "defaults": { + "version": "1.0.4", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "dev": true + }, + "define-properties": { + "version": "1.2.0", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "del": { + "version": "6.1.1", + "dev": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + } + }, + "detect-file": { + "version": "1.0.0", + "dev": true + }, + "detect-indent": { + "version": "6.1.0", + "dev": true + }, + "diff": { + "version": "4.0.2", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dot-prop": { + "version": "5.3.0", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer3": { + "version": "0.1.5", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "requires": { + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0" + } + } + }, + "emittery": { + "version": "0.8.1", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enquirer": { + "version": "2.3.6", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "equal-length": { + "version": "1.0.1", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.21.2", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "dev": true + }, + "escape-goat": { + "version": "2.1.1", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "dev": true + }, + "eslint": { + "version": "7.32.0", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + }, + "eslint-utils": { + "version": "2.1.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + } + } + }, + "ignore": { + "version": "4.0.6", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "6.15.0", + "dev": true, + "requires": { + "get-stdin": "^6.0.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.7", + "dev": true, + "requires": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.8.0", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-eslint-comments": { + "version": "3.2.0", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } + } + }, + "eslint-plugin-functional": { + "version": "3.7.2", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "^4.9.1", + "array.prototype.flatmap": "^1.2.4", + "deepmerge": "^4.2.2", + "escape-string-regexp": "^4.0.0", + "object.fromentries": "^2.0.3" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.27.5", + "dev": true, + "requires": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "doctrine": { + "version": "2.1.0", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "dev": true + }, + "espree": { + "version": "7.3.1", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "dev": true + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "dev": true + }, + "esquery": { + "version": "1.5.0", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "dev": true + }, + "eth-provider": { + "version": "0.13.6", + "dev": true, + "requires": { + "ethereum-provider": "0.7.7", + "events": "3.3.0", + "oboe": "2.1.5", + "uuid": "9.0.0", + "ws": "8.9.0", + "xhr2-cookies": "1.1.0" + }, + "dependencies": { + "ws": { + "version": "8.9.0", + "dev": true, + "requires": {} + } + } + }, + "ethereum-provider": { + "version": "0.7.7", + "requires": { + "events": "3.3.0" + } + }, + "ethers": { + "version": "5.7.2", + "peer": true, + "requires": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "events": { + "version": "3.3.0" + }, + "expand-tilde": { + "version": "2.0.2", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "external-editor": { + "version": "3.1.0", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "dev": true + }, + "fast-diff": { + "version": "1.3.0", + "dev": true + }, + "fast-glob": { + "version": "3.3.0", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "dev": true + }, + "fast-url-parser": { + "version": "1.1.3", + "dev": true, + "requires": { + "punycode": "^1.3.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "dev": true + } + } + }, + "fastq": { + "version": "1.15.0", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "figures": { + "version": "3.2.0", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } + } + }, + "file-entry-cache": { + "version": "6.0.1", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-node-modules": { + "version": "2.1.3", + "dev": true, + "requires": { + "findup-sync": "^4.0.0", + "merge": "^2.1.1" + } + }, + "find-root": { + "version": "1.1.0", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "findup-sync": { + "version": "4.0.0", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + } + }, + "flat-cache": { + "version": "3.0.4", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "foreground-child": { + "version": "2.0.0", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.1", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-stdin": { + "version": "6.0.0", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "0.1.1", + "dev": true, + "optional": true, + "requires": { + "ini": "^1.3.4" + } + }, + "global-modules": { + "version": "1.0.0", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "globals": { + "version": "13.20.0", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globalthis": { + "version": "1.0.3", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "globby": { + "version": "11.1.0", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "got": { + "version": "9.6.0", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.11", + "dev": true + }, + "has": { + "version": "1.0.3", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-yarn": { + "version": "2.1.0", + "dev": true + }, + "hash.js": { + "version": "1.1.7", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.1", + "dev": true + }, + "http-https": { + "version": "1.0.0", + "dev": true + }, + "http-proxy-agent": { + "version": "4.0.1", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "iconv-lite": { + "version": "0.4.24", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "dev": true + }, + "ignore": { + "version": "5.2.4", + "dev": true + }, + "ignore-by-default": { + "version": "2.1.0", + "dev": true + }, + "ignore-walk": { + "version": "3.0.4", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-fresh": { + "version": "3.3.0", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "dev": true + } + } + }, + "import-lazy": { + "version": "2.1.0", + "dev": true + }, + "import-local": { + "version": "3.1.0", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4" + }, + "ini": { + "version": "1.3.8", + "dev": true + }, + "inquirer": { + "version": "8.2.5", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + } + }, + "internal-slot": { + "version": "1.0.5", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "irregular-plurals": { + "version": "3.5.0", + "dev": true + }, + "is-array-buffer": { + "version": "3.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.12.1", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-error": { + "version": "2.2.2", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.4.0", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "dependencies": { + "global-dirs": { + "version": "3.0.1", + "dev": true, + "requires": { + "ini": "2.0.0" + } + }, + "ini": { + "version": "2.0.0", + "dev": true + } + } + }, + "is-interactive": { + "version": "1.0.0", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.2", + "dev": true + }, + "is-npm": { + "version": "5.0.0", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "dev": true + }, + "is-promise": { + "version": "4.0.0", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.10", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "dev": true + }, + "is-weakref": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-windows": { + "version": "1.0.2", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "dev": true + }, + "isomorphic-fetch": { + "version": "3.0.0", + "requires": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true + }, + "istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-reports": { + "version": "3.1.5", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "js-sha3": { + "version": "0.8.0" + }, + "js-string-escape": { + "version": "1.0.1", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-buffer": { + "version": "3.0.0", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true + }, + "json5": { + "version": "1.0.2", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "3.1.0", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "latest-version": { + "version": "5.1.0", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "levn": { + "version": "0.4.1", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "dev": true + }, + "load-json-file": { + "version": "5.3.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "dev": true + }, + "type-fest": { + "version": "0.3.1", + "dev": true + } + } + }, + "locate-path": { + "version": "6.0.0", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "dev": true, + "optional": true + }, + "lodash.map": { + "version": "4.6.0", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.2", + "dev": true, + "optional": true + }, + "lodash.truncate": { + "version": "4.4.2", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "dev": true, + "optional": true + }, + "log-symbols": { + "version": "4.1.0", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "longest": { + "version": "2.0.1", + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "dev": true + }, + "map-age-cleaner": { + "version": "0.1.3", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "matcher": { + "version": "3.0.0", + "dev": true, + "requires": { + "escape-string-regexp": "^4.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + } + } + }, + "md5-hex": { + "version": "3.0.1", + "dev": true, + "requires": { + "blueimp-md5": "^2.10.0" + } + }, + "mem": { + "version": "8.1.1", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + } + }, + "memorystream": { + "version": "0.3.1", + "dev": true + }, + "merge": { + "version": "2.1.1", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mimic-fn": { + "version": "3.1.0", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1" + }, + "minimatch": { + "version": "3.1.2", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "dev": true + }, + "ms": { + "version": "2.1.3", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "dev": true + }, + "node-fetch": { + "version": "2.6.12", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "dev": true + }, + "normalize-url": { + "version": "4.5.1", + "dev": true + }, + "npm-run-all": { + "version": "4.1.5", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-key": { + "version": "2.0.1", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "semver": { + "version": "5.7.2", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "object-inspect": { + "version": "1.12.3", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.fromentries": { + "version": "2.0.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.values": { + "version": "1.1.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "oboe": { + "version": "2.1.5", + "dev": true, + "requires": { + "http-https": "^1.0.0" + } + }, + "once": { + "version": "1.4.0", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "dev": true + } + } + }, + "optionator": { + "version": "0.9.3", + "dev": true, + "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + } + }, + "ora": { + "version": "5.4.1", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "dev": true + }, + "p-cancelable": { + "version": "1.1.0", + "dev": true + }, + "p-defer": { + "version": "1.0.0", + "dev": true + }, + "p-event": { + "version": "4.2.0", + "dev": true, + "requires": { + "p-timeout": "^3.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-map": { + "version": "4.0.0", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-timeout": { + "version": "3.2.0", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "parent-module": { + "version": "1.0.1", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-ms": { + "version": "2.1.0", + "dev": true + }, + "parse-passwd": { + "version": "1.0.0", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "dev": true + }, + "pidtree": { + "version": "0.3.1", + "dev": true + }, + "pify": { + "version": "4.0.1", + "dev": true + }, + "pkg-conf": { + "version": "3.1.0", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "dev": true + } + } + }, + "pkg-dir": { + "version": "4.2.0", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "plur": { + "version": "4.0.0", + "dev": true, + "requires": { + "irregular-plurals": "^3.2.0" + } + }, + "prelude-ls": { + "version": "1.2.1", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "dev": true + }, + "prettier": { + "version": "2.8.8", + "dev": true + }, + "pretty-ms": { + "version": "7.0.1", + "dev": true, + "requires": { + "parse-ms": "^2.1.0" + } + }, + "progress": { + "version": "2.0.3", + "dev": true + }, + "pump": { + "version": "3.0.0", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.3.0", + "dev": true + }, + "pupa": { + "version": "2.1.1", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, + "queue-microtask": { + "version": "1.2.3", + "dev": true + }, + "rc": { + "version": "1.2.8", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "dev": true + } + } + }, + "read-pkg": { + "version": "5.2.0", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "dev": true + } + } + }, + "readable-stream": { + "version": "3.6.2", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerator-runtime": { + "version": "0.13.11" + }, + "regexp.prototype.flags": { + "version": "1.5.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, + "regexpp": { + "version": "3.2.0", + "dev": true + }, + "registry-auth-token": { + "version": "4.2.2", + "dev": true, + "requires": { + "rc": "1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "require-directory": { + "version": "2.1.1", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "dev": true + }, + "resolve": { + "version": "1.22.2", + "dev": true, + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "dev": true + }, + "resolve-global": { + "version": "1.0.0", + "dev": true, + "optional": true, + "requires": { + "global-dirs": "^0.1.1" + } + }, + "responselike": { + "version": "1.0.2", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "reusify": { + "version": "1.0.4", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.4.1", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "7.8.1", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "dev": true + }, + "safe-regex-test": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2", + "dev": true + }, + "scrypt-js": { + "version": "3.0.1", + "peer": true + }, + "semver": { + "version": "7.5.4", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "semver-diff": { + "version": "3.1.1", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "serialize-error": { + "version": "7.0.1", + "dev": true, + "requires": { + "type-fest": "^0.13.1" + }, + "dependencies": { + "type-fest": { + "version": "0.13.1", + "dev": true + } + } + }, + "shebang-command": { + "version": "2.0.0", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "dev": true + }, + "shell-quote": { + "version": "1.8.1", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "dev": true + }, + "slash": { + "version": "3.0.0", + "dev": true + }, + "slice-ansi": { + "version": "3.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + } + } + }, + "source-map": { + "version": "0.6.1", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "spdx-correct": { + "version": "3.2.0", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "stream-events": { + "version": "1.0.5", + "dev": true, + "requires": { + "stubs": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "4.2.3", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.padend": { + "version": "3.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trim": { + "version": "1.2.7", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-ansi": { + "version": "6.0.1", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "dev": true + }, + "stubs": { + "version": "3.0.0", + "dev": true + }, + "supertap": { + "version": "2.0.0", + "dev": true, + "requires": { + "arrify": "^2.0.1", + "indent-string": "^4.0.0", + "js-yaml": "^3.14.0", + "serialize-error": "^7.0.1", + "strip-ansi": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true + }, + "table": { + "version": "6.8.1", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + } + } + }, + "teeny-request": { + "version": "7.1.1", + "dev": true, + "requires": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "dev": true + } + } + }, + "temp-dir": { + "version": "2.0.0", + "dev": true + }, + "test-exclude": { + "version": "6.0.0", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "dev": true + }, + "through": { + "version": "2.3.8", + "dev": true + }, + "time-zone": { + "version": "1.0.0", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-readable-stream": { + "version": "1.0.0", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "0.0.3" + }, + "trim-off-newlines": { + "version": "1.0.3", + "dev": true + }, + "ts-node": { + "version": "9.1.1", + "dev": true, + "requires": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + } + }, + "tsconfig-paths": { + "version": "3.14.2", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "dev": true + } + } + }, + "tslib": { + "version": "2.6.0", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "dev": true + } + } + }, + "type-check": { + "version": "0.4.0", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "dev": true + }, + "typed-array-length": { + "version": "1.0.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.9.5", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "unique-string": { + "version": "2.0.0", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "dev": true + }, + "update-notifier": { + "version": "5.1.0", + "dev": true, + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "urlgrey": { + "version": "1.0.0", + "dev": true, + "requires": { + "fast-url-parser": "^1.1.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "dev": true + }, + "uuid": { + "version": "9.0.0", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "dev": true + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true, + "optional": true + }, + "v8-to-istanbul": { + "version": "9.1.0", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "3.0.1" + }, + "well-known-symbols": { + "version": "2.0.0", + "dev": true + }, + "whatwg-fetch": { + "version": "3.6.2" + }, + "whatwg-url": { + "version": "5.0.0", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.10", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "widest-line": { + "version": "3.1.0", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "7.4.6", + "requires": {} + }, + "xdg-basedir": { + "version": "4.0.0", + "dev": true + }, + "xhr2-cookies": { + "version": "1.1.0", + "dev": true, + "requires": { + "cookiejar": "^2.1.1" + } + }, + "y18n": { + "version": "5.0.8", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "dev": true + }, + "yn": { + "version": "3.1.1", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "dev": true + } + } +} diff --git a/packages/contract-call-decoder/package.json b/packages/contract-call-decoder/package.json new file mode 100644 index 000000000..2e74d3e66 --- /dev/null +++ b/packages/contract-call-decoder/package.json @@ -0,0 +1,103 @@ +{ + "name": "@ethereum-sourcify/contract-call-decoder", + "version": "0.2.2", + "description": "Library to decode Ethereum smart contract calls into human-readable descriptions using ABI and NatSpec", + "main": "build/main/index.js", + "typings": "build/main/index.d.ts", + "module": "build/module/index.js", + "repository": "https://github.com/ethereum/sourcify/tree/master/packages/contract-call-decoder", + "license": "MIT", + "keywords": [ + "sourcify", + "ethereum", + "call", + "contract", + "smart-contract", + "metadata", + "solidity", + "ipfs" + ], + "scripts": { + "build": "run-p build:*", + "build:main": "tsc -p tsconfig.json", + "build:module": "tsc -p tsconfig.module.json", + "test": "run-s build test:*", + "test:lint": "eslint src --ext .ts", + "test:prettier": "prettier \"src/**/*.ts\" --list-different", + "test:unit": "c8 --reporter=none ava", + "watch:build": "tsc -p tsconfig.json -w", + "watch:test": "c8 ava --watch", + "cov": "run-s build test:unit cov:html cov:lcov && open-cli coverage/index.html", + "cov:lcov": "c8 report --reporter=lcov", + "cov:send-disabled": "run-s cov:lcov && codecov", + "cov:check": "c8 report && c8 check-coverage --lines 100 --functions 100 --branches 100", + "reset-hard": "git clean -dfx && git reset --hard && yarn", + "prepare-release": "run-s reset-hard test cov:check" + }, + "engines": { + "node": ">=10" + }, + "dependencies": { + "@blossom-labs/rosette-radspec": "^0.2.1", + "@ethereum-sourcify/bytecode-utils": "*", + "@ethersproject/abi": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/providers": "^5.7.2", + "@ethersproject/transactions": "^5.7.0", + "ethereum-provider": "^0.7.7", + "isomorphic-fetch": "^3.0.0" + }, + "devDependencies": { + "@ava/typescript": "^1.1.1", + "@typescript-eslint/eslint-plugin": "^4.0.1", + "@typescript-eslint/parser": "^4.0.1", + "ava": "^3.12.1", + "c8": "^8.0.0", + "codecov": "^3.5.0", + "cz-conventional-changelog": "^3.3.0", + "eslint": "^7.8.0", + "eslint-config-prettier": "^6.11.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-functional": "^3.0.2", + "eslint-plugin-import": "^2.22.0", + "eth-provider": "^0.13.6", + "npm-run-all": "^4.1.5", + "prettier": "^2.1.1", + "ts-node": "^9.0.0", + "typescript": "^4.0.2" + }, + "files": [ + "build/main", + "build/module", + "!**/*.spec.*", + "!**/*.json", + "CHANGELOG.md", + "LICENSE", + "README.md" + ], + "ava": { + "failFast": true, + "timeout": "60s", + "typescript": { + "rewritePaths": { + "src/": "build/main/" + } + }, + "files": [ + "!build/module/**" + ] + }, + "config": { + "commitizen": { + "path": "cz-conventional-changelog" + } + }, + "prettier": { + "singleQuote": true + }, + "c8": { + "exclude": [ + "**/*.spec.js" + ] + } +} diff --git a/packages/contract-call-decoder/src/index.ts b/packages/contract-call-decoder/src/index.ts new file mode 100644 index 000000000..a088626d8 --- /dev/null +++ b/packages/contract-call-decoder/src/index.ts @@ -0,0 +1 @@ +export * from './lib/ContractCallDecoder'; diff --git a/packages/contract-call-decoder/src/lib/ContractCallDecoder.spec.ts b/packages/contract-call-decoder/src/lib/ContractCallDecoder.spec.ts new file mode 100644 index 000000000..1b9e46104 --- /dev/null +++ b/packages/contract-call-decoder/src/lib/ContractCallDecoder.spec.ts @@ -0,0 +1,141 @@ +import { Provider } from '@ethersproject/providers'; +import test from 'ava'; +import provider from 'eth-provider'; + +import { + decodeContractCall, + evaluate, + findSelectorAndAbiItemFromSignatureHash, + getMetadataFromAddress, + MetadataSources, +} from './ContractCallDecoder'; + +test('can evaluate call data', async (t) => { + const ethereumProvider = provider('https://rpc.ankr.com/eth_goerli'); + t.is( + await evaluate( + 'Set the tree age to `numYears` years', + [ + { + constant: false, + inputs: [{ name: 'numYears', type: 'uint256' }], + name: 'setAge', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + ], + { + to: '0x8521742d3f456bd237e312d6e30724960f72517a', + data: '0xd5dcf127000000000000000000000000000000000000000000000000000000000000000a', + }, + ethereumProvider as unknown as Provider + ), + 'Set the tree age to 10 years' + ); +}); + +test('get metadata of a non-contract address', async (t) => { + const ethereumProvider = provider('https://rpc.ankr.com/eth_goerli'); + try { + await getMetadataFromAddress({ + address: '0x7dBA08Bdc233B28e2c99723c402Fc8F4e35AB53B', + chainId: 5, + source: MetadataSources.BytecodeMetadata, + rpcProvider: ethereumProvider, + }); + } catch (e) { + t.is( + (e as { message: string }).message, + `Bytecode not found while using "MetadataSources.BytecodeMetadata"` + ); + } +}); + +test('can extract metadata from address', async (t) => { + t.is( + ( + await getMetadataFromAddress({ + address: '0xD4B081C226Bc8aBdaf111DEf54c09E779ad29428', + chainId: 5, + }) + ).language, + 'Solidity' + ); +}); + +test('find by signature', async (t) => { + const tx = { + to: '0x8521742d3f456bd237e312d6e30724960f72517a', + input: + '0xd5dcf127000000000000000000000000000000000000000000000000000000000000000a', + }; + const functionSignatureHash = tx.input.slice(0, 10); + + const selectorAndAbi = findSelectorAndAbiItemFromSignatureHash( + functionSignatureHash, + [ + { + constant: false, + inputs: [{ name: 'numYears', type: 'uint256' }], + name: 'setAge', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + ] + ); + + if (!selectorAndAbi) { + return; + } + + t.is(selectorAndAbi.abi.name, 'setAge'); +}); + +test('evaluate calldata from tx getting metadata from sourcify', async (t) => { + const tx = { + to: '0x05c99480624597944e50515a86d1Ec1aD63f23e6', + data: '0x1cf9504d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000046369616f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000046369616f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000046369616f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000046369616f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000046369616f00000000000000000000000000000000000000000000000000000000', + }; + const decodedContractCall = await decodeContractCall(tx, { chainId: 5 }); + if (!decodedContractCall) { + return; + } + t.is(decodedContractCall.method.notice, 'return 1 multiplied by 4: 4'); +}); + +test('evaluate calldata can correctly parse addresses, bigints and bytes', async (t) => { + const tx = { + to: '0x2f55daC1C137F3eE8c8513858f161671dDddf214', + data: '0xb88d4fde0000000000000000000000007dba08bdc233b28e2c99723c402fc8f4e35ab55b0000000000000000000000007dba08bdc233b28e2c99723c402fc8f4e35ab55b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000004010101ff00000000000000000000000000000000000000000000000000000000', + }; + const decodedContractCall = await decodeContractCall(tx, { chainId: 1 }); + if (!decodedContractCall) { + return; + } + t.is( + decodedContractCall.method.decodedParams[0], + '0x7dBA08Bdc233B28e2c99723c402Fc8F4e35AB55B' + ); + t.is(`${decodedContractCall.method.decodedParams[2]}`, '1'); + t.is(`${decodedContractCall.method.decodedParams[3]}`, '0x010101ff'); +}); + +test('evaluate calldata from tx getting metadata from bytecode', async (t) => { + const ethereumProvider = provider('https://rpc.ankr.com/eth_goerli'); + const tx = { + to: '0xD4B081C226Bc8aBdaf111DEf54c09E779ad29428', + data: '0xcea299370000000000000000000000000000000000000000000000000000000000000002', + }; + const decodedContractCall = await decodeContractCall(tx, { + source: MetadataSources.BytecodeMetadata, + rpcProvider: ethereumProvider, + }); + if (!decodedContractCall) { + return; + } + t.is(decodedContractCall.method.notice, 'Set the new vale 4'); +}); diff --git a/packages/contract-call-decoder/src/lib/ContractCallDecoder.ts b/packages/contract-call-decoder/src/lib/ContractCallDecoder.ts new file mode 100644 index 000000000..e6c446260 --- /dev/null +++ b/packages/contract-call-decoder/src/lib/ContractCallDecoder.ts @@ -0,0 +1,220 @@ +import radspec from '@blossom-labs/rosette-radspec'; +import { Transaction as TransactionRosette } from '@blossom-labs/rosette-radspec/dist/declarations/src/types/web3'; +import { decode as decodeBytecode } from '@ethereum-sourcify/bytecode-utils'; +import { + Fragment, + FunctionFragment, + Interface, + JsonFragment, +} from '@ethersproject/abi'; +import { Provider } from '@ethersproject/providers'; +import { EthereumProvider } from 'ethereum-provider'; + +import { extractCustomFields, getValueFromDecodedFunctionData } from './utils'; + +type Transaction = TransactionRosette & { + readonly chainId?: number; +}; + +require('isomorphic-fetch'); + +export enum MetadataSources { + Sourcify, + BytecodeMetadata, +} + +type GetMetadataOptions = { + readonly source?: MetadataSources; + readonly chainId?: number; + readonly address?: string; + readonly rpcProvider?: EthereumProvider; + readonly ipfsGateway?: string; + readonly sourcifyProvider?: string; +}; + +const defaultGetMetadataOptions: GetMetadataOptions = { + source: MetadataSources.Sourcify, + sourcifyProvider: 'https://repo.sourcify.dev', + ipfsGateway: 'https://ipfs.io', +}; + +export async function getMetadataFromAddress(options: GetMetadataOptions) { + options = { ...defaultGetMetadataOptions, ...options }; + let contractMetadataJSON; + if (options.source === MetadataSources.Sourcify) { + if (!options.chainId) { + throw new Error('Missing chainId while using "MetadataSources.Sourcify"'); + } + if (!options.address) { + throw new Error('Missing address while using "MetadataSources.Sourcify"'); + } + const sourcifyUrl = `${options.sourcifyProvider}/contracts/full_match/${options.chainId}/${options.address}/metadata.json`; + try { + const req = await fetch(sourcifyUrl); + contractMetadataJSON = await req.json(); + } catch (e) { + throw new Error(`The contract is not available on "${sourcifyUrl}"`); + } + } else if (options.source === MetadataSources.BytecodeMetadata) { + if (!options.rpcProvider) { + throw new Error( + `Missing rpcProvider while using "MetadataSources.BytecodeMetadata"` + ); + } + const bytecode = (await options?.rpcProvider?.request({ + method: 'eth_getCode', + params: [options.address, 'latest'], + })) as string; + if (!bytecode || bytecode === '0x') { + throw new Error( + `Bytecode not found while using "MetadataSources.BytecodeMetadata"` + ); + } + const { ipfs: metadataIpfsCid } = decodeBytecode(bytecode); + try { + const req = await fetch(`${options.ipfsGateway}/ipfs/${metadataIpfsCid}`); + contractMetadataJSON = await req.json(); + } catch (e) { + console.log(e); + throw new Error( + `Cannot fetch metadata from ipfs while using "MetadataSources.BytecodeMetadata"` + ); + } + } + + return contractMetadataJSON; +} + +export const evaluate = async function ( + expression: string, + abi: string | ReadonlyArray, + transaction: Transaction, + provider: Provider +): Promise { + return await radspec(expression, abi, transaction, provider); +}; + +export const findSelectorAndAbiItemFromSignatureHash = ( + functionSignatureHash: string, + abi: string | ReadonlyArray +) => { + try { + const interf = new Interface(abi); + const selector = Object.keys(interf.functions).find((selector) => { + return interf.getSighash(selector) === functionSignatureHash; + }); + if (!selector) { + return false; + } + return { + selector, + abi: interf.functions[selector], + }; + } catch (e) { + return false; + } +}; + +type DecodedParam = + | unknown + | { + readonly [index: string]: unknown; + }; + +type DecodedContractCall = { + readonly contract: { + readonly author?: string; + readonly title?: string; + readonly details?: string; + readonly custom?: { + readonly [index: string]: string; + }; + }; + readonly method: { + readonly selector: string; + readonly abi: FunctionFragment; + readonly decodedParams: readonly DecodedParam[]; + readonly details?: string; + readonly returns?: string; + readonly notice?: string; + readonly params?: { readonly [index: string]: unknown }; + readonly custom?: { + readonly [index: string]: string; + }; + }; +}; + +export const decodeContractCall = async ( + tx: Transaction, + options: GetMetadataOptions = {} +): Promise => { + const getMetadataOptions = { + ...defaultGetMetadataOptions, + ...options, + address: tx.to, + chainId: options.chainId || tx.chainId, + }; + const metadata = await getMetadataFromAddress(getMetadataOptions); + + const functionSignatureHash = tx.data.slice(0, 10); + + const selectorAndAbi = findSelectorAndAbiItemFromSignatureHash( + functionSignatureHash, + metadata.output.abi + ); + if (!selectorAndAbi) { + throw new Error(`Cannot find the function selector in the provided ABI`); + } + const { selector, abi } = selectorAndAbi; + + let radspecEvaluatedNotice; + if (metadata.output?.userdoc?.methods[selector]?.notice) { + radspecEvaluatedNotice = await evaluate( + metadata.output.userdoc.methods[selector].notice, + metadata.output.abi, + tx, + getMetadataOptions.rpcProvider as unknown as Provider + ); + } + + let radspecEvaluatedDetails; + if (metadata.output?.devdoc?.methods[selector]?.details) { + radspecEvaluatedDetails = await evaluate( + metadata.output?.devdoc?.methods[selector]?.details, + metadata.output.abi, + tx, + getMetadataOptions.rpcProvider as unknown as Provider + ); + } + + const iface = new Interface(metadata.output.abi); + const decodedParams = iface + .decodeFunctionData(selector, tx.data) + .map((param) => { + return getValueFromDecodedFunctionData(param); + }); + + const devdoc = metadata.output.devdoc; + + const customFieldsContract = extractCustomFields(devdoc); + const customFieldsMethod = extractCustomFields(devdoc.methods[selector]); + + return { + contract: { + author: devdoc.author, + title: devdoc.title, + details: devdoc.details, + custom: customFieldsContract, + }, + method: { + selector, + abi: abi, + details: radspecEvaluatedDetails, + params: devdoc.methods[selector]?.params, + returns: devdoc.methods[selector]?.returns, + notice: radspecEvaluatedNotice, + decodedParams, + custom: customFieldsMethod, + }, + }; +}; diff --git a/packages/contract-call-decoder/src/lib/utils.ts b/packages/contract-call-decoder/src/lib/utils.ts new file mode 100644 index 000000000..e56848230 --- /dev/null +++ b/packages/contract-call-decoder/src/lib/utils.ts @@ -0,0 +1,74 @@ +import { Result } from '@ethersproject/abi'; +import { BigNumber } from '@ethersproject/bignumber'; + +/** + * Check if the array contains both string and number as keys + * @param array any array + * @returns true if the array contains both string and number as keys + */ +function arrayContainsMixedTypeKeys(array: Result): boolean { + let realLength = 0; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + for (const _ in array) { + realLength++; + } + return array.length !== realLength; +} + +type Mutable = { + -readonly [Key in keyof Type]: Type[Key]; +}; + +type LocalResult = { + readonly [index: string]: unknown; +}; + +/** + * + * @param decodedFunctionData response from ethers Interface.decodeFunctionData (mixed typed index array) + * @returns a javascript rappresentation of the arrays / objects / values passed in the calldata + */ +export function getValueFromDecodedFunctionData( + decodedFunctionData: Result +): unknown { + if ( + Array.isArray(decodedFunctionData) && + arrayContainsMixedTypeKeys(decodedFunctionData) + ) { + const decodedFunctionDataWithoutStringKeys: Mutable = []; + for (const prop in decodedFunctionData) { + if (!(parseInt(prop) >= 0)) { + decodedFunctionDataWithoutStringKeys[prop] = decodedFunctionData[prop]; + } + } + + const result = Object.assign({}, decodedFunctionDataWithoutStringKeys); + const res: Mutable = {}; + for (const property in result) { + res[property] = getValueFromDecodedFunctionData(result[property]); + } + return res; + } else if (Array.isArray(decodedFunctionData)) { + return decodedFunctionData.map((value) => + getValueFromDecodedFunctionData(value) + ); + } else if (decodedFunctionData instanceof BigNumber) { + try { + return decodedFunctionData.toBigInt(); + } catch (e: unknown) { + return decodedFunctionData.toNumber(); + } + } else { + return decodedFunctionData; + } +} + +export function extractCustomFields(doc: Result) { + return Object.keys(doc) + .filter((key) => key.startsWith('custom:')) + .reduce((previous, current) => { + const newValue: Mutable = {}; + newValue[current.replace('custom:', '')] = doc[current]; + return { ...previous, ...newValue }; + }, {}); +} diff --git a/packages/contract-call-decoder/tsconfig.json b/packages/contract-call-decoder/tsconfig.json new file mode 100644 index 000000000..2a2de9bda --- /dev/null +++ b/packages/contract-call-decoder/tsconfig.json @@ -0,0 +1,47 @@ +{ + "compilerOptions": { + "incremental": true, + "target": "es6", + "outDir": "build/main", + "rootDir": "src", + "moduleResolution": "node", + "module": "commonjs", + "declaration": true, + "inlineSourceMap": true, + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, + "resolveJsonModule": true /* Include modules imported with .json extension. */, + + "strict": true /* Enable all strict type-checking options. */, + + /* Strict Type-Checking Options */ + // "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, + // "strictNullChecks": true /* Enable strict null checks. */, + // "strictFunctionTypes": true /* Enable strict checking of function types. */, + // "strictPropertyInitialization": true /* Enable strict checking of property initialization in classes. */, + // "noImplicitThis": true /* Raise error on 'this' expressions with an implied 'any' type. */, + // "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, + + /* Additional Checks */ + "noUnusedLocals": true /* Report errors on unused locals. */, + "noUnusedParameters": true /* Report errors on unused parameters. */, + "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, + "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, + + /* Debugging Options */ + "traceResolution": false /* Report module resolution log messages. */, + "listEmittedFiles": false /* Print names of generated files part of the compilation. */, + "listFiles": false /* Print names of files part of the compilation. */, + "pretty": true /* Stylize errors and messages using color and context. */, + + /* Experimental Options */ + // "experimentalDecorators": true /* Enables experimental support for ES7 decorators. */, + // "emitDecoratorMetadata": true /* Enables experimental support for emitting type metadata for decorators. */, + + "lib": ["es2021", "dom"], + "types": [], + "typeRoots": ["node_modules/@types", "src/types"] + }, + "include": ["src/**/*.ts"], + "exclude": ["node_modules/**"], + "compileOnSave": false +} diff --git a/packages/contract-call-decoder/tsconfig.module.json b/packages/contract-call-decoder/tsconfig.module.json new file mode 100644 index 000000000..dfb74fa3a --- /dev/null +++ b/packages/contract-call-decoder/tsconfig.module.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "target": "esnext", + "outDir": "build/module", + "module": "esnext" + }, + "exclude": [ + "node_modules/**" + ] +} diff --git a/packages/lib-sourcify/.gitignore b/packages/lib-sourcify/.gitignore new file mode 100644 index 000000000..f17019ef7 --- /dev/null +++ b/packages/lib-sourcify/.gitignore @@ -0,0 +1,3 @@ +build/ +node_modules/ +coverage/ \ No newline at end of file diff --git a/packages/lib-sourcify/LICENSE b/packages/lib-sourcify/LICENSE new file mode 100644 index 000000000..4d209962a --- /dev/null +++ b/packages/lib-sourcify/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 + +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/packages/lib-sourcify/README.md b/packages/lib-sourcify/README.md new file mode 100644 index 000000000..9e27c8990 --- /dev/null +++ b/packages/lib-sourcify/README.md @@ -0,0 +1,152 @@ +# lib-sourcify + +[![codecov](https://codecov.io/gh/ethereum/sourcify/branch/staging/graph/badge.svg?token=eN6XDAwWfV&flag=lib-sourcify)](https://codecov.io/gh/ethereum/sourcify) + +lib-sourcify is [Sourcify](https://sourcify.dev)'s reusable backbone library for verifying contracts. Additionally it contains: + +- contract validation methods for creating `CheckedContract`s + - an abstraction for a contract ready to be compiled and verified: fetching and assembling its source files, compiling etc. +- Sourcify types and interfaces + +## Validation + +The initial step to verify a contract is to validation, i.e. creating a `CheckedContract`. This can be done with `checkFiles` which takes files in `PathBuffer` as input and outputs a `CheckedContract` array: + +```ts +const pathBuffers: PathBuffer[] = []; +pathBuffers.push({ + path: filePath, + buffer: fs.readFileSync(filePath), +}); +``` + +For a `CheckedContract` to be valid i.e. compilable, you need to provide a [contract metadata JSON](https://docs.soliditylang.org/en/latest/metadata.html) file identifying the contract and the source files of the contract listed under the `sources` field of the metadata. + +```ts +const checkedContracts: CheckedContract[] = await checkFiles(pathBuffers); +``` + +Each contract source either has a `content` field containing the Solidity code as a string, or urls to fetch the sources from (Github, IPFS, Swarm etc.). If the contract sources are available, you can fetch them with. + +```ts +CheckedContract.fetchMissing(checkedContracts[0]); // static method +``` + +You can check if a contract is ready to be compiled with: + +```ts +CheckedContract.isValid(checkedContracts[0]); // true +``` + +## Verification + +A contract verification essentially requires a `CheckedContract` and an on-chain contract to compare against the `CheckedContract`. + +### Deployed Contract + +You can verify a deployed contract with: + +```ts +export async function verifyDeployed( + checkedContract: CheckedContract, + sourcifyChain: SourcifyChain, + address: string, + creatorTxHash?: string +): Promise; +``` + +a `SourcifyChain` here is the chain object of [ethereum-lists/chains](https://chainid.network/chains.json). This states which chain to look the contract in (e.g. `chainId`) and through which `rpc`s to retrieve the deployed contract from. + +```ts +const goerliChain = { + name: "Goerli", + rpc: [ + "https://locahlhost:8545/" + "https://goerli.infura.io/v3/${INFURA_API_KEY}", + ], + chainId: 5, +}, + +const match = verifyDeployed( + checkedContract[0], + goerliChain, + '0x00878Ac0D6B8d981ae72BA7cDC967eA0Fae69df4' +) + +console.log(match.status) // 'perfect' +``` + +### Create2 Contract + +Alternatively you can verify counterfactual contracts created with the [CREATE2](https://eips.ethereum.org/EIPS/eip-1014) opcode. This does not require a `SourcifyChain` and `address` as the contract address is pre-deterministicly calculated and the contract is not necessarily deployed. + +```ts +export async function verifyCreate2( + checkedContract: CheckedContract, + deployerAddress: string, + salt: string, + create2Address: string, + abiEncodedConstructorArguments?: string +): Promise; +``` + +Example: + +```ts +const match = await verifyCreate2( + checkedContract[0], + deployerAddress, + salt, + create2Address, + abiEncodedConstructorArguments +); + +console.log(match.chainId); // '0'. create2 matches return 0 as chainId +console.log(match.status); // 'perfect' +``` + +## Logging + +`lib-sourcify` has a basic logging system. + +You can specify the log level using the `setLibSourcifyLoggerLevel(level)` where: + +- `0` is nothing +- `1` is errors +- `2` is warnings _[default]_ +- `3` is infos +- `4` is debug + +You can override the logger by calling `setLogger(logger: ILibSourcifyLogger)`. This is an example: + +```javascript +const winston = require('winston'); +const logger = winston.createLogger({ + // ... +}); + +setLibSourcifyLogger({ + logLevel: 4, + setLevel(level: number) { + this.logLevel = level; + }, + log(level, msg) { + if (level <= this.logLevel) { + switch (level) { + case 1: + logger.error(msg); + break; + case 2: + logger.warn(msg); + break; + case 3: + logger.info(msg); + break; + case 4: + logger.debug(msg); + break; + } + } + }, +}); +``` diff --git a/packages/lib-sourcify/package-lock.json b/packages/lib-sourcify/package-lock.json new file mode 100644 index 000000000..3c4c41cb8 --- /dev/null +++ b/packages/lib-sourcify/package-lock.json @@ -0,0 +1,26029 @@ +{ + "name": "@ethereum-sourcify/lib-sourcify", + "version": "1.2.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@ethereum-sourcify/lib-sourcify", + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "@ethereum-sourcify/bytecode-utils": "*", + "@ethereumjs/blockchain": "^6.2.1", + "@ethereumjs/common": "^3.1.1", + "@ethereumjs/evm": "^1.3.1", + "@ethereumjs/statemanager": "^1.0.4", + "@ethereumjs/util": "^8.0.5", + "@ethereumjs/vm": "^6.4.1", + "@fairdatasociety/bmt-js": "^2.0.1", + "abitype": "0.8.0", + "bs58": "^5.0.0", + "ethers": "^6.6.2", + "http-status-codes": "^2.2.0", + "isomorphic-fetch": "^3.0.0", + "jszip": "^3.10.1", + "semver": "^7.3.8", + "solc": "^0.8.17" + }, + "devDependencies": { + "@types/debug": "^4.1.7", + "@types/lru-cache": "^5.1.1", + "@types/mocha": "^10.0.1", + "@typescript-eslint/eslint-plugin": "^4.33.0", + "@typescript-eslint/parser": "^4.33.0", + "c8": "^8.0.0", + "chai": "^4.3.7", + "codecov": "^3.8.3", + "cspell": "^4.2.8", + "cz-conventional-changelog": "^3.3.0", + "eslint": "^7.32.0", + "eslint-config-prettier": "^6.15.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-import": "^2.27.4", + "ganache": "^7.7.3", + "gh-pages": "^3.2.3", + "mocha": "^10.2.0", + "npm-run-all": "^4.1.5", + "open-cli": "^6.0.1", + "prettier": "^2.8.2", + "standard-version": "^9.5.0", + "ts-node": "^10.9.1", + "typedoc": "^0.24.6", + "typescript": "^5.0.4" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils": { + "name": "@ethereum-sourcify/bytecode-utils", + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@types/node": "^18.11.9", + "bs58": "^5.0.0", + "cbor-x": "^1.4.1" + }, + "devDependencies": { + "@ava/typescript": "^1.1.1", + "@typescript-eslint/eslint-plugin": "^4.0.1", + "@typescript-eslint/parser": "^4.0.1", + "ava": "^3.12.1", + "c8": "^8.0.0", + "codecov": "^3.5.0", + "cz-conventional-changelog": "^3.3.0", + "eslint": "^7.8.0", + "eslint-config-prettier": "^6.11.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-functional": "^3.0.2", + "eslint-plugin-import": "^2.22.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.1.1", + "ts-node": "^9.0.0", + "typescript": "^4.9.3" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/@ava/typescript": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=13.5.0" + } + }, + "../bytecode-utils/node_modules/@babel/code-frame": { + "version": "7.12.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "../bytecode-utils/node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "../bytecode-utils/node_modules/@babel/highlight": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "../bytecode-utils/node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "../bytecode-utils/node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/@cbor-extract/cbor-extract-darwin-arm64": { + "version": "2.1.1", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "../bytecode-utils/node_modules/@commitlint/config-validator": { + "version": "17.4.4", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v14" + } + }, + "../bytecode-utils/node_modules/@commitlint/execute-rule": { + "version": "17.4.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=v14" + } + }, + "../bytecode-utils/node_modules/@commitlint/load": { + "version": "17.5.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.4.4", + "@commitlint/types": "^17.4.4", + "@types/node": "*", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "../bytecode-utils/node_modules/@commitlint/load/node_modules/cosmiconfig-typescript-loader": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=7", + "ts-node": ">=10", + "typescript": ">=3" + } + }, + "../bytecode-utils/node_modules/@commitlint/load/node_modules/ts-node": { + "version": "10.9.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "../bytecode-utils/node_modules/@commitlint/resolve-extends": { + "version": "17.4.4", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "../bytecode-utils/node_modules/@commitlint/types": { + "version": "17.4.4", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" + } + }, + "../bytecode-utils/node_modules/@concordance/react": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "arrify": "^1.0.1" + }, + "engines": { + "node": ">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0" + } + }, + "../bytecode-utils/node_modules/@concordance/react/node_modules/arrify": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "../bytecode-utils/node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "../bytecode-utils/node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "../bytecode-utils/node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "../bytecode-utils/node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "../bytecode-utils/node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "../bytecode-utils/node_modules/@ethersproject/logger": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT" + }, + "../bytecode-utils/node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "../bytecode-utils/node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true, + "license": "BSD-3-Clause" + }, + "../bytecode-utils/node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "../bytecode-utils/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "../bytecode-utils/node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "../bytecode-utils/node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "../bytecode-utils/node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "../bytecode-utils/node_modules/@sindresorhus/is": { + "version": "0.14.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/@tootallnate/once": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "../bytecode-utils/node_modules/@tsconfig/node10": { + "version": "1.0.9", + "dev": true, + "license": "MIT", + "optional": true + }, + "../bytecode-utils/node_modules/@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "license": "MIT", + "optional": true + }, + "../bytecode-utils/node_modules/@tsconfig/node14": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "optional": true + }, + "../bytecode-utils/node_modules/@tsconfig/node16": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "optional": true + }, + "../bytecode-utils/node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/@types/json-schema": { + "version": "7.0.12", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/@types/json5": { + "version": "0.0.29", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/@types/node": { + "version": "18.16.19", + "license": "MIT" + }, + "../bytecode-utils/node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^4.0.0", + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "../bytecode-utils/node_modules/@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "../bytecode-utils/node_modules/@typescript-eslint/parser": { + "version": "4.33.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "../bytecode-utils/node_modules/@typescript-eslint/scope-manager": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "../bytecode-utils/node_modules/@typescript-eslint/types": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "../bytecode-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "../bytecode-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "../bytecode-utils/node_modules/acorn": { + "version": "8.10.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "../bytecode-utils/node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "../bytecode-utils/node_modules/acorn-walk": { + "version": "8.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "../bytecode-utils/node_modules/agent-base": { + "version": "6.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "../bytecode-utils/node_modules/aggregate-error": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/ajv": { + "version": "8.12.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "../bytecode-utils/node_modules/ansi-align": { + "version": "3.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "../bytecode-utils/node_modules/ansi-colors": { + "version": "4.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/ansi-escapes": { + "version": "4.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/ansi-styles": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../bytecode-utils/node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "../bytecode-utils/node_modules/arg": { + "version": "4.1.3", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/argparse": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "../bytecode-utils/node_modules/argv": { + "version": "0.0.2", + "dev": true, + "engines": { + "node": ">=0.6.10" + } + }, + "../bytecode-utils/node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/array-find-index": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/array-includes": { + "version": "3.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/array-union": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/array.prototype.flat": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/arrgv": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "../bytecode-utils/node_modules/arrify": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/astral-regex": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/at-least-node": { + "version": "1.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "../bytecode-utils/node_modules/ava": { + "version": "3.15.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@concordance/react": "^2.0.0", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "ansi-styles": "^5.0.0", + "arrgv": "^1.0.2", + "arrify": "^2.0.1", + "callsites": "^3.1.0", + "chalk": "^4.1.0", + "chokidar": "^3.4.3", + "chunkd": "^2.0.1", + "ci-info": "^2.0.0", + "ci-parallel-vars": "^1.0.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "code-excerpt": "^3.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.1", + "convert-source-map": "^1.7.0", + "currently-unhandled": "^0.4.1", + "debug": "^4.3.1", + "del": "^6.0.0", + "emittery": "^0.8.0", + "equal-length": "^1.0.0", + "figures": "^3.2.0", + "globby": "^11.0.1", + "ignore-by-default": "^2.0.0", + "import-local": "^3.0.2", + "indent-string": "^4.0.0", + "is-error": "^2.2.2", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "lodash": "^4.17.20", + "matcher": "^3.0.0", + "md5-hex": "^3.0.1", + "mem": "^8.0.0", + "ms": "^2.1.3", + "ora": "^5.2.0", + "p-event": "^4.2.0", + "p-map": "^4.0.0", + "picomatch": "^2.2.2", + "pkg-conf": "^3.1.0", + "plur": "^4.0.0", + "pretty-ms": "^7.0.1", + "read-pkg": "^5.2.0", + "resolve-cwd": "^3.0.0", + "slash": "^3.0.0", + "source-map-support": "^0.5.19", + "stack-utils": "^2.0.3", + "strip-ansi": "^6.0.0", + "supertap": "^2.0.0", + "temp-dir": "^2.0.0", + "trim-off-newlines": "^1.0.1", + "update-notifier": "^5.0.1", + "write-file-atomic": "^3.0.3", + "yargs": "^16.2.0" + }, + "bin": { + "ava": "cli.js" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <12.17.0 || >=12.17.0 <13 || >=14.0.0 <15 || >=15" + } + }, + "../bytecode-utils/node_modules/available-typed-arrays": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/base-x": { + "version": "4.0.0", + "license": "MIT" + }, + "../bytecode-utils/node_modules/base64-js": { + "version": "1.5.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "../bytecode-utils/node_modules/binary-extensions": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/bl": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "../bytecode-utils/node_modules/blueimp-md5": { + "version": "2.19.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/boxen": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "../bytecode-utils/node_modules/braces": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/bs58": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "../bytecode-utils/node_modules/buffer": { + "version": "5.7.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "../bytecode-utils/node_modules/buffer-from": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/c8": { + "version": "8.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=12" + } + }, + "../bytecode-utils/node_modules/cacheable-request": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/cachedir": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/call-bind": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/camelcase": { + "version": "6.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/cbor-extract": { + "version": "2.1.1", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.0.3" + }, + "bin": { + "download-cbor-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@cbor-extract/cbor-extract-darwin-arm64": "2.1.1", + "@cbor-extract/cbor-extract-darwin-x64": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm64": "2.1.1", + "@cbor-extract/cbor-extract-linux-x64": "2.1.1", + "@cbor-extract/cbor-extract-win32-x64": "2.1.1" + } + }, + "../bytecode-utils/node_modules/cbor-x": { + "version": "1.5.3", + "license": "MIT", + "optionalDependencies": { + "cbor-extract": "^2.1.1" + } + }, + "../bytecode-utils/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "../bytecode-utils/node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../bytecode-utils/node_modules/chalk/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "../bytecode-utils/node_modules/chalk/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/chardet": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/chokidar": { + "version": "3.5.3", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "../bytecode-utils/node_modules/chunkd": { + "version": "2.0.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/ci-info": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/ci-parallel-vars": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/clean-stack": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/clean-yaml-object": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/cli-boxes": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/cli-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/cli-spinners": { + "version": "2.9.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/cli-truncate": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/cli-width": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "../bytecode-utils/node_modules/cliui": { + "version": "7.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "../bytecode-utils/node_modules/clone": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "../bytecode-utils/node_modules/clone-response": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/code-excerpt": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "convert-to-spaces": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/codecov": { + "version": "3.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + }, + "bin": { + "codecov": "bin/codecov" + }, + "engines": { + "node": ">=4.0" + } + }, + "../bytecode-utils/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "../bytecode-utils/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/commitizen": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + }, + "bin": { + "commitizen": "bin/commitizen", + "cz": "bin/git-cz", + "git-cz": "bin/git-cz" + }, + "engines": { + "node": ">= 12" + } + }, + "../bytecode-utils/node_modules/common-path-prefix": { + "version": "3.0.0", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/concordance": { + "version": "5.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" + } + }, + "../bytecode-utils/node_modules/configstore": { + "version": "5.0.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/conventional-commit-types": { + "version": "3.0.0", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/convert-source-map": { + "version": "1.9.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/convert-to-spaces": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "../bytecode-utils/node_modules/cosmiconfig": { + "version": "8.2.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "../bytecode-utils/node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0", + "optional": true + }, + "../bytecode-utils/node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "../bytecode-utils/node_modules/create-require": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/cross-spawn": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "../bytecode-utils/node_modules/crypto-random-string": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/currently-unhandled": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/cz-conventional-changelog": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@commitlint/load": ">6.1.1" + } + }, + "../bytecode-utils/node_modules/cz-conventional-changelog/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/cz-conventional-changelog/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/cz-conventional-changelog/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "../bytecode-utils/node_modules/cz-conventional-changelog/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/cz-conventional-changelog/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/date-time": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "time-zone": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/debug": { + "version": "4.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "../bytecode-utils/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/decompress-response": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/deep-extend": { + "version": "0.6.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "../bytecode-utils/node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/deepmerge": { + "version": "4.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/defaults": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/defer-to-connect": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/define-properties": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/del": { + "version": "6.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/detect-file": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/detect-indent": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/diff": { + "version": "4.0.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "../bytecode-utils/node_modules/dir-glob": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/doctrine": { + "version": "3.0.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "../bytecode-utils/node_modules/dot-prop": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/duplexer3": { + "version": "0.1.5", + "dev": true, + "license": "BSD-3-Clause" + }, + "../bytecode-utils/node_modules/emittery": { + "version": "0.8.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "../bytecode-utils/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/end-of-stream": { + "version": "1.4.4", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "../bytecode-utils/node_modules/enquirer": { + "version": "2.3.6", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "../bytecode-utils/node_modules/equal-length": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/error-ex": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "../bytecode-utils/node_modules/es-abstract": { + "version": "1.21.2", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/es-set-tostringtag": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "../bytecode-utils/node_modules/es-shim-unscopables": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + } + }, + "../bytecode-utils/node_modules/es-to-primitive": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/escalade": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/escape-goat": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/eslint": { + "version": "7.32.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "../bytecode-utils/node_modules/eslint-config-prettier": { + "version": "6.15.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-stdin": "^6.0.0" + }, + "bin": { + "eslint-config-prettier-check": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=3.14.1" + } + }, + "../bytecode-utils/node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + } + }, + "../bytecode-utils/node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "../bytecode-utils/node_modules/eslint-module-utils": { + "version": "2.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "../bytecode-utils/node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "../bytecode-utils/node_modules/eslint-plugin-eslint-comments": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "engines": { + "node": ">=6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "../bytecode-utils/node_modules/eslint-plugin-eslint-comments/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "../bytecode-utils/node_modules/eslint-plugin-functional": { + "version": "3.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "^4.9.1", + "array.prototype.flatmap": "^1.2.4", + "deepmerge": "^4.2.2", + "escape-string-regexp": "^4.0.0", + "object.fromentries": "^2.0.3" + }, + "engines": { + "node": ">=10.18.0" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0", + "tsutils": "^3.0.0", + "typescript": "^3.4.1 || ^4.0.0" + }, + "peerDependenciesMeta": { + "tsutils": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "../bytecode-utils/node_modules/eslint-plugin-functional/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/eslint-plugin-import": { + "version": "2.27.5", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "../bytecode-utils/node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "../bytecode-utils/node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "../bytecode-utils/node_modules/eslint-scope": { + "version": "5.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "../bytecode-utils/node_modules/eslint-utils": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "../bytecode-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "../bytecode-utils/node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/eslint/node_modules/eslint-utils": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "../bytecode-utils/node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "../bytecode-utils/node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/espree": { + "version": "7.3.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "../bytecode-utils/node_modules/espree/node_modules/acorn": { + "version": "7.4.1", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "../bytecode-utils/node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/esprima": { + "version": "4.0.1", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/esquery": { + "version": "1.5.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "../bytecode-utils/node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "../bytecode-utils/node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "../bytecode-utils/node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "../bytecode-utils/node_modules/estraverse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "../bytecode-utils/node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/expand-tilde": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/external-editor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/fast-diff": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0" + }, + "../bytecode-utils/node_modules/fast-glob": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "../bytecode-utils/node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/fast-url-parser": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^1.3.2" + } + }, + "../bytecode-utils/node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/fastq": { + "version": "1.15.0", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "../bytecode-utils/node_modules/figures": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "../bytecode-utils/node_modules/file-entry-cache": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "../bytecode-utils/node_modules/fill-range": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/find-node-modules": { + "version": "2.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "findup-sync": "^4.0.0", + "merge": "^2.1.1" + } + }, + "../bytecode-utils/node_modules/find-root": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/findup-sync": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "../bytecode-utils/node_modules/flat-cache": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "../bytecode-utils/node_modules/flatted": { + "version": "3.2.7", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/for-each": { + "version": "0.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "../bytecode-utils/node_modules/foreground-child": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "../bytecode-utils/node_modules/fs-extra": { + "version": "9.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/fsevents": { + "version": "2.3.2", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "../bytecode-utils/node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/function.prototype.name": { + "version": "1.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/functional-red-black-tree": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "../bytecode-utils/node_modules/get-intrinsic": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/get-stdin": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/get-stream": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/get-symbol-description": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "../bytecode-utils/node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "../bytecode-utils/node_modules/global-dirs": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/global-modules": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/global-prefix": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "../bytecode-utils/node_modules/globals": { + "version": "13.20.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/globalthis": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/globby": { + "version": "11.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/gopd": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/got": { + "version": "9.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "../bytecode-utils/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/has": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "../bytecode-utils/node_modules/has-bigints": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/has-property-descriptors": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/has-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/has-symbols": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/has-tostringtag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/has-yarn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/homedir-polyfill": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/hosted-git-info": { + "version": "2.8.9", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/html-escaper": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/http-cache-semantics": { + "version": "4.1.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "../bytecode-utils/node_modules/http-proxy-agent": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "../bytecode-utils/node_modules/https-proxy-agent": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "../bytecode-utils/node_modules/iconv-lite": { + "version": "0.4.24", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/ieee754": { + "version": "1.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "../bytecode-utils/node_modules/ignore": { + "version": "5.2.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "../bytecode-utils/node_modules/ignore-by-default": { + "version": "2.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10 <11 || >=12 <13 || >=14" + } + }, + "../bytecode-utils/node_modules/ignore-walk": { + "version": "3.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "../bytecode-utils/node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/import-lazy": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/import-local": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "../bytecode-utils/node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "../bytecode-utils/node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/ini": { + "version": "1.3.8", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/inquirer": { + "version": "8.2.5", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "../bytecode-utils/node_modules/internal-slot": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "../bytecode-utils/node_modules/irregular-plurals": { + "version": "3.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/is-array-buffer": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/is-bigint": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-binary-path": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/is-boolean-object": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-callable": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-ci": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "../bytecode-utils/node_modules/is-core-module": { + "version": "2.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-date-object": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-error": { + "version": "2.2.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/is-installed-globally": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/is-installed-globally/node_modules/global-dirs": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/is-installed-globally/node_modules/ini": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/is-interactive": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/is-negative-zero": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-npm": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "../bytecode-utils/node_modules/is-number-object": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-obj": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/is-path-cwd": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/is-path-inside": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/is-plain-object": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/is-promise": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/is-regex": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-string": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-symbol": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-typed-array": { + "version": "1.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-typedarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/is-unicode-supported": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/is-utf8": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/is-weakref": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/is-windows": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/is-yarn-global": { + "version": "0.3.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/istanbul-reports": { + "version": "3.1.5", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/js-string-escape": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "../bytecode-utils/node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/js-yaml": { + "version": "3.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "../bytecode-utils/node_modules/json-buffer": { + "version": "3.0.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/json-parse-better-errors": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/json5": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "../bytecode-utils/node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "../bytecode-utils/node_modules/keyv": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "../bytecode-utils/node_modules/latest-version": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "../bytecode-utils/node_modules/lines-and-columns": { + "version": "1.2.4", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/load-json-file": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/load-json-file/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/load-json-file/node_modules/type-fest": { + "version": "0.3.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/lodash.isplainobject": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "optional": true + }, + "../bytecode-utils/node_modules/lodash.map": { + "version": "4.6.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/lodash.mergewith": { + "version": "4.6.2", + "dev": true, + "license": "MIT", + "optional": true + }, + "../bytecode-utils/node_modules/lodash.truncate": { + "version": "4.4.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/lodash.uniq": { + "version": "4.5.0", + "dev": true, + "license": "MIT", + "optional": true + }, + "../bytecode-utils/node_modules/log-symbols": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/longest": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/lowercase-keys": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/make-dir": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "../bytecode-utils/node_modules/make-error": { + "version": "1.3.6", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/map-age-cleaner": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/matcher": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/matcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/md5-hex": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "blueimp-md5": "^2.10.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/mem": { + "version": "8.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/mem?sponsor=1" + } + }, + "../bytecode-utils/node_modules/memorystream": { + "version": "0.3.1", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "../bytecode-utils/node_modules/merge": { + "version": "2.1.1", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/merge2": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "../bytecode-utils/node_modules/micromatch": { + "version": "4.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "../bytecode-utils/node_modules/mimic-fn": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/mimic-response": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "../bytecode-utils/node_modules/minimist": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/mute-stream": { + "version": "0.0.8", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/nice-try": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/node-fetch": { + "version": "2.6.12", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "../bytecode-utils/node_modules/node-gyp-build-optional-packages": { + "version": "5.0.3", + "license": "MIT", + "optional": true, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "../bytecode-utils/node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "../bytecode-utils/node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "../bytecode-utils/node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/normalize-url": { + "version": "4.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/npm-run-all": { + "version": "4.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/load-json-file": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/parse-json": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/path-type": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/pify": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/read-pkg": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "../bytecode-utils/node_modules/object-inspect": { + "version": "1.12.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "../bytecode-utils/node_modules/object.assign": { + "version": "4.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/object.fromentries": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/object.values": { + "version": "1.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "../bytecode-utils/node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/onetime/node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/optionator": { + "version": "0.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "../bytecode-utils/node_modules/ora": { + "version": "5.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/os-tmpdir": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/p-cancelable": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/p-defer": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/p-event": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/p-finally": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/p-map": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/p-timeout": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/package-json": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/package-json/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "../bytecode-utils/node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/parse-json": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/parse-ms": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/parse-passwd": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/path-type": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "../bytecode-utils/node_modules/pidtree": { + "version": "0.3.1", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "../bytecode-utils/node_modules/pify": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/pkg-conf": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/pkg-conf/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/pkg-conf/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/pkg-conf/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/pkg-conf/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/pkg-conf/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/plur": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "irregular-plurals": "^3.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "../bytecode-utils/node_modules/prepend-http": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/prettier": { + "version": "2.8.8", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "../bytecode-utils/node_modules/pretty-ms": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-ms": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/progress": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "../bytecode-utils/node_modules/pump": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "../bytecode-utils/node_modules/punycode": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/pupa": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "../bytecode-utils/node_modules/rc": { + "version": "1.2.8", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "../bytecode-utils/node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/read-pkg": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/readable-stream": { + "version": "3.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "../bytecode-utils/node_modules/readdirp": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "../bytecode-utils/node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/regexpp": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "../bytecode-utils/node_modules/registry-auth-token": { + "version": "4.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "../bytecode-utils/node_modules/registry-url": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/require-from-string": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/resolve": { + "version": "1.22.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/resolve-cwd": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/resolve-dir": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/resolve-global": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "global-dirs": "^0.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/responselike": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "../bytecode-utils/node_modules/restore-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/reusify": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "../bytecode-utils/node_modules/run-async": { + "version": "2.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "../bytecode-utils/node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "../bytecode-utils/node_modules/rxjs": { + "version": "7.8.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "../bytecode-utils/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "../bytecode-utils/node_modules/safe-regex-test": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/semver": { + "version": "7.5.4", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/semver-diff": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/semver-diff/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "../bytecode-utils/node_modules/serialize-error": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/serialize-error/node_modules/type-fest": { + "version": "0.13.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/shell-quote": { + "version": "1.8.1", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/side-channel": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/slice-ansi": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../bytecode-utils/node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "../bytecode-utils/node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/source-map-support": { + "version": "0.5.21", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "../bytecode-utils/node_modules/spdx-correct": { + "version": "3.2.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "../bytecode-utils/node_modules/spdx-exceptions": { + "version": "2.3.0", + "dev": true, + "license": "CC-BY-3.0" + }, + "../bytecode-utils/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "../bytecode-utils/node_modules/spdx-license-ids": { + "version": "3.0.13", + "dev": true, + "license": "CC0-1.0" + }, + "../bytecode-utils/node_modules/sprintf-js": { + "version": "1.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "../bytecode-utils/node_modules/stack-utils": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/stream-events": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "stubs": "^3.0.0" + } + }, + "../bytecode-utils/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "../bytecode-utils/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/string.prototype.padend": { + "version": "3.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/string.prototype.trim": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/string.prototype.trimend": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/strip-bom": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/stubs": { + "version": "3.0.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/supertap": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "arrify": "^2.0.1", + "indent-string": "^4.0.0", + "js-yaml": "^3.14.0", + "serialize-error": "^7.0.1", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/table": { + "version": "6.8.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "../bytecode-utils/node_modules/table/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../bytecode-utils/node_modules/table/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "../bytecode-utils/node_modules/table/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/table/node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "../bytecode-utils/node_modules/teeny-request": { + "version": "7.1.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/temp-dir": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/test-exclude": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/through": { + "version": "2.3.8", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/time-zone": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/tmp": { + "version": "0.0.33", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "../bytecode-utils/node_modules/to-readable-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "../bytecode-utils/node_modules/tr46": { + "version": "0.0.3", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/trim-off-newlines": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/ts-node": { + "version": "9.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "typescript": ">=2.7" + } + }, + "../bytecode-utils/node_modules/tsconfig-paths": { + "version": "3.14.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "../bytecode-utils/node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/tslib": { + "version": "2.6.0", + "dev": true, + "license": "0BSD" + }, + "../bytecode-utils/node_modules/tsutils": { + "version": "3.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "../bytecode-utils/node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, + "../bytecode-utils/node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "../bytecode-utils/node_modules/type-fest": { + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../bytecode-utils/node_modules/typed-array-length": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "../bytecode-utils/node_modules/typescript": { + "version": "4.9.5", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "../bytecode-utils/node_modules/unbox-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/unique-string": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/universalify": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "../bytecode-utils/node_modules/update-notifier": { + "version": "5.1.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "../bytecode-utils/node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "../bytecode-utils/node_modules/url-parse-lax": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "../bytecode-utils/node_modules/urlgrey": { + "version": "1.0.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "fast-url-parser": "^1.1.3" + } + }, + "../bytecode-utils/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/uuid": { + "version": "8.3.2", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "../bytecode-utils/node_modules/v8-compile-cache": { + "version": "2.3.0", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "optional": true + }, + "../bytecode-utils/node_modules/v8-to-istanbul": { + "version": "9.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "../bytecode-utils/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "../bytecode-utils/node_modules/wcwidth": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "../bytecode-utils/node_modules/webidl-conversions": { + "version": "3.0.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "../bytecode-utils/node_modules/well-known-symbols": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/whatwg-url": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "../bytecode-utils/node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "../bytecode-utils/node_modules/which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/which-typed-array": { + "version": "1.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../bytecode-utils/node_modules/widest-line": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/word-wrap": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../bytecode-utils/node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "../bytecode-utils/node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../bytecode-utils/node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "../bytecode-utils/node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "../bytecode-utils/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/write-file-atomic": { + "version": "3.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "../bytecode-utils/node_modules/xdg-basedir": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../bytecode-utils/node_modules/y18n": { + "version": "5.0.8", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "../bytecode-utils/node_modules/yargs": { + "version": "16.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/yargs-parser": { + "version": "20.2.9", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "../bytecode-utils/node_modules/yn": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../bytecode-utils/node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.9.2", + "license": "MIT" + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@commitlint/config-validator": { + "version": "17.4.4", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/execute-rule": { + "version": "17.4.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/load": { + "version": "17.5.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.4.4", + "@commitlint/types": "^17.4.4", + "@types/node": "*", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/resolve-extends": { + "version": "17.4.4", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/types": { + "version": "17.4.4", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@cspell/dict-aws": { + "version": "1.0.14", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-bash": { + "version": "1.0.18", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-companies": { + "version": "1.0.40", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-cpp": { + "version": "1.1.40", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-cryptocurrencies": { + "version": "1.0.10", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-csharp": { + "version": "1.0.11", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-css": { + "version": "1.0.13", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-django": { + "version": "1.0.26", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-dotnet": { + "version": "1.0.32", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-elixir": { + "version": "1.0.26", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-en_us": { + "version": "1.2.45", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-en-gb": { + "version": "1.1.33", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-filetypes": { + "version": "1.1.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-fonts": { + "version": "1.0.14", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-fullstack": { + "version": "1.0.39", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-golang": { + "version": "1.1.24", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-haskell": { + "version": "1.0.13", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-html": { + "version": "1.1.9", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-html-symbol-entities": { + "version": "1.0.23", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-java": { + "version": "1.0.23", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-latex": { + "version": "1.0.25", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-lorem-ipsum": { + "version": "1.0.22", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-lua": { + "version": "1.0.16", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-node": { + "version": "1.0.12", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-npm": { + "version": "1.0.16", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-php": { + "version": "1.0.25", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-powershell": { + "version": "1.0.19", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-python": { + "version": "1.0.38", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-ruby": { + "version": "1.0.15", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-rust": { + "version": "1.0.23", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-scala": { + "version": "1.0.21", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-software-terms": { + "version": "1.0.48", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-typescript": { + "version": "1.0.20", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@ethereum-sourcify/bytecode-utils": { + "resolved": "../bytecode-utils", + "link": true + }, + "node_modules/@ethereumjs/block": { + "version": "4.3.0", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/trie": "^5.1.0", + "@ethereumjs/tx": "^4.2.0", + "@ethereumjs/util": "^8.1.0", + "ethereum-cryptography": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/blockchain": { + "version": "6.3.0", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/block": "^4.3.0", + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/ethash": "^2.1.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/trie": "^5.1.0", + "@ethereumjs/tx": "^4.2.0", + "@ethereumjs/util": "^8.1.0", + "abstract-level": "^1.0.3", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.0.0", + "level": "^8.0.0", + "lru-cache": "^5.1.1", + "memory-level": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/common": { + "version": "3.2.0", + "license": "MIT", + "dependencies": { + "@ethereumjs/util": "^8.1.0", + "crc-32": "^1.2.0" + } + }, + "node_modules/@ethereumjs/ethash": { + "version": "2.1.0", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/block": "^4.3.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "abstract-level": "^1.0.3", + "bigint-crypto-utils": "^3.2.2", + "ethereum-cryptography": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/evm": { + "version": "1.4.0", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/tx": "^4.2.0", + "@ethereumjs/util": "^8.1.0", + "@ethersproject/providers": "^5.7.1", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.0.0", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/statemanager": { + "version": "1.1.0", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.0.0", + "ethers": "^5.7.1", + "js-sdsl": "^4.1.4" + } + }, + "node_modules/@ethereumjs/statemanager/node_modules/ethers": { + "version": "5.7.2", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/@ethereumjs/trie": { + "version": "5.1.0", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "@types/readable-stream": "^2.3.13", + "ethereum-cryptography": "^2.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/tx": { + "version": "4.2.0", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "ethereum-cryptography": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/util": { + "version": "8.1.0", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/vm": { + "version": "6.5.0", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/block": "^4.3.0", + "@ethereumjs/blockchain": "^6.3.0", + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/evm": "^1.4.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/statemanager": "^1.1.0", + "@ethereumjs/trie": "^5.1.0", + "@ethereumjs/tx": "^4.2.0", + "@ethereumjs/util": "^8.1.0", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.0.0", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethersproject/abi": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/basex": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/contracts": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/json-wallets/node_modules/aes-js": { + "version": "3.0.0", + "license": "MIT" + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT" + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.7.2", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "node_modules/@ethersproject/random": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/solidity": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@fairdatasociety/bmt-js": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@hutson/parse-repository-url": { + "version": "3.0.2", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@noble/curves": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.3.1" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.3.1", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/secp256k1": { + "version": "1.7.1", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@scure/base": { + "version": "1.1.1", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" + }, + "node_modules/@scure/bip32": { + "version": "1.3.1", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.1.0", + "@noble/hashes": "~1.3.1", + "@scure/base": "~1.1.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.2.1", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/debug": { + "version": "4.1.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.12", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lru-cache": { + "version": "5.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mocha": { + "version": "10.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "0.7.31", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.4.1", + "license": "MIT" + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/readable-stream": { + "version": "2.3.15", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^4.0.0", + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "4.33.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/abitype": { + "version": "0.8.0", + "license": "MIT", + "peerDependencies": { + "typescript": ">=4.9.4", + "zod": "^3 >=3.19.1" + }, + "peerDependenciesMeta": { + "zod": { + "optional": true + } + } + }, + "node_modules/abstract-level": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/acorn": { + "version": "7.4.1", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/add-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/aes-js": { + "version": "4.0.0-beta.5", + "license": "MIT" + }, + "node_modules/agent-base": { + "version": "6.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-sequence-parser": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/argv": { + "version": "0.0.2", + "dev": true, + "engines": { + "node": ">=0.6.10" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-ify": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-timsort": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.4", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/base-x": { + "version": "4.0.0", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bech32": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/bigint-crypto-utils": { + "version": "3.3.0", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/bn.js": { + "version": "5.2.1", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/browser-level": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "abstract-level": "^1.0.2", + "catering": "^2.1.1", + "module-error": "^1.0.2", + "run-parallel-limit": "^1.1.0" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "dev": true, + "license": "ISC" + }, + "node_modules/bs58": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/c8": { + "version": "8.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cachedir": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/catering": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chai": { + "version": "4.3.7", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "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/chardet": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, + "node_modules/check-error": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/classic-level": { + "version": "1.3.0", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "abstract-level": "^1.0.2", + "catering": "^2.1.0", + "module-error": "^1.0.1", + "napi-macros": "^2.2.2", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/codecov": { + "version": "3.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + }, + "bin": { + "codecov": "bin/codecov" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/command-exists": { + "version": "1.2.9", + "license": "MIT" + }, + "node_modules/commander": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/comment-json": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "array-timsort": "^1.0.3", + "core-util-is": "^1.0.3", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/commitizen": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + }, + "bin": { + "commitizen": "bin/commitizen", + "cz": "bin/git-cz", + "git-cz": "bin/git-cz" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/compare-func": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "2.0.0", + "dev": true, + "engines": [ + "node >= 6.0" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/configstore": { + "version": "5.0.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-changelog": { + "version": "3.1.25", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-changelog-angular": "^5.0.12", + "conventional-changelog-atom": "^2.0.8", + "conventional-changelog-codemirror": "^2.0.8", + "conventional-changelog-conventionalcommits": "^4.5.0", + "conventional-changelog-core": "^4.2.1", + "conventional-changelog-ember": "^2.0.9", + "conventional-changelog-eslint": "^3.0.9", + "conventional-changelog-express": "^2.0.6", + "conventional-changelog-jquery": "^3.0.11", + "conventional-changelog-jshint": "^2.0.9", + "conventional-changelog-preset-loader": "^2.3.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-angular": { + "version": "5.0.13", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-atom": { + "version": "2.0.8", + "dev": true, + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-codemirror": { + "version": "2.0.8", + "dev": true, + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-config-spec": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/conventional-changelog-conventionalcommits": { + "version": "4.6.3", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core": { + "version": "4.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^4.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core/node_modules/find-up": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/hosted-git-info": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core/node_modules/locate-path": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core/node_modules/normalize-package-data": { + "version": "3.0.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core/node_modules/p-limit": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/p-locate": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/read-pkg-up": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-changelog-ember": { + "version": "2.0.9", + "dev": true, + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-eslint": { + "version": "3.0.9", + "dev": true, + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-express": { + "version": "2.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-jquery": { + "version": "3.0.11", + "dev": true, + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-jshint": { + "version": "2.0.9", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-preset-loader": { + "version": "2.3.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-changelog-writer": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer/node_modules/hosted-git-info": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer/node_modules/meow": { + "version": "8.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-changelog-writer/node_modules/normalize-package-data": { + "version": "3.0.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer/node_modules/normalize-package-data/node_modules/semver": { + "version": "7.5.4", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/conventional-changelog-writer/node_modules/type-fest": { + "version": "0.18.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-changelog-writer/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-commit-types": { + "version": "3.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-commits-filter": { + "version": "2.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser/node_modules/hosted-git-info": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser/node_modules/meow": { + "version": "8.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-commits-parser/node_modules/normalize-package-data": { + "version": "3.0.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser/node_modules/type-fest": { + "version": "0.18.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-commits-parser/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-recommended-bump": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.3.4", + "conventional-commits-filter": "^2.0.7", + "conventional-commits-parser": "^3.2.0", + "git-raw-commits": "^2.0.8", + "git-semver-tags": "^4.1.1", + "meow": "^8.0.0", + "q": "^1.5.1" + }, + "bin": { + "conventional-recommended-bump": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-recommended-bump/node_modules/hosted-git-info": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-recommended-bump/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-recommended-bump/node_modules/meow": { + "version": "8.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-recommended-bump/node_modules/normalize-package-data": { + "version": "3.0.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-recommended-bump/node_modules/type-fest": { + "version": "0.18.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-recommended-bump/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "dev": true, + "license": "MIT" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "8.2.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/cosmiconfig-typescript-loader": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=7", + "ts-node": ">=10", + "typescript": ">=3" + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0", + "optional": true + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cspell": { + "version": "4.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "commander": "^7.0.0", + "comment-json": "^4.0.6", + "cspell-glob": "^0.1.25", + "cspell-lib": "^4.3.12", + "fs-extra": "^9.1.0", + "gensequence": "^3.1.1", + "get-stdin": "^8.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "bin": { + "cspell": "bin.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/cspell-glob": { + "version": "0.1.25", + "dev": true, + "license": "MIT", + "dependencies": { + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/cspell-io": { + "version": "4.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.2", + "iterable-to-stream": "^1.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/cspell-lib": { + "version": "4.3.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/dict-aws": "^1.0.13", + "@cspell/dict-bash": "^1.0.11", + "@cspell/dict-companies": "^1.0.35", + "@cspell/dict-cpp": "^1.1.37", + "@cspell/dict-cryptocurrencies": "^1.0.10", + "@cspell/dict-csharp": "^1.0.10", + "@cspell/dict-css": "^1.0.10", + "@cspell/dict-django": "^1.0.25", + "@cspell/dict-dotnet": "^1.0.24", + "@cspell/dict-elixir": "^1.0.23", + "@cspell/dict-en_us": "^1.2.39", + "@cspell/dict-en-gb": "^1.1.27", + "@cspell/dict-filetypes": "^1.1.5", + "@cspell/dict-fonts": "^1.0.13", + "@cspell/dict-fullstack": "^1.0.36", + "@cspell/dict-golang": "^1.1.24", + "@cspell/dict-haskell": "^1.0.12", + "@cspell/dict-html": "^1.1.5", + "@cspell/dict-html-symbol-entities": "^1.0.23", + "@cspell/dict-java": "^1.0.22", + "@cspell/dict-latex": "^1.0.23", + "@cspell/dict-lorem-ipsum": "^1.0.22", + "@cspell/dict-lua": "^1.0.16", + "@cspell/dict-node": "^1.0.10", + "@cspell/dict-npm": "^1.0.10", + "@cspell/dict-php": "^1.0.23", + "@cspell/dict-powershell": "^1.0.14", + "@cspell/dict-python": "^1.0.32", + "@cspell/dict-ruby": "^1.0.12", + "@cspell/dict-rust": "^1.0.22", + "@cspell/dict-scala": "^1.0.21", + "@cspell/dict-software-terms": "^1.0.24", + "@cspell/dict-typescript": "^1.0.16", + "comment-json": "^4.1.0", + "configstore": "^5.0.1", + "cspell-io": "^4.1.7", + "cspell-trie-lib": "^4.2.8", + "cspell-util-bundle": "^4.1.11", + "fs-extra": "^9.1.0", + "gensequence": "^3.1.1", + "minimatch": "^3.0.4", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0", + "vscode-uri": "^3.0.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/cspell-trie-lib": { + "version": "4.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "gensequence": "^3.1.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/cspell-util-bundle": { + "version": "4.1.11", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/cz-conventional-changelog": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@commitlint/load": ">6.1.1" + } + }, + "node_modules/cz-conventional-changelog/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/cz-conventional-changelog/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/cz-conventional-changelog/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/cz-conventional-changelog/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dargs": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/dateformat": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/defaults": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotgitignore": { + "version": "2.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "find-up": "^3.0.0", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotgitignore/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotgitignore/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotgitignore/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dotgitignore/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotgitignore/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/dotgitignore/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/elliptic": { + "version": "6.5.4", + "license": "MIT", + "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", + "license": "MIT" + }, + "node_modules/email-addresses": { + "version": "3.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/enquirer": { + "version": "2.3.6", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.21.2", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "7.32.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "6.15.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-stdin": "^6.0.0" + }, + "bin": { + "eslint-config-prettier-check": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=3.14.1" + } + }, + "node_modules/eslint-config-prettier/node_modules/get-stdin": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-eslint-comments": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "engines": { + "node": ">=6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-eslint-comments/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.27.5", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/eslint-utils": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/espree": { + "version": "7.3.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ethereum-cryptography": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "@noble/curves": "1.1.0", + "@noble/hashes": "1.3.1", + "@scure/bip32": "1.3.1", + "@scure/bip39": "1.2.1" + } + }, + "node_modules/ethers": { + "version": "6.6.2", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "1.9.2", + "@noble/hashes": "1.1.2", + "@noble/secp256k1": "1.7.1", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ethers/node_modules/@noble/hashes": { + "version": "1.1.2", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" + }, + "node_modules/ethers/node_modules/@types/node": { + "version": "18.15.13", + "license": "MIT" + }, + "node_modules/ethers/node_modules/ws": { + "version": "8.5.0", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.15.0", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-type": { + "version": "14.7.1", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-web-to-node-stream": "^2.0.0", + "strtok3": "^6.0.3", + "token-types": "^2.0.0", + "typedarray-to-buffer": "^3.1.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-node-modules": { + "version": "2.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "findup-sync": "^4.0.0", + "merge": "^2.1.1" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/findup-sync": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache": { + "version": "7.9.0", + "bundleDependencies": [ + "@trufflesuite/bigint-buffer", + "keccak", + "leveldown", + "secp256k1" + ], + "dev": true, + "license": "MIT", + "dependencies": { + "@trufflesuite/bigint-buffer": "1.1.10", + "@trufflesuite/uws-js-unofficial": "20.10.0-unofficial.2", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "5.1.1", + "@types/seedrandom": "3.0.1", + "abstract-level": "1.0.3", + "abstract-leveldown": "7.2.0", + "async-eventemitter": "0.2.4", + "emittery": "0.10.0", + "keccak": "3.0.2", + "leveldown": "6.1.0", + "secp256k1": "4.0.3" + }, + "bin": { + "ganache": "dist/node/cli.js", + "ganache-cli": "dist/node/cli.js" + }, + "optionalDependencies": { + "bufferutil": "4.0.5", + "utf-8-validate": "5.0.7" + } + }, + "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer": { + "version": "1.1.10", + "dev": true, + "hasInstallScript": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "node-gyp-build": "4.4.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer/node_modules/node-gyp-build": { + "version": "4.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/ganache/node_modules/@trufflesuite/uws-js-unofficial": { + "version": "20.10.0-unofficial.2", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "ws": "8.2.3" + }, + "optionalDependencies": { + "bufferutil": "4.0.5", + "utf-8-validate": "5.0.7" + } + }, + "node_modules/ganache/node_modules/@types/bn.js": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ganache/node_modules/@types/lru-cache": { + "version": "5.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/@types/node": { + "version": "17.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/@types/seedrandom": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/abstract-level": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/ganache/node_modules/abstract-level/node_modules/level-supports": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/ganache/node_modules/abstract-leveldown": { + "version": "7.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3", + "catering": "^2.0.0", + "is-buffer": "^2.0.5", + "level-concat-iterator": "^3.0.0", + "level-supports": "^2.0.1", + "queue-microtask": "^1.2.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ganache/node_modules/async": { + "version": "2.6.4", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/ganache/node_modules/async-eventemitter": { + "version": "0.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^2.4.0" + } + }, + "node_modules/ganache/node_modules/base64-js": { + "version": "1.5.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/brorand": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/buffer": { + "version": "6.0.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/ganache/node_modules/catering": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "queue-tick": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache/node_modules/elliptic": { + "version": "6.5.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "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/ganache/node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/emittery": { + "version": "0.10.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/ganache/node_modules/hash.js": { + "version": "1.1.7", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/ganache/node_modules/hmac-drbg": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/ganache/node_modules/ieee754": { + "version": "1.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/ganache/node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/ganache/node_modules/is-buffer": { + "version": "2.0.5", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache/node_modules/keccak": { + "version": "3.0.2", + "dev": true, + "hasInstallScript": true, + "inBundle": true, + "license": "MIT", + "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/ganache/node_modules/level-concat-iterator": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "catering": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ganache/node_modules/level-supports": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ganache/node_modules/level-transcoder": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3", + "module-error": "^1.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/ganache/node_modules/leveldown": { + "version": "6.1.0", + "dev": true, + "hasInstallScript": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "abstract-leveldown": "^7.2.0", + "napi-macros": "~2.0.0", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/ganache/node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/minimalistic-assert": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/ganache/node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/module-error": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ganache/node_modules/napi-macros": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/node-addon-api": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/node-gyp-build": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/ganache/node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/queue-tick": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/readable-stream": { + "version": "3.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ganache/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/secp256k1": { + "version": "4.0.3", + "dev": true, + "hasInstallScript": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ganache/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/ganache/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/ws": { + "version": "8.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/gensequence": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-pkg-repo": { + "version": "4.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" + }, + "bin": { + "get-pkg-repo": "src/cli.js" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-pkg-repo/node_modules/hosted-git-info": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/get-pkg-repo/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/get-pkg-repo/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/get-pkg-repo/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/get-pkg-repo/node_modules/through2": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/get-pkg-repo/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/get-stdin": { + "version": "8.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gh-pages": { + "version": "3.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "bin": { + "gh-pages": "bin/gh-pages.js", + "gh-pages-clean": "bin/gh-pages-clean.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gh-pages/node_modules/array-union": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages/node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, + "node_modules/gh-pages/node_modules/fs-extra": { + "version": "8.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/gh-pages/node_modules/globby": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages/node_modules/jsonfile": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/gh-pages/node_modules/pify": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages/node_modules/universalify": { + "version": "0.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/git-raw-commits": { + "version": "2.0.11", + "dev": true, + "license": "MIT", + "dependencies": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-raw-commits/node_modules/hosted-git-info": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-raw-commits/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-raw-commits/node_modules/meow": { + "version": "8.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/git-raw-commits/node_modules/normalize-package-data": { + "version": "3.0.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-raw-commits/node_modules/type-fest": { + "version": "0.18.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/git-raw-commits/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/git-remote-origin-url": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-remote-origin-url/node_modules/pify": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/git-semver-tags": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "meow": "^8.0.0", + "semver": "^6.0.0" + }, + "bin": { + "git-semver-tags": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-semver-tags/node_modules/hosted-git-info": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-semver-tags/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-semver-tags/node_modules/meow": { + "version": "8.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/git-semver-tags/node_modules/normalize-package-data": { + "version": "3.0.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-semver-tags/node_modules/normalize-package-data/node_modules/semver": { + "version": "7.5.4", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-semver-tags/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/git-semver-tags/node_modules/type-fest": { + "version": "0.18.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/git-semver-tags/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/gitconfiglocal": { + "version": "1.0.0", + "dev": true, + "license": "BSD", + "dependencies": { + "ini": "^1.3.2" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.20.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "node_modules/handlebars": { + "version": "4.7.7", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-own-prop": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "dev": true, + "license": "ISC" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-status-codes": { + "version": "2.2.0", + "license": "MIT" + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.2.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "3.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "dev": true, + "license": "ISC" + }, + "node_modules/inquirer": { + "version": "8.2.5", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-text-path": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "text-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/isomorphic-fetch": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterable-to-stream": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/js-sdsl": { + "version": "4.4.1", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/json5": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.8", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/level": { + "version": "8.0.0", + "license": "MIT", + "dependencies": { + "browser-level": "^1.0.1", + "classic-level": "^1.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/level" + } + }, + "node_modules/level-supports": { + "version": "4.0.1", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/level-transcoder": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3", + "module-error": "^1.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "dev": true, + "license": "MIT" + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.ismatch": { + "version": "4.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lodash.map": { + "version": "4.6.0", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/longest": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loupe": { + "version": "2.3.6", + "dev": true, + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lunr": { + "version": "2.3.9", + "dev": true, + "license": "MIT" + }, + "node_modules/make-dir": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "dev": true, + "license": "ISC" + }, + "node_modules/map-obj": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/marked": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/mcl-wasm": { + "version": "0.7.9", + "license": "BSD-3-Clause", + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/memory-level": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "abstract-level": "^1.0.0", + "functional-red-black-tree": "^1.0.1", + "module-error": "^1.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/meow": { + "version": "6.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "^4.0.2", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.13.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/yargs-parser": { + "version": "18.1.3", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/merge": { + "version": "2.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micro-ftch": { + "version": "0.3.1", + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/mocha": { + "version": "10.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/ansi-colors": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.2.0", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/mocha/node_modules/yargs-parser": { + "version": "20.2.4", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/modify-values": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/module-error": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "dev": true, + "license": "ISC" + }, + "node_modules/nanoid": { + "version": "3.3.3", + "dev": true, + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/napi-macros": { + "version": "2.2.2", + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/neo-async": { + "version": "2.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.6.12", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp-build": { + "version": "4.6.0", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/npm-run-all/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "7.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "file-type": "^14.1.4", + "get-stdin": "^7.0.0", + "meow": "^6.1.0", + "open": "^7.0.3", + "temp-write": "^4.0.0" + }, + "bin": { + "open-cli": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/open-cli/node_modules/get-stdin": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "license": "(MIT AND Zlib)" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/peek-readable": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readable-web-to-node-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-global": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-dirs": "^0.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/run-parallel-limit": { + "version": "1.1.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rustbn.js": { + "version": "0.2.0", + "license": "(MIT OR Apache-2.0)" + }, + "node_modules/rxjs": { + "version": "7.8.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.5.4", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/shiki": { + "version": "0.14.3", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/solc": { + "version": "0.8.20", + "license": "MIT", + "dependencies": { + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solc.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/solc/node_modules/commander": { + "version": "8.3.0", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/solc/node_modules/semver": { + "version": "5.7.2", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/split": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split2": { + "version": "3.2.2", + "dev": true, + "license": "ISC", + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/standard-version": { + "version": "9.5.0", + "dev": true, + "license": "ISC", + "dependencies": { + "chalk": "^2.4.2", + "conventional-changelog": "3.1.25", + "conventional-changelog-config-spec": "2.1.0", + "conventional-changelog-conventionalcommits": "4.6.3", + "conventional-recommended-bump": "6.1.0", + "detect-indent": "^6.0.0", + "detect-newline": "^3.1.0", + "dotgitignore": "^2.1.0", + "figures": "^3.1.0", + "find-up": "^5.0.0", + "git-semver-tags": "^4.0.0", + "semver": "^7.1.1", + "stringify-package": "^1.0.1", + "yargs": "^16.0.0" + }, + "bin": { + "standard-version": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/standard-version/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/standard-version/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/standard-version/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/standard-version/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/standard-version/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/standard-version/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/stream-events": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "stubs": "^3.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-package": { + "version": "1.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-outer": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-outer/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/strtok3": { + "version": "6.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/stubs": { + "version": "3.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/table": { + "version": "6.8.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/teeny-request": { + "version": "7.1.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/temp-dir": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/temp-write": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.15", + "is-stream": "^2.0.0", + "make-dir": "^3.0.0", + "temp-dir": "^1.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/temp-write/node_modules/uuid": { + "version": "3.4.0", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-extensions": { + "version": "1.9.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/through": { + "version": "2.3.8", + "dev": true, + "license": "MIT" + }, + "node_modules/through2": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/token-types": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.1.1", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=0.1.98" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/token-types/node_modules/@tokenizer/token": { + "version": "0.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/trim-repeated/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/acorn": { + "version": "8.10.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.4.0", + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typedoc": { + "version": "0.24.8", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "lunr": "^2.3.9", + "marked": "^4.3.0", + "minimatch": "^9.0.0", + "shiki": "^0.14.1" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 14.14" + }, + "peerDependencies": { + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x" + } + }, + "node_modules/typedoc/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typedoc/node_modules/minimatch": { + "version": "9.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typescript": { + "version": "5.1.6", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urlgrey": { + "version": "1.0.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "fast-url-parser": "^1.1.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/uuid": { + "version": "8.3.2", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vscode-oniguruma": { + "version": "1.7.0", + "dev": true, + "license": "MIT" + }, + "node_modules/vscode-textmate": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/vscode-uri": { + "version": "3.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/workerpool": { + "version": "6.2.1", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.4.6", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "license": "ISC" + }, + "node_modules/yargs": { + "version": "16.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/is-plain-obj": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true + }, + "@adraffy/ens-normalize": { + "version": "1.9.2" + }, + "@babel/code-frame": { + "version": "7.12.11", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.22.5", + "dev": true + }, + "@babel/highlight": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true + }, + "@commitlint/config-validator": { + "version": "17.4.4", + "dev": true, + "optional": true, + "requires": { + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" + } + }, + "@commitlint/execute-rule": { + "version": "17.4.0", + "dev": true, + "optional": true + }, + "@commitlint/load": { + "version": "17.5.0", + "dev": true, + "optional": true, + "requires": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.4.4", + "@commitlint/types": "^17.4.4", + "@types/node": "*", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + } + }, + "@commitlint/resolve-extends": { + "version": "17.4.4", + "dev": true, + "optional": true, + "requires": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + } + }, + "@commitlint/types": { + "version": "17.4.4", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0" + } + }, + "@cspell/dict-aws": { + "version": "1.0.14", + "dev": true + }, + "@cspell/dict-bash": { + "version": "1.0.18", + "dev": true + }, + "@cspell/dict-companies": { + "version": "1.0.40", + "dev": true + }, + "@cspell/dict-cpp": { + "version": "1.1.40", + "dev": true + }, + "@cspell/dict-cryptocurrencies": { + "version": "1.0.10", + "dev": true + }, + "@cspell/dict-csharp": { + "version": "1.0.11", + "dev": true + }, + "@cspell/dict-css": { + "version": "1.0.13", + "dev": true + }, + "@cspell/dict-django": { + "version": "1.0.26", + "dev": true + }, + "@cspell/dict-dotnet": { + "version": "1.0.32", + "dev": true + }, + "@cspell/dict-elixir": { + "version": "1.0.26", + "dev": true + }, + "@cspell/dict-en_us": { + "version": "1.2.45", + "dev": true + }, + "@cspell/dict-en-gb": { + "version": "1.1.33", + "dev": true + }, + "@cspell/dict-filetypes": { + "version": "1.1.8", + "dev": true + }, + "@cspell/dict-fonts": { + "version": "1.0.14", + "dev": true + }, + "@cspell/dict-fullstack": { + "version": "1.0.39", + "dev": true + }, + "@cspell/dict-golang": { + "version": "1.1.24", + "dev": true + }, + "@cspell/dict-haskell": { + "version": "1.0.13", + "dev": true + }, + "@cspell/dict-html": { + "version": "1.1.9", + "dev": true + }, + "@cspell/dict-html-symbol-entities": { + "version": "1.0.23", + "dev": true + }, + "@cspell/dict-java": { + "version": "1.0.23", + "dev": true + }, + "@cspell/dict-latex": { + "version": "1.0.25", + "dev": true + }, + "@cspell/dict-lorem-ipsum": { + "version": "1.0.22", + "dev": true + }, + "@cspell/dict-lua": { + "version": "1.0.16", + "dev": true + }, + "@cspell/dict-node": { + "version": "1.0.12", + "dev": true + }, + "@cspell/dict-npm": { + "version": "1.0.16", + "dev": true + }, + "@cspell/dict-php": { + "version": "1.0.25", + "dev": true + }, + "@cspell/dict-powershell": { + "version": "1.0.19", + "dev": true + }, + "@cspell/dict-python": { + "version": "1.0.38", + "dev": true + }, + "@cspell/dict-ruby": { + "version": "1.0.15", + "dev": true + }, + "@cspell/dict-rust": { + "version": "1.0.23", + "dev": true + }, + "@cspell/dict-scala": { + "version": "1.0.21", + "dev": true + }, + "@cspell/dict-software-terms": { + "version": "1.0.48", + "dev": true + }, + "@cspell/dict-typescript": { + "version": "1.0.20", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@eslint/eslintrc": { + "version": "0.4.3", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ignore": { + "version": "4.0.6", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } + } + }, + "@ethereum-sourcify/bytecode-utils": { + "version": "file:../bytecode-utils", + "requires": { + "@ava/typescript": "^1.1.1", + "@ethersproject/bytes": "^5.7.0", + "@types/node": "^18.11.9", + "@typescript-eslint/eslint-plugin": "^4.0.1", + "@typescript-eslint/parser": "^4.0.1", + "ava": "^3.12.1", + "bs58": "^5.0.0", + "c8": "^8.0.0", + "cbor-x": "^1.4.1", + "codecov": "^3.5.0", + "cz-conventional-changelog": "^3.3.0", + "eslint": "^7.8.0", + "eslint-config-prettier": "^6.11.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-functional": "^3.0.2", + "eslint-plugin-import": "^2.22.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.1.1", + "ts-node": "^9.0.0", + "typescript": "^4.9.3" + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true + }, + "@ava/typescript": { + "version": "1.1.1", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "@babel/code-frame": { + "version": "7.12.11", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.22.5", + "dev": true + }, + "@babel/highlight": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true + }, + "@cbor-extract/cbor-extract-darwin-arm64": { + "version": "2.1.1", + "optional": true + }, + "@commitlint/config-validator": { + "version": "17.4.4", + "dev": true, + "optional": true, + "requires": { + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" + } + }, + "@commitlint/execute-rule": { + "version": "17.4.0", + "dev": true, + "optional": true + }, + "@commitlint/load": { + "version": "17.5.0", + "dev": true, + "optional": true, + "requires": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.4.4", + "@commitlint/types": "^17.4.4", + "@types/node": "*", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + }, + "dependencies": { + "cosmiconfig-typescript-loader": { + "version": "4.3.0", + "dev": true, + "optional": true, + "requires": {} + }, + "ts-node": { + "version": "10.9.1", + "dev": true, + "optional": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + } + } + }, + "@commitlint/resolve-extends": { + "version": "17.4.4", + "dev": true, + "optional": true, + "requires": { + "@commitlint/config-validator": "^17.4.4", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + } + }, + "@commitlint/types": { + "version": "17.4.4", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0" + } + }, + "@concordance/react": { + "version": "2.0.0", + "dev": true, + "requires": { + "arrify": "^1.0.1" + }, + "dependencies": { + "arrify": { + "version": "1.0.1", + "dev": true + } + } + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "optional": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "optional": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@eslint/eslintrc": { + "version": "0.4.3", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ignore": { + "version": "4.0.6", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } + } + }, + "@ethersproject/bytes": { + "version": "5.7.0", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/logger": { + "version": "5.7.0" + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "dev": true + }, + "@tsconfig/node10": { + "version": "1.0.9", + "dev": true, + "optional": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "optional": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "dev": true, + "optional": true + }, + "@tsconfig/node16": { + "version": "1.0.4", + "dev": true, + "optional": true + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.12", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "dev": true + }, + "@types/node": { + "version": "18.16.19" + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + } + }, + "@typescript-eslint/types": { + "version": "4.33.0", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + } + }, + "acorn": { + "version": "8.10.0", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "dev": true, + "requires": { + "debug": "4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "8.12.0", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ansi-align": { + "version": "3.0.1", + "dev": true, + "requires": { + "string-width": "^4.1.0" + } + }, + "ansi-colors": { + "version": "4.1.3", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.1", + "dev": true + }, + "ansi-styles": { + "version": "5.2.0", + "dev": true + }, + "anymatch": { + "version": "3.1.3", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "argv": { + "version": "0.0.2", + "dev": true + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-find-index": { + "version": "1.0.2", + "dev": true + }, + "array-includes": { + "version": "3.1.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "dev": true + }, + "array.prototype.flat": { + "version": "1.3.1", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.1", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "arrgv": { + "version": "1.0.2", + "dev": true + }, + "arrify": { + "version": "2.0.1", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "dev": true + }, + "ava": { + "version": "3.15.0", + "dev": true, + "requires": { + "@concordance/react": "^2.0.0", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "ansi-styles": "^5.0.0", + "arrgv": "^1.0.2", + "arrify": "^2.0.1", + "callsites": "^3.1.0", + "chalk": "^4.1.0", + "chokidar": "^3.4.3", + "chunkd": "^2.0.1", + "ci-info": "^2.0.0", + "ci-parallel-vars": "^1.0.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "code-excerpt": "^3.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.1", + "convert-source-map": "^1.7.0", + "currently-unhandled": "^0.4.1", + "debug": "^4.3.1", + "del": "^6.0.0", + "emittery": "^0.8.0", + "equal-length": "^1.0.0", + "figures": "^3.2.0", + "globby": "^11.0.1", + "ignore-by-default": "^2.0.0", + "import-local": "^3.0.2", + "indent-string": "^4.0.0", + "is-error": "^2.2.2", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "lodash": "^4.17.20", + "matcher": "^3.0.0", + "md5-hex": "^3.0.1", + "mem": "^8.0.0", + "ms": "^2.1.3", + "ora": "^5.2.0", + "p-event": "^4.2.0", + "p-map": "^4.0.0", + "picomatch": "^2.2.2", + "pkg-conf": "^3.1.0", + "plur": "^4.0.0", + "pretty-ms": "^7.0.1", + "read-pkg": "^5.2.0", + "resolve-cwd": "^3.0.0", + "slash": "^3.0.0", + "source-map-support": "^0.5.19", + "stack-utils": "^2.0.3", + "strip-ansi": "^6.0.0", + "supertap": "^2.0.0", + "temp-dir": "^2.0.0", + "trim-off-newlines": "^1.0.1", + "update-notifier": "^5.0.1", + "write-file-atomic": "^3.0.3", + "yargs": "^16.2.0" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "dev": true + }, + "base-x": { + "version": "4.0.0" + }, + "base64-js": { + "version": "1.5.1", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "dev": true + }, + "bl": { + "version": "4.1.0", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "blueimp-md5": { + "version": "2.19.0", + "dev": true + }, + "boxen": { + "version": "5.1.2", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "bs58": { + "version": "5.0.0", + "requires": { + "base-x": "^4.0.0" + } + }, + "buffer": { + "version": "5.7.1", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "dev": true + }, + "c8": { + "version": "8.0.0", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + } + }, + "cacheable-request": { + "version": "6.1.0", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "dev": true + } + } + }, + "cachedir": { + "version": "2.3.0", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "dev": true + }, + "camelcase": { + "version": "6.3.0", + "dev": true + }, + "cbor-extract": { + "version": "2.1.1", + "optional": true, + "requires": { + "@cbor-extract/cbor-extract-darwin-arm64": "2.1.1", + "@cbor-extract/cbor-extract-darwin-x64": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm": "2.1.1", + "@cbor-extract/cbor-extract-linux-arm64": "2.1.1", + "@cbor-extract/cbor-extract-linux-x64": "2.1.1", + "@cbor-extract/cbor-extract-win32-x64": "2.1.1", + "node-gyp-build-optional-packages": "5.0.3" + } + }, + "cbor-x": { + "version": "1.5.3", + "requires": { + "cbor-extract": "^2.1.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + } + } + }, + "chardet": { + "version": "0.7.0", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chunkd": { + "version": "2.0.1", + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "dev": true + }, + "ci-parallel-vars": { + "version": "1.0.1", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "dev": true + }, + "clean-yaml-object": { + "version": "0.1.0", + "dev": true + }, + "cli-boxes": { + "version": "2.2.1", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.9.0", + "dev": true + }, + "cli-truncate": { + "version": "2.1.0", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "cli-width": { + "version": "3.0.0", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "dev": true + }, + "clone-response": { + "version": "1.0.3", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "code-excerpt": { + "version": "3.0.0", + "dev": true, + "requires": { + "convert-to-spaces": "^1.0.1" + } + }, + "codecov": { + "version": "3.8.3", + "dev": true, + "requires": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "commitizen": { + "version": "4.3.0", + "dev": true, + "requires": { + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + } + }, + "common-path-prefix": { + "version": "3.0.0", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "dev": true + }, + "concordance": { + "version": "5.0.4", + "dev": true, + "requires": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + } + }, + "configstore": { + "version": "5.0.1", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "conventional-commit-types": { + "version": "3.0.0", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "dev": true + }, + "convert-to-spaces": { + "version": "1.0.2", + "dev": true + }, + "cosmiconfig": { + "version": "8.2.0", + "dev": true, + "optional": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "dev": true, + "optional": true + }, + "js-yaml": { + "version": "4.1.0", + "dev": true, + "optional": true, + "requires": { + "argparse": "^2.0.1" + } + } + } + }, + "create-require": { + "version": "1.1.1", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cz-conventional-changelog": { + "version": "3.3.0", + "dev": true, + "requires": { + "@commitlint/load": ">6.1.1", + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "date-time": { + "version": "3.1.0", + "dev": true, + "requires": { + "time-zone": "^1.0.0" + } + }, + "debug": { + "version": "4.3.4", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "dev": true + } + } + }, + "decompress-response": { + "version": "3.3.0", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "dedent": { + "version": "0.7.0", + "dev": true + }, + "deep-extend": { + "version": "0.6.0", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "dev": true + }, + "deepmerge": { + "version": "4.3.1", + "dev": true + }, + "defaults": { + "version": "1.0.4", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "dev": true + }, + "define-properties": { + "version": "1.2.0", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "del": { + "version": "6.1.1", + "dev": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + } + }, + "detect-file": { + "version": "1.0.0", + "dev": true + }, + "detect-indent": { + "version": "6.1.0", + "dev": true + }, + "diff": { + "version": "4.0.2", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dot-prop": { + "version": "5.3.0", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer3": { + "version": "0.1.5", + "dev": true + }, + "emittery": { + "version": "0.8.1", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enquirer": { + "version": "2.3.6", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "equal-length": { + "version": "1.0.1", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.21.2", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "dev": true + }, + "escape-goat": { + "version": "2.1.1", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "dev": true + }, + "eslint": { + "version": "7.32.0", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + }, + "eslint-utils": { + "version": "2.1.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + } + } + }, + "ignore": { + "version": "4.0.6", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "6.15.0", + "dev": true, + "requires": { + "get-stdin": "^6.0.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.7", + "dev": true, + "requires": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.8.0", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-eslint-comments": { + "version": "3.2.0", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } + } + }, + "eslint-plugin-functional": { + "version": "3.7.2", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "^4.9.1", + "array.prototype.flatmap": "^1.2.4", + "deepmerge": "^4.2.2", + "escape-string-regexp": "^4.0.0", + "object.fromentries": "^2.0.3" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.27.5", + "dev": true, + "requires": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "doctrine": { + "version": "2.1.0", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "dev": true + }, + "espree": { + "version": "7.3.1", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "dev": true + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "dev": true + }, + "esquery": { + "version": "1.5.0", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "dev": true + }, + "expand-tilde": { + "version": "2.0.2", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "external-editor": { + "version": "3.1.0", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "dev": true + }, + "fast-diff": { + "version": "1.3.0", + "dev": true + }, + "fast-glob": { + "version": "3.3.0", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "dev": true + }, + "fast-url-parser": { + "version": "1.1.3", + "dev": true, + "requires": { + "punycode": "^1.3.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "dev": true + } + } + }, + "fastq": { + "version": "1.15.0", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "figures": { + "version": "3.2.0", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } + } + }, + "file-entry-cache": { + "version": "6.0.1", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-node-modules": { + "version": "2.1.3", + "dev": true, + "requires": { + "findup-sync": "^4.0.0", + "merge": "^2.1.1" + } + }, + "find-root": { + "version": "1.1.0", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "findup-sync": { + "version": "4.0.0", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + } + }, + "flat-cache": { + "version": "3.0.4", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "foreground-child": { + "version": "2.0.0", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.1", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-stdin": { + "version": "6.0.0", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "0.1.1", + "dev": true, + "optional": true, + "requires": { + "ini": "^1.3.4" + } + }, + "global-modules": { + "version": "1.0.0", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "globals": { + "version": "13.20.0", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globalthis": { + "version": "1.0.3", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "globby": { + "version": "11.1.0", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "got": { + "version": "9.6.0", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.11", + "dev": true + }, + "has": { + "version": "1.0.3", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-yarn": { + "version": "2.1.0", + "dev": true + }, + "homedir-polyfill": { + "version": "1.0.3", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.1", + "dev": true + }, + "http-proxy-agent": { + "version": "4.0.1", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "iconv-lite": { + "version": "0.4.24", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "dev": true + }, + "ignore": { + "version": "5.2.4", + "dev": true + }, + "ignore-by-default": { + "version": "2.1.0", + "dev": true + }, + "ignore-walk": { + "version": "3.0.4", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-fresh": { + "version": "3.3.0", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "dev": true + } + } + }, + "import-lazy": { + "version": "2.1.0", + "dev": true + }, + "import-local": { + "version": "3.1.0", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "dev": true + }, + "ini": { + "version": "1.3.8", + "dev": true + }, + "inquirer": { + "version": "8.2.5", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + } + }, + "internal-slot": { + "version": "1.0.5", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "irregular-plurals": { + "version": "3.5.0", + "dev": true + }, + "is-array-buffer": { + "version": "3.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.12.1", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-error": { + "version": "2.2.2", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.4.0", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "dependencies": { + "global-dirs": { + "version": "3.0.1", + "dev": true, + "requires": { + "ini": "2.0.0" + } + }, + "ini": { + "version": "2.0.0", + "dev": true + } + } + }, + "is-interactive": { + "version": "1.0.0", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.2", + "dev": true + }, + "is-npm": { + "version": "5.0.0", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "dev": true + }, + "is-promise": { + "version": "4.0.0", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.10", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "dev": true + }, + "is-weakref": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-windows": { + "version": "1.0.2", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true + }, + "istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-reports": { + "version": "3.1.5", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "js-string-escape": { + "version": "1.0.1", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-buffer": { + "version": "3.0.0", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true + }, + "json5": { + "version": "1.0.2", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "3.1.0", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "latest-version": { + "version": "5.1.0", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "levn": { + "version": "0.4.1", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "dev": true + }, + "load-json-file": { + "version": "5.3.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "dev": true + }, + "type-fest": { + "version": "0.3.1", + "dev": true + } + } + }, + "locate-path": { + "version": "6.0.0", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "dev": true, + "optional": true + }, + "lodash.map": { + "version": "4.6.0", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.2", + "dev": true, + "optional": true + }, + "lodash.truncate": { + "version": "4.4.2", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "dev": true, + "optional": true + }, + "log-symbols": { + "version": "4.1.0", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "longest": { + "version": "2.0.1", + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "dev": true + }, + "map-age-cleaner": { + "version": "0.1.3", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "matcher": { + "version": "3.0.0", + "dev": true, + "requires": { + "escape-string-regexp": "^4.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + } + } + }, + "md5-hex": { + "version": "3.0.1", + "dev": true, + "requires": { + "blueimp-md5": "^2.10.0" + } + }, + "mem": { + "version": "8.1.1", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + } + }, + "memorystream": { + "version": "0.3.1", + "dev": true + }, + "merge": { + "version": "2.1.1", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mimic-fn": { + "version": "3.1.0", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "dev": true + }, + "ms": { + "version": "2.1.3", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "dev": true + }, + "node-fetch": { + "version": "2.6.12", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-gyp-build-optional-packages": { + "version": "5.0.3", + "optional": true + }, + "normalize-package-data": { + "version": "2.5.0", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "dev": true + }, + "normalize-url": { + "version": "4.5.1", + "dev": true + }, + "npm-run-all": { + "version": "4.1.5", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-key": { + "version": "2.0.1", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "semver": { + "version": "5.7.2", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "object-inspect": { + "version": "1.12.3", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.fromentries": { + "version": "2.0.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.values": { + "version": "1.1.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "once": { + "version": "1.4.0", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "dev": true + } + } + }, + "optionator": { + "version": "0.9.3", + "dev": true, + "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + } + }, + "ora": { + "version": "5.4.1", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "dev": true + }, + "p-cancelable": { + "version": "1.1.0", + "dev": true + }, + "p-defer": { + "version": "1.0.0", + "dev": true + }, + "p-event": { + "version": "4.2.0", + "dev": true, + "requires": { + "p-timeout": "^3.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-map": { + "version": "4.0.0", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-timeout": { + "version": "3.2.0", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "parent-module": { + "version": "1.0.1", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-ms": { + "version": "2.1.0", + "dev": true + }, + "parse-passwd": { + "version": "1.0.0", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "dev": true + }, + "pidtree": { + "version": "0.3.1", + "dev": true + }, + "pify": { + "version": "4.0.1", + "dev": true + }, + "pkg-conf": { + "version": "3.1.0", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "dev": true + } + } + }, + "pkg-dir": { + "version": "4.2.0", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "plur": { + "version": "4.0.0", + "dev": true, + "requires": { + "irregular-plurals": "^3.2.0" + } + }, + "prelude-ls": { + "version": "1.2.1", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "dev": true + }, + "prettier": { + "version": "2.8.8", + "dev": true + }, + "pretty-ms": { + "version": "7.0.1", + "dev": true, + "requires": { + "parse-ms": "^2.1.0" + } + }, + "progress": { + "version": "2.0.3", + "dev": true + }, + "pump": { + "version": "3.0.0", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.3.0", + "dev": true + }, + "pupa": { + "version": "2.1.1", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, + "queue-microtask": { + "version": "1.2.3", + "dev": true + }, + "rc": { + "version": "1.2.8", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "dev": true + } + } + }, + "read-pkg": { + "version": "5.2.0", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "dev": true + } + } + }, + "readable-stream": { + "version": "3.6.2", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regexp.prototype.flags": { + "version": "1.5.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, + "regexpp": { + "version": "3.2.0", + "dev": true + }, + "registry-auth-token": { + "version": "4.2.2", + "dev": true, + "requires": { + "rc": "1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "require-directory": { + "version": "2.1.1", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "dev": true + }, + "resolve": { + "version": "1.22.2", + "dev": true, + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "dev": true + }, + "resolve-global": { + "version": "1.0.0", + "dev": true, + "optional": true, + "requires": { + "global-dirs": "^0.1.1" + } + }, + "responselike": { + "version": "1.0.2", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "reusify": { + "version": "1.0.4", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.4.1", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "7.8.1", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "dev": true + }, + "safe-regex-test": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2", + "dev": true + }, + "semver": { + "version": "7.5.4", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "semver-diff": { + "version": "3.1.1", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "serialize-error": { + "version": "7.0.1", + "dev": true, + "requires": { + "type-fest": "^0.13.1" + }, + "dependencies": { + "type-fest": { + "version": "0.13.1", + "dev": true + } + } + }, + "shebang-command": { + "version": "2.0.0", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "dev": true + }, + "shell-quote": { + "version": "1.8.1", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "dev": true + }, + "slash": { + "version": "3.0.0", + "dev": true + }, + "slice-ansi": { + "version": "3.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + } + } + }, + "source-map": { + "version": "0.6.1", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "spdx-correct": { + "version": "3.2.0", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "stream-events": { + "version": "1.0.5", + "dev": true, + "requires": { + "stubs": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "4.2.3", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.padend": { + "version": "3.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trim": { + "version": "1.2.7", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-ansi": { + "version": "6.0.1", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "dev": true + }, + "stubs": { + "version": "3.0.0", + "dev": true + }, + "supertap": { + "version": "2.0.0", + "dev": true, + "requires": { + "arrify": "^2.0.1", + "indent-string": "^4.0.0", + "js-yaml": "^3.14.0", + "serialize-error": "^7.0.1", + "strip-ansi": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true + }, + "table": { + "version": "6.8.1", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + } + } + }, + "teeny-request": { + "version": "7.1.1", + "dev": true, + "requires": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + } + }, + "temp-dir": { + "version": "2.0.0", + "dev": true + }, + "test-exclude": { + "version": "6.0.0", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "dev": true + }, + "through": { + "version": "2.3.8", + "dev": true + }, + "time-zone": { + "version": "1.0.0", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-readable-stream": { + "version": "1.0.0", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "dev": true + }, + "trim-off-newlines": { + "version": "1.0.3", + "dev": true + }, + "ts-node": { + "version": "9.1.1", + "dev": true, + "requires": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + } + }, + "tsconfig-paths": { + "version": "3.14.2", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "dev": true + } + } + }, + "tslib": { + "version": "2.6.0", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "dev": true + } + } + }, + "type-check": { + "version": "0.4.0", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "dev": true + }, + "typed-array-length": { + "version": "1.0.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.9.5", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "unique-string": { + "version": "2.0.0", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "dev": true + }, + "update-notifier": { + "version": "5.1.0", + "dev": true, + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "urlgrey": { + "version": "1.0.0", + "dev": true, + "requires": { + "fast-url-parser": "^1.1.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "dev": true + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true, + "optional": true + }, + "v8-to-istanbul": { + "version": "9.1.0", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "dev": true + }, + "well-known-symbols": { + "version": "2.0.0", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.10", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "widest-line": { + "version": "3.1.0", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "dev": true + }, + "yn": { + "version": "3.1.1", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "dev": true + } + } + }, + "@ethereumjs/block": { + "version": "4.3.0", + "requires": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/trie": "^5.1.0", + "@ethereumjs/tx": "^4.2.0", + "@ethereumjs/util": "^8.1.0", + "ethereum-cryptography": "^2.0.0" + } + }, + "@ethereumjs/blockchain": { + "version": "6.3.0", + "requires": { + "@ethereumjs/block": "^4.3.0", + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/ethash": "^2.1.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/trie": "^5.1.0", + "@ethereumjs/tx": "^4.2.0", + "@ethereumjs/util": "^8.1.0", + "abstract-level": "^1.0.3", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.0.0", + "level": "^8.0.0", + "lru-cache": "^5.1.1", + "memory-level": "^1.0.0" + } + }, + "@ethereumjs/common": { + "version": "3.2.0", + "requires": { + "@ethereumjs/util": "^8.1.0", + "crc-32": "^1.2.0" + } + }, + "@ethereumjs/ethash": { + "version": "2.1.0", + "requires": { + "@ethereumjs/block": "^4.3.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "abstract-level": "^1.0.3", + "bigint-crypto-utils": "^3.2.2", + "ethereum-cryptography": "^2.0.0" + } + }, + "@ethereumjs/evm": { + "version": "1.4.0", + "requires": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/tx": "^4.2.0", + "@ethereumjs/util": "^8.1.0", + "@ethersproject/providers": "^5.7.1", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.0.0", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + } + }, + "@ethereumjs/rlp": { + "version": "4.0.1" + }, + "@ethereumjs/statemanager": { + "version": "1.1.0", + "requires": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.0.0", + "ethers": "^5.7.1", + "js-sdsl": "^4.1.4" + }, + "dependencies": { + "ethers": { + "version": "5.7.2", + "requires": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + } + } + }, + "@ethereumjs/trie": { + "version": "5.1.0", + "requires": { + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "@types/readable-stream": "^2.3.13", + "ethereum-cryptography": "^2.0.0", + "readable-stream": "^3.6.0" + } + }, + "@ethereumjs/tx": { + "version": "4.2.0", + "requires": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "ethereum-cryptography": "^2.0.0" + } + }, + "@ethereumjs/util": { + "version": "8.1.0", + "requires": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + } + }, + "@ethereumjs/vm": { + "version": "6.5.0", + "requires": { + "@ethereumjs/block": "^4.3.0", + "@ethereumjs/blockchain": "^6.3.0", + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/evm": "^1.4.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/statemanager": "^1.1.0", + "@ethereumjs/trie": "^5.1.0", + "@ethereumjs/tx": "^4.2.0", + "@ethereumjs/util": "^8.1.0", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.0.0", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + } + }, + "@ethersproject/abi": { + "version": "5.7.0", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.7.0", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.7.0", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/address": { + "version": "5.7.0", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "@ethersproject/base64": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "@ethersproject/basex": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "@ethersproject/bytes": { + "version": "5.7.0", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/constants": { + "version": "5.7.0", + "requires": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "@ethersproject/contracts": { + "version": "5.7.0", + "requires": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "@ethersproject/hash": { + "version": "5.7.0", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/hdnode": { + "version": "5.7.0", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/json-wallets": { + "version": "5.7.0", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + }, + "dependencies": { + "aes-js": { + "version": "3.0.0" + } + } + }, + "@ethersproject/keccak256": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "@ethersproject/logger": { + "version": "5.7.0" + }, + "@ethersproject/networks": { + "version": "5.7.1", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/pbkdf2": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "@ethersproject/properties": { + "version": "5.7.0", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/providers": { + "version": "5.7.2", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "@ethersproject/random": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/rlp": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/sha2": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "@ethersproject/signing-key": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "@ethersproject/solidity": { + "version": "5.7.0", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/strings": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/transactions": { + "version": "5.7.0", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "@ethersproject/units": { + "version": "5.7.0", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/wallet": { + "version": "5.7.0", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/web": { + "version": "5.7.1", + "requires": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/wordlists": { + "version": "5.7.0", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@fairdatasociety/bmt-js": { + "version": "2.1.0" + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true + }, + "@hutson/parse-repository-url": { + "version": "3.0.2", + "dev": true + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@noble/curves": { + "version": "1.1.0", + "requires": { + "@noble/hashes": "1.3.1" + } + }, + "@noble/hashes": { + "version": "1.3.1" + }, + "@noble/secp256k1": { + "version": "1.7.1" + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@scure/base": { + "version": "1.1.1" + }, + "@scure/bip32": { + "version": "1.3.1", + "requires": { + "@noble/curves": "~1.1.0", + "@noble/hashes": "~1.3.1", + "@scure/base": "~1.1.0" + } + }, + "@scure/bip39": { + "version": "1.2.1", + "requires": { + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" + } + }, + "@tokenizer/token": { + "version": "0.3.0", + "dev": true + }, + "@tootallnate/once": { + "version": "1.1.2", + "dev": true + }, + "@tsconfig/node10": { + "version": "1.0.9", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.4", + "dev": true + }, + "@types/debug": { + "version": "4.1.8", + "dev": true, + "requires": { + "@types/ms": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.12", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "dev": true + }, + "@types/lru-cache": { + "version": "5.1.1", + "dev": true + }, + "@types/minimist": { + "version": "1.2.2", + "dev": true + }, + "@types/mocha": { + "version": "10.0.1", + "dev": true + }, + "@types/ms": { + "version": "0.7.31", + "dev": true + }, + "@types/node": { + "version": "20.4.1" + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "dev": true + }, + "@types/readable-stream": { + "version": "2.3.15", + "requires": { + "@types/node": "*", + "safe-buffer": "~5.1.1" + } + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + } + }, + "@typescript-eslint/types": { + "version": "4.33.0", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + } + }, + "abitype": { + "version": "0.8.0", + "requires": {} + }, + "abstract-level": { + "version": "1.0.3", + "requires": { + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" + } + }, + "acorn": { + "version": "7.4.1", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "dev": true + }, + "add-stream": { + "version": "1.0.0", + "dev": true + }, + "aes-js": { + "version": "4.0.0-beta.5" + }, + "agent-base": { + "version": "6.0.2", + "dev": true, + "requires": { + "debug": "4" + } + }, + "ajv": { + "version": "8.12.0", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ansi-colors": { + "version": "4.1.3", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.1", + "dev": true + }, + "ansi-sequence-parser": { + "version": "1.1.0", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "argv": { + "version": "0.0.2", + "dev": true + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-ify": { + "version": "1.0.0", + "dev": true + }, + "array-includes": { + "version": "3.1.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, + "array-timsort": { + "version": "1.0.3", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "dev": true + }, + "array.prototype.flat": { + "version": "1.3.1", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.1", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "arrify": { + "version": "1.0.1", + "dev": true + }, + "assertion-error": { + "version": "1.1.0", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "dev": true + }, + "async": { + "version": "2.6.4", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "at-least-node": { + "version": "1.0.0", + "dev": true + }, + "available-typed-arrays": { + "version": "1.0.5", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "dev": true + }, + "base-x": { + "version": "4.0.0" + }, + "base64-js": { + "version": "1.5.1" + }, + "bech32": { + "version": "1.1.4" + }, + "bigint-crypto-utils": { + "version": "3.3.0" + }, + "binary-extensions": { + "version": "2.2.0", + "dev": true + }, + "bl": { + "version": "4.1.0", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } + } + }, + "bn.js": { + "version": "5.2.1" + }, + "brace-expansion": { + "version": "1.1.11", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0" + }, + "browser-level": { + "version": "1.0.1", + "requires": { + "abstract-level": "^1.0.2", + "catering": "^2.1.1", + "module-error": "^1.0.2", + "run-parallel-limit": "^1.1.0" + } + }, + "browser-stdout": { + "version": "1.3.1", + "dev": true + }, + "bs58": { + "version": "5.0.0", + "requires": { + "base-x": "^4.0.0" + } + }, + "buffer": { + "version": "6.0.3", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "buffer-from": { + "version": "1.1.2", + "dev": true + }, + "c8": { + "version": "8.0.0", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + } + }, + "cachedir": { + "version": "2.3.0", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + } + }, + "catering": { + "version": "2.1.1" + }, + "chai": { + "version": "4.3.7", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chardet": { + "version": "0.7.0", + "dev": true + }, + "check-error": { + "version": "1.0.2", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "classic-level": { + "version": "1.3.0", + "requires": { + "abstract-level": "^1.0.2", + "catering": "^2.1.0", + "module-error": "^1.0.1", + "napi-macros": "^2.2.2", + "node-gyp-build": "^4.3.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.9.0", + "dev": true + }, + "cli-width": { + "version": "3.0.0", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "dev": true + }, + "codecov": { + "version": "3.8.3", + "dev": true, + "requires": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "command-exists": { + "version": "1.2.9" + }, + "commander": { + "version": "7.2.0", + "dev": true + }, + "comment-json": { + "version": "4.2.3", + "dev": true, + "requires": { + "array-timsort": "^1.0.3", + "core-util-is": "^1.0.3", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" + } + }, + "commitizen": { + "version": "4.3.0", + "dev": true, + "requires": { + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + } + }, + "commondir": { + "version": "1.0.1", + "dev": true + }, + "compare-func": { + "version": "2.0.0", + "dev": true, + "requires": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "concat-map": { + "version": "0.0.1", + "dev": true + }, + "concat-stream": { + "version": "2.0.0", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "configstore": { + "version": "5.0.1", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "conventional-changelog": { + "version": "3.1.25", + "dev": true, + "requires": { + "conventional-changelog-angular": "^5.0.12", + "conventional-changelog-atom": "^2.0.8", + "conventional-changelog-codemirror": "^2.0.8", + "conventional-changelog-conventionalcommits": "^4.5.0", + "conventional-changelog-core": "^4.2.1", + "conventional-changelog-ember": "^2.0.9", + "conventional-changelog-eslint": "^3.0.9", + "conventional-changelog-express": "^2.0.6", + "conventional-changelog-jquery": "^3.0.11", + "conventional-changelog-jshint": "^2.0.9", + "conventional-changelog-preset-loader": "^2.3.4" + } + }, + "conventional-changelog-angular": { + "version": "5.0.13", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + } + }, + "conventional-changelog-atom": { + "version": "2.0.8", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-codemirror": { + "version": "2.0.8", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-config-spec": { + "version": "2.1.0", + "dev": true + }, + "conventional-changelog-conventionalcommits": { + "version": "4.6.3", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + } + }, + "conventional-changelog-core": { + "version": "4.2.4", + "dev": true, + "requires": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^4.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "hosted-git-info": { + "version": "4.1.0", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "p-limit": { + "version": "1.3.0", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "path-exists": { + "version": "3.0.0", + "dev": true + }, + "read-pkg-up": { + "version": "3.0.0", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "dev": true + } + } + }, + "conventional-changelog-ember": { + "version": "2.0.9", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-eslint": { + "version": "3.0.9", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-express": { + "version": "2.0.6", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-jquery": { + "version": "3.0.11", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-jshint": { + "version": "2.0.9", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + } + }, + "conventional-changelog-preset-loader": { + "version": "2.3.4", + "dev": true + }, + "conventional-changelog-writer": { + "version": "5.0.1", + "dev": true, + "requires": { + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "4.1.0", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "meow": { + "version": "8.1.2", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "semver": { + "version": "6.3.1", + "dev": true + }, + "type-fest": { + "version": "0.18.1", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true + } + } + }, + "conventional-commit-types": { + "version": "3.0.0", + "dev": true + }, + "conventional-commits-filter": { + "version": "2.0.7", + "dev": true, + "requires": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + } + }, + "conventional-commits-parser": { + "version": "3.2.4", + "dev": true, + "requires": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "4.1.0", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "meow": { + "version": "8.1.2", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "type-fest": { + "version": "0.18.1", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true + } + } + }, + "conventional-recommended-bump": { + "version": "6.1.0", + "dev": true, + "requires": { + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.3.4", + "conventional-commits-filter": "^2.0.7", + "conventional-commits-parser": "^3.2.0", + "git-raw-commits": "^2.0.8", + "git-semver-tags": "^4.1.1", + "meow": "^8.0.0", + "q": "^1.5.1" + }, + "dependencies": { + "hosted-git-info": { + "version": "4.1.0", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "meow": { + "version": "8.1.2", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "type-fest": { + "version": "0.18.1", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true + } + } + }, + "convert-source-map": { + "version": "1.9.0", + "dev": true + }, + "core-util-is": { + "version": "1.0.3" + }, + "cosmiconfig": { + "version": "8.2.0", + "dev": true, + "optional": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "dev": true, + "optional": true + }, + "js-yaml": { + "version": "4.1.0", + "dev": true, + "optional": true, + "requires": { + "argparse": "^2.0.1" + } + } + } + }, + "cosmiconfig-typescript-loader": { + "version": "4.3.0", + "dev": true, + "optional": true, + "requires": {} + }, + "crc-32": { + "version": "1.2.2" + }, + "create-require": { + "version": "1.1.1", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "dev": true + }, + "cspell": { + "version": "4.2.8", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "commander": "^7.0.0", + "comment-json": "^4.0.6", + "cspell-glob": "^0.1.25", + "cspell-lib": "^4.3.12", + "fs-extra": "^9.1.0", + "gensequence": "^3.1.1", + "get-stdin": "^8.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + } + }, + "cspell-glob": { + "version": "0.1.25", + "dev": true, + "requires": { + "micromatch": "^4.0.2" + } + }, + "cspell-io": { + "version": "4.1.7", + "dev": true, + "requires": { + "iconv-lite": "^0.6.2", + "iterable-to-stream": "^1.0.1" + } + }, + "cspell-lib": { + "version": "4.3.12", + "dev": true, + "requires": { + "@cspell/dict-aws": "^1.0.13", + "@cspell/dict-bash": "^1.0.11", + "@cspell/dict-companies": "^1.0.35", + "@cspell/dict-cpp": "^1.1.37", + "@cspell/dict-cryptocurrencies": "^1.0.10", + "@cspell/dict-csharp": "^1.0.10", + "@cspell/dict-css": "^1.0.10", + "@cspell/dict-django": "^1.0.25", + "@cspell/dict-dotnet": "^1.0.24", + "@cspell/dict-elixir": "^1.0.23", + "@cspell/dict-en_us": "^1.2.39", + "@cspell/dict-en-gb": "^1.1.27", + "@cspell/dict-filetypes": "^1.1.5", + "@cspell/dict-fonts": "^1.0.13", + "@cspell/dict-fullstack": "^1.0.36", + "@cspell/dict-golang": "^1.1.24", + "@cspell/dict-haskell": "^1.0.12", + "@cspell/dict-html": "^1.1.5", + "@cspell/dict-html-symbol-entities": "^1.0.23", + "@cspell/dict-java": "^1.0.22", + "@cspell/dict-latex": "^1.0.23", + "@cspell/dict-lorem-ipsum": "^1.0.22", + "@cspell/dict-lua": "^1.0.16", + "@cspell/dict-node": "^1.0.10", + "@cspell/dict-npm": "^1.0.10", + "@cspell/dict-php": "^1.0.23", + "@cspell/dict-powershell": "^1.0.14", + "@cspell/dict-python": "^1.0.32", + "@cspell/dict-ruby": "^1.0.12", + "@cspell/dict-rust": "^1.0.22", + "@cspell/dict-scala": "^1.0.21", + "@cspell/dict-software-terms": "^1.0.24", + "@cspell/dict-typescript": "^1.0.16", + "comment-json": "^4.1.0", + "configstore": "^5.0.1", + "cspell-io": "^4.1.7", + "cspell-trie-lib": "^4.2.8", + "cspell-util-bundle": "^4.1.11", + "fs-extra": "^9.1.0", + "gensequence": "^3.1.1", + "minimatch": "^3.0.4", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0", + "vscode-uri": "^3.0.2" + } + }, + "cspell-trie-lib": { + "version": "4.2.8", + "dev": true, + "requires": { + "gensequence": "^3.1.1" + } + }, + "cspell-util-bundle": { + "version": "4.1.11", + "dev": true + }, + "cz-conventional-changelog": { + "version": "3.3.0", + "dev": true, + "requires": { + "@commitlint/load": ">6.1.1", + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "dargs": { + "version": "7.0.0", + "dev": true + }, + "dateformat": { + "version": "3.0.3", + "dev": true + }, + "debug": { + "version": "4.3.4", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.1", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "dev": true + } + } + }, + "dedent": { + "version": "0.7.0", + "dev": true + }, + "deep-eql": { + "version": "4.1.3", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-is": { + "version": "0.1.4", + "dev": true + }, + "defaults": { + "version": "1.0.4", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.2.0", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "detect-file": { + "version": "1.0.0", + "dev": true + }, + "detect-indent": { + "version": "6.1.0", + "dev": true + }, + "detect-newline": { + "version": "3.1.0", + "dev": true + }, + "diff": { + "version": "5.0.0", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dot-prop": { + "version": "5.3.0", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotgitignore": { + "version": "2.1.0", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "minimatch": "^3.0.4" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "dev": true + } + } + }, + "elliptic": { + "version": "6.5.4", + "requires": { + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0" + } + } + }, + "email-addresses": { + "version": "3.1.0", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "dev": true + }, + "enquirer": { + "version": "2.3.6", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "error-ex": { + "version": "1.3.2", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.21.2", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + }, + "eslint": { + "version": "7.32.0", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "eslint-utils": { + "version": "2.1.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + } + } + }, + "ignore": { + "version": "4.0.6", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "6.15.0", + "dev": true, + "requires": { + "get-stdin": "^6.0.0" + }, + "dependencies": { + "get-stdin": { + "version": "6.0.0", + "dev": true + } + } + }, + "eslint-import-resolver-node": { + "version": "0.3.7", + "dev": true, + "requires": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.8.0", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-eslint-comments": { + "version": "3.2.0", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.27.5", + "dev": true, + "requires": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "doctrine": { + "version": "2.1.0", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "dev": true + }, + "espree": { + "version": "7.3.1", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "dev": true + }, + "esquery": { + "version": "1.5.0", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "dev": true + }, + "ethereum-cryptography": { + "version": "2.1.0", + "requires": { + "@noble/curves": "1.1.0", + "@noble/hashes": "1.3.1", + "@scure/bip32": "1.3.1", + "@scure/bip39": "1.2.1" + } + }, + "ethers": { + "version": "6.6.2", + "requires": { + "@adraffy/ens-normalize": "1.9.2", + "@noble/hashes": "1.1.2", + "@noble/secp256k1": "1.7.1", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" + }, + "dependencies": { + "@noble/hashes": { + "version": "1.1.2" + }, + "@types/node": { + "version": "18.15.13" + }, + "ws": { + "version": "8.5.0", + "requires": {} + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "external-editor": { + "version": "3.1.0", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "dev": true + }, + "fast-glob": { + "version": "3.3.0", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "dev": true + }, + "fast-url-parser": { + "version": "1.1.3", + "dev": true, + "requires": { + "punycode": "^1.3.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "dev": true + } + } + }, + "fastq": { + "version": "1.15.0", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "figures": { + "version": "3.2.0", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } + } + }, + "file-entry-cache": { + "version": "6.0.1", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "file-type": { + "version": "14.7.1", + "dev": true, + "requires": { + "readable-web-to-node-stream": "^2.0.0", + "strtok3": "^6.0.3", + "token-types": "^2.0.0", + "typedarray-to-buffer": "^3.1.5" + } + }, + "filename-reserved-regex": { + "version": "2.0.0", + "dev": true + }, + "filenamify": { + "version": "4.3.0", + "dev": true, + "requires": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + } + }, + "fill-range": { + "version": "7.0.1", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-cache-dir": { + "version": "3.3.2", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-node-modules": { + "version": "2.1.3", + "dev": true, + "requires": { + "findup-sync": "^4.0.0", + "merge": "^2.1.1" + } + }, + "find-root": { + "version": "1.1.0", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "findup-sync": { + "version": "4.0.0", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + } + }, + "flat": { + "version": "5.0.2", + "dev": true + }, + "flat-cache": { + "version": "3.0.4", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "dev": true + }, + "follow-redirects": { + "version": "1.15.2" + }, + "for-each": { + "version": "0.3.3", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "foreground-child": { + "version": "2.0.0", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functional-red-black-tree": { + "version": "1.0.1" + }, + "functions-have-names": { + "version": "1.2.3", + "dev": true + }, + "ganache": { + "version": "7.9.0", + "dev": true, + "requires": { + "@trufflesuite/bigint-buffer": "1.1.10", + "@trufflesuite/uws-js-unofficial": "20.10.0-unofficial.2", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "5.1.1", + "@types/seedrandom": "3.0.1", + "abstract-level": "1.0.3", + "abstract-leveldown": "7.2.0", + "async-eventemitter": "0.2.4", + "bufferutil": "4.0.5", + "emittery": "0.10.0", + "keccak": "3.0.2", + "leveldown": "6.1.0", + "secp256k1": "4.0.3", + "utf-8-validate": "5.0.7" + }, + "dependencies": { + "@trufflesuite/bigint-buffer": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "requires": { + "node-gyp-build": "4.4.0" + }, + "dependencies": { + "node-gyp-build": { + "version": "4.4.0", + "bundled": true, + "dev": true + } + } + }, + "@trufflesuite/uws-js-unofficial": { + "version": "20.10.0-unofficial.2", + "dev": true, + "requires": { + "bufferutil": "4.0.5", + "utf-8-validate": "5.0.7", + "ws": "8.2.3" + } + }, + "@types/bn.js": { + "version": "5.1.0", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/lru-cache": { + "version": "5.1.1", + "dev": true + }, + "@types/node": { + "version": "17.0.0", + "dev": true + }, + "@types/seedrandom": { + "version": "3.0.1", + "dev": true + }, + "abstract-level": { + "version": "1.0.3", + "dev": true, + "requires": { + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" + }, + "dependencies": { + "level-supports": { + "version": "4.0.1", + "dev": true + } + } + }, + "abstract-leveldown": { + "version": "7.2.0", + "bundled": true, + "dev": true, + "requires": { + "buffer": "^6.0.3", + "catering": "^2.0.0", + "is-buffer": "^2.0.5", + "level-concat-iterator": "^3.0.0", + "level-supports": "^2.0.1", + "queue-microtask": "^1.2.3" + } + }, + "async": { + "version": "2.6.4", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-eventemitter": { + "version": "0.2.4", + "dev": true, + "requires": { + "async": "^2.4.0" + } + }, + "base64-js": { + "version": "1.5.1", + "bundled": true, + "dev": true + }, + "brorand": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "buffer": { + "version": "6.0.3", + "bundled": true, + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "catering": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "queue-tick": "^1.0.0" + } + }, + "elliptic": { + "version": "6.5.4", + "bundled": true, + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true, + "dev": true + } + } + }, + "emittery": { + "version": "0.10.0", + "dev": true + }, + "hash.js": { + "version": "1.1.7", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "ieee754": { + "version": "1.2.1", + "bundled": true, + "dev": true + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "dev": true + }, + "is-buffer": { + "version": "2.0.5", + "bundled": true, + "dev": true + }, + "keccak": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + } + }, + "level-concat-iterator": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "catering": "^2.1.0" + } + }, + "level-supports": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "level-transcoder": { + "version": "1.0.1", + "dev": true, + "requires": { + "buffer": "^6.0.3", + "module-error": "^1.0.1" + } + }, + "leveldown": { + "version": "6.1.0", + "bundled": true, + "dev": true, + "requires": { + "abstract-leveldown": "^7.2.0", + "napi-macros": "~2.0.0", + "node-gyp-build": "^4.3.0" + } + }, + "lodash": { + "version": "4.17.21", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "module-error": { + "version": "1.0.2", + "dev": true + }, + "napi-macros": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "node-addon-api": { + "version": "2.0.2", + "bundled": true, + "dev": true + }, + "node-gyp-build": { + "version": "4.3.0", + "bundled": true, + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "bundled": true, + "dev": true + }, + "queue-tick": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "bundled": true, + "dev": true + }, + "secp256k1": { + "version": "4.0.3", + "bundled": true, + "dev": true, + "requires": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "ws": { + "version": "8.2.3", + "dev": true, + "requires": {} + } + } + }, + "gensequence": { + "version": "3.1.1", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.1", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-pkg-repo": { + "version": "4.2.1", + "dev": true, + "requires": { + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "4.1.0", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "readable-stream": { + "version": "2.3.8", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "through2": { + "version": "2.0.5", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "yallist": { + "version": "4.0.0", + "dev": true + } + } + }, + "get-stdin": { + "version": "8.0.0", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "gh-pages": { + "version": "3.2.3", + "dev": true, + "requires": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "commander": { + "version": "2.20.3", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "globby": { + "version": "6.1.0", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "pify": { + "version": "2.3.0", + "dev": true + }, + "universalify": { + "version": "0.1.2", + "dev": true + } + } + }, + "git-raw-commits": { + "version": "2.0.11", + "dev": true, + "requires": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "4.1.0", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "meow": { + "version": "8.1.2", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "type-fest": { + "version": "0.18.1", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true + } + } + }, + "git-remote-origin-url": { + "version": "2.0.0", + "dev": true, + "requires": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "dev": true + } + } + }, + "git-semver-tags": { + "version": "4.1.1", + "dev": true, + "requires": { + "meow": "^8.0.0", + "semver": "^6.0.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "4.1.0", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "meow": { + "version": "8.1.2", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "semver": { + "version": "6.3.1", + "dev": true + }, + "type-fest": { + "version": "0.18.1", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true + } + } + }, + "gitconfiglocal": { + "version": "1.0.0", + "dev": true, + "requires": { + "ini": "^1.3.2" + } + }, + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "0.1.1", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "global-modules": { + "version": "1.0.0", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "globals": { + "version": "13.20.0", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globalthis": { + "version": "1.0.3", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "globby": { + "version": "11.1.0", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "dev": true + }, + "handlebars": { + "version": "4.7.7", + "dev": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "hard-rejection": { + "version": "2.1.0", + "dev": true + }, + "has": { + "version": "1.0.3", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "has-own-prop": { + "version": "2.0.0", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hash.js": { + "version": "1.1.7", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "dev": true + }, + "http-proxy-agent": { + "version": "4.0.1", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "http-status-codes": { + "version": "2.2.0" + }, + "https-proxy-agent": { + "version": "5.0.1", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "iconv-lite": { + "version": "0.6.3", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "ieee754": { + "version": "1.2.1" + }, + "ignore": { + "version": "5.2.4", + "dev": true + }, + "ignore-walk": { + "version": "3.0.4", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "immediate": { + "version": "3.0.6" + }, + "import-fresh": { + "version": "3.3.0", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "dev": true + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4" + }, + "ini": { + "version": "1.3.8", + "dev": true + }, + "inquirer": { + "version": "8.2.5", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + } + }, + "internal-slot": { + "version": "1.0.5", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-array-buffer": { + "version": "3.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "2.0.5" + }, + "is-callable": { + "version": "1.2.7", + "dev": true + }, + "is-core-module": { + "version": "2.12.1", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-interactive": { + "version": "1.0.0", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.2", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.1", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-text-path": { + "version": "1.0.1", + "dev": true, + "requires": { + "text-extensions": "^1.0.0" + } + }, + "is-typed-array": { + "version": "1.1.10", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "dev": true + }, + "is-weakref": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-windows": { + "version": "1.0.2", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0" + }, + "isexe": { + "version": "2.0.0", + "dev": true + }, + "isomorphic-fetch": { + "version": "3.0.0", + "requires": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true + }, + "istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-reports": { + "version": "3.1.5", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "iterable-to-stream": { + "version": "1.0.1", + "dev": true + }, + "js-sdsl": { + "version": "4.4.1" + }, + "js-sha3": { + "version": "0.8.0" + }, + "js-tokens": { + "version": "4.0.0", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-parse-better-errors": { + "version": "1.0.2", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "dev": true + }, + "json5": { + "version": "1.0.2", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonc-parser": { + "version": "3.2.0", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonparse": { + "version": "1.3.1", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "jszip": { + "version": "3.10.1", + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "kind-of": { + "version": "6.0.3", + "dev": true + }, + "level": { + "version": "8.0.0", + "requires": { + "browser-level": "^1.0.1", + "classic-level": "^1.2.0" + } + }, + "level-supports": { + "version": "4.0.1" + }, + "level-transcoder": { + "version": "1.0.1", + "requires": { + "buffer": "^6.0.3", + "module-error": "^1.0.1" + } + }, + "levn": { + "version": "0.4.1", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lie": { + "version": "3.3.0", + "requires": { + "immediate": "~3.0.5" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "dev": true + } + } + }, + "locate-path": { + "version": "6.0.0", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "dev": true + }, + "lodash.ismatch": { + "version": "4.4.0", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "dev": true, + "optional": true + }, + "lodash.map": { + "version": "4.6.0", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.2", + "dev": true, + "optional": true + }, + "lodash.truncate": { + "version": "4.4.2", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "dev": true, + "optional": true + }, + "log-symbols": { + "version": "4.1.0", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "longest": { + "version": "2.0.1", + "dev": true + }, + "loupe": { + "version": "2.3.6", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "requires": { + "yallist": "^3.0.2" + } + }, + "lunr": { + "version": "2.3.9", + "dev": true + }, + "make-dir": { + "version": "3.1.0", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "dev": true + }, + "map-obj": { + "version": "4.3.0", + "dev": true + }, + "marked": { + "version": "4.3.0", + "dev": true + }, + "mcl-wasm": { + "version": "0.7.9" + }, + "memory-level": { + "version": "1.0.0", + "requires": { + "abstract-level": "^1.0.0", + "functional-red-black-tree": "^1.0.1", + "module-error": "^1.0.1" + } + }, + "memorystream": { + "version": "0.3.1" + }, + "meow": { + "version": "6.1.1", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "^4.0.2", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" + }, + "dependencies": { + "type-fest": { + "version": "0.13.1", + "dev": true + }, + "yargs-parser": { + "version": "18.1.3", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "merge": { + "version": "2.1.1", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "dev": true + }, + "micro-ftch": { + "version": "0.3.1" + }, + "micromatch": { + "version": "4.0.5", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mimic-fn": { + "version": "2.1.0", + "dev": true + }, + "min-indent": { + "version": "1.0.1", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1" + }, + "minimatch": { + "version": "3.1.2", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "dev": true + }, + "minimist-options": { + "version": "4.1.0", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + } + }, + "mocha": { + "version": "10.2.0", + "dev": true, + "requires": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.1", + "dev": true + }, + "argparse": { + "version": "2.0.1", + "dev": true + }, + "glob": { + "version": "7.2.0", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "js-yaml": { + "version": "4.1.0", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "minimatch": { + "version": "5.0.1", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + } + } + }, + "ms": { + "version": "2.1.3", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yargs-parser": { + "version": "20.2.4", + "dev": true + } + } + }, + "modify-values": { + "version": "1.0.1", + "dev": true + }, + "module-error": { + "version": "1.0.2" + }, + "ms": { + "version": "2.1.2" + }, + "mute-stream": { + "version": "0.0.8", + "dev": true + }, + "nanoid": { + "version": "3.3.3", + "dev": true + }, + "napi-macros": { + "version": "2.2.2" + }, + "natural-compare": { + "version": "1.4.0", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "dev": true + }, + "node-fetch": { + "version": "2.6.12", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-gyp-build": { + "version": "4.6.0" + }, + "normalize-package-data": { + "version": "2.5.0", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "dev": true + }, + "npm-run-all": { + "version": "4.1.5", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "dev": true + }, + "semver": { + "version": "5.7.2", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "object-assign": { + "version": "4.1.1", + "dev": true + }, + "object-inspect": { + "version": "1.12.3", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.values": { + "version": "1.1.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "once": { + "version": "1.4.0", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "7.4.2", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "open-cli": { + "version": "6.0.1", + "dev": true, + "requires": { + "file-type": "^14.1.4", + "get-stdin": "^7.0.0", + "meow": "^6.1.0", + "open": "^7.0.3", + "temp-write": "^4.0.0" + }, + "dependencies": { + "get-stdin": { + "version": "7.0.0", + "dev": true + } + } + }, + "optionator": { + "version": "0.9.3", + "dev": true, + "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + } + }, + "ora": { + "version": "5.4.1", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, + "os-tmpdir": { + "version": "1.0.2" + }, + "p-limit": { + "version": "3.1.0", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-try": { + "version": "1.0.0", + "dev": true + }, + "pako": { + "version": "1.0.11" + }, + "parent-module": { + "version": "1.0.1", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-passwd": { + "version": "1.0.0", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "dev": true + }, + "pathval": { + "version": "1.1.1", + "dev": true + }, + "peek-readable": { + "version": "4.1.0", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "dev": true + }, + "pidtree": { + "version": "0.3.1", + "dev": true + }, + "pify": { + "version": "3.0.0", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.2.1", + "dev": true + }, + "prettier": { + "version": "2.8.8", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1" + }, + "progress": { + "version": "2.0.3", + "dev": true + }, + "punycode": { + "version": "2.3.0", + "dev": true + }, + "q": { + "version": "1.5.1", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3" + }, + "quick-lru": { + "version": "4.0.1", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "read-pkg": { + "version": "3.0.0", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "dev": true + } + } + }, + "type-fest": { + "version": "0.8.1", + "dev": true + } + } + }, + "readable-stream": { + "version": "3.6.2", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readable-web-to-node-stream": { + "version": "2.0.0", + "dev": true + }, + "readdirp": { + "version": "3.6.0", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "redent": { + "version": "3.0.0", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "regexp.prototype.flags": { + "version": "1.5.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, + "regexpp": { + "version": "3.2.0", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "dev": true + }, + "resolve": { + "version": "1.22.2", + "dev": true, + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "dev": true + }, + "resolve-global": { + "version": "1.0.0", + "dev": true, + "requires": { + "global-dirs": "^0.1.1" + } + }, + "restore-cursor": { + "version": "3.1.0", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "reusify": { + "version": "1.0.4", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.4.1", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "run-parallel-limit": { + "version": "1.1.0", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rustbn.js": { + "version": "0.2.0" + }, + "rxjs": { + "version": "7.8.1", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "safe-buffer": { + "version": "5.1.2" + }, + "safe-regex-test": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2", + "dev": true + }, + "scrypt-js": { + "version": "3.0.1" + }, + "semver": { + "version": "7.5.4", + "requires": { + "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0" + } + } + }, + "serialize-javascript": { + "version": "6.0.0", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "setimmediate": { + "version": "1.0.5" + }, + "shebang-command": { + "version": "2.0.0", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "dev": true + }, + "shell-quote": { + "version": "1.8.1", + "dev": true + }, + "shiki": { + "version": "0.14.3", + "dev": true, + "requires": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, + "side-channel": { + "version": "1.0.4", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "dev": true + }, + "slash": { + "version": "3.0.0", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "solc": { + "version": "0.8.20", + "requires": { + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "dependencies": { + "commander": { + "version": "8.3.0" + }, + "semver": { + "version": "5.7.2" + } + } + }, + "source-map": { + "version": "0.6.1", + "dev": true + }, + "spdx-correct": { + "version": "3.2.0", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "dev": true + }, + "split": { + "version": "1.0.1", + "dev": true, + "requires": { + "through": "2" + } + }, + "split2": { + "version": "3.2.2", + "dev": true, + "requires": { + "readable-stream": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "dev": true + }, + "standard-version": { + "version": "9.5.0", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "conventional-changelog": "3.1.25", + "conventional-changelog-config-spec": "2.1.0", + "conventional-changelog-conventionalcommits": "4.6.3", + "conventional-recommended-bump": "6.1.0", + "detect-indent": "^6.0.0", + "detect-newline": "^3.1.0", + "dotgitignore": "^2.1.0", + "figures": "^3.1.0", + "find-up": "^5.0.0", + "git-semver-tags": "^4.0.0", + "semver": "^7.1.1", + "stringify-package": "^1.0.1", + "yargs": "^16.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "stream-events": { + "version": "1.0.5", + "dev": true, + "requires": { + "stubs": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1" + } + } + }, + "string-width": { + "version": "4.2.3", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.padend": { + "version": "3.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trim": { + "version": "1.2.7", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "stringify-package": { + "version": "1.0.1", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "dev": true + }, + "strip-outer": { + "version": "1.0.1", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } + } + }, + "strtok3": { + "version": "6.3.0", + "dev": true, + "requires": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.1.0" + } + }, + "stubs": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true + }, + "table": { + "version": "6.8.1", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + } + }, + "teeny-request": { + "version": "7.1.1", + "dev": true, + "requires": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + } + }, + "temp-dir": { + "version": "1.0.0", + "dev": true + }, + "temp-write": { + "version": "4.0.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "is-stream": "^2.0.0", + "make-dir": "^3.0.0", + "temp-dir": "^1.0.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "dev": true + } + } + }, + "test-exclude": { + "version": "6.0.0", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-extensions": { + "version": "1.9.0", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "dev": true + }, + "through": { + "version": "2.3.8", + "dev": true + }, + "through2": { + "version": "4.0.2", + "dev": true, + "requires": { + "readable-stream": "3" + } + }, + "tmp": { + "version": "0.0.33", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-regex-range": { + "version": "5.0.1", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "token-types": { + "version": "2.1.1", + "dev": true, + "requires": { + "@tokenizer/token": "^0.1.1", + "ieee754": "^1.2.1" + }, + "dependencies": { + "@tokenizer/token": { + "version": "0.1.1", + "dev": true + } + } + }, + "tr46": { + "version": "0.0.3" + }, + "trim-newlines": { + "version": "3.0.1", + "dev": true + }, + "trim-repeated": { + "version": "1.0.0", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } + } + }, + "ts-node": { + "version": "10.9.1", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "dependencies": { + "acorn": { + "version": "8.10.0", + "dev": true + }, + "diff": { + "version": "4.0.2", + "dev": true + } + } + }, + "tsconfig-paths": { + "version": "3.14.2", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "dev": true + } + } + }, + "tslib": { + "version": "2.4.0" + }, + "tsutils": { + "version": "3.21.0", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "dev": true + } + } + }, + "type-check": { + "version": "0.4.0", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "dev": true + }, + "typed-array-length": { + "version": "1.0.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typedarray": { + "version": "0.0.6", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typedoc": { + "version": "0.24.8", + "dev": true, + "requires": { + "lunr": "^2.3.9", + "marked": "^4.3.0", + "minimatch": "^9.0.0", + "shiki": "^0.14.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.3", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "typescript": { + "version": "5.1.6" + }, + "uglify-js": { + "version": "3.17.4", + "dev": true, + "optional": true + }, + "unbox-primitive": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "unique-string": { + "version": "2.0.0", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urlgrey": { + "version": "1.0.0", + "dev": true, + "requires": { + "fast-url-parser": "^1.1.3" + } + }, + "util-deprecate": { + "version": "1.0.2" + }, + "uuid": { + "version": "8.3.2", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "dev": true + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true + }, + "v8-to-istanbul": { + "version": "9.1.0", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "dependencies": { + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + } + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vscode-oniguruma": { + "version": "1.7.0", + "dev": true + }, + "vscode-textmate": { + "version": "8.0.0", + "dev": true + }, + "vscode-uri": { + "version": "3.0.7", + "dev": true + }, + "wcwidth": { + "version": "1.0.1", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "3.0.1" + }, + "whatwg-fetch": { + "version": "3.6.2" + }, + "whatwg-url": { + "version": "5.0.0", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.10", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "word-wrap": { + "version": "1.2.3", + "dev": true + }, + "wordwrap": { + "version": "1.0.0", + "dev": true + }, + "workerpool": { + "version": "6.2.1", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "7.4.6", + "requires": {} + }, + "xdg-basedir": { + "version": "4.0.0", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "dev": true + }, + "yallist": { + "version": "3.1.1" + }, + "yargs": { + "version": "16.2.0", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "dev": true + }, + "yargs-unparser": { + "version": "2.0.0", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "dev": true + }, + "decamelize": { + "version": "4.0.0", + "dev": true + }, + "is-plain-obj": { + "version": "2.1.0", + "dev": true + } + } + }, + "yn": { + "version": "3.1.1", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "dev": true + } + } +} diff --git a/packages/lib-sourcify/package.json b/packages/lib-sourcify/package.json new file mode 100644 index 000000000..7bbcf99bf --- /dev/null +++ b/packages/lib-sourcify/package.json @@ -0,0 +1,127 @@ +{ + "name": "@ethereum-sourcify/lib-sourcify", + "version": "1.2.0", + "description": "Library for Sourcify's contract verification methods, contract validation, types, and interfaces.", + "main": "build/main/index.js", + "typings": "build/main/index.d.ts", + "module": "build/module/index.js", + "repository": "https://github.com/ethereum/sourcify", + "license": "MIT", + "keywords": [], + "scripts": { + "build": "run-p build:*", + "build:main": "tsc -p tsconfig.json", + "build:module": "tsc -p tsconfig.module.json", + "fix": "run-s fix:*", + "fix:prettier": "prettier \"src/**/*.ts\" --write", + "fix:lint": "eslint src --ext .ts --fix", + "lint": "eslint src --ext .ts", + "prettier": "prettier \"src/**/*.ts\" --list-different", + "test": "c8 --reporter=none mocha -r ts-node/register test/**/*.spec.ts --no-timeout --exit", + "test:coverage": "c8 npm run test", + "check-cli": "run-s test diff-integration-tests check-integration-tests", + "check-integration-tests": "run-s check-integration-test:*", + "diff-integration-tests": "mkdir -p diff && rm -rf diff/test && cp -r test diff/test && rm -rf diff/test/test-*/.git && cd diff && git init --quiet && git add -A && git commit --quiet --no-verify --allow-empty -m 'WIP' && echo '\\n\\nCommitted most recent integration test output in the \"diff\" directory. Review the changes with \"cd diff && git diff HEAD\" or your preferred git diff viewer.'", + "watch:build": "tsc -p tsconfig.json -w", + "watch:test": "c8 --reporter=none mocha --watch", + "test:unit": "c8 --reporter=none mocha -r ts-node/register test/**/*.spec.ts --no-timeout --exit", + "cov": "run-s -c build test:unit cov:html cov:lcov && open-cli coverage/index.html", + "cov:html": "c8 report --reporter=html", + "cov:lcov": "c8 report --reporter=lcov", + "cov:send": "run-s cov:lcov && codecov -F lib-sourcify -f coverage/lcov.info", + "cov:check": "c8 report && c8 check-coverage --lines 100 --functions 100 --branches 100", + "doc": "run-s doc:html && open-cli build/docs/index.html", + "doc:html": "typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --out build/docs", + "doc:json": "typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --json build/docs/typedoc.json", + "doc:publish": "gh-pages -m \"[ci skip] Updates\" -d build/docs", + "version": "standard-version", + "reset-hard": "git clean -dfx && git reset --hard && npm i", + "prepare-release": "run-s reset-hard test cov:check doc:html version doc:publish" + }, + "engines": { + "node": ">=10" + }, + "dependencies": { + "@ethereum-sourcify/bytecode-utils": "*", + "@ethereumjs/blockchain": "^6.2.1", + "@ethereumjs/common": "^3.1.1", + "@ethereumjs/evm": "^1.3.1", + "@ethereumjs/statemanager": "^1.0.4", + "@ethereumjs/util": "^8.0.5", + "@ethereumjs/vm": "^6.4.1", + "@fairdatasociety/bmt-js": "^2.0.1", + "abitype": "0.8.0", + "bs58": "^5.0.0", + "ethers": "^6.6.2", + "http-status-codes": "^2.2.0", + "isomorphic-fetch": "^3.0.0", + "jszip": "^3.10.1", + "semver": "^7.3.8", + "solc": "^0.8.17" + }, + "devDependencies": { + "@types/debug": "^4.1.7", + "@types/lru-cache": "^5.1.1", + "@types/mocha": "^10.0.1", + "@typescript-eslint/eslint-plugin": "^4.33.0", + "@typescript-eslint/parser": "^4.33.0", + "c8": "^8.0.0", + "chai": "^4.3.7", + "codecov": "^3.8.3", + "cspell": "^4.2.8", + "cz-conventional-changelog": "^3.3.0", + "eslint": "^7.32.0", + "eslint-config-prettier": "^6.15.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-import": "^2.27.4", + "ganache": "^7.7.3", + "gh-pages": "^3.2.3", + "mocha": "^10.2.0", + "npm-run-all": "^4.1.5", + "open-cli": "^6.0.1", + "prettier": "^2.8.2", + "standard-version": "^9.5.0", + "ts-node": "^10.9.1", + "typedoc": "^0.24.6", + "typescript": "^5.0.4" + }, + "files": [ + "build/main", + "build/module", + "!**/*.spec.*", + "!**/*.json", + "CHANGELOG.md", + "LICENSE", + "README.md" + ], + "config": { + "commitizen": { + "path": "cz-conventional-changelog" + } + }, + "prettier": { + "singleQuote": true + }, + "c8": { + "check-coverage": true, + "all": true, + "include": [ + "src/**/!(*.test.*).[tj]s?(x)" + ], + "exclude": [ + "src/_tests_/**/*.*", + "**/*.spec.js" + ], + "reporter": [ + "html", + "lcov", + "text", + "text-summary" + ], + "report-dir": "coverage", + "lines": 70, + "statements": 70, + "functions": 75, + "branches": 60 + } +} diff --git a/packages/lib-sourcify/src/index.ts b/packages/lib-sourcify/src/index.ts new file mode 100644 index 000000000..2c20204cd --- /dev/null +++ b/packages/lib-sourcify/src/index.ts @@ -0,0 +1,11 @@ +import { setLogger, setLevel, ILogger } from './lib/logger'; + +export * from './lib/validation'; +export * from './lib/verification'; +export * from './lib/CheckedContract'; +export { default as SourcifyChain } from './lib/SourcifyChain'; +export * from './lib/types'; +export * from './lib/solidityCompiler'; +export const setLibSourcifyLogger = setLogger; +export const setLibSourcifyLoggerLevel = setLevel; +export type ILibSourcifyLogger = ILogger; diff --git a/packages/lib-sourcify/src/lib/CheckedContract.ts b/packages/lib-sourcify/src/lib/CheckedContract.ts new file mode 100644 index 000000000..00e9ce7d7 --- /dev/null +++ b/packages/lib-sourcify/src/lib/CheckedContract.ts @@ -0,0 +1,545 @@ +import { id as keccak256str } from 'ethers'; +import { + CompilableMetadata, + InvalidSources, + JsonInput, + Metadata, + MetadataSources, + MissingSources, + PathContent, + RecompilationResult, + StringMap, +} from './types'; +import semver from 'semver'; +import { useCompiler } from './solidityCompiler'; +import { fetchWithTimeout } from './utils'; +import { storeByHash } from './validation'; +import { decode as decodeBytecode } from '@ethereum-sourcify/bytecode-utils'; +import { ipfsHash } from './hashFunctions/ipfsHash'; +import { swarmBzzr0Hash, swarmBzzr1Hash } from './hashFunctions/swarmHash'; +import { logError, logInfo, logWarn } from './logger'; + +// TODO: find a better place for these constants. Reminder: this sould work also in the browser +const IPFS_PREFIX = 'dweb:/ipfs/'; +const FETCH_TIMEOUT = parseInt(process.env.FETCH_TIMEOUT || '') || 3000; // ms +/** + * Abstraction of a checked solidity contract. With metadata and source (solidity) files. + */ +export class CheckedContract { + /** Object containing contract metadata keys and values. */ + metadata!: Metadata; + + /** SourceMap mapping the original compilation path to PathContent. */ + solidity!: StringMap; + + /** Object containing the information about missing source files. */ + missing: MissingSources; + + /** Contains the invalid source files. */ + invalid: InvalidSources; + + /** Object containing input for solc when used with the --standard-json flag. */ + solcJsonInput: any; + + /** The path of the contract during compile-time. */ + compiledPath!: string; + + /** The version of the Solidity compiler to use for compilation. */ + compilerVersion!: string; + + /** The name of the contract. */ + name!: string; + + /** The bytecodes of the contract. */ + creationBytecode?: string; + + /** The raw string representation of the contract's metadata. Needed to generate a unique session id for the CheckedContract*/ + metadataRaw!: string; + + /** Checks whether this contract is valid or not. + * This is a static method due to persistence issues. + * + * @param contract the contract to be checked + * @param ignoreMissing a flag indicating that missing sources should be ignored + * @returns true if no sources are missing or are invalid (malformed); false otherwise + */ + public static isValid( + contract: CheckedContract, + ignoreMissing = false + ): boolean { + return ( + (isEmpty(contract.missing) || ignoreMissing) && isEmpty(contract.invalid) + ); + } + + initSolcJsonInput(metadata: Metadata, solidity: StringMap) { + this.metadataRaw = JSON.stringify(metadata); + this.metadata = JSON.parse(JSON.stringify(metadata)); + this.solidity = solidity; + + if (metadata.compiler && metadata.compiler.version) { + this.compilerVersion = metadata.compiler.version; + } else { + throw new Error('No compiler version found in metadata'); + } + + const { solcJsonInput, contractPath, contractName } = + createJsonInputFromMetadata(metadata, solidity); + + this.solcJsonInput = solcJsonInput; + this.compiledPath = contractPath; + this.name = contractName; + } + + public constructor( + metadata: Metadata, + solidity: StringMap, + missing: MissingSources = {}, + invalid: InvalidSources = {} + ) { + this.missing = missing; + this.invalid = invalid; + this.initSolcJsonInput(metadata, solidity); + } + + /** + * Function to try to generate variations of the metadata of the contract such that it will match to the hash in the onchain bytecode. + * Generates variations of the given source files and replaces the hashes in the metadata with the hashes of the variations. + * If found, replaces this.metadata and this.solidity with the found variations. + * Useful for finding perfect matches for known types of variations such as different line endings. + * + * @param deployedBytecode + * @returns the perfectly matching CheckedContract or null otherwise + */ + async tryToFindPerfectMetadata( + deployedBytecode: string + ): Promise { + let decodedAuxdata; + try { + decodedAuxdata = decodeBytecode(deployedBytecode); + } catch (err) { + // There is no auxdata at all in this contract + return null; + } + + const pathContent: PathContent[] = Object.keys(this.solidity).map( + (path) => { + return { + path, + content: this.solidity[path] || '', + }; + } + ); + + const byHash = storeByHash(pathContent); + + /* + * storeByHash returns a mapping like this one: + * Map({ + * keccak256str(variation.content): { + * content, + * path: pathContent.path, + * variation: contentVariator + '.' + endingVariator, + * } + * }) + * + * we need to group all the different files by variation: + * + * { + * "1.1": [ + * { + * content, + * path: pathContent.path, + * variation: "1.1", + * }, + * ... + * ], + * "1.2": [...] + * } + */ + const byVariation = groupBy( + // the second parameter of Array.from is needed to pass to the groupBy function + // an array of all the values of the the mapping, othwerise [key,value] is passed + Array.from(byHash, ([, value]) => value), + 'variation' + ); + + // We should canonicalize the metadata when we are generating "metadata variations" when we have a partial match. + // It could be that the user somehow mixed the orderings of the metadata or added whitespaces etc. + // For more information read https://github.com/ethereum/sourcify/issues/978 + const metadata: Metadata = reorderAlphabetically( + JSON.parse(this.metadataRaw) + ) as Metadata; + + // For each variation + // 1. replace: "keccak256" and "url" fields in the metadata with the hashes of the variation + // 2. take the hash of the modified metadata + // 3. Check if this will match the hash in the bytecode + for (const sources of Object.values(byVariation)) { + metadata.sources = sources.reduce((sources: MetadataSources, source) => { + if (metadata.sources[source.path]) { + sources[source.path] = metadata.sources[source.path]; + sources[source.path].keccak256 = keccak256str(source.content); + if (sources[source.path].content) { + sources[source.path].content = source.content; + } + if (sources[source.path].urls) { + sources[source.path].urls = sources[source.path].urls?.map( + (url: string) => { + if (url.includes('dweb:/ipfs/')) { + return `dweb:/ipfs/${ipfsHash(source.content)}`; + } + if (url.includes('bzz-raw://')) { + // Here swarmBzzr1Hash is always used + // https://github.com/ethereum/solidity/blob/eb2f874eac0aa871236bf5ff04b7937c49809c33/libsolidity/interface/CompilerStack.cpp#L1549 + return `bzz-raw://${swarmBzzr1Hash(source.content)}`; + } + return ''; + } + ); + } + } + return sources; + }, {}); + + if (decodedAuxdata?.ipfs) { + const compiledMetadataIpfsCID = ipfsHash(JSON.stringify(metadata)); + if (decodedAuxdata?.ipfs === compiledMetadataIpfsCID) { + return new CheckedContract( + metadata, + getSolidityFromPathContents(sources) + ); + } + } + if (decodedAuxdata?.bzzr1) { + const compiledMetadataBzzr1 = swarmBzzr1Hash(JSON.stringify(metadata)); + if (decodedAuxdata?.bzzr1 === compiledMetadataBzzr1) { + return new CheckedContract( + metadata, + getSolidityFromPathContents(sources) + ); + } + } + if (decodedAuxdata?.bzzr0) { + const compiledMetadataBzzr0 = swarmBzzr0Hash(JSON.stringify(metadata)); + if (decodedAuxdata?.bzzr0 === compiledMetadataBzzr0) { + return new CheckedContract( + metadata, + getSolidityFromPathContents(sources) + ); + } + } + } + return null; + } + + public async recompile(): Promise { + if (!CheckedContract.isValid(this)) { + await CheckedContract.fetchMissing(this); + } + + const version = this.metadata.compiler.version; + + const output = await useCompiler(version, this.solcJsonInput); + if ( + !output.contracts || + !output.contracts[this.compiledPath] || + !output.contracts[this.compiledPath][this.name] || + !output.contracts[this.compiledPath][this.name].evm || + !output.contracts[this.compiledPath][this.name].evm.bytecode + ) { + const errorMessages = output.errors + .filter((e: any) => e.severity === 'error') + .map((e: any) => e.formattedMessage); + + const error = new Error('Compiler error'); + logWarn( + `Compiler error in CheckedContract.recompile: \n${errorMessages.join( + '\n\t' + )}` + ); + throw error; + } + + const contract: any = output.contracts[this.compiledPath][this.name]; + return { + creationBytecode: `0x${contract.evm.bytecode.object}`, + deployedBytecode: `0x${contract.evm.deployedBytecode.object}`, + metadata: contract.metadata.trim(), + // Sometimes the compiler returns empty object (not falsey). Convert it to undefined (falsey). + immutableReferences: + contract.evm.deployedBytecode.immutableReferences && + Object.keys(contract.evm.deployedBytecode.immutableReferences).length > + 0 + ? contract.evm.deployedBytecode.immutableReferences + : undefined, + }; + } + + /** + * Asynchronously attempts to fetch the missing sources of this contract. An error is thrown in case of a failure. + * + * @param log log object + */ + public static async fetchMissing(contract: CheckedContract): Promise { + const retrieved: StringMap = {}; + const missingFiles: string[] = []; + for (const fileName in contract.missing) { + const file = contract.missing[fileName]; + const hash = contract.missing[fileName].keccak256; + + let retrievedContent = null; + + const githubUrl = getGithubUrl(fileName); + if (githubUrl) { + retrievedContent = await performFetch(githubUrl, hash, fileName); + } else { + for (const url of file.urls) { + if (url.startsWith(IPFS_PREFIX)) { + const ipfsCode = url.slice(IPFS_PREFIX.length); + const ipfsUrl = getIpfsGateway() + ipfsCode; + retrievedContent = await performFetch(ipfsUrl, hash, fileName); + if (retrievedContent) { + break; + } + } + } + } + + if (retrievedContent) { + retrieved[fileName] = retrievedContent; + } else { + missingFiles.push(fileName); + break; // makes an early exit + } + } + + for (const fileName in retrieved) { + delete contract.missing[fileName]; + contract.solidity[fileName] = retrieved[fileName]; + } + + const { solcJsonInput, contractPath, contractName } = + createJsonInputFromMetadata(contract.metadata, contract.solidity); + + contract.solcJsonInput = solcJsonInput; + contract.compiledPath = contractPath; + contract.name = contractName; + + if (missingFiles.length) { + const error = new Error( + `Resource missing; unsuccessful fetching: ${missingFiles.join(', ')}` + ); + throw error; + } + } +} + +/** + * Performs fetch and, if provided an hash, compares with the file's the provided one. + * + * @param url the url to be used as the file source + * @param hash the hash of the file to be fetched; used for later comparison + * @param fileName the name of the file; used for logging + * @param log whether or not to log + * @returns the fetched file if found; null otherwise + */ +export async function performFetch( + url: string, + hash?: string, + fileName?: string +): Promise { + logInfo(`Fetching the file ${fileName} from ${url}...`); + const res = await fetchWithTimeout(url, { timeout: FETCH_TIMEOUT }).catch( + (err) => { + if (err.type === 'aborted') + logWarn( + `Fetching the file ${fileName} from ${url} timed out. Timeout: ${FETCH_TIMEOUT}ms` + ); + else logError(err); + } + ); + + if (res) { + if (res.status === 200) { + const content = await res.text(); + if (hash && keccak256str(content) !== hash) { + logError("The calculated and the provided hash don't match."); + return null; + } + + logInfo(`Successfully fetched the file ${fileName}`); + return content; + } else { + logError( + `Fetching the file ${fileName} failed with status: ${res?.status}` + ); + return null; + } + } + return null; +} + +/** + * Makes a GitHub-compatible url out of the provided url, if possible. + * + * @param url + * @returns a GitHub-compatible url if possible; null otherwise + */ +export function getGithubUrl(url: string): string | null { + if (!url.includes('github.com')) { + return null; + } + return url + .replace('github.com', 'raw.githubusercontent.com') + .replace('/blob/', '/'); +} + +/** + * Checks whether the provided object contains any keys or not. + * @param obj The object whose emptiness is tested. + * @returns true if any keys present; false otherwise + */ +export function isEmpty(obj: object): boolean { + return !Object.keys(obj).length && obj.constructor === Object; +} + +/** + * Formats metadata into an object which can be passed to solc for recompilation + * @param {any} metadata solc metadata object + * @param {string[]} sources solidity sources + * @return {ReformattedMetadata} + */ +function createJsonInputFromMetadata( + metadata: Metadata, + sources: StringMap +): CompilableMetadata { + const solcJsonInput: Partial = {}; + let contractPath = ''; + let contractName = ''; + + solcJsonInput.settings = JSON.parse(JSON.stringify(metadata.settings)); + + if ( + !metadata.settings || + !metadata.settings.compilationTarget || + Object.keys(metadata.settings.compilationTarget).length != 1 + ) { + const error = new Error( + 'createJsonInputFromMetadata: Invalid compilationTarget' + ); + throw error; + } + + for (contractPath in metadata.settings.compilationTarget) { + contractName = metadata.settings.compilationTarget[contractPath]; + } + + delete solcJsonInput?.settings?.compilationTarget; + + // Check inliner bug for below versions https://github.com/ethereum/sourcify/issues/640 + const versions = ['0.8.2', '0.8.3', '0.8.4']; + const coercedVersion = semver.coerce(metadata.compiler.version)?.version; + + const affectedVersions = versions.filter((version) => + semver.eq(version, coercedVersion || '') + ); + if (affectedVersions.length > 0) { + if (solcJsonInput.settings?.optimizer?.details?.inliner) { + delete solcJsonInput.settings.optimizer.details.inliner; + } + } + + solcJsonInput.sources = {}; + for (const source in sources) { + solcJsonInput.sources[source] = { content: sources[source] }; + } + + solcJsonInput.language = metadata.language; + solcJsonInput.settings = { + ...solcJsonInput.settings, + outputSelection: solcJsonInput?.settings?.outputSelection || {}, + metadata: solcJsonInput?.settings?.metadata || {}, + }; + + solcJsonInput.settings.outputSelection['*'] = + solcJsonInput.settings.outputSelection['*'] || {}; + + solcJsonInput.settings.outputSelection['*']['*'] = [ + 'evm.bytecode.object', + 'evm.deployedBytecode.object', + 'evm.deployedBytecode.immutableReferences', + 'metadata', + ]; + + solcJsonInput.settings.libraries = { '': metadata.settings.libraries || {} }; + + return { + solcJsonInput: solcJsonInput as JsonInput, + contractPath, + contractName, + }; +} + +/** + * Because the gateway might change across tests, don't set it to a variable but look for env variable. + * Otherwise fall back to the default ipfs.io. + * + * This will likely moved to server or somewhere else. But keep it here for now. + */ +export function getIpfsGateway(): string { + return process.env.IPFS_GATEWAY || 'https://ipfs.io/ipfs/'; +} + +export const findContractPathFromContractName = ( + contracts: any, + contractName: string +): string | null => { + for (const key of Object.keys(contracts)) { + const contractsList = contracts[key]; + if (Object.keys(contractsList).includes(contractName)) { + return key; + } + } + return null; +}; + +/** + * The groupBy function is a function that takes an + * array and a key as input,and returns an object containing + * an index of the array elements grouped by the value of + * the specified key. + */ +const groupBy = function ( + xs: T[], + key: string +): { index?: T[] } { + return xs.reduce(function (rv: { [index: string]: T[] }, x: T) { + (rv[x[key]] = rv[x[key]] || []).push(x); + return rv; + }, {}); +}; + +const getSolidityFromPathContents = function (sources: PathContent[]) { + return sources.reduce((sources: StringMap, source) => { + sources[source.path] = source.content; + return sources; + }, {}); +}; + +function reorderAlphabetically(obj: any): any { + // Do not reorder arrays or other types + if (typeof obj !== 'object' || obj === null || Array.isArray(obj)) { + return obj; + } + + const ordered: any = {}; + + Object.keys(obj) + .sort((a, b) => a.localeCompare(b)) + .forEach((key: string) => { + ordered[key] = reorderAlphabetically(obj[key]); + }); + + return ordered; +} diff --git a/packages/lib-sourcify/src/lib/SourcifyChain.ts b/packages/lib-sourcify/src/lib/SourcifyChain.ts new file mode 100644 index 000000000..9f6f32615 --- /dev/null +++ b/packages/lib-sourcify/src/lib/SourcifyChain.ts @@ -0,0 +1,243 @@ +import { + FetchRequest, + JsonRpcProvider, + Network, + TransactionResponse, + getAddress, +} from 'ethers'; +import { Chain, SourcifyChainExtension } from './types'; +import { logInfo, logWarn } from './logger'; + +const RPC_TIMEOUT = process.env.RPC_TIMEOUT + ? parseInt(process.env.RPC_TIMEOUT) + : 5000; + +// It is impossible to get the url from the Provider for logging purposes +interface JsonRpcProviderWithUrl extends JsonRpcProvider { + url?: string; +} + +// Need to define the rpc property explicitly as when a sourcifyChain is created with {...chain, sourcifyChainExtension}, Typescript throws with "Type '(string | FetchRequest)[]' is not assignable to type 'string[]'." For some reason the Chain.rpc is not getting overwritten by SourcifyChainExtension.rpc +export type SourcifyChainInstance = Omit & + Omit & { rpc: Array }; + +export default class SourcifyChain { + name: string; + title?: string | undefined; + chainId: number; + rpc: Array; + supported: boolean; + monitored: boolean; + contractFetchAddress?: string | undefined; + graphQLFetchAddress?: string | undefined; + txRegex?: string[] | undefined; + providers: JsonRpcProviderWithUrl[]; + + constructor(sourcifyChainObj: SourcifyChainInstance) { + this.name = sourcifyChainObj.name; + this.title = sourcifyChainObj.title; + this.chainId = sourcifyChainObj.chainId; + this.rpc = sourcifyChainObj.rpc; + this.supported = sourcifyChainObj.supported; + this.monitored = sourcifyChainObj.monitored; + this.contractFetchAddress = sourcifyChainObj.contractFetchAddress; + this.graphQLFetchAddress = sourcifyChainObj.graphQLFetchAddress; + this.txRegex = sourcifyChainObj.txRegex; + this.providers = []; + + if (!this.supported) return; // Don't create providers if chain is not supported + + if (!this?.rpc.length) + throw new Error( + 'No RPC provider was given for this chain with id ' + + this.chainId + + ' and name ' + + this.name + ); + + for (const rpc of this.rpc) { + let provider: JsonRpcProviderWithUrl | undefined; + const ethersNetwork = new Network(this.name, this.chainId); + if (typeof rpc === 'string') { + if (rpc.startsWith('http')) { + // Use staticNetwork to avoid sending unnecessary eth_chainId requests + provider = new JsonRpcProvider(rpc, ethersNetwork, { + staticNetwork: ethersNetwork, + }); + provider.url = rpc; + } else { + // Do not use WebSockets because of not being able to catch errors on websocket initialization. Most networks don't support WebSockets anyway. See https://github.com/ethers-io/ethers.js/discussions/2896 + // provider = new WebSocketProvider(rpc); + logInfo(`Won't create a WebSocketProvider for ${rpc}`); + } + } else { + provider = new JsonRpcProvider(rpc, ethersNetwork, { + staticNetwork: ethersNetwork, + }); + provider.url = rpc.url; + } + if (provider) { + this.providers.push(provider); + } + } + } + + rejectInMs = (ms: number, host?: string) => + new Promise((_resolve, reject) => { + setTimeout(() => reject(`RPC ${host} took too long to respond`), ms); + }); + + getTx = async (creatorTxHash: string) => { + // Try sequentially all providers + for (const provider of this.providers) { + try { + // Race the RPC call with a timeout + const tx = await Promise.race([ + provider.getTransaction(creatorTxHash), + this.rejectInMs(RPC_TIMEOUT, provider.url), + ]); + if (tx instanceof TransactionResponse) { + logInfo( + `Transaction ${creatorTxHash} fetched via ${provider.url} from chain ${this.chainId}` + ); + return tx; + } else { + throw new Error( + `Transaction ${creatorTxHash} not found on RPC ${provider.url} and chain ${this.chainId}` + ); + } + } catch (err) { + if (err instanceof Error) { + logWarn( + `Can't fetch the transaction ${creatorTxHash} from RPC ${provider.url} and chain ${this.chainId}\n ${err}` + ); + continue; + } else { + throw err; + } + } + } + throw new Error( + 'None of the RPCs responded fetching tx ' + + creatorTxHash + + ' on chain ' + + this.chainId + ); + }; + + /** + * Fetches the contract's deployed bytecode from SourcifyChain's rpc's. + * Tries to fetch sequentially if the first RPC is a local eth node. Fetches in parallel otherwise. + * + * @param {SourcifyChain} sourcifyChain - chain object with rpc's + * @param {string} address - contract address + */ + getBytecode = async (address: string): Promise => { + address = getAddress(address); + + // Request sequentially. Custom node is always before ALCHEMY so we don't waste resources if succeeds. + for (const provider of this.providers) { + try { + // Race the RPC call with a timeout + const bytecode = await Promise.race([ + provider.getCode(address), + this.rejectInMs(RPC_TIMEOUT, provider.url), + ]); + logInfo( + 'Bytecode fetched from ' + + provider.url + + ' for ' + + address + + ' on chain ' + + this.chainId + ); + return bytecode; + } catch (err) { + if (err instanceof Error) { + logWarn( + `Can't fetch bytecode from RPC ${provider.url} and chain ${this.chainId}` + ); + continue; + } else { + throw err; + } + } + } + throw new Error( + 'None of the RPCs responded fetching bytecode for ' + + address + + ' on chain ' + + this.chainId + ); + }; + + getBlock = async (blockNumber: number, preFetchTxs = true) => { + // Request sequentially. Custom node is always before ALCHEMY so we don't waste resources if succeeds. + for (const provider of this.providers) { + try { + // Race the RPC call with a timeout + const block = await Promise.race([ + provider.getBlock(blockNumber, preFetchTxs), + this.rejectInMs(RPC_TIMEOUT, provider.url), + ]); + logInfo( + 'Block fetched from ' + + provider.url + + ' for ' + + blockNumber + + ' on chain ' + + this.chainId + ); + return block; + } catch (err) { + if (err instanceof Error) { + logWarn( + `Can't fetch block ${blockNumber} from RPC ${provider.url} and chain ${this.chainId}` + ); + continue; + } else { + throw err; + } + } + } + throw new Error( + 'None of the RPCs responded fetching block ' + + blockNumber + + ' on chain ' + + this.chainId + ); + }; + + getBlockNumber = async () => { + // Request sequentially. Custom node is always before ALCHEMY so we don't waste resources if succeeds. + for (const provider of this.providers) { + try { + // Race the RPC call with a timeout + const block = await Promise.race([ + provider.getBlockNumber(), + this.rejectInMs(RPC_TIMEOUT, provider.url), + ]); + logInfo( + 'Block number fetched from ' + + provider.url + + ' on chain ' + + this.chainId + ); + return block; + } catch (err) { + if (err instanceof Error) { + logWarn( + `Can't fetch the current block number from RPC ${provider.url} and chain ${this.chainId}` + ); + continue; + } else { + throw err; + } + } + } + throw new Error( + 'None of the RPCs responded fetching the blocknumber on chain ' + + this.chainId + ); + }; +} diff --git a/packages/lib-sourcify/src/lib/hashFunctions/ipfsHash.ts b/packages/lib-sourcify/src/lib/hashFunctions/ipfsHash.ts new file mode 100644 index 000000000..483a850bc --- /dev/null +++ b/packages/lib-sourcify/src/lib/hashFunctions/ipfsHash.ts @@ -0,0 +1,179 @@ +// This is a ChatGPT typescript translation of the file https://github.com/ethereum/solidity/blob/develop/libsolutil/IpfsHash.cpp + +import bs58 from 'bs58'; +import * as crypto from 'crypto'; + +interface Link { + hash: Buffer; + size: number; + blockSize: number; +} + +function varintEncoding(n: number) { + const encoded = []; + while (n > 0x7f) { + encoded.push(0x80 | (n & 0x7f)); + n >>= 7; + } + encoded.push(n); + return Buffer.from(encoded); +} + +function encodeByteArray(data: Buffer) { + return Buffer.concat([ + Buffer.from([0x0a]), + varintEncoding(data.length), + data, + ]); +} + +function encodeHash(data: Buffer) { + return Buffer.concat([ + Buffer.from([0x12, 0x20]), + crypto.createHash('sha256').update(data).digest(), + ]); +} + +function encodeLinkData(data: Buffer) { + return Buffer.concat([ + Buffer.from([0x12]), + varintEncoding(data.length), + data, + ]); +} + +function base58Encode(data: Buffer) { + return bs58.encode(data); +} + +function combineLinks(links: Link[]) { + let data = Buffer.alloc(0); + let lengths = Buffer.alloc(0); + const chunk = { + hash: Buffer.alloc(0), + size: 0, + blockSize: 0, + }; + + for (const link of links) { + chunk.size += link.size; + chunk.blockSize += link.blockSize; + + data = Buffer.concat([ + data, + encodeLinkData( + Buffer.concat([ + Buffer.from([0x0a]), + varintEncoding(link.hash.length), + link.hash, + Buffer.from([0x12, 0x00, 0x18]), + varintEncoding(link.blockSize), + ]) + ), + ]); + + lengths = Buffer.concat([ + lengths, + Buffer.from([0x20]), + varintEncoding(link.size), + ]); + } + + const blockData = Buffer.concat([ + data, + encodeByteArray( + Buffer.concat([ + Buffer.from([0x08, 0x02, 0x18]), + varintEncoding(chunk.size), + lengths, + ]) + ), + ]); + + chunk.blockSize += blockData.length; + chunk.hash = encodeHash(blockData); + + return chunk; +} + +function buildNextLevel(currentLevel: Link[]) { + const maxChildNum = 174; + const nextLevel = []; + const links = []; + + for (const chunk of currentLevel) { + links.push({ + hash: chunk.hash, + size: chunk.size, + blockSize: chunk.blockSize, + }); + + if (links.length === maxChildNum) { + nextLevel.push(combineLinks(links)); + links.length = 0; + } + } + + if (links.length > 0) { + nextLevel.push(combineLinks(links)); + } + + return nextLevel; +} + +function groupChunksBottomUp(currentLevel: Link[]) { + while (currentLevel.length !== 1) { + currentLevel = buildNextLevel(currentLevel); + } + + return currentLevel[0].hash; +} + +function ipfsHashData(data: Uint8Array) { + const maxChunkSize = 1024 * 256; + const chunkCount = Math.ceil(data.length / maxChunkSize); + + const allChunks = []; + + for (let chunkIndex = 0; chunkIndex < chunkCount; chunkIndex++) { + const chunkBytes = Buffer.from( + data.slice(chunkIndex * maxChunkSize, (chunkIndex + 1) * maxChunkSize) + ); + + const lengthAsVarint = varintEncoding(chunkBytes.length); + + let protobufEncodedData = Buffer.concat([Buffer.from([0x08, 0x02])]); + if (chunkBytes.length > 0) { + protobufEncodedData = Buffer.concat([ + protobufEncodedData, + Buffer.from([0x12]), + lengthAsVarint, + chunkBytes, + ]); + } + protobufEncodedData = Buffer.concat([ + protobufEncodedData, + Buffer.from([0x18]), + lengthAsVarint, + ]); + + const blockData = encodeByteArray(protobufEncodedData); + + allChunks.push({ + hash: encodeHash(blockData), + size: chunkBytes.length, + blockSize: blockData.length, + }); + } + + return groupChunksBottomUp(allChunks); +} + +function ipfsHashBase58(data: Uint8Array): string { + return base58Encode(ipfsHashData(data)); +} + +export function ipfsHash(str: string) { + const buffer = new TextEncoder().encode(str); + return ipfsHashBase58(buffer); +} diff --git a/packages/lib-sourcify/src/lib/hashFunctions/swarmHash.ts b/packages/lib-sourcify/src/lib/hashFunctions/swarmHash.ts new file mode 100644 index 000000000..51ab2b80e --- /dev/null +++ b/packages/lib-sourcify/src/lib/hashFunctions/swarmHash.ts @@ -0,0 +1,68 @@ +import { makeChunkedFile } from '@fairdatasociety/bmt-js'; +import { keccak256 } from 'ethers'; + +export function swarmBzzr1Hash(file: string) { + // convert file to Uint8Array + const encoder = new TextEncoder(); + const fileBytes = encoder.encode(file); + + // Binary Merkle Tree on the file + const chunkedFile = makeChunkedFile(fileBytes); + + // get the address from the chunked file + const bytes = chunkedFile.address(); + + // convert the address to hex string + const hexByte = (n: number) => n.toString(16).padStart(2, '0'); + return Array.from(bytes, hexByte).join(''); +} + +function toLittleEndian(size: number): Uint8Array { + const encoded = new Uint8Array(8); + for (let i = 0; i < 8; ++i) { + encoded[i] = (size >> (8 * i)) & 0xff; + } + return encoded; +} + +function swarmHashSimple(data: Uint8Array, size: number): string { + const combinedData = new Uint8Array([...toLittleEndian(size), ...data]); + return keccak256(Buffer.from(combinedData.buffer)); +} + +function swarmHashIntermediate( + input: Uint8Array, + offset: number, + length: number +): string { + let ref: Uint8Array; + let innerNodes = new Uint8Array(); + + if (length <= 0x1000) { + ref = input.slice(offset, offset + length); + } else { + let maxRepresentedSize = 0x1000; + while (maxRepresentedSize * (0x1000 / 32) < length) { + maxRepresentedSize *= 0x1000 / 32; + } + + for (let i = 0; i < length; i += maxRepresentedSize) { + const size = Math.min(maxRepresentedSize, length - i); + const innerNode = swarmHashIntermediate(input, offset + i, size); + innerNodes = new Uint8Array([ + ...innerNodes, + ...new Uint8Array(Buffer.from(innerNode, 'hex')), + ]); + } + + ref = innerNodes; + } + + return swarmHashSimple(ref, length); +} + +export function swarmBzzr0Hash(file: string): string { + const encoder = new TextEncoder(); + const fileBytes = encoder.encode(file); + return swarmHashIntermediate(fileBytes, 0, fileBytes.length); +} diff --git a/packages/lib-sourcify/src/lib/logger.ts b/packages/lib-sourcify/src/lib/logger.ts new file mode 100644 index 000000000..9e2c36e85 --- /dev/null +++ b/packages/lib-sourcify/src/lib/logger.ts @@ -0,0 +1,58 @@ +export interface ILogger { + logLevel: number; + log: (level: number, message: string) => void; + setLevel: (level: number) => void; +} + +// Default logger behavior +export const DefaultLogger: ILogger = { + logLevel: 2, + setLevel(level: number) { + this.logLevel = level; + }, + log(level, msg) { + if (level <= this.logLevel) { + switch (level) { + case 1: + console.error(msg); + break; + case 2: + console.warn(msg); + break; + case 3: + console.info(msg); + break; + case 4: + console.debug(msg); + break; + } + } + }, +}; + +// Logger variable that will be used throughout the application +let AppLogger: ILogger = DefaultLogger; + +export function setLogger(logger: ILogger) { + AppLogger = logger; +} + +export function setLevel(level: number) { + AppLogger.setLevel(level); +} + +export function logError(message: string) { + AppLogger.log(1, message); +} + +export function logWarn(message: string) { + AppLogger.log(2, message); +} + +export function logInfo(message: string) { + AppLogger.log(3, message); +} + +export function logDebug(message: string) { + AppLogger.log(4, message); +} diff --git a/packages/lib-sourcify/src/lib/solidityCompiler.ts b/packages/lib-sourcify/src/lib/solidityCompiler.ts new file mode 100644 index 000000000..e0eebf50c --- /dev/null +++ b/packages/lib-sourcify/src/lib/solidityCompiler.ts @@ -0,0 +1,262 @@ +// TODO: Handle nodejs only dependencies +import path from 'path'; +import fs from 'fs'; +import { spawnSync } from 'child_process'; +import { fetchWithTimeout } from './utils'; +import { StatusCodes } from 'http-status-codes'; +import { JsonInput, PathBuffer } from './types'; +import { logError, logInfo, logWarn } from './logger'; +// eslint-disable-next-line @typescript-eslint/no-var-requires +const solc = require('solc'); + +const GITHUB_SOLC_REPO = 'https://github.com/ethereum/solc-bin/raw/gh-pages/'; +const RECOMPILATION_ERR_MSG = + 'Recompilation error (probably caused by invalid metadata)'; + +export function findSolcPlatform(): string | false { + if (process.platform === 'darwin' && process.arch === 'x64') { + return 'macosx-amd64'; + } + if (process.platform === 'linux' && process.arch === 'x64') { + return 'linux-amd64'; + } + if (process.platform === 'win32' && process.arch === 'x64') { + return 'windows-amd64'; + } + return false; +} +/** + * Searches for a solc: first for a local executable version, then from GitHub + * and then using the getSolcJs function. + * Once the compiler is retrieved, it is used, and the stringified solc output is returned. + * + * @param version the version of solc to be used for compilation + * @param input a JSON object of the standard-json format compatible with solc + * @param log the logger + * @returns stringified solc output + */ + +export async function useCompiler(version: string, solcJsonInput: JsonInput) { + // For nightly builds, Solidity version is saved as 0.8.17-ci.2022.8.9+commit.6b60524c instead of 0.8.17-nightly.2022.8.9+commit.6b60524c. + // Not possible to retrieve compilers with "-ci.". + if (version.includes('-ci.')) version = version.replace('-ci.', '-nightly.'); + const inputStringified = JSON.stringify(solcJsonInput); + let compiled: string | undefined; + + const solcPlatform = findSolcPlatform(); + let solcPath; + if (solcPlatform) { + solcPath = await getSolcExecutable(solcPlatform, version); + } + const startCompilation = Date.now(); + if (solcPath) { + const shellOutputBuffer = spawnSync(solcPath, ['--standard-json'], { + input: inputStringified, + maxBuffer: 1000 * 1000 * 10, + }); + + // Handle errors. + let error: false | Error = false; + if (shellOutputBuffer.error) { + const typedError: NodeJS.ErrnoException = shellOutputBuffer.error; + // Handle compilation output size > stdout buffer + if (typedError.code === 'ENOBUFS') { + error = new Error('Compilation output size too large'); + } + error = new Error('Compilation Error'); + } + if (!shellOutputBuffer.stdout) { + error = new Error(RECOMPILATION_ERR_MSG); + } + if (error) { + logWarn(error.message); + throw error; + } + compiled = shellOutputBuffer.stdout.toString(); + } else { + const soljson = await getSolcJs(version); + if (soljson) { + compiled = soljson.compile(inputStringified); + } + } + + const endCompilation = Date.now(); + logInfo(`Compilation time : ${endCompilation - startCompilation} ms`); + + if (!compiled) { + throw new Error('Compilation failed. No output from the compiler.'); + } + const compiledJSON = JSON.parse(compiled); + const errorMessages = compiledJSON?.errors?.filter( + (e: any) => e.severity === 'error' + ); + if (errorMessages && errorMessages.length > 0) { + const error = new Error( + 'Compiler error:\n ' + JSON.stringify(errorMessages) + ); + logError(error.message); + throw error; + } + return compiledJSON; +} + +export async function getAllMetadataAndSourcesFromSolcJson( + solcJson: JsonInput, + compilerVersion: string +): Promise { + if (solcJson.language !== 'Solidity') + throw new Error( + 'Only Solidity is supported, the json has language: ' + solcJson.language + ); + const outputSelection = { + '*': { + '*': ['metadata'], + }, + }; + if (!solcJson.settings) { + solcJson.settings = { + outputSelection: outputSelection, + }; + } + solcJson.settings.outputSelection = outputSelection; + const compiled = await useCompiler(compilerVersion, solcJson); + const metadataAndSources: PathBuffer[] = []; + if (!compiled.contracts) + throw new Error('No contracts found in the compiled json output'); + for (const contractPath in compiled.contracts) { + for (const contract in compiled.contracts[contractPath]) { + const metadata = compiled.contracts[contractPath][contract].metadata; + const metadataPath = `${contractPath}-metadata.json`; + metadataAndSources.push({ + path: metadataPath, + buffer: Buffer.from(metadata), + }); + metadataAndSources.push({ + path: `${contractPath}`, + buffer: Buffer.from(solcJson.sources[contractPath].content as string), + }); + } + } + return metadataAndSources; +} + +export async function getSolcExecutable( + platform: string, + version: string +): Promise { + const fileName = `solc-${platform}-v${version}`; + const repoPath = process.env.SOLC_REPO || path.join('/tmp', 'solc-repo'); + const solcPath = path.join(repoPath, fileName); + if (fs.existsSync(solcPath) && validateSolcPath(solcPath)) { + return solcPath; + } + const success = await fetchAndSaveSolc(platform, solcPath, version, fileName); + if (success && !validateSolcPath(solcPath)) { + logError(`Cannot validate solc ${version}.`); + return null; + } + return success ? solcPath : null; +} + +function validateSolcPath(solcPath: string): boolean { + // TODO: Handle nodejs only dependencies + const spawned = spawnSync(solcPath, ['--version']); + if (spawned.status === 0) { + return true; + } + + const error = + spawned?.error?.message || + spawned.stderr.toString() || + 'Error running solc, are you on the right platoform? (e.g. x64 vs arm)'; + + logWarn(error); + return false; +} + +/** + * Fetches a solc binary from GitHub and saves it to the given path. + * + * If platform is "bin", it will download the solc-js binary. + */ +async function fetchAndSaveSolc( + platform: string, + solcPath: string, + version: string, + fileName: string +): Promise { + const encodedURIFilename = encodeURIComponent(fileName); + const githubSolcURI = `${GITHUB_SOLC_REPO}${platform}/${encodedURIFilename}`; + let res = await fetchWithTimeout(githubSolcURI); + let status = res.status; + let buffer; + + // handle case in which the response is a link to another version + if (status === StatusCodes.OK) { + buffer = await res.arrayBuffer(); + const responseText = Buffer.from(buffer).toString(); + if ( + /^([\w-]+)-v(\d+\.\d+\.\d+)\+commit\.([a-fA-F0-9]+).*$/.test(responseText) + ) { + const githubSolcURI = `${GITHUB_SOLC_REPO}${platform}/${responseText}`; + res = await fetchWithTimeout(githubSolcURI); + status = res.status; + buffer = await res.arrayBuffer(); + } + } + + if (status === StatusCodes.OK && buffer) { + fs.mkdirSync(path.dirname(solcPath), { recursive: true }); + + try { + fs.unlinkSync(solcPath); + } catch (_e) { + undefined; + } + fs.writeFileSync(solcPath, new DataView(buffer), { mode: 0o755 }); + + return true; + } else { + logWarn(`Failed fetching solc ${version} from GitHub: ${githubSolcURI}`); + } + + return false; +} + +/** + * Fetches the requested version of the Solidity compiler (soljson). + * First attempts to search locally; if that fails, falls back to downloading it. + * + * @param version the solc version to retrieve: the expected format is + * + * "[v]..+commit." + * + * e.g.: "0.6.6+commit.6c089d02" + * + * defaults to "latest" + * + * @param log a logger to track the course of events + * + * @returns the requested solc instance + */ +export async function getSolcJs(version = 'latest'): Promise { + // /^\d+\.\d+\.\d+\+commit\.[a-f0-9]{8}$/ + version = version.trim(); + if (version !== 'latest' && !version.startsWith('v')) { + version = 'v' + version; + } + + const soljsonRepo = + process.env.SOLJSON_REPO || path.join('/tmp', 'soljson-repo'); + const fileName = `soljson-${version}.js`; + const soljsonPath = path.resolve(soljsonRepo, fileName); + + if (!fs.existsSync(soljsonPath)) { + if (!(await fetchAndSaveSolc('bin', soljsonPath, version, fileName))) { + return false; + } + } + + const solcjsImports = await import(soljsonPath); + return solc.setupMethods(solcjsImports); +} diff --git a/packages/lib-sourcify/src/lib/types.ts b/packages/lib-sourcify/src/lib/types.ts new file mode 100644 index 000000000..a0c220bdc --- /dev/null +++ b/packages/lib-sourcify/src/lib/types.ts @@ -0,0 +1,321 @@ +import { Abi } from 'abitype'; +import { FetchRequest } from 'ethers'; +import SourcifyChain from './SourcifyChain'; +export interface PathBuffer { + path: string; + buffer: Buffer; +} + +export interface PathContent { + path: string; + content: string; +} + +export interface StringMap { + [key: string]: string; +} + +export interface InvalidSources { + [key: string]: { + expectedHash: string; + calculatedHash: string; + msg?: string; // Keep msg for compatibilty with legacy UI + }; +} + +export interface MissingSources { + [key: string]: { + keccak256: string; + urls: string[]; + }; +} + +export interface MetadataSources { + [index: string]: { + keccak256: string; + content?: string; + urls?: string[]; + license?: string; + }; +} + +export interface Devdoc { + author?: string; + details?: string; + errors?: { + [index: string]: { + details?: string; + }; + }; + events?: { + [index: string]: { + details?: string; + params?: any; + }; + }; + kind: 'dev'; + methods: { + [index: string]: { + details?: string; + params?: any; + returns?: any; + }; + }; + stateVariables?: any; + title?: string; + version?: number; +} + +export interface Userdoc { + errors?: { + [index: string]: { + notice?: string; + }[]; + }; + events?: { + [index: string]: { + notice?: string; + }; + }; + kind: 'user'; + methods: { + [index: string]: { + notice: string; + }; + }; + version?: number; +} + +export interface MetadataOutput { + abi: Abi; + devdoc: Devdoc; + userdoc: Userdoc; +} + +// Metadata type that reflects the metadata object from +// https://docs.soliditylang.org/en/latest/metadata.html +export interface Metadata { + compiler: { + keccak256?: string; + version: string; + }; + language: string; + output: MetadataOutput; + settings: { + compilationTarget: { + [sourceName: string]: string; + }; + evmVersion: string; + libraries?: { + [index: string]: string; + }; + metadata?: { + appendCBOR?: boolean; + bytecodeHash?: 'none' | 'ipfs' | 'bzzr0' | 'bzzr1'; + useLiteralContent?: boolean; + }; + optimizer?: { + details?: { + constantOptimizer?: boolean; + cse?: boolean; + deduplicate?: boolean; + inliner?: boolean; + jumpdestRemover?: boolean; + orderLiterals?: boolean; + peephole?: boolean; + yul?: boolean; + yulDetails?: { + optimizerSteps?: string; + stackAllocation?: boolean; + }; + }; + enabled: boolean; + runs: number; + }; + outputSelection?: any; + }; + sources: MetadataSources; + version: number; +} + +// TODO: Fully define solcJsonInput +export declare interface CompilableMetadata { + solcJsonInput: JsonInput; + contractPath: string; + contractName: string; +} + +export interface ImmutableReferences { + [key: string]: Array<{ + length: number; + start: number; + }>; +} +export interface RecompilationResult { + creationBytecode: string; + deployedBytecode: string; + metadata: string; + immutableReferences: ImmutableReferences; +} + +export interface Match { + address: string; + chainId: string; + status: Status; + storageTimestamp?: Date; + message?: string; + abiEncodedConstructorArguments?: string; + create2Args?: Create2Args; + libraryMap?: StringMap; + /* contextVariables?: ContextVariables; */ + creatorTxHash?: string; + immutableReferences?: ImmutableReferences; +} + +export type Status = + | 'perfect' + | 'partial' + | 'extra-file-input-bug' + | 'error' + | null; + +export interface Create2Args { + deployerAddress: string; + salt: string; + constructorArgs?: any[]; +} + +export type SourcifyChainExtension = { + supported: boolean; + monitored: boolean; + contractFetchAddress?: string; + graphQLFetchAddress?: string; + txRegex?: string[]; + rpc?: Array; +}; + +// TODO: Double check against ethereum-lists/chains type +export type Chain = { + name: string; + title?: string; + chainId: number; + shortName: string; + network?: string; + networkId: number; + nativeCurrency: Currency; + rpc: Array; + faucets?: string[]; + infoURL?: string; +}; + +export type SourcifyChainMap = { + [chainId: string]: SourcifyChain; +}; + +type Currency = { + name: string; + symbol: string; + decimals: number; +}; + +/* export type ContextVariables = { + abiEncodedConstructorArguments?: string; + msgSender?: string; +}; */ + +interface File { + keccak256?: string; + urls?: string[]; + content?: string; +} + +interface Sources { + [key: string]: File; +} + +interface YulDetails { + stackAllocation: boolean; + optimizerSteps?: string; +} + +interface Details { + peephole?: boolean; + inliner?: boolean; + jumpdestRemover?: boolean; + orderLiterals?: boolean; + deduplicate?: boolean; + cse?: boolean; + constantOptimizer?: boolean; + yul?: boolean; + yulDetails?: YulDetails; +} + +interface Optimizer { + enabled?: boolean; + runs?: number; + details?: Details; +} + +enum DebugInfo { + default = 'default', + strip = 'strip', + debug = 'debug', + verboseDebug = 'verboseDebug', +} + +interface Debug { + revertStrings: DebugInfo; + debugInfo?: string[]; +} + +interface SettingsMetadata { + useLiteralContent?: boolean; + bytecodeHash?: string; +} + +interface MapContractAddress { + [key: string]: string; +} + +interface Libraries { + [key: string]: MapContractAddress; +} + +interface OutputSelection { + [key: string]: any; +} + +interface Contracts { + [key: string]: string[]; +} + +interface ModelChecker { + contracts?: Contracts; + divModNoSlacks?: boolean; + engine?: string; + invariants?: string[]; + showUnproved?: boolean; + solvers?: string[]; + targets?: string[]; + timeout?: number; +} + +interface Settings { + stopAfter?: string; + remappings?: string[]; + optimizer?: Optimizer; + evmVersion?: string; + viaIR?: boolean; + debug?: Debug; + metadata?: SettingsMetadata; + libraries?: Libraries; + outputSelection: OutputSelection; + modelChecker?: ModelChecker; + compilationTarget?: string; +} + +export interface JsonInput { + language: string; + sources: Sources; + settings?: Settings; +} diff --git a/packages/lib-sourcify/src/lib/utils.ts b/packages/lib-sourcify/src/lib/utils.ts new file mode 100644 index 000000000..aa1fa76a6 --- /dev/null +++ b/packages/lib-sourcify/src/lib/utils.ts @@ -0,0 +1,21 @@ +require('isomorphic-fetch'); + +interface RequestInitTimeout extends RequestInit { + timeout?: number; +} + +export async function fetchWithTimeout( + resource: string, + options: RequestInitTimeout = {} +) { + const { timeout = 8000 } = options; + + const controller = new AbortController(); + const id = setTimeout(() => controller.abort(), timeout); + const response = await fetch(resource, { + ...options, + signal: controller.signal, + }); + clearTimeout(id); + return response; +} diff --git a/packages/lib-sourcify/src/lib/validation.ts b/packages/lib-sourcify/src/lib/validation.ts new file mode 100644 index 000000000..33f0cd1f9 --- /dev/null +++ b/packages/lib-sourcify/src/lib/validation.ts @@ -0,0 +1,492 @@ +import { CheckedContract } from './CheckedContract'; +import { id as keccak256str } from 'ethers'; +import { + InvalidSources, + MissingSources, + PathBuffer, + PathContent, + StringMap, +} from './types'; +import JSZip from 'jszip'; +// @TODO: Handle compatibility for browser, below are nodejs imports +import fs from 'fs'; +import Path from 'path'; + +/** + * Regular expression matching metadata nested within another json. + */ +const NESTED_METADATA_REGEX = + /"{\\"compiler\\":{\\"version\\".*?},\\"version\\":1}"/; +const HARDHAT_OUTPUT_FORMAT_REGEX = /"hh-sol-build-info-1"/; + +const CONTENT_VARIATORS = [ + (content: string) => content, + (content: string) => content.replace(/\r?\n/g, '\r\n'), + (content: string) => content.replace(/\r\n/g, '\n'), +]; + +const ENDING_VARIATORS = [ + (content: string) => content, + (content: string) => content.trimEnd(), + (content: string) => content.trimEnd() + '\n', + (content: string) => content.trimEnd() + '\r\n', + (content: string) => content + '\n', + (content: string) => content + '\r\n', +]; + +export function checkPaths(paths: string[], ignoring?: string[]) { + const files: PathBuffer[] = []; + paths.forEach((path) => { + if (fs.existsSync(path)) { + traversePathRecursively(path, (filePath) => { + const fullPath = Path.resolve(filePath); + const file = { buffer: fs.readFileSync(filePath), path: fullPath }; + files.push(file); + }); + } else if (ignoring) { + ignoring.push(path); + } + }); + + return checkFiles(files); +} + +// Pass all input source files to the CheckedContract, not just those stated in metadata. +export async function useAllSources( + contract: CheckedContract, + files: PathBuffer[] +) { + await unzipFiles(files); + const parsedFiles = files.map((pathBuffer) => ({ + content: pathBuffer.buffer.toString(), + path: pathBuffer.path, + })); + const { sourceFiles } = splitFiles(parsedFiles); + const stringMapSourceFiles = pathContentArrayToStringMap(sourceFiles); + // Files at contract.solidity are already hash matched with the sources in metadata. Use them instead of the user input .sol files. + Object.assign(stringMapSourceFiles, contract.solidity); + const contractWithAllSources = new CheckedContract( + contract.metadata, + stringMapSourceFiles, + contract.missing, + contract.invalid + ); + return contractWithAllSources; +} + +export async function checkFiles(files: PathBuffer[], unused?: string[]) { + await unzipFiles(files); + const parsedFiles = files.map((pathBuffer) => ({ + content: pathBuffer.buffer.toString(), + path: pathBuffer.path, + })); + const { metadataFiles, sourceFiles } = splitFiles(parsedFiles); + + const checkedContracts: CheckedContract[] = []; + + const byHash = storeByHash(sourceFiles); + const usedFiles: string[] = []; + + metadataFiles.forEach((metadata) => { + const { foundSources, missingSources, invalidSources, metadata2provided } = + rearrangeSources(metadata, byHash); + const currentUsedFiles = Object.values(metadata2provided); + usedFiles.push(...currentUsedFiles); + const checkedContract = new CheckedContract( + metadata, + foundSources, + missingSources, + invalidSources + ); + checkedContracts.push(checkedContract); + }); + + if (unused) { + extractUnused(sourceFiles, usedFiles, unused); + } + + return checkedContracts; +} + +/** + * Unzips any zip files found in the provided array of files. Modifies the provided array. + * + * @param files the array containing the files to be checked + */ +export async function unzipFiles(files: PathBuffer[]) { + const allUnzipped: PathBuffer[] = []; + for (let i = 0; i < files.length; i++) { + const file = files[i]; + if (isZip(file.buffer)) { + const unzipped = await unzip(file); + allUnzipped.push(...unzipped); + // Remove the zip file from the array and decrement the index to check the next file. + files.splice(i, 1); + i--; + } + } + // Add unzipped at the end to not check again if the extracted files are zips. + files.push(...allUnzipped); +} + +function isZip(file: Buffer): boolean { + // How is-zip-file checks https://github.com/luthraG/is-zip-file/blob/master/index.js + // Also according to this: https://stackoverflow.com/a/18194946/6528944 + const response = + file[0] === 0x50 && + file[1] === 0x4b && + (file[2] === 0x03 || file[2] === 0x05 || file[2] === 0x07) && + (file[3] === 0x04 || file[3] === 0x06 || file[3] === 0x08); + return response; +} + +/** + * Unzips the provided file buffer to the provided array. + * + * @param zippedFile the buffer containin the zipped file to be unpacked + * @param files the array to be filled with the content of the zip + * @returns the unzipped files as an array + */ +async function unzip(zippedFile: PathBuffer) { + const zip = new JSZip(); + const unzipped: PathBuffer[] = []; + try { + await zip.loadAsync(zippedFile.buffer); + for (const filePath in zip.files) { + const buffer = await zip.files[filePath].async('nodebuffer'); + unzipped.push({ + path: filePath, + buffer, + }); + } + } catch (e: any) { + throw new Error(`Error while unzipping ${zippedFile.path}: ${e.message}`); + } + return unzipped; +} + +/** + * Selects metadata files from an array of files that may include sources, etc + * @param {string[]} files + * @return {string[]} metadata + */ +function splitFiles(files: PathContent[]): { + metadataFiles: any[]; + sourceFiles: PathContent[]; +} { + const metadataFiles = []; + const sourceFiles: PathContent[] = []; + const malformedMetadataFiles = []; + + for (const file of files) { + // If hardhat output file, extract source and metadatas. + if (file.content.match(HARDHAT_OUTPUT_FORMAT_REGEX)) { + const { hardhatMetadataFiles, hardhatSourceFiles } = + extractHardhatMetadataAndSources(file); + sourceFiles.push(...hardhatSourceFiles); + metadataFiles.push(...hardhatMetadataFiles); + continue; + } + + let metadata = extractMetadataFromString(file.content); + if (!metadata) { + const matchRes = file.content.match(NESTED_METADATA_REGEX); + if (matchRes) { + metadata = extractMetadataFromString(matchRes[0]); + } + } + + if (metadata) { + try { + assertObjectSize(metadata.settings.compilationTarget, 1); + metadataFiles.push(metadata); + } catch (err) { + malformedMetadataFiles.push(file.path); + } + } else { + sourceFiles.push(file); + } + } + + let msg = ''; + if (malformedMetadataFiles.length) { + const responsibleFiles = malformedMetadataFiles.every(Boolean) + ? malformedMetadataFiles.join(', ') + : `${malformedMetadataFiles.length} metadata files`; + msg = `Couldn't parse metadata files or they are malformed. Can't find settings.compilationTarget or multiple compilationTargets in: ${responsibleFiles}`; + } else if (!metadataFiles.length) { + msg = 'Metadata file not found. Did you include "metadata.json"?'; + } + + if (msg) { + const error = new Error(msg); + throw error; + } + + return { metadataFiles, sourceFiles }; +} + +/** + * Validates metadata content keccak hashes for all files and + * returns mapping of file contents by file name + * @param {any} metadata + * @param {Map} byHash Map from keccak to source + * @return foundSources, missingSources, invalidSources + */ +function rearrangeSources(metadata: any, byHash: Map) { + const foundSources: StringMap = {}; + const missingSources: MissingSources = {}; + const invalidSources: InvalidSources = {}; + const metadata2provided: StringMap = {}; // maps fileName as in metadata to the fileName of the provided file + + for (const sourcePath in metadata.sources) { + const sourceInfoFromMetadata = metadata.sources[sourcePath]; + let file: PathContent | undefined = undefined; + const expectedHash: string = sourceInfoFromMetadata.keccak256; + if (sourceInfoFromMetadata.content) { + // Source content already in metadata + file = { + content: sourceInfoFromMetadata.content, + path: sourcePath, + }; + const contentHash = keccak256str(file.content); + if (contentHash != expectedHash) { + invalidSources[sourcePath] = { + expectedHash: expectedHash, + calculatedHash: contentHash, + msg: `The keccak256 given in the metadata and the calculated keccak256 of the source content in metadata don't match`, + }; + continue; + } + } else { + // Get source from input files by hash + const pathContent = byHash.get(expectedHash); + if (pathContent) { + file = pathContent; + metadata2provided[sourcePath] = pathContent.path; + } // else: no file has the hash that was searched for + } + + if (file && file.content) { + foundSources[sourcePath] = file.content; + } else { + missingSources[sourcePath] = { + keccak256: expectedHash, + urls: sourceInfoFromMetadata.urls, + }; + } + } + + return { foundSources, missingSources, invalidSources, metadata2provided }; +} + +/** + * Generates a map of files indexed by the keccak hash of their content. + * + * @param {string[]} files Array containing sources. + * @returns Map object that maps hash to PathContent. + */ +export function storeByHash(files: PathContent[]): Map { + const byHash: Map = new Map(); + + for (const pathContent of files) { + for (const variation of generateVariations(pathContent)) { + const calculatedHash = keccak256str(variation.content); + byHash.set(calculatedHash, variation); + } + } + + return byHash; +} + +function generateVariations(pathContent: PathContent): PathContent[] { + const variations: { + content: string; + contentVariator: number; + endingVariator: number; + }[] = []; + const original = pathContent.content; + for (const [ + CONTENT_VARIATORS_INDEX, + contentVariator, + ] of CONTENT_VARIATORS.entries()) { + const variatedContent = contentVariator(original); + for (const [ + ENDING_VARIATORS_INDEX, + endingVariator, + ] of ENDING_VARIATORS.entries()) { + const variation = endingVariator(variatedContent); + variations.push({ + content: variation, + contentVariator: CONTENT_VARIATORS_INDEX, + endingVariator: ENDING_VARIATORS_INDEX, + }); + } + } + + return variations.map(({ content, contentVariator, endingVariator }) => { + return { + content, + path: pathContent.path, + variation: contentVariator + '.' + endingVariator, + }; + }); +} + +function extractUnused( + inputFiles: PathContent[], + usedFiles: string[], + unused: string[] +): void { + const usedFilesSet = new Set(usedFiles); + const tmpUnused = inputFiles + .map((pc) => pc.path) + .filter((file) => !usedFilesSet.has(file)); + unused.push(...tmpUnused); +} + +function extractMetadataFromString(file: string): any { + try { + let obj = JSON.parse(file); + if (isMetadata(obj)) { + return obj; + } + + // if the input string originates from a file where it was double encoded (e.g. truffle) + obj = JSON.parse(obj); + if (isMetadata(obj)) { + return obj; + } + } catch (err) { + undefined; + } // Don't throw here as other files can be metadata files. + + return null; +} + +/** + * A method that checks if the provided object was generated as a metadata file of a Solidity contract. + * Current implementation is rather simplistic and may require further engineering. + * + * @param metadata the JSON to be checked + * @returns true if the provided object is a Solidity metadata file; false otherwise + */ +function isMetadata(obj: any): boolean { + return ( + obj?.language === 'Solidity' && + !!obj?.settings?.compilationTarget && + !!obj?.version && + !!obj?.output?.abi && + !!obj?.output?.userdoc && + !!obj?.output?.devdoc && + !!obj?.sources + ); +} + +/** + * Applies the provided worker function to the provided path recursively. + * + * @param path the path to be traversed + * @param worker the function to be applied on each file that is not a directory + * @param afterDir the function to be applied on the directory after traversing its children + */ +function traversePathRecursively( + path: string, + worker: (filePath: string) => void, + afterDirectory?: (filePath: string) => void +) { + if (!fs.existsSync(path)) { + const msg = `Encountered a nonexistent path: ${path}`; + const error = new Error(msg); + throw error; + } + + const fileStat = fs.lstatSync(path); + if (fileStat.isFile()) { + worker(path); + } else if (fileStat.isDirectory()) { + fs.readdirSync(path).forEach((nestedName) => { + const nestedPath = Path.join(path, nestedName); + traversePathRecursively(nestedPath, worker, afterDirectory); + }); + + if (afterDirectory) { + afterDirectory(path); + } + } +} + +/** + * Asserts that the number of keys of the provided object is expectedSize. + * If not, logs an appropriate message (if log function provided) and throws an Error. + * @param object the object to check + * @param expectedSize the size that the object should have + */ +function assertObjectSize(object: any, expectedSize: number) { + let err = ''; + + if (!object) { + err = `Cannot assert for ${object}.`; + } else { + const objectSize = Object.keys(object).length; + if (objectSize !== expectedSize) { + err = `Error in size assertion! Actual size: ${objectSize}. Expected size: ${expectedSize}.`; + } + } + + if (err) { + const error = new Error(err); + throw error; + } +} + +/** + * Hardhat build output can contain metadata and source files of every contract used in compilation. + * Extracts these files from a given hardhat file following the hardhat output format. + * + * @param hardhatFile + * @returns - {hardhatMetadataFiles, hardhatSourceFiles} + */ +export function extractHardhatMetadataAndSources(hardhatFile: PathContent) { + const hardhatMetadataFiles: any[] = []; + const hardhatSourceFiles: PathContent[] = []; + + const hardhatJson = JSON.parse(hardhatFile.content); + + // Extract source files + const hardhatSourceFilesObject = hardhatJson.input.sources; + for (const path in hardhatSourceFilesObject) { + if (hardhatSourceFilesObject[path].content) { + hardhatSourceFiles.push({ + path: path, + content: hardhatSourceFilesObject[path].content, + }); + } + } + + // Extract metadata files + const contractsObject = hardhatJson.output.contracts; + for (const path in contractsObject) { + for (const contractName in contractsObject[path]) { + if (contractsObject[path][contractName].metadata) { + const metadataObj = extractMetadataFromString( + contractsObject[path][contractName].metadata + ); + hardhatMetadataFiles.push(metadataObj); + } + } + } + return { hardhatMetadataFiles, hardhatSourceFiles }; +} + +export function pathContentArrayToStringMap(pathContentArr: PathContent[]) { + const stringMapResult: StringMap = {}; + pathContentArr.forEach((elem, i) => { + if (elem.path) { + stringMapResult[elem.path] = elem.content; + } else { + stringMapResult[`path-${i}`] = elem.content; + } + }); + return stringMapResult; +} diff --git a/packages/lib-sourcify/src/lib/verification.ts b/packages/lib-sourcify/src/lib/verification.ts new file mode 100644 index 000000000..31e2dfe11 --- /dev/null +++ b/packages/lib-sourcify/src/lib/verification.ts @@ -0,0 +1,613 @@ +import { CheckedContract } from './CheckedContract'; +import { + /* ContextVariables, */ + Create2Args, + ImmutableReferences, + Match, + Metadata, + RecompilationResult, + StringMap, +} from './types'; +import { + decode as bytecodeDecode, + splitAuxdata, +} from '@ethereum-sourcify/bytecode-utils'; +import { getAddress, getCreateAddress, keccak256 } from 'ethers'; +/* +import { EVM } from '@ethereumjs/evm'; +import { EEI } from '@ethereumjs/vm'; +import { Address } from '@ethereumjs/util'; +import { Common } from '@ethereumjs/common'; +import { DefaultStateManager } from '@ethereumjs/statemanager'; +import { Blockchain } from '@ethereumjs/blockchain'; +*/ +import { hexZeroPad, isHexString } from '@ethersproject/bytes'; +import { BigNumber } from '@ethersproject/bignumber'; +import semverSatisfies from 'semver/functions/satisfies'; +import { defaultAbiCoder as abiCoder, ParamType } from '@ethersproject/abi'; +import { AbiConstructor } from 'abitype'; +import { logInfo } from './logger'; +import SourcifyChain from './SourcifyChain'; + +export async function verifyDeployed( + checkedContract: CheckedContract, + sourcifyChain: SourcifyChain, + address: string, + /* _contextVariables?: ContextVariables, */ + creatorTxHash?: string +): Promise { + const match: Match = { + address, + chainId: sourcifyChain.chainId.toString(), + status: null, + }; + logInfo( + `Verifying contract ${ + checkedContract.name + } at address ${address} on chain ${sourcifyChain.chainId.toString()}` + ); + const recompiled = await checkedContract.recompile(); + + if ( + recompiled.deployedBytecode === '0x' || + recompiled.creationBytecode === '0x' + ) { + throw new Error( + `The compiled contract bytecode is "0x". Are you trying to verify an abstract contract?` + ); + } + + const deployedBytecode = await sourcifyChain.getBytecode(address); + + // Can't match if there is no deployed bytecode + if (!deployedBytecode) { + match.message = `Chain #${sourcifyChain.chainId} is temporarily unavailable.`; + return match; + } else if (deployedBytecode === '0x') { + match.message = `Chain #${sourcifyChain.chainId} does not have a contract deployed at ${address}.`; + return match; + } + + // Try to match with deployed bytecode directly + matchWithDeployedBytecode( + match, + recompiled.deployedBytecode, + deployedBytecode, + recompiled.immutableReferences + ); + if (isPerfectMatch(match)) { + return match; + } else if (isPartialMatch(match)) { + return await tryToFindPerfectMetadataAndMatch( + checkedContract, + deployedBytecode, + match, + async (match, recompiled) => { + matchWithDeployedBytecode( + match, + recompiled.deployedBytecode, + deployedBytecode + ); + } + ); + } + + // Try to match with simulating the creation bytecode + /* + await matchWithSimulation( + match, + recompiled.creationBytecode, + deployedBytecode, + checkedContract.metadata.settings.evmVersion, + sourcifyChain.chainId.toString(), + contextVariables + ); + if (isPerfectMatch(match)) { + (match as Match).contextVariables = contextVariables; + return match; + } else if (isPartialMatch(match)) { + return await tryToFindPerfectMetadataAndMatch( + checkedContract, + deployedBytecode, + match, + async (match, recompiled) => { + await matchWithSimulation( + match, + recompiled.creationBytecode, + deployedBytecode, + checkedContract.metadata.settings.evmVersion, + sourcifyChain.chainId.toString(), + contextVariables + ); + match.contextVariables = contextVariables; + } + ); + } + */ + + // Try to match with creationTx, if available + if (creatorTxHash) { + const recompiledMetadata: Metadata = JSON.parse(recompiled.metadata); + await matchWithCreationTx( + match, + recompiled.creationBytecode, + sourcifyChain, + address, + creatorTxHash, + recompiledMetadata + ); + if (isPerfectMatch(match)) { + return match; + } else if (isPartialMatch(match)) { + return await tryToFindPerfectMetadataAndMatch( + checkedContract, + deployedBytecode, + match, + async (match, recompiled) => { + await matchWithCreationTx( + match, + recompiled.creationBytecode, + sourcifyChain, + address, + creatorTxHash, + recompiledMetadata + ); + } + ); + } + } + + // Case when extra unused files in compiler input cause different bytecode (https://github.com/ethereum/sourcify/issues/618) + if ( + semverSatisfies( + checkedContract.metadata.compiler.version, + '=0.6.12 || =0.7.0' + ) && + checkedContract.metadata.settings.optimizer?.enabled + ) { + const [, deployedAuxdata] = splitAuxdata(deployedBytecode); + const [, recompiledAuxdata] = splitAuxdata(recompiled.deployedBytecode); + // Metadata hashes match but bytecodes don't match. + if (deployedAuxdata === recompiledAuxdata) { + (match as Match).status = 'extra-file-input-bug'; + (match as Match).message = + 'It seems your contract has either Solidity v0.6.12 or v0.7.0, and the metadata hashes match but not the bytecodes. You should add all the files input to the compiler during compilation and remove all others. See the issue for more information: https://github.com/ethereum/sourcify/issues/618'; + return match; + } + } + + throw Error("The deployed and recompiled bytecode don't match."); +} + +async function tryToFindPerfectMetadataAndMatch( + checkedContract: CheckedContract, + deployedBytecode: string, + match: Match, + matchFunction: ( + match: Match, + recompilationResult: RecompilationResult + ) => Promise +): Promise { + const checkedContractWithPerfectMetadata = + await checkedContract.tryToFindPerfectMetadata(deployedBytecode); + if (checkedContractWithPerfectMetadata) { + // If found try to match again with the passed matchFunction + const matchWithPerfectMetadata = { ...match }; + const recompiled = await checkedContractWithPerfectMetadata.recompile(); + + await matchFunction(matchWithPerfectMetadata, recompiled); + if (isPerfectMatch(matchWithPerfectMetadata)) { + // Replace the metadata and solidity files that will be saved in the repo + checkedContract.initSolcJsonInput( + checkedContractWithPerfectMetadata.metadata, + checkedContractWithPerfectMetadata.solidity + ); + return matchWithPerfectMetadata; + } + } + return match; +} + +export async function verifyCreate2( + checkedContract: CheckedContract, + deployerAddress: string, + salt: string, + create2Address: string, + abiEncodedConstructorArguments?: string +): Promise { + const recompiled = await checkedContract.recompile(); + + const computedAddr = calculateCreate2Address( + deployerAddress, + salt, + recompiled.creationBytecode, + abiEncodedConstructorArguments + ); + + if (create2Address.toLowerCase() !== computedAddr.toLowerCase()) { + throw new Error( + `The provided create2 address doesn't match server's generated one. Expected: ${computedAddr} ; Received: ${create2Address} ;` + ); + } + + // TODO: Can create2 have library addresses? + + const create2Args: Create2Args = { + deployerAddress, + salt, + }; + + const match: Match = { + address: computedAddr, + chainId: '0', + status: 'perfect', + abiEncodedConstructorArguments, + create2Args, + // libraryMap: libraryMap, + }; + + return match; +} + +export function matchWithDeployedBytecode( + match: Match, + recompiledDeployedBytecode: string, + deployedBytecode: string, + immutableReferences?: any +) { + // Check if is a library with call protection + // See https://docs.soliditylang.org/en/v0.8.19/contracts.html#call-protection-for-libraries + recompiledDeployedBytecode = checkCallProtectionAndReplaceAddress( + recompiledDeployedBytecode, + deployedBytecode + ); + + // Replace the library placeholders in the recompiled bytecode with values from the deployed bytecode + const { replaced, libraryMap } = addLibraryAddresses( + recompiledDeployedBytecode, + deployedBytecode + ); + recompiledDeployedBytecode = replaced; + + if (immutableReferences) { + deployedBytecode = replaceImmutableReferences( + immutableReferences, + deployedBytecode + ); + } + + if (recompiledDeployedBytecode === deployedBytecode) { + match.libraryMap = libraryMap; + match.immutableReferences = immutableReferences; + // if the bytecode doesn't contain metadata then "partial" match + if (doesContainMetadataHash(deployedBytecode)) { + match.status = 'perfect'; + } else { + match.status = 'partial'; + } + } else { + // Try to match without the metadata hashes + const [trimmedDeployedBytecode] = splitAuxdata(deployedBytecode); + const [trimmedCompiledRuntimeBytecode] = splitAuxdata( + recompiledDeployedBytecode + ); + if (trimmedDeployedBytecode === trimmedCompiledRuntimeBytecode) { + match.libraryMap = libraryMap; + match.immutableReferences = immutableReferences; + match.status = 'partial'; + } + } +} + +/* +export async function matchWithSimulation( + match: Match, + recompiledCreaionBytecode: string, + deployedBytecode: string, + evmVersion: string, + chainId: string, + contextVariables?: ContextVariables +) { + // 'paris' is named 'merge' in ethereumjs https://github.com/ethereumjs/ethereumjs-monorepo/issues/2360 + if (evmVersion === 'paris') evmVersion = 'merge'; + let { abiEncodedConstructorArguments } = contextVariables || {}; + const { msgSender } = contextVariables || {}; + + const stateManager = new DefaultStateManager(); + const blockchain = await Blockchain.create(); + const common = Common.custom({ + chainId: parseInt(chainId), + defaultHardfork: evmVersion, + }); + const eei = new EEI(stateManager, common, blockchain); + + const evm = new EVM({ + common, + eei, + }); + if (recompiledCreaionBytecode.startsWith('0x')) { + recompiledCreaionBytecode = recompiledCreaionBytecode.slice(2); + } + if (abiEncodedConstructorArguments?.startsWith('0x')) { + abiEncodedConstructorArguments = abiEncodedConstructorArguments.slice(2); + } + const initcode = Buffer.from( + recompiledCreaionBytecode + + (abiEncodedConstructorArguments ? abiEncodedConstructorArguments : ''), + 'hex' + ); + + const result = await evm.runCall({ + data: initcode, + gasLimit: BigInt(0xffffffffff), + // prettier vs. eslint indentation conflict here + // eslint-disable indent + caller: msgSender + ? new Address( + Buffer.from( + msgSender.startsWith('0x') ? msgSender.slice(2) : msgSender, + 'hex' + ) + ) + : undefined, + // eslint-disable indent + }); + const simulationDeployedBytecode = + '0x' + result.execResult.returnValue.toString('hex'); + + matchWithDeployedBytecode( + match, + simulationDeployedBytecode, + deployedBytecode + ); +} +*/ + +/** + * Matches the contract via the transaction that created the contract, if that tx is known. + * Checks if the tx.input matches the recompiled creation bytecode. Double checks that the contract address matches the address being verified. + * + */ +export async function matchWithCreationTx( + match: Match, + recompiledCreationBytecode: string, + sourcifyChain: SourcifyChain, + address: string, + creatorTxHash: string, + recompiledMetadata: Metadata +) { + if (recompiledCreationBytecode === '0x') { + match.status = null; + match.message = `Failed to match with creation bytecode: recompiled contract's creation bytecode is empty`; + return; + } + + const creatorTx = await sourcifyChain.getTx(creatorTxHash); + const creatorTxData = creatorTx.data; + + // The reason why this uses `startsWith` instead of `===` is that creationTxData may contain constructor arguments at the end part. + // Replace the library placeholders in the recompiled bytecode with values from the deployed bytecode + const { replaced, libraryMap } = addLibraryAddresses( + recompiledCreationBytecode, + creatorTxData + ); + recompiledCreationBytecode = replaced; + + if (creatorTxData.startsWith(recompiledCreationBytecode)) { + // if the bytecode doesn't contain metadata then "partial" match + if (doesContainMetadataHash(recompiledCreationBytecode)) { + match.status = 'perfect'; + } else { + match.status = 'partial'; + } + } else { + // Match without metadata hashes + const [trimmedCreatorTxData] = splitAuxdata(creatorTxData); // In the case of creationTxData (not deployed bytecode) it is actually not CBOR encoded because of the appended constr. args., but splitAuxdata returns the whole bytecode if it's not CBOR encoded, so will work with startsWith. + const [trimmedRecompiledCreationBytecode] = splitAuxdata( + recompiledCreationBytecode + ); + if (trimmedCreatorTxData.startsWith(trimmedRecompiledCreationBytecode)) { + match.status = 'partial'; + } + } + + if (match.status) { + const abiEncodedConstructorArguments = + extractAbiEncodedConstructorArguments( + creatorTxData, + recompiledCreationBytecode + ); + const constructorAbiParamInputs = ( + recompiledMetadata?.output?.abi?.find( + (param) => param.type === 'constructor' + ) as AbiConstructor + )?.inputs as ParamType[]; + if (abiEncodedConstructorArguments) { + if (!constructorAbiParamInputs) { + match.status = null; + match.message = `Failed to match with creation bytecode: constructor ABI Inputs are missing`; + return; + } + // abiCoder doesn't break if called with a wrong `abiEncodedConstructorArguments` + // so in order to successfuly check if the constructor arguments actually match + // we need to re-encode it and compare them + const decodeResult = abiCoder.decode( + constructorAbiParamInputs, + abiEncodedConstructorArguments + ); + const encodeResult = abiCoder.encode( + constructorAbiParamInputs, + decodeResult + ); + if (encodeResult !== abiEncodedConstructorArguments) { + match.status = null; + match.message = `Failed to match with creation bytecode: constructor arguments ABI decoding failed ${encodeResult} vs ${abiEncodedConstructorArguments}`; + return; + } + } + + // we need to check if this contract creation tx actually yields the same contract address https://github.com/ethereum/sourcify/issues/887 + const createdContractAddress = getCreateAddress({ + from: creatorTx.from, + nonce: creatorTx.nonce, + }); + if (createdContractAddress.toLowerCase() !== address.toLowerCase()) { + match.status = null; + match.message = `The address being verified ${address} doesn't match the expected ddress of the contract ${createdContractAddress} that will be created by the transaction ${creatorTxHash}.`; + return; + } + match.libraryMap = libraryMap; + + match.abiEncodedConstructorArguments = abiEncodedConstructorArguments; + match.creatorTxHash = creatorTxHash; + } +} + +export function addLibraryAddresses( + template: string, + real: string +): { + replaced: string; + libraryMap: StringMap; +} { + const PLACEHOLDER_START = '__'; + const PLACEHOLDER_LENGTH = 40; + + const libraryMap: StringMap = {}; + + let index = template.indexOf(PLACEHOLDER_START); + while (index !== -1) { + const placeholder = template.slice(index, index + PLACEHOLDER_LENGTH); + const address = real.slice(index, index + PLACEHOLDER_LENGTH); + libraryMap[placeholder] = address; + + // Replace regex with simple string replacement + template = template.split(placeholder).join(address); + + index = template.indexOf(PLACEHOLDER_START); + } + + return { + replaced: template, + libraryMap, + }; +} + +export function checkCallProtectionAndReplaceAddress( + template: string, + real: string +): string { + const push20CodeOp = '73'; + const callProtection = `0x${push20CodeOp}${'00'.repeat(20)}`; + + if (template.startsWith(callProtection)) { + const replacedCallProtection = real.slice(0, 0 + callProtection.length); + return replacedCallProtection + template.substring(callProtection.length); + } + return template; +} + +/** + * Replaces the values of the immutable variables in the (onchain) deployed bytecode with zeros, so that the bytecode can be compared with the (offchain) recompiled bytecode. + * Example immutableReferences: {"97":[{"length":32,"start":137}],"99":[{"length":32,"start":421}]} where 97 and 99 are the AST ids + */ +export function replaceImmutableReferences( + immutableReferences: ImmutableReferences, + deployedBytecode: string +) { + deployedBytecode = deployedBytecode.slice(2); // remove "0x" + + Object.keys(immutableReferences).forEach((astId) => { + immutableReferences[astId].forEach((reference) => { + const { start, length } = reference; + const zeros = '0'.repeat(length * 2); + deployedBytecode = + deployedBytecode.slice(0, start * 2) + + zeros + + deployedBytecode.slice(start * 2 + length * 2); + }); + }); + return '0x' + deployedBytecode; +} + +function extractAbiEncodedConstructorArguments( + onchainCreationBytecode: string, + compiledCreationBytecode: string +) { + if (onchainCreationBytecode.length === compiledCreationBytecode.length) + return undefined; + + const startIndex = onchainCreationBytecode.indexOf(compiledCreationBytecode); + return ( + '0x' + + onchainCreationBytecode.slice(startIndex + compiledCreationBytecode.length) + ); +} + +/** + * Calculates the address of the contract created with the EIP-1014 CREATE2 opcode. + * + * @param deployerAddress + * @param salt + * @param creationBytecode + * @param abiEncodedConstructorArguments + * @returns Match + */ +export function calculateCreate2Address( + deployerAddress: string, + salt: string, + creationBytecode: string, + abiEncodedConstructorArguments?: string +) { + let initcode = creationBytecode; + + if (abiEncodedConstructorArguments) { + initcode += abiEncodedConstructorArguments.startsWith('0x') + ? abiEncodedConstructorArguments.slice(2) + : abiEncodedConstructorArguments; + } + + const address = `0x${keccak256( + `0x${['ff', deployerAddress, saltToHex(salt), keccak256(initcode)] + .map((x) => x.replace(/0x/, '')) + .join('')}` + ).slice(-40)}`; // last 20 bytes + return getAddress(address); // checksum +} + +const saltToHex = (salt: string) => { + if (isHexString(salt)) { + return hexZeroPad(salt, 32); + } + const bn = BigNumber.from(salt); + const hex = bn.toHexString(); + const paddedHex = hexZeroPad(hex, 32); + return paddedHex; +}; + +/** + * Checks if there's a CBOR encoded metadata hash appended to the bytecode. + * + * @param bytecode + * @returns bool - true if there's a metadata hash + */ +function doesContainMetadataHash(bytecode: string) { + let containsMetadata: boolean; + try { + const decodedCBOR = bytecodeDecode(bytecode); + containsMetadata = + !!decodedCBOR.ipfs || !!decodedCBOR['bzzr0'] || !!decodedCBOR['bzzr1']; + } catch (e) { + logInfo("Can't decode CBOR"); + containsMetadata = false; + } + return containsMetadata; +} + +function isPerfectMatch(match: Match): match is Match { + return match.status === 'perfect'; +} + +function isPartialMatch(match: Match): match is Match { + return match.status === 'partial'; +} diff --git a/packages/lib-sourcify/test/functions.spec.ts b/packages/lib-sourcify/test/functions.spec.ts new file mode 100644 index 000000000..e77ac686b --- /dev/null +++ b/packages/lib-sourcify/test/functions.spec.ts @@ -0,0 +1,180 @@ +declare let describe: unknown | any; +declare let it: unknown | any; + +import { expect } from 'chai'; +import { + getSolcExecutable, + getSolcJs, + useCompiler, +} from '../src/lib/solidityCompiler'; +import { + CheckedContract, + getGithubUrl, + performFetch, +} from '../src/lib/CheckedContract'; +import storageMetadata from './sources/Storage/metadata.json'; +import { Metadata, MissingSources } from '../src/lib/types'; +import WrongMetadata from './sources/WrongMetadata/metadata.json'; +import SimplyLog from './sources/WrongMetadata/SimplyLog.json'; + +describe('Verify Solidity Compiler', () => { + it('Should fetch latest SolcJS compiler', async () => { + expect(await getSolcJs()).not.equals(null); + }); + it('Should fetch SolcJS compiler passing only version', async () => { + expect(await getSolcJs('0.8.17+commit.8df45f5f')).not.equals(false); + }); + it('Should fetch SolcJS compiler that is saved as a link in the repo', async () => { + expect(await getSolcJs('v0.5.14+commit.1f1aaa4')).not.equals(false); + }); + if (process.platform === 'linux') { + it('Should fetch latest solc from github', async () => { + expect( + await getSolcExecutable('linux-amd64', '0.8.9+commit.e5eed63a') + ).not.equals(null); + }); + it('Should compile with solc', async () => { + try { + const compiledJSON = await useCompiler('0.8.9+commit.e5eed63a', { + language: 'Solidity', + sources: { + 'test.sol': { + content: 'contract C { function f() public {} }', + }, + }, + settings: { + outputSelection: { + '*': { + '*': ['*'], + }, + }, + }, + }); + expect(compiledJSON?.contracts?.['test.sol']?.C).to.not.equals( + undefined + ); + } catch (e: any) { + expect.fail(e.message); + } + }); + } + it('Should return a compiler error', async () => { + try { + await useCompiler('0.8.9+commit.e5eed63a', { + language: 'Solidity', + sources: { + 'test.sol': { + content: 'contract C { function f() public } }', + }, + }, + settings: { + outputSelection: { + '*': { + '*': ['*'], + }, + }, + }, + }); + } catch (e: any) { + expect(e.message.startsWith('Compiler error:')).to.be.true; + } + }); + it('Should compile with solcjs', async () => { + const realPlatform = process.platform; + Object.defineProperty(process, 'platform', { + value: 'not existing platform', + writable: false, + }); + try { + const compiledJSON = await useCompiler('0.8.9+commit.e5eed63a', { + language: 'Solidity', + sources: { + 'test.sol': { + content: 'contract C { function f() public {} }', + }, + }, + settings: { + outputSelection: { + '*': { + '*': ['*'], + }, + }, + }, + }); + expect(compiledJSON?.contracts?.['test.sol']?.C).to.not.equals(undefined); + } catch (e: any) { + expect.fail(e.message); + } finally { + Object.defineProperty(process, 'platform', { + value: realPlatform, + writable: false, + }); + } + }); +}); + +describe('Checked contract', () => { + it('Should return null after failed performFetch', async () => { + expect(await performFetch('httpx://')).to.equal(null); + }); + it('Should fail performFetch because mismatching keccak256', async () => { + expect( + await performFetch( + 'https://ipfs.io/ipfs/QmTkSBN1QffhGKwx365m5va6Pikz3pUJcAfaSRybkeCCDr', + '0x00' + ) + ).equals(null); + }); + it('Should performFetch', async () => { + expect( + await performFetch( + 'https://ipfs.io/ipfs/QmTkSBN1QffhGKwx365m5va6Pikz3pUJcAfaSRybkeCCDr', + '0xe76037d6a371fa3a073db88b7b76c371e0ab601be742fa1b089a74b996e360be' + ) + ).to.not.equal(null); + }); + it('Should fail getGithubUrl', async () => { + expect(await getGithubUrl('github1.com')).to.equal(null); + }); + it('Should getGithubUrl', async () => { + const rawGithubUrl = await getGithubUrl( + 'https://github.com/ethereum/solc-bin/blob/gh-pages/linux-amd64/solc-linux-amd64-v0.8.12%2Bcommit.f00d7308' + ); + expect(rawGithubUrl).equals( + 'https://raw.githubusercontent.com/ethereum/solc-bin/gh-pages/linux-amd64/solc-linux-amd64-v0.8.12%2Bcommit.f00d7308' + ); + }); + it('Should fetch missing files from checked contract', async () => { + const missingSources: MissingSources = {}; + missingSources['Storage.sol'] = { + keccak256: + '0x88c47206b5ec3d60ab820e9d126c4ac54cb17fa7396ff49ebe27db2862982ad8', + urls: ['dweb:/ipfs/QmaFRC9ZtT7y3t9XNWCbDuMTEwKkyaQJzYFzw3NbeohSn5'], + }; + const contract = new CheckedContract( + storageMetadata as any as Metadata, + {}, + missingSources, + {} + ); + await CheckedContract.fetchMissing(contract); + const sources = Object.keys(contract.solidity); + expect(sources).lengthOf(1); + expect(sources[0]).equals('Storage.sol'); + }); + it('Should tryToFindPerfectMetadata from checked contract', async () => { + const contract = new CheckedContract(WrongMetadata as Metadata, { + 'SimplyLog.sol': SimplyLog.source, + }); + + const contractWithPerfectMetadata = await contract.tryToFindPerfectMetadata( + SimplyLog.bytecode + ); + expect(contractWithPerfectMetadata).is.not.equal(null); + expect( + contractWithPerfectMetadata?.metadata?.sources['SimplyLog.sol']?.keccak256 + ).equals( + '0x8e7a1207ba791693fd76c6cf3e99908f53b8c67a5ae9f7b4ab628c74901711c9' + ); + }); +}); diff --git a/packages/lib-sourcify/test/sources/AbstractCreationBytecodeAttack/metadata.json b/packages/lib-sourcify/test/sources/AbstractCreationBytecodeAttack/metadata.json new file mode 100644 index 000000000..d434360de --- /dev/null +++ b/packages/lib-sourcify/test/sources/AbstractCreationBytecodeAttack/metadata.json @@ -0,0 +1,44 @@ +{ + "compiler": { + "version": "0.6.12+commit.27d51765" + }, + "language": "Solidity", + "output": { + "abi": [], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "sources/FFF.sol": "FFF" + }, + "evmVersion": "istanbul", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "sources/FFF.sol": { + "keccak256": "0x7ed3554b3f768ad3b3069d7fc8b1a08a24500507fc8a60eb11c726e37f3cd9a3", + "urls": [ + "bzz-raw://6d83c127e075a149ec14c6af579bc7b24955cdb7578ae7da2f253b7142d267cc", + "dweb:/ipfs/QmW6tdCTV7X5dd5LCKDWedbMmkurQTMi4ePx7LY3DNuLn7" + ] + } + }, + "version": 1 +} diff --git a/packages/lib-sourcify/test/sources/AbstractCreationBytecodeAttack/sources/FFF.sol b/packages/lib-sourcify/test/sources/AbstractCreationBytecodeAttack/sources/FFF.sol new file mode 100644 index 000000000..b12b1d274 --- /dev/null +++ b/packages/lib-sourcify/test/sources/AbstractCreationBytecodeAttack/sources/FFF.sol @@ -0,0 +1,6 @@ +pragma solidity 0.6.12; + +abstract contract FFF{ + constructor (uint256 a) public payable { + } +} \ No newline at end of file diff --git a/packages/lib-sourcify/test/sources/CallProtectionForLibraries/artifact.json b/packages/lib-sourcify/test/sources/CallProtectionForLibraries/artifact.json new file mode 100644 index 000000000..a14553168 --- /dev/null +++ b/packages/lib-sourcify/test/sources/CallProtectionForLibraries/artifact.json @@ -0,0 +1,4 @@ +{ + "abi": [], + "bytecode": "0x60bd610039600b82828239805160001a60731461002c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c8063fe073d11146038575b600080fd5b818015604357600080fd5b50604a604c565b005b60006057600182605b565b5050565b60ff8181168382160190811115608157634e487b7160e01b600052601160045260246000fd5b9291505056fea264697066735822122026efb28b74c882aa2f1f86cbe51d40fba727849fa6113630f5c12c98c1a9eb9b64736f6c63430008130033" +} diff --git a/packages/lib-sourcify/test/sources/CallProtectionForLibraries/metadata.json b/packages/lib-sourcify/test/sources/CallProtectionForLibraries/metadata.json new file mode 100644 index 000000000..2fb60e9be --- /dev/null +++ b/packages/lib-sourcify/test/sources/CallProtectionForLibraries/metadata.json @@ -0,0 +1,27 @@ +{ + "compiler": { "version": "0.8.19+commit.7dd6d404" }, + "language": "Solidity", + "output": { + "abi": [], + "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, + "userdoc": { "kind": "user", "methods": {}, "version": 1 } + }, + "settings": { + "compilationTarget": { "Ballot.sol": "Ballot" }, + "evmVersion": "paris", + "libraries": {}, + "metadata": { "bytecodeHash": "ipfs" }, + "optimizer": { "enabled": true, "runs": 200 }, + "remappings": [] + }, + "sources": { + "Ballot.sol": { + "keccak256": "0x21d251aa06c7fcbb362bca4b1645ef4fbc3d0844f6774f4598588f9045fdfe97", + "urls": [ + "bzz-raw://7464b55b34107bd79040fa11eed489e2d20bde5e15b801e2ba144d7bd10bbeca", + "dweb:/ipfs/Qmbrd7Up3r6Q5JA9NMvZZawsJ5EuuoFfRuMBEjAYk7oDod" + ] + } + }, + "version": 1 +} diff --git a/packages/lib-sourcify/test/sources/CallProtectionForLibraries/sources/Ballot.sol b/packages/lib-sourcify/test/sources/CallProtectionForLibraries/sources/Ballot.sol new file mode 100644 index 000000000..8714a01b0 --- /dev/null +++ b/packages/lib-sourcify/test/sources/CallProtectionForLibraries/sources/Ballot.sol @@ -0,0 +1,7 @@ +pragma solidity 0.8.19; +library Ballot { + function giveRightToVote() public { + uint8 tempnumber = 0; + tempnumber += 1; + } +} \ No newline at end of file diff --git a/packages/lib-sourcify/test/sources/CallProtectionForLibrariesViaIR/artifact.json b/packages/lib-sourcify/test/sources/CallProtectionForLibrariesViaIR/artifact.json new file mode 100644 index 000000000..f7c1d4fb5 --- /dev/null +++ b/packages/lib-sourcify/test/sources/CallProtectionForLibrariesViaIR/artifact.json @@ -0,0 +1,4 @@ +{ + "abi": [], + "bytecode": "0x60808060405234601a57608d90816100208239308160240152f35b600080fdfe6004361015600c57600080fd5b6000803560e01c63fe073d1114602157600080fd5b307f0000000000000000000000000000000000000000000000000000000000000000146054578060031936011260545780f35b80fdfea26469706673582212201104b959cf92e8eead2cb6513fe1d88ee97c7b264a0dea0bd7ccaffd488db72764736f6c63430008130033" +} diff --git a/packages/lib-sourcify/test/sources/CallProtectionForLibrariesViaIR/metadata.json b/packages/lib-sourcify/test/sources/CallProtectionForLibrariesViaIR/metadata.json new file mode 100644 index 000000000..14d67f26e --- /dev/null +++ b/packages/lib-sourcify/test/sources/CallProtectionForLibrariesViaIR/metadata.json @@ -0,0 +1,28 @@ +{ + "compiler": { "version": "0.8.19+commit.7dd6d404" }, + "language": "Solidity", + "output": { + "abi": [], + "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, + "userdoc": { "kind": "user", "methods": {}, "version": 1 } + }, + "settings": { + "compilationTarget": { "Ballot.sol": "Ballot" }, + "evmVersion": "paris", + "libraries": {}, + "metadata": { "bytecodeHash": "ipfs" }, + "optimizer": { "enabled": true, "runs": 200 }, + "remappings": [], + "viaIR": true + }, + "sources": { + "Ballot.sol": { + "keccak256": "0x21d251aa06c7fcbb362bca4b1645ef4fbc3d0844f6774f4598588f9045fdfe97", + "urls": [ + "bzz-raw://7464b55b34107bd79040fa11eed489e2d20bde5e15b801e2ba144d7bd10bbeca", + "dweb:/ipfs/Qmbrd7Up3r6Q5JA9NMvZZawsJ5EuuoFfRuMBEjAYk7oDod" + ] + } + }, + "version": 1 +} diff --git a/packages/lib-sourcify/test/sources/CallProtectionForLibrariesViaIR/sources/Ballot.sol b/packages/lib-sourcify/test/sources/CallProtectionForLibrariesViaIR/sources/Ballot.sol new file mode 100644 index 000000000..8714a01b0 --- /dev/null +++ b/packages/lib-sourcify/test/sources/CallProtectionForLibrariesViaIR/sources/Ballot.sol @@ -0,0 +1,7 @@ +pragma solidity 0.8.19; +library Ballot { + function giveRightToVote() public { + uint8 tempnumber = 0; + tempnumber += 1; + } +} \ No newline at end of file diff --git a/packages/lib-sourcify/test/sources/Create2/artifact.json b/packages/lib-sourcify/test/sources/Create2/artifact.json new file mode 100644 index 000000000..0314da9bd --- /dev/null +++ b/packages/lib-sourcify/test/sources/Create2/artifact.json @@ -0,0 +1,55 @@ +{ + "bytecode": "608060405234801561001057600080fd5b5060405161051a38038061051a8339818101604052810190610032919061015b565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505061019b565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ea826100bf565b9050919050565b6100fa816100df565b811461010557600080fd5b50565b600081519050610117816100f1565b92915050565b6000610128826100bf565b9050919050565b6101388161011d565b811461014357600080fd5b50565b6000815190506101558161012f565b92915050565b60008060408385031215610172576101716100ba565b5b600061018085828601610108565b925050602061019185828601610146565b9150509250929050565b610370806101aa6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633ccfd60b146100465780638da5cb5b14610050578063f851a4401461006e575b600080fd5b61004e61008c565b005b6100586101db565b6040516100659190610266565b60405180910390f35b6100766101ff565b60405161008391906102a2565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806101335750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610172576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101699061031a565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156101d8573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061025082610225565b9050919050565b61026081610245565b82525050565b600060208201905061027b6000830184610257565b92915050565b600061028c82610225565b9050919050565b61029c81610281565b82525050565b60006020820190506102b76000830184610293565b92915050565b600082825260208201905092915050565b7f4e6f74207065726d697474656400000000000000000000000000000000000000600082015250565b6000610304600d836102bd565b915061030f826102ce565b602082019050919050565b60006020820190508181036000830152610333816102f7565b905091905056fea2646970667358221220099e087c4699bc7383d63a3f6b66ec54698fd9ad4529a89f85c99febccd30b6b64736f6c63430008110033", + + "abi": [ + { + "inputs": [ + { + "internalType": "address payable", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_admin", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address payable", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} diff --git a/packages/lib-sourcify/test/sources/Create2/metadata.json b/packages/lib-sourcify/test/sources/Create2/metadata.json new file mode 100644 index 000000000..29b78237d --- /dev/null +++ b/packages/lib-sourcify/test/sources/Create2/metadata.json @@ -0,0 +1,94 @@ +{ + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address payable", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_admin", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address payable", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/create2/Wallet.sol": "Wallet" + }, + "evmVersion": "london", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/create2/Wallet.sol": { + "keccak256": "0x735710f515332748a0587a7634dcc734b9e2ad6e1f95cc3db8c3d1be7696355f", + "urls": [ + "bzz-raw://b38344f5d37cce5a5840ce01068510762767025258d19b5019b2d065e5441c7a", + "dweb:/ipfs/QmYZEseorhB8Sqpasei4rMgmKwvBgd59z1HKoEGBridE75" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/packages/lib-sourcify/test/sources/Create2/sources/Wallet.sol b/packages/lib-sourcify/test/sources/Create2/sources/Wallet.sol new file mode 100644 index 000000000..7954fd6fc --- /dev/null +++ b/packages/lib-sourcify/test/sources/Create2/sources/Wallet.sol @@ -0,0 +1,16 @@ +pragma solidity 0.8.17; + +contract Wallet { + address payable public owner; + address public admin; + + constructor(address payable _owner, address _admin) { + owner = _owner; + admin = _admin; + } + + function withdraw() public { + require(msg.sender == owner || msg.sender == admin, "Not permitted"); + owner.transfer(address(this).balance); + } +} \ No newline at end of file diff --git a/packages/lib-sourcify/test/sources/FactoryImmutable/Child/artifact.json b/packages/lib-sourcify/test/sources/FactoryImmutable/Child/artifact.json new file mode 100644 index 000000000..3dfbccaa3 --- /dev/null +++ b/packages/lib-sourcify/test/sources/FactoryImmutable/Child/artifact.json @@ -0,0 +1,42 @@ +{ + "bytecode": "60a06040526040516101d83803806101d88339818101604052810190610025919061006e565b80608081815250505061009b565b600080fd5b6000819050919050565b61004b81610038565b811461005657600080fd5b50565b60008151905061006881610042565b92915050565b60006020828403121561008457610083610033565b5b600061009284828501610059565b91505092915050565b60805161011d6100bb60003960008181606f01526095015261011d6000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c8063243dc8da146037578063c2985578146051575b600080fd5b603d606b565b6040516048919060ce565b60405180910390f35b60576093565b6040516062919060ce565b60405180910390f35b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000819050919050565b60c88160b7565b82525050565b600060208201905060e1600083018460c1565b9291505056fea26469706673582212204cef19b214b48bf1b8d91682dbe4b90eb578d91fca48a47942fb06c3cd2b9c3064736f6c63430008110033", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_foo", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "inputs": [], + "name": "foo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFoo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ] +} diff --git a/packages/lib-sourcify/test/sources/FactoryImmutable/Child/metadata.json b/packages/lib-sourcify/test/sources/FactoryImmutable/Child/metadata.json new file mode 100644 index 000000000..a16edf0c6 --- /dev/null +++ b/packages/lib-sourcify/test/sources/FactoryImmutable/Child/metadata.json @@ -0,0 +1,83 @@ +{ + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_foo", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "inputs": [], + "name": "foo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFoo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/FactoryTest.sol": "TestContract" + }, + "evmVersion": "london", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/FactoryTest.sol": { + "keccak256": "0x1d66a9fa4cc6ea53a5e2a608e6fafdbbcce809c42c3425bf1927c4a4013dfd97", + "license": "UNLICENSED", + "urls": [ + "bzz-raw://3af0fc44bf93c5ba388ac2ecf504d1d840006f334d7da26fea22c749e49e8b01", + "dweb:/ipfs/Qmf9NguQdNYDp3Nkx9CMJLgAVzVQj6k8gTjgxAUFUvzEzu" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/packages/lib-sourcify/test/sources/FactoryImmutable/Child/sources/FactoryTest.sol b/packages/lib-sourcify/test/sources/FactoryImmutable/Child/sources/FactoryTest.sol new file mode 100644 index 000000000..bc25c1e7c --- /dev/null +++ b/packages/lib-sourcify/test/sources/FactoryImmutable/Child/sources/FactoryTest.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity 0.8.17; + +contract Factory { + address[] public childAddresses; + event Deployment(address contractAddress); + + function deploy( + uint _foo + ) public { + address deployedAddress = address(new TestContract(_foo)); + emit Deployment(deployedAddress); + childAddresses.push(deployedAddress); + } +} + +contract TestContract { + uint public immutable foo; + + constructor(uint _foo) payable { + foo = _foo; + } + + function getFoo() public view returns (uint) { + return foo; + } +} + diff --git a/packages/lib-sourcify/test/sources/FactoryImmutable/Factory/artifact.json b/packages/lib-sourcify/test/sources/FactoryImmutable/Factory/artifact.json new file mode 100644 index 000000000..e642e99db --- /dev/null +++ b/packages/lib-sourcify/test/sources/FactoryImmutable/Factory/artifact.json @@ -0,0 +1,50 @@ +{ + "bytecode": "608060405234801561001057600080fd5b506104a5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80639c47ed9f1461003b578063a5e387511461006b575b600080fd5b610055600480360381019061005091906101e4565b610087565b6040516100629190610252565b60405180910390f35b610085600480360381019061008091906101e4565b6100c6565b005b6000818154811061009757600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000816040516100d59061019c565b6100df919061027c565b604051809103906000f0801580156100fb573d6000803e3d6000fd5b5090507f8caefb0c150c4d097593deb07f0591b0225f67392b0ae76f2df209b8be37b82a8160405161012d9190610252565b60405180910390a16000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6101d88061029883390190565b600080fd5b6000819050919050565b6101c1816101ae565b81146101cc57600080fd5b50565b6000813590506101de816101b8565b92915050565b6000602082840312156101fa576101f96101a9565b5b6000610208848285016101cf565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061023c82610211565b9050919050565b61024c81610231565b82525050565b60006020820190506102676000830184610243565b92915050565b610276816101ae565b82525050565b6000602082019050610291600083018461026d565b9291505056fe60a06040526040516101d83803806101d88339818101604052810190610025919061006e565b80608081815250505061009b565b600080fd5b6000819050919050565b61004b81610038565b811461005657600080fd5b50565b60008151905061006881610042565b92915050565b60006020828403121561008457610083610033565b5b600061009284828501610059565b91505092915050565b60805161011d6100bb60003960008181606f01526095015261011d6000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c8063243dc8da146037578063c2985578146051575b600080fd5b603d606b565b6040516048919060ce565b60405180910390f35b60576093565b6040516062919060ce565b60405180910390f35b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000819050919050565b60c88160b7565b82525050565b600060208201905060e1600083018460c1565b9291505056fea26469706673582212204cef19b214b48bf1b8d91682dbe4b90eb578d91fca48a47942fb06c3cd2b9c3064736f6c63430008110033a26469706673582212206217543eea19b3c7c21a3e06b23db972cfda415c80b98ab30255b282537a989c64736f6c63430008110033", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "contractAddress", + "type": "address" + } + ], + "name": "Deployment", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "childAddresses", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_foo", + "type": "uint256" + } + ], + "name": "deploy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} diff --git a/packages/lib-sourcify/test/sources/FactoryImmutable/Factory/metadata.json b/packages/lib-sourcify/test/sources/FactoryImmutable/Factory/metadata.json new file mode 100644 index 000000000..7fa349dcd --- /dev/null +++ b/packages/lib-sourcify/test/sources/FactoryImmutable/Factory/metadata.json @@ -0,0 +1,91 @@ +{ + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "contractAddress", + "type": "address" + } + ], + "name": "Deployment", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "childAddresses", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_foo", + "type": "uint256" + } + ], + "name": "deploy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/FactoryTest.sol": "Factory" + }, + "evmVersion": "london", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/FactoryTest.sol": { + "keccak256": "0x1d66a9fa4cc6ea53a5e2a608e6fafdbbcce809c42c3425bf1927c4a4013dfd97", + "license": "UNLICENSED", + "urls": [ + "bzz-raw://3af0fc44bf93c5ba388ac2ecf504d1d840006f334d7da26fea22c749e49e8b01", + "dweb:/ipfs/Qmf9NguQdNYDp3Nkx9CMJLgAVzVQj6k8gTjgxAUFUvzEzu" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/packages/lib-sourcify/test/sources/FactoryImmutable/Factory/sources/FactoryTest.sol b/packages/lib-sourcify/test/sources/FactoryImmutable/Factory/sources/FactoryTest.sol new file mode 100644 index 000000000..bc25c1e7c --- /dev/null +++ b/packages/lib-sourcify/test/sources/FactoryImmutable/Factory/sources/FactoryTest.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity 0.8.17; + +contract Factory { + address[] public childAddresses; + event Deployment(address contractAddress); + + function deploy( + uint _foo + ) public { + address deployedAddress = address(new TestContract(_foo)); + emit Deployment(deployedAddress); + childAddresses.push(deployedAddress); + } +} + +contract TestContract { + uint public immutable foo; + + constructor(uint _foo) payable { + foo = _foo; + } + + function getFoo() public view returns (uint) { + return foo; + } +} + diff --git a/packages/lib-sourcify/test/sources/FactoryImmutableWithoutConstrArg/Child/artifact.json b/packages/lib-sourcify/test/sources/FactoryImmutableWithoutConstrArg/Child/artifact.json new file mode 100644 index 000000000..a7e9729ce --- /dev/null +++ b/packages/lib-sourcify/test/sources/FactoryImmutableWithoutConstrArg/Child/artifact.json @@ -0,0 +1,24 @@ +{ + "bytecode": "60a060405234801561001057600080fd5b503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805160f761005d60003960006049015260f76000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80638da5cb5b14602d575b600080fd5b60336047565b604051603e919060a8565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000609482606b565b9050919050565b60a281608b565b82525050565b600060208201905060bb6000830184609b565b9291505056fea26469706673582212208df0aa34584dd7d7ace64dfd11ebf4dae7f62c3e281f4e7dd9cec60a468272b264736f6c63430008110033", + + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] +} diff --git a/packages/lib-sourcify/test/sources/FactoryImmutableWithoutConstrArg/Child/metadata.json b/packages/lib-sourcify/test/sources/FactoryImmutableWithoutConstrArg/Child/metadata.json new file mode 100644 index 000000000..ed42aa3b3 --- /dev/null +++ b/packages/lib-sourcify/test/sources/FactoryImmutableWithoutConstrArg/Child/metadata.json @@ -0,0 +1,64 @@ +{ + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/FactoryTest3.sol": "Child2" + }, + "evmVersion": "london", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/FactoryTest3.sol": { + "keccak256": "0xea5d39ae3f4f927fdd2b681b6cb660bc250a5cd62f25428344702f2ee1be72b0", + "license": "MIT", + "urls": [ + "bzz-raw://1ffc04a3eabf04a6935b32bf64896d34c6be8d56a6ba7af7c502ccb474684f3a", + "dweb:/ipfs/QmYAzHSjutXEvWSPFnqg4fHBw6Why8UryCdTrP3ah3pqmf" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/packages/lib-sourcify/test/sources/FactoryImmutableWithoutConstrArg/Child/sources/FactoryTest3.sol b/packages/lib-sourcify/test/sources/FactoryImmutableWithoutConstrArg/Child/sources/FactoryTest3.sol new file mode 100644 index 000000000..fee0e1527 --- /dev/null +++ b/packages/lib-sourcify/test/sources/FactoryImmutableWithoutConstrArg/Child/sources/FactoryTest3.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +contract Factory2{ + Child2[] public children; + uint disabledCount; + + event ChildCreated(address childAddress); + + function createChild() external{ + Child2 child = new Child2(); + children.push(child); + emit ChildCreated(address(child)); + } + + function getChildren() external view returns(Child2[] memory _children){ + _children = new Child2[](children.length- disabledCount); + uint count; + for(uint i=0;i=0.7.0 <0.9.0; + +/** + * @title Storage + * @dev Store & retrieve value in a variable + */ +contract Storage { + + uint256 number; + + /** + * @dev Store value in variable + * @param num value to store + */ + function store(uint256 num) public { + number = num; + } + + /** + * @dev Return value + * @return value of 'number' + */ + function retrieve() public view returns (uint256){ + return number; + } +} diff --git a/packages/lib-sourcify/test/sources/StorageInliner/artifact.json b/packages/lib-sourcify/test/sources/StorageInliner/artifact.json new file mode 100644 index 000000000..f115d0265 --- /dev/null +++ b/packages/lib-sourcify/test/sources/StorageInliner/artifact.json @@ -0,0 +1,31 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "num", + "type": "uint256" + } + ], + "name": "store", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "retrieve", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061012f806100206000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80632e64cec11460375780636057361d146051575b600080fd5b603d6069565b6040516048919060c2565b60405180910390f35b6067600480360381019060639190608f565b6072565b005b60008054905090565b8060008190555050565b60008135905060898160e5565b92915050565b60006020828403121560a057600080fd5b600060ac84828501607c565b91505092915050565b60bc8160db565b82525050565b600060208201905060d5600083018460b5565b92915050565b6000819050919050565b60ec8160db565b811460f657600080fd5b5056fea264697066735822122005183dd5df276b396683ae62d0c96c3a406d6f9dad1ad0923daf492c531124b164736f6c63430008040033" +} diff --git a/packages/lib-sourcify/test/sources/StorageInliner/metadata.json b/packages/lib-sourcify/test/sources/StorageInliner/metadata.json new file mode 100644 index 000000000..35e028742 --- /dev/null +++ b/packages/lib-sourcify/test/sources/StorageInliner/metadata.json @@ -0,0 +1,66 @@ +{ + "compiler": { "version": "0.8.4+commit.c7e474f2" }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "name": "retrieve", + "outputs": [ + { "internalType": "uint256", "name": "", "type": "uint256" } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "num", "type": "uint256" } + ], + "name": "store", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "Store & retrieve value in a variable", + "kind": "dev", + "methods": { + "retrieve()": { + "details": "Return value ", + "returns": { "_0": "value of 'number'" } + }, + "store(uint256)": { + "details": "Store value in variable", + "params": { "num": "value to store" } + } + }, + "title": "Storage", + "version": 1 + }, + "userdoc": { "kind": "user", "methods": {}, "version": 1 } + }, + "settings": { + "compilationTarget": { "project:/contracts/Storage.sol": "Storage" }, + "evmVersion": "istanbul", + "libraries": {}, + "metadata": { "bytecodeHash": "ipfs" }, + "optimizer": { + "enabled": false, + "runs": 200, + "details": { "inliner": true } + }, + "remappings": [] + }, + "sources": { + "project:/contracts/Storage.sol": { + "keccak256": "0x88c47206b5ec3d60ab820e9d126c4ac54cb17fa7396ff49ebe27db2862982ad8", + "license": "GPL-3.0", + "urls": [ + "bzz-raw://5d1eeb01c8c10bed9e290f4a80a8d4081422a7b298a13049d72867022522cf6b", + "dweb:/ipfs/QmaFRC9ZtT7y3t9XNWCbDuMTEwKkyaQJzYFzw3NbeohSn5" + ] + } + }, + "version": 1 +} diff --git a/packages/lib-sourcify/test/sources/StorageInliner/sources/Storage.sol b/packages/lib-sourcify/test/sources/StorageInliner/sources/Storage.sol new file mode 100644 index 000000000..d292c7e52 --- /dev/null +++ b/packages/lib-sourcify/test/sources/StorageInliner/sources/Storage.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity >=0.7.0 <0.9.0; + +/** + * @title Storage + * @dev Store & retrieve value in a variable + */ +contract Storage { + + uint256 number; + + /** + * @dev Store value in variable + * @param num value to store + */ + function store(uint256 num) public { + number = num; + } + + /** + * @dev Return value + * @return value of 'number' + */ + function retrieve() public view returns (uint256){ + return number; + } +} diff --git a/packages/lib-sourcify/test/sources/StorageModified/metadata.json b/packages/lib-sourcify/test/sources/StorageModified/metadata.json new file mode 100644 index 000000000..f7d24c9f1 --- /dev/null +++ b/packages/lib-sourcify/test/sources/StorageModified/metadata.json @@ -0,0 +1,87 @@ +{ + "compiler": { + "version": "0.8.4+commit.c7e474f2" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "name": "retrieve", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "num", + "type": "uint256" + } + ], + "name": "store", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "Store & retrieve value in a variable", + "kind": "dev", + "methods": { + "retrieve()": { + "details": "Return value ", + "returns": { + "_0": "value of 'number'" + } + }, + "store(uint256)": { + "details": "Store value in variable", + "params": { + "num": "value to store" + } + } + }, + "title": "Storage", + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/StorageModified.sol": "StorageModified" + }, + "evmVersion": "istanbul", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/StorageModified.sol": { + "keccak256": "0x50157ddc4d5628690e0325bd6b78e33b0b6055231c98a9d0fa07e1328e504a71", + "license": "GPL-3.0", + "urls": [ + "bzz-raw://504b8df51a851f24032ac73f8f77a9875670f26fd742b247549e15314c444bec", + "dweb:/ipfs/QmVzsjWz4U2gm6gEm2edtFMK5EwtR2XxHnHYkEWsuXez9f" + ] + } + }, + "version": 1 +} diff --git a/packages/lib-sourcify/test/sources/StorageModified/sources/StorageModified.sol b/packages/lib-sourcify/test/sources/StorageModified/sources/StorageModified.sol new file mode 100644 index 000000000..e7f904817 --- /dev/null +++ b/packages/lib-sourcify/test/sources/StorageModified/sources/StorageModified.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: GPL-3.0 +// This line + changed contrract name will cause a partial match to the deployed contract. +pragma solidity >=0.7.0 <0.9.0; + +/** + * @title Storage + * @dev Store & retrieve value in a variable + */ +contract StorageModified { + + uint256 number; + + /** + * @dev Store value in variable + * @param num value to store + */ + function store(uint256 num) public { + number = num; + } + + /** + * @dev Return value + * @return value of 'number' + */ + function retrieve() public view returns (uint256){ + return number; + } +} diff --git a/packages/lib-sourcify/test/sources/StorageUnsortedMetadata/metadata.json b/packages/lib-sourcify/test/sources/StorageUnsortedMetadata/metadata.json new file mode 100644 index 000000000..6de88b14b --- /dev/null +++ b/packages/lib-sourcify/test/sources/StorageUnsortedMetadata/metadata.json @@ -0,0 +1,62 @@ +{ + "version": 1, + "compiler": { "version": "0.8.4+commit.c7e474f2" }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "name": "retrieve", + "outputs": [ + { "internalType": "uint256", "name": "", "type": "uint256" } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "num", "type": "uint256" } + ], + "name": "store", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "version": 1, + "details": "Store & retrieve value in a variable", + "kind": "dev", + "methods": { + "retrieve()": { + "details": "Return value ", + "returns": { "_0": "value of 'number'" } + }, + "store(uint256)": { + "details": "Store value in variable", + "params": { "num": "value to store" } + } + }, + "title": "Storage" + }, + "userdoc": { "kind": "user", "methods": {}, "version": 1 } + }, + "settings": { + "compilationTarget": { "project:/contracts/Storage.sol": "Storage" }, + "evmVersion": "istanbul", + "libraries": {}, + "metadata": { "bytecodeHash": "ipfs" }, + "optimizer": { "enabled": false, "runs": 200 }, + "remappings": [] + }, + "sources": { + "project:/contracts/Storage.sol": { + "keccak256": "0x88c47206b5ec3d60ab820e9d126c4ac54cb17fa7396ff49ebe27db2862982ad8", + "license": "GPL-3.0", + "urls": [ + "bzz-raw://5d1eeb01c8c10bed9e290f4a80a8d4081422a7b298a13049d72867022522cf6b", + "dweb:/ipfs/QmaFRC9ZtT7y3t9XNWCbDuMTEwKkyaQJzYFzw3NbeohSn5" + ] + } + } +} diff --git a/packages/lib-sourcify/test/sources/StorageViaIR/artifact.json b/packages/lib-sourcify/test/sources/StorageViaIR/artifact.json new file mode 100644 index 000000000..ea5df96fa --- /dev/null +++ b/packages/lib-sourcify/test/sources/StorageViaIR/artifact.json @@ -0,0 +1,31 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "num", + "type": "uint256" + } + ], + "name": "store", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "retrieve", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234156100135761001261003b565b5b61001b610040565b610023610031565b610313610043823961031381f35b6000604051905090565b600080fd5b56fe6080604052600436106100aa576100176000356100b7565b80632e64cec1811461003357636057361d811461006d576100a7565b3415610042576100416100ea565b5b61004d3660046100f4565b6100556102ad565b61005d6100e0565b6100678282610125565b81810382f35b341561007c5761007b6100ea565b5b61008736600461016c565b61009081610252565b6100986100e0565b6100a181610199565b81810382f35b50505b6100b26101a5565b6102ce565b60007c010000000000000000000000000000000000000000000000000000000082049050919050565b6000604051905090565b600080fd5b600080fd5b60008183031215610108576101076100ef565b5b5050565b6000819050919050565b61011f8161010c565b82525050565b600060208201905061013a6000830184610116565b92915050565b6101498161010c565b811461015457600080fd5b50565b60008135905061016681610140565b92915050565b600060208284031215610182576101816100ef565b5b600061019084828501610157565b91505092915050565b60008082019050919050565b600080fd5b6000600182029050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101e3846101aa565b9350801983169250808416831791505092915050565b6000819050919050565b600061021e6102196102148461010c565b6101f9565b61010c565b9050919050565b6000819050919050565b61023882610203565b61024b61024482610225565b83546101b7565b8255505050565b808061025f81600061022f565b505050565b600090565b6000600182049050919050565b6000819050919050565b600061029361028e83610269565b610276565b9050919050565b60006102a68254610280565b9050919050565b60006102b7610264565b8091506102c4600061029a565b8080935050505090565bfea3646970667358221220bfdd0169ba76579372f6637e9fd849a7cefae9eede22f3fa7031e547a2738ab06c6578706572696d656e74616cf564736f6c634300080a0041" +} diff --git a/packages/lib-sourcify/test/sources/StorageViaIR/metadata.json b/packages/lib-sourcify/test/sources/StorageViaIR/metadata.json new file mode 100644 index 000000000..4426501c7 --- /dev/null +++ b/packages/lib-sourcify/test/sources/StorageViaIR/metadata.json @@ -0,0 +1 @@ +{"compiler":{"version":"0.8.10+commit.fc410830"},"language":"Solidity","output":{"abi":[{"inputs":[],"name":"retrieve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"num","type":"uint256"}],"name":"store","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Store & retrieve value in a variable","kind":"dev","methods":{"retrieve()":{"details":"Return value ","returns":{"_0":"value of 'number'"}},"store(uint256)":{"details":"Store value in variable","params":{"num":"value to store"}}},"title":"Storage","version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"project:/contracts/Storage.sol":"Storage"},"evmVersion":"byzantium","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[],"viaIR":true},"sources":{"project:/contracts/Storage.sol":{"keccak256":"0x88c47206b5ec3d60ab820e9d126c4ac54cb17fa7396ff49ebe27db2862982ad8","license":"GPL-3.0","urls":["bzz-raw://5d1eeb01c8c10bed9e290f4a80a8d4081422a7b298a13049d72867022522cf6b","dweb:/ipfs/QmaFRC9ZtT7y3t9XNWCbDuMTEwKkyaQJzYFzw3NbeohSn5"]}},"version":1} \ No newline at end of file diff --git a/packages/lib-sourcify/test/sources/StorageViaIR/sources/Storage.sol b/packages/lib-sourcify/test/sources/StorageViaIR/sources/Storage.sol new file mode 100644 index 000000000..d292c7e52 --- /dev/null +++ b/packages/lib-sourcify/test/sources/StorageViaIR/sources/Storage.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity >=0.7.0 <0.9.0; + +/** + * @title Storage + * @dev Store & retrieve value in a variable + */ +contract Storage { + + uint256 number; + + /** + * @dev Store value in variable + * @param num value to store + */ + function store(uint256 num) public { + number = num; + } + + /** + * @dev Return value + * @return value of 'number' + */ + function retrieve() public view returns (uint256){ + return number; + } +} diff --git a/test/sources/artifacts/UsingLibrary.json b/packages/lib-sourcify/test/sources/UsingLibrary/artifact.json similarity index 100% rename from test/sources/artifacts/UsingLibrary.json rename to packages/lib-sourcify/test/sources/UsingLibrary/artifact.json diff --git a/test/sources/metadata/using-library.meta.object.json b/packages/lib-sourcify/test/sources/UsingLibrary/metadata.json similarity index 100% rename from test/sources/metadata/using-library.meta.object.json rename to packages/lib-sourcify/test/sources/UsingLibrary/metadata.json diff --git a/test/sources/contracts/UsingLibrary.sol b/packages/lib-sourcify/test/sources/UsingLibrary/sources/UsingLibrary.sol similarity index 100% rename from test/sources/contracts/UsingLibrary.sol rename to packages/lib-sourcify/test/sources/UsingLibrary/sources/UsingLibrary.sol diff --git a/test/chains/sources/shared/WithImmutables.json b/packages/lib-sourcify/test/sources/WithImmutables/artifact.json similarity index 100% rename from test/chains/sources/shared/WithImmutables.json rename to packages/lib-sourcify/test/sources/WithImmutables/artifact.json diff --git a/test/chains/sources/shared/withImmutables.metadata.json b/packages/lib-sourcify/test/sources/WithImmutables/metadata.json similarity index 100% rename from test/chains/sources/shared/withImmutables.metadata.json rename to packages/lib-sourcify/test/sources/WithImmutables/metadata.json diff --git a/test/chains/sources/shared/WithImmutables.sol b/packages/lib-sourcify/test/sources/WithImmutables/sources/WithImmutables.sol similarity index 100% rename from test/chains/sources/shared/WithImmutables.sol rename to packages/lib-sourcify/test/sources/WithImmutables/sources/WithImmutables.sol diff --git a/packages/lib-sourcify/test/sources/WithImmutablesCreationBytecodeAttack/artifact.json b/packages/lib-sourcify/test/sources/WithImmutablesCreationBytecodeAttack/artifact.json new file mode 100644 index 000000000..bd2c5fcb9 --- /dev/null +++ b/packages/lib-sourcify/test/sources/WithImmutablesCreationBytecodeAttack/artifact.json @@ -0,0 +1,4 @@ +{ + "bytecode": "60a060405234801561001057600080fd5b506040516103ca", + "abi": [] +} diff --git a/packages/lib-sourcify/test/sources/WithImmutablesCreationBytecodeAttack/metadata.json b/packages/lib-sourcify/test/sources/WithImmutablesCreationBytecodeAttack/metadata.json new file mode 100644 index 000000000..06a0ba48c --- /dev/null +++ b/packages/lib-sourcify/test/sources/WithImmutablesCreationBytecodeAttack/metadata.json @@ -0,0 +1,44 @@ +{ + "compiler": { + "version": "0.8.19+commit.7dd6d404" + }, + "language": "Solidity", + "output": { + "abi": [], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "sources/WithImmutables.sol": "WithImmutables" + }, + "evmVersion": "paris", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "sources/WithImmutables.sol": { + "keccak256": "0xa67bac14ebd5956d06bd0f33e2ffd55db729d4ec85bca19ec5b321e6be0b7cc8", + "urls": [ + "bzz-raw://6d83c127e075a149ec14c6af579bc7b24955cdb7578ae7da2f253b7142d267cc", + "dweb:/ipfs/QmW6tdCTV7X5dd5LCKDWedbMmkurQTMi4ePx7LY3DNuLn7" + ] + } + }, + "version": 1 +} diff --git a/packages/lib-sourcify/test/sources/WithImmutablesCreationBytecodeAttack/sources/WithImmutables.sol b/packages/lib-sourcify/test/sources/WithImmutablesCreationBytecodeAttack/sources/WithImmutables.sol new file mode 100644 index 000000000..4f90eb28e --- /dev/null +++ b/packages/lib-sourcify/test/sources/WithImmutablesCreationBytecodeAttack/sources/WithImmutables.sol @@ -0,0 +1,6 @@ +pragma solidity >=0.7.0; + +contract WithImmutables{ + constructor (uint256 a) { + } +} \ No newline at end of file diff --git a/packages/lib-sourcify/test/sources/WrongMetadata/SimplyLog.json b/packages/lib-sourcify/test/sources/WrongMetadata/SimplyLog.json new file mode 100644 index 000000000..e542dbb33 --- /dev/null +++ b/packages/lib-sourcify/test/sources/WrongMetadata/SimplyLog.json @@ -0,0 +1,4 @@ +{ + "bytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806341304fac1461003b578063eefbf17e14610060575b600080fd5b61004e6100493660046100ca565b610069565b60405190815260200160405180910390f35b61004e60005481565b6000805460405181907f48197b8eaf01bc9d46384d798a981a4537fc58dcd35ece37054dddbba8418edf906100a1908790879061013c565b60405180910390a260016000808282546100bb919061016b565b90915550909150505b92915050565b600080602083850312156100dd57600080fd5b823567ffffffffffffffff808211156100f557600080fd5b818501915085601f83011261010957600080fd5b81358181111561011857600080fd5b86602082850101111561012a57600080fd5b60209290920196919550909350505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b808201808211156100c457634e487b7160e01b600052601160045260246000fdfea2646970667358221220d47692de99253af8b2a9835fa8c6cde8d7f24fe3a76c340c9b9462e24144124264736f6c63430008130033", + "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity ^0.8.19;\r\n\r\n/**\r\n * @notice Simply logs strings\r\n */\r\ncontract SimplyLog {\r\n /**\r\n * @notice The ID of the next message to be logged\r\n */\r\n uint256 public nextMessageId = 0;\r\n event Log(uint256 indexed messageId, string message);\r\n \r\n /**\r\n * @notice Log a message.\r\n * @param message Message to log\r\n * @return message id that was logged\r\n */\r\n function log(string calldata message) public returns (uint256) {\r\n uint256 messageId = nextMessageId;\r\n emit Log(messageId, message);\r\n nextMessageId += 1;\r\n return messageId;\r\n }\r\n}" +} diff --git a/packages/lib-sourcify/test/sources/WrongMetadata/artifact.json b/packages/lib-sourcify/test/sources/WrongMetadata/artifact.json new file mode 100644 index 000000000..95e6f0cd3 --- /dev/null +++ b/packages/lib-sourcify/test/sources/WrongMetadata/artifact.json @@ -0,0 +1,40 @@ +{ + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "messageId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "Log", + "type": "event" + }, + { + "inputs": [ + { "internalType": "string", "name": "message", "type": "string" } + ], + "name": "log", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "nextMessageId", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60806040526000805534801561001457600080fd5b506101c2806100246000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806341304fac1461003b578063eefbf17e14610060575b600080fd5b61004e6100493660046100ca565b610069565b60405190815260200160405180910390f35b61004e60005481565b6000805460405181907f48197b8eaf01bc9d46384d798a981a4537fc58dcd35ece37054dddbba8418edf906100a1908790879061013c565b60405180910390a260016000808282546100bb919061016b565b90915550909150505b92915050565b600080602083850312156100dd57600080fd5b823567ffffffffffffffff808211156100f557600080fd5b818501915085601f83011261010957600080fd5b81358181111561011857600080fd5b86602082850101111561012a57600080fd5b60209290920196919550909350505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b808201808211156100c457634e487b7160e01b600052601160045260246000fdfea26469706673582212202b316dd16def116bc86710e208b5bc3b14461349681445b3f3fcb0aae41ec9b964736f6c63430008130033" +} diff --git a/packages/lib-sourcify/test/sources/WrongMetadata/metadata.json b/packages/lib-sourcify/test/sources/WrongMetadata/metadata.json new file mode 100644 index 000000000..4c5d4fde0 --- /dev/null +++ b/packages/lib-sourcify/test/sources/WrongMetadata/metadata.json @@ -0,0 +1 @@ +{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"messageId","type":"uint256"},{"indexed":false,"internalType":"string","name":"message","type":"string"}],"name":"Log","type":"event"},{"inputs":[{"internalType":"string","name":"message","type":"string"}],"name":"log","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nextMessageId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"log(string)":{"params":{"message":"Message to log"},"returns":{"_0":"message id that was logged"}}},"version":1},"userdoc":{"kind":"user","methods":{"log(string)":{"notice":"Log a message."},"nextMessageId()":{"notice":"The ID of the next message to be logged"}},"notice":"Simply logs strings","version":1}},"settings":{"compilationTarget":{"SimplyLog.sol":"SimplyLog"},"evmVersion":"paris","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"sources":{"SimplyLog.sol":{"keccak256":"0x07cbf4f3331eb939fc37ecde50f9685a595f554a3ed3a7f828d485c3d7cac3f5","license":"MIT","urls":["bzz-raw://96f37b60ba400074ef99e48659a811834df4cbfc42219c759fc28661cf5233da","dweb:/ipfs/QmRB4GmE2Egu5R5xUu1BKHRScAmxu5xjuKfVZXjNVnxoms"]}},"version":1} \ No newline at end of file diff --git a/packages/lib-sourcify/test/sources/WrongMetadata/sources/SimplyLog.sol b/packages/lib-sourcify/test/sources/WrongMetadata/sources/SimplyLog.sol new file mode 100644 index 000000000..e5a3bd73e --- /dev/null +++ b/packages/lib-sourcify/test/sources/WrongMetadata/sources/SimplyLog.sol @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.19; + +/** + * @notice Simply logs strings + */ +contract SimplyLog { + /** + * @notice The ID of the next message to be logged + */ + uint256 public nextMessageId = 0; + event Log(uint256 indexed messageId, string message); + + /** + * @notice Log a message. + * @param message Message to log + * @return message id that was logged + */ + function log(string calldata message) public returns (uint256) { + uint256 messageId = nextMessageId; + emit Log(messageId, message); + nextMessageId += 1; + return messageId; + } +} diff --git a/packages/lib-sourcify/test/utils.ts b/packages/lib-sourcify/test/utils.ts new file mode 100644 index 000000000..18c237b6c --- /dev/null +++ b/packages/lib-sourcify/test/utils.ts @@ -0,0 +1,146 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +// Functions here assume a folder structure like this: +// - contractFolderPath +// - artifact.json +// - metadata.json +// - sources +// - source1.sol +// - source2.sol + +import path from 'path'; +import fs from 'fs'; +import { + /* ContextVariables, */ Match, + SourcifyChain, + verifyDeployed, +} from '../src'; +import { checkFiles } from '../src'; +import { expect } from 'chai'; +import { ContractFactory, Signer } from 'ethers'; +/** + * Function to deploy contracts from provider unlocked accounts + * + * @returns the address of the deployed contract and the creator tx hash + */ +// TODO: ABI type definition +export async function deployFromAbiAndBytecode( + signer: Signer, + contractFolderPath: string, + args?: any[] +) { + const artifact = require(path.join(contractFolderPath, 'artifact.json')); + // Deploy contract + const contractFactory = new ContractFactory( + artifact.abi, + artifact.bytecode, + signer + ); + const deployment = await contractFactory.deploy(...(args || [])); + await deployment.waitForDeployment(); + + const contractAddress = await deployment.getAddress(); + const creationTx = deployment.deploymentTransaction(); + if (!creationTx) { + throw new Error( + `No deployment transaction found for ${contractAddress} in contract folder ${contractFolderPath}` + ); + } + return { contractAddress, txHash: creationTx.hash }; +} + +/** + * Checks the contract from metadata and source files under contractFolderPath and + * verifies it on sourcifyChain at address. + * The metadata must be at contractFolderPath/metadata.json and the sources must be under contractFolderPath/sources. + */ +export const checkAndVerifyDeployed = async ( + contractFolderPath: string, + sourcifyChain: SourcifyChain, + address: string, + /* contextVariables?: ContextVariables, */ + creatorTxHash?: string +) => { + const checkedContracts = await checkFilesFromContractFolder( + contractFolderPath + ); + + const match = await verifyDeployed( + checkedContracts[0], + sourcifyChain, + address, + /* contextVariables, */ + creatorTxHash + ); + return match; +}; + +/** + * Creates a CheckedContract[] from the files under contractFolderPath. + * The metadata must be at contractFolderPath/metadata.json and the sources must be under contractFolderPath/sources. + */ +export const checkFilesFromContractFolder = async ( + contractFolderPath: string +) => { + const metadataPath = path.join(contractFolderPath, 'metadata.json'); + const metadataBuffer = fs.readFileSync(metadataPath); + const metadataPathBuffer = { path: metadataPath, buffer: metadataBuffer }; + + const sourceFilePaths = fs.readdirSync( + path.join(contractFolderPath, 'sources') + ); + const sourcePathBuffers = sourceFilePaths.map((sourceFilePath) => { + const sourceBuffer = fs.readFileSync( + path.join(contractFolderPath, 'sources', sourceFilePath) + ); + return { path: sourceFilePath, buffer: sourceBuffer }; + }); + const checkedContracts = await checkFiles([ + metadataPathBuffer, + ...sourcePathBuffers, + ]); + return checkedContracts; +}; +/** + * Combines both deploying and verifying a contract in a single function. + * Returns the deployed address for assertions on Match.address + */ +export const deployCheckAndVerify = async ( + contractFolderPath: string, + sourcifyChain: SourcifyChain, + signer: Signer, + args?: any[] +) => { + const { contractAddress } = await deployFromAbiAndBytecode( + signer, + contractFolderPath, + args + ); + const match = await checkAndVerifyDeployed( + contractFolderPath, + sourcifyChain, + contractAddress + ); + return { match, contractAddress }; +}; + +export const expectMatch = ( + match: Match, + status: string | null, + address: string, + libraryMap?: { [key: string]: string }, + message?: string +) => { + try { + expect(match.status).to.equal(status); + expect(match.address).to.equal(address); + if (libraryMap) { + expect(match.libraryMap).to.deep.equal(libraryMap); + } + if (message) { + expect(match.message).to.equal(message); + } + } catch (e) { + console.log('Match: ', match); + throw e; + } +}; diff --git a/packages/lib-sourcify/test/validation.spec.ts b/packages/lib-sourcify/test/validation.spec.ts new file mode 100644 index 000000000..b66e1925f --- /dev/null +++ b/packages/lib-sourcify/test/validation.spec.ts @@ -0,0 +1,224 @@ +import { + checkPaths, + extractHardhatMetadataAndSources, + pathContentArrayToStringMap, + unzipFiles, +} from '../src'; +import path from 'path'; +import { CheckedContract } from '../src'; +import fs from 'fs'; +import chai, { expect } from 'chai'; +import hardhatOutput from './validation/files/hardhat-output/output.json'; + +function objectLength(obj: any) { + return Object.keys(obj).length; +} + +const EXTENDED_TIME = 15000; // 15 seconds + +describe('ValidationService', function () { + this.timeout(EXTENDED_TIME); + + describe('#checkPaths', function () { + it('should succeed for single source file', async function () { + const ignoring: string[] = []; + const paths = [path.join(__dirname, 'validation', 'files', 'single')]; + const checkedContracts = await checkPaths(paths, ignoring); + + chai.expect(ignoring).to.be.empty; + expectationsOfSingle(checkedContracts); + }); + + it('should succeed for single source file, everything provided individually', async function () { + const ignoring: string[] = []; + const paths = [ + path.join(__dirname, 'validation', 'files', 'single', '1_Storage.sol'), + path.join(__dirname, 'validation', 'files', 'single', 'metadata.json'), + ]; + const checkedContracts = await checkPaths(paths, ignoring); + + chai.expect(ignoring).to.be.empty; + expectationsOfSingle(checkedContracts); + }); + + function expectationsOfSingle(checkedContracts: CheckedContract[]) { + chai.expect(checkedContracts.length).to.equal(1); + const onlyContract = checkedContracts[0]; + + chai.expect(onlyContract.name).to.equal('Storage'); + chai.expect(onlyContract.compiledPath).to.equal('browser/1_Storage.sol'); + + chai.expect(CheckedContract.isValid(onlyContract)).to.be.true; + chai.expect(objectLength(onlyContract.solidity)).to.equal(1); + chai + .expect(onlyContract.solidity) + .to.have.all.keys('browser/1_Storage.sol'); + chai.expect(onlyContract.missing).to.be.empty; + chai.expect(onlyContract.invalid).to.be.empty; + } + + it('should report for single source file missing', async function () { + const ignoring: string[] = []; + const paths = [ + path.join(__dirname, 'validation', 'files', 'single', 'metadata.json'), + ]; + const checkedContracts = await checkPaths(paths, ignoring); + + chai.expect(ignoring).to.be.empty; + chai.expect(checkedContracts.length).to.equal(1); + const onlyContract = checkedContracts[0]; + + chai.expect(onlyContract.name).to.equal('Storage'); + chai.expect(onlyContract.compiledPath).to.equal('browser/1_Storage.sol'); + + chai.expect(CheckedContract.isValid(onlyContract)).to.be.false; + chai.expect(onlyContract.solidity).to.be.empty; + chai.expect(objectLength(onlyContract.missing)).to.equal(1); + chai.expect(onlyContract.missing).to.have.key('browser/1_Storage.sol'); + chai.expect(onlyContract.invalid).to.be.empty; + }); + + it('should throw for no metadata found', async function () { + let error: Error | undefined = undefined; + const paths = [ + path.join(__dirname, 'validation', 'files', 'single', '1_Storage.sol'), + ]; + try { + await checkPaths(paths); + } catch (e) { + if (e instanceof Error) error = e; + } + chai.expect(error).to.be.an('Error'); + chai + .expect(error?.message) + .to.equal('Metadata file not found. Did you include "metadata.json"?'); + }); + + it('should ignore invalid paths', async function () { + const ignoring: string[] = []; + const invalidPath = path.join( + __dirname, + 'validation', + 'files', + 'foobar.sol' + ); + const paths = [ + path.join(__dirname, 'validation', 'files', 'single'), + invalidPath, + ]; + const checkedContracts = await checkPaths(paths, ignoring); + + chai.expect(ignoring).to.deep.equal([invalidPath]); + expectationsOfSingle(checkedContracts); + }); + + async function checkSingleWithModifiedEnding( + directoryName: string, + expectedLineEnd: string, + expectedFileEnd: string + ) { + const ignoring: string[] = []; + const directory = path.join( + __dirname, + 'validation', + 'files', + directoryName + ); + + const filePath = path.join(directory, '1_Storage.sol'); + const content = fs.readFileSync(filePath).toString(); + + const nCount = (content.match(/\n/g) || []).length; + const rnCount = (content.match(/\r\n/g) || []).length; + if (expectedLineEnd === '\n') { + chai.expect(rnCount).to.equal(0); + } else { + chai.expect(nCount).to.equal(rnCount); + } + + const endLength = expectedFileEnd.length; + const fileEnd = content.slice(content.length - endLength); + chai.expect(fileEnd).to.equal(expectedFileEnd); + + const checkedContracts = await checkPaths([directory], ignoring); + + chai.expect(ignoring).to.be.empty; + chai.expect(checkedContracts).to.have.a.lengthOf(1); + + const contract = checkedContracts[0]; + chai.expect(contract.name).to.equal('Storage'); + chai.expect(CheckedContract.isValid(contract)).to.be.true; + } + + it('should replace \\r\\n with \\n', function () { + checkSingleWithModifiedEnding('single-replace-with-n', '\r\n', '}'); + }); + + it('should replace \\n with \\r\\n', function () { + checkSingleWithModifiedEnding('single-replace-with-rn', '\n', '}'); + }); + + it('should add a trailing \\r\\n', function () { + checkSingleWithModifiedEnding('single-add-trailing-rn', '\r\n', '}'); + }); + + it('should add a trailing \\n', function () { + checkSingleWithModifiedEnding('single-add-trailing-n', '\n', '}'); + }); + + it('should remove a trailing \\r\\n', function () { + checkSingleWithModifiedEnding( + 'single-remove-trailing-rn', + '\r\n', + '\r\n' + ); + }); + + it('should remove a trailing \\n', function () { + checkSingleWithModifiedEnding('single-remove-trailing-n', '\n', '\n'); + }); + + it('should validate a file with two trailing n', function () { + // this fails if not checking the original file + checkSingleWithModifiedEnding('single-keep-original', '\n', '\n\n'); + }); + }); +}); + +describe('Unit tests', function () { + const pathContent = { + path: './validation/files/hardhat-output/output.json', + content: JSON.stringify(hardhatOutput), + }; + it('Should extractHardhatMetadataAndSources', async function () { + const { hardhatMetadataFiles, hardhatSourceFiles } = + extractHardhatMetadataAndSources(pathContent); + expect(hardhatMetadataFiles).lengthOf(6); + expect(hardhatSourceFiles).lengthOf(6); + }); + it('Should pathContentArrayToStringMap', async function () { + const stringMap = pathContentArrayToStringMap([pathContent]); + const keysInStringMap = Object.keys(stringMap); + expect(keysInStringMap).lengthOf(1); + expect(keysInStringMap[0]).equals( + './validation/files/hardhat-output/output.json' + ); + }); + it('Should unzip', async function () { + const zippedTrufflePath = path.join( + 'test', + 'validation', + 'files', + 'truffle-example.zip' + ); + const zippedTruffleBuffer = fs.readFileSync(zippedTrufflePath); + const files = [ + { + path: zippedTrufflePath, + buffer: zippedTruffleBuffer, + }, + ]; + await unzipFiles(files); + expect(files).lengthOf(19); + }); +}); diff --git a/packages/lib-sourcify/test/validation/files/hardhat-output/output.json b/packages/lib-sourcify/test/validation/files/hardhat-output/output.json new file mode 100644 index 000000000..525421daf --- /dev/null +++ b/packages/lib-sourcify/test/validation/files/hardhat-output/output.json @@ -0,0 +1,24842 @@ +{ + "id": "c6e2b435a1bff06861c33152a0487a43", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.6", + "solcLongVersion": "0.8.6+commit.11564f7e", + "input": { + "language": "Solidity", + "sources": { + "contracts/MyToken.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.6;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\n// import \"./Greeter.sol\";\n\ncontract MyToken is ERC20, Ownable {\n constructor(string memory name, string memory symbol) ERC20(name, symbol) {\n _mint(msg.sender, 1000000000 * 10**9);\n }\n\n function mint(address to, uint256 amount) public {\n _mint(to, amount);\n }\n\n function decimals() public view virtual override returns (uint8) {\n return 9;\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"./IERC20.sol\";\nimport \"./extensions/IERC20Metadata.sol\";\nimport \"../../utils/Context.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20PresetMinterPauser}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20, IERC20Metadata {\n mapping(address => uint256) private _balances;\n\n mapping(address => mapping(address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * The default value of {decimals} is 18. To select a different value for\n * {decimals} you should overload it.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\n * overridden;\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual override returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual override returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `recipient` cannot be the zero address.\n * - the caller must have a balance of at least `amount`.\n */\n function transfer(address recipient, uint256 amount) public virtual override returns (bool) {\n _transfer(_msgSender(), recipient, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\n _approve(_msgSender(), spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20}.\n *\n * Requirements:\n *\n * - `sender` and `recipient` cannot be the zero address.\n * - `sender` must have a balance of at least `amount`.\n * - the caller must have allowance for ``sender``'s tokens of at least\n * `amount`.\n */\n function transferFrom(\n address sender,\n address recipient,\n uint256 amount\n ) public virtual override returns (bool) {\n _transfer(sender, recipient, amount);\n\n uint256 currentAllowance = _allowances[sender][_msgSender()];\n require(currentAllowance >= amount, \"ERC20: transfer amount exceeds allowance\");\n unchecked {\n _approve(sender, _msgSender(), currentAllowance - amount);\n }\n\n return true;\n }\n\n /**\n * @dev Atomically increases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);\n return true;\n }\n\n /**\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `spender` must have allowance for the caller of at least\n * `subtractedValue`.\n */\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n uint256 currentAllowance = _allowances[_msgSender()][spender];\n require(currentAllowance >= subtractedValue, \"ERC20: decreased allowance below zero\");\n unchecked {\n _approve(_msgSender(), spender, currentAllowance - subtractedValue);\n }\n\n return true;\n }\n\n /**\n * @dev Moves `amount` of tokens from `sender` to `recipient`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * Requirements:\n *\n * - `sender` cannot be the zero address.\n * - `recipient` cannot be the zero address.\n * - `sender` must have a balance of at least `amount`.\n */\n function _transfer(\n address sender,\n address recipient,\n uint256 amount\n ) internal virtual {\n require(sender != address(0), \"ERC20: transfer from the zero address\");\n require(recipient != address(0), \"ERC20: transfer to the zero address\");\n\n _beforeTokenTransfer(sender, recipient, amount);\n\n uint256 senderBalance = _balances[sender];\n require(senderBalance >= amount, \"ERC20: transfer amount exceeds balance\");\n unchecked {\n _balances[sender] = senderBalance - amount;\n }\n _balances[recipient] += amount;\n\n emit Transfer(sender, recipient, amount);\n\n _afterTokenTransfer(sender, recipient, amount);\n }\n\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n * the total supply.\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n */\n function _mint(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n _beforeTokenTransfer(address(0), account, amount);\n\n _totalSupply += amount;\n _balances[account] += amount;\n emit Transfer(address(0), account, amount);\n\n _afterTokenTransfer(address(0), account, amount);\n }\n\n /**\n * @dev Destroys `amount` tokens from `account`, reducing the\n * total supply.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n * - `account` must have at least `amount` tokens.\n */\n function _burn(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: burn from the zero address\");\n\n _beforeTokenTransfer(account, address(0), amount);\n\n uint256 accountBalance = _balances[account];\n require(accountBalance >= amount, \"ERC20: burn amount exceeds balance\");\n unchecked {\n _balances[account] = accountBalance - amount;\n }\n _totalSupply -= amount;\n\n emit Transfer(account, address(0), amount);\n\n _afterTokenTransfer(account, address(0), amount);\n }\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n */\n function _approve(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n require(owner != address(0), \"ERC20: approve from the zero address\");\n require(spender != address(0), \"ERC20: approve to the zero address\");\n\n _allowances[owner][spender] = amount;\n emit Approval(owner, spender, amount);\n }\n\n /**\n * @dev Hook that is called before any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * will be transferred to `to`.\n * - when `from` is zero, `amount` tokens will be minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n\n /**\n * @dev Hook that is called after any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * has been transferred to `to`.\n * - when `from` is zero, `amount` tokens have been minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _afterTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n}\n" + }, + "@openzeppelin/contracts/access/Ownable.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor() {\n _setOwner(_msgSender());\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n _;\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _setOwner(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n _setOwner(newOwner);\n }\n\n function _setOwner(address newOwner) private {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `recipient`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address recipient, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `sender` to `recipient` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address sender,\n address recipient,\n uint256 amount\n ) external returns (bool);\n\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n *\n * _Available since v4.1._\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n" + }, + "@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n}\n" + } + }, + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "contracts": { + "@openzeppelin/contracts/access/Ownable.sol": { + "Ownable": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.6+commit.11564f7e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"berlin\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x6bb804a310218875e89d12c053e94a13a4607cdf7cc2052f3e52bd32a0dc50a1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2ebbbe6d0011175bd9e7268b83de3f9c2f9d8d4cbfbaef12aff977d7d727163\",\"dweb:/ipfs/Qmd5c7Vxtis9wzkDNhxwc6A2QT5H9xn9kfjhx7qx44vpro\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x90565a39ae45c80f0468dc96c7b20d0afc3055f344c8203a0c9258239f350b9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26e8b38a7ac8e7b4463af00cf7fff1bf48ae9875765bf4f7751e100124d0bc8c\",\"dweb:/ipfs/QmWcsmkVr24xmmjfnBQZoemFniXjj3vwT78Cz6uqZW1Hux\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ERC20": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name_", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_148": { + "entryPoint": null, + "id": 148, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_string_fromMemory": { + "entryPoint": 270, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory": { + "entryPoint": 453, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "extract_byte_array_length": { + "entryPoint": 559, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x41": { + "entryPoint": 620, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1985:6", + "statements": [ + { + "nodeType": "YulBlock", + "src": "6:3:6", + "statements": [] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "78:821:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "127:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "136:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "139:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "129:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "129:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "129:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "106:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "114:4:6", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "102:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "102:17:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "121:3:6" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "98:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "98:27:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "91:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "91:35:6" + }, + "nodeType": "YulIf", + "src": "88:2:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "152:23:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "168:6:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "162:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "162:13:6" + }, + "variables": [ + { + "name": "_1", + "nodeType": "YulTypedName", + "src": "156:2:6", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "184:28:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "202:2:6", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "206:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "198:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "198:10:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "210:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "194:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "194:18:6" + }, + "variables": [ + { + "name": "_2", + "nodeType": "YulTypedName", + "src": "188:2:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "237:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "237:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "237:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "227:2:6" + }, + { + "name": "_2", + "nodeType": "YulIdentifier", + "src": "231:2:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "224:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "224:10:6" + }, + "nodeType": "YulIf", + "src": "221:2:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "266:17:6", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "280:2:6", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "276:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "276:7:6" + }, + "variables": [ + { + "name": "_3", + "nodeType": "YulTypedName", + "src": "270:2:6", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "292:23:6", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "312:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "306:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "306:9:6" + }, + "variables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "296:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "324:71:6", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "346:6:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "370:2:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "374:4:6", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "366:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "366:13:6" + }, + { + "name": "_3", + "nodeType": "YulIdentifier", + "src": "381:2:6" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "362:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "362:22:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "386:2:6", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "358:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "358:31:6" + }, + { + "name": "_3", + "nodeType": "YulIdentifier", + "src": "391:2:6" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "354:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "354:40:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "342:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "342:53:6" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "328:10:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "454:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "456:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "456:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "456:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "413:10:6" + }, + { + "name": "_2", + "nodeType": "YulIdentifier", + "src": "425:2:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "410:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "410:18:6" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "433:10:6" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "445:6:6" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "430:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "430:22:6" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "407:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "407:46:6" + }, + "nodeType": "YulIf", + "src": "404:2:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "492:2:6", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "496:10:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "485:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "485:22:6" + }, + "nodeType": "YulExpressionStatement", + "src": "485:22:6" + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "523:6:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "531:2:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "516:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "516:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "516:18:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "543:14:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "553:4:6", + "type": "", + "value": "0x20" + }, + "variables": [ + { + "name": "_4", + "nodeType": "YulTypedName", + "src": "547:2:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "603:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "615:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "605:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "605:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "605:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "580:6:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "588:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "576:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "576:15:6" + }, + { + "name": "_4", + "nodeType": "YulIdentifier", + "src": "593:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "572:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "572:24:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "598:3:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "569:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "569:33:6" + }, + "nodeType": "YulIf", + "src": "566:2:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "628:10:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "637:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "632:1:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "693:87:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "722:6:6" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "730:1:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "718:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "718:14:6" + }, + { + "name": "_4", + "nodeType": "YulIdentifier", + "src": "734:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "714:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "714:23:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "753:6:6" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "761:1:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "749:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "749:14:6" + }, + { + "name": "_4", + "nodeType": "YulIdentifier", + "src": "765:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "745:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "745:23:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "739:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "739:30:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "707:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "707:63:6" + }, + "nodeType": "YulExpressionStatement", + "src": "707:63:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "658:1:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "661:2:6" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "655:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "655:9:6" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "665:19:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:15:6", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "676:1:6" + }, + { + "name": "_4", + "nodeType": "YulIdentifier", + "src": "679:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "672:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "672:10:6" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "667:1:6" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "651:3:6", + "statements": [] + }, + "src": "647:133:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "810:59:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "839:6:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "847:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "835:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "835:15:6" + }, + { + "name": "_4", + "nodeType": "YulIdentifier", + "src": "852:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "831:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "831:24:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "857:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "824:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "824:35:6" + }, + "nodeType": "YulExpressionStatement", + "src": "824:35:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "795:1:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "798:2:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "792:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "792:9:6" + }, + "nodeType": "YulIf", + "src": "789:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "878:15:6", + "value": { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "887:6:6" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "878:5:6" + } + ] + } + ] + }, + "name": "abi_decode_string_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "52:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "60:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "68:5:6", + "type": "" + } + ], + "src": "14:885:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1022:444:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1068:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1077:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1080:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1070:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1070:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1070:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1043:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1052:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1039:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1039:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1064:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1035:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1035:32:6" + }, + "nodeType": "YulIf", + "src": "1032:2:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1093:30:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1113:9:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1107:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "1107:16:6" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1097:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1132:28:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1150:2:6", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1154:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1146:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1146:10:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1158:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1142:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1142:18:6" + }, + "variables": [ + { + "name": "_1", + "nodeType": "YulTypedName", + "src": "1136:2:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1187:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1196:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1199:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1189:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1189:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1189:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1175:6:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "1183:2:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1172:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "1172:14:6" + }, + "nodeType": "YulIf", + "src": "1169:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "1212:71:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1255:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1266:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1251:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1251:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1275:7:6" + } + ], + "functionName": { + "name": "abi_decode_string_fromMemory", + "nodeType": "YulIdentifier", + "src": "1222:28:6" + }, + "nodeType": "YulFunctionCall", + "src": "1222:61:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1212:6:6" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1292:41:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1318:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1329:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1314:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1314:18:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1308:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "1308:25:6" + }, + "variables": [ + { + "name": "offset_1", + "nodeType": "YulTypedName", + "src": "1296:8:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1362:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1371:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1374:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1364:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1364:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1364:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_1", + "nodeType": "YulIdentifier", + "src": "1348:8:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "1358:2:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1345:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "1345:16:6" + }, + "nodeType": "YulIf", + "src": "1342:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "1387:73:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1430:9:6" + }, + { + "name": "offset_1", + "nodeType": "YulIdentifier", + "src": "1441:8:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1426:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1426:24:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1452:7:6" + } + ], + "functionName": { + "name": "abi_decode_string_fromMemory", + "nodeType": "YulIdentifier", + "src": "1397:28:6" + }, + "nodeType": "YulFunctionCall", + "src": "1397:63:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1387:6:6" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "980:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "991:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1003:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1011:6:6", + "type": "" + } + ], + "src": "904:562:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1526:325:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1536:22:6", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1550:1:6", + "type": "", + "value": "1" + }, + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "1553:4:6" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "1546:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1546:12:6" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1536:6:6" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1567:38:6", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "1597:4:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1603:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1593:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1593:12:6" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "1571:18:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1644:31:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1646:27:6", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1660:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1668:4:6", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1656:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1656:17:6" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1646:6:6" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "1624:18:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1617:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1617:26:6" + }, + "nodeType": "YulIf", + "src": "1614:2:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1734:111:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1755:1:6", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1762:3:6", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1767:10:6", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1758:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1758:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1748:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1748:31:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1748:31:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1799:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1802:4:6", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1792:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1792:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1792:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1827:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1830:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1820:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1820:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1820:15:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "1690:18:6" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1713:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1721:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1710:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "1710:14:6" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1687:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "1687:38:6" + }, + "nodeType": "YulIf", + "src": "1684:2:6" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "1506:4:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1515:6:6", + "type": "" + } + ], + "src": "1471:380:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1888:95:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1905:1:6", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1912:3:6", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1917:10:6", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1908:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1908:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1898:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1898:31:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1898:31:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1945:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1948:4:6", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1938:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1938:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1938:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1969:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1972:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1962:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1962:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1962:15:6" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "1856:127:6" + } + ] + }, + "contents": "{\n { }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n let i := 0\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n if gt(i, _1)\n {\n mstore(add(add(memPtr, _1), _4), 0)\n }\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n}", + "id": 6, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b5060405162000b5638038062000b568339810160408190526200003491620001c5565b81516200004990600390602085019062000068565b5080516200005f90600490602084019062000068565b50505062000282565b82805462000076906200022f565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b600082601f8301126200012057600080fd5b81516001600160401b03808211156200013d576200013d6200026c565b604051601f8301601f19908116603f011681019082821181831017156200016857620001686200026c565b816040528381526020925086838588010111156200018557600080fd5b600091505b83821015620001a957858201830151818301840152908201906200018a565b83821115620001bb5760008385830101525b9695505050505050565b60008060408385031215620001d957600080fd5b82516001600160401b0380821115620001f157600080fd5b620001ff868387016200010e565b935060208501519150808211156200021657600080fd5b5062000225858286016200010e565b9150509250929050565b600181811c908216806200024457607f821691505b602082108114156200026657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6108c480620002926000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101c6565b6040516100c391906107d8565b60405180910390f35b6100df6100da3660046107ae565b610258565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610772565b61026e565b604051601281526020016100c3565b6100df6101313660046107ae565b61031d565b6100f361014436600461071d565b6001600160a01b031660009081526020819052604090205490565b6100b6610359565b6100df6101753660046107ae565b610368565b6100df6101883660046107ae565b610401565b6100f361019b36600461073f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101d590610853565b80601f016020809104026020016040519081016040528092919081815260200182805461020190610853565b801561024e5780601f106102235761010080835404028352916020019161024e565b820191906000526020600020905b81548152906001019060200180831161023157829003601f168201915b5050505050905090565b600061026533848461040e565b50600192915050565b600061027b848484610532565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156103055760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610312853385840361040e565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161026591859061035490869061082d565b61040e565b6060600480546101d590610853565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156103ea5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016102fc565b6103f7338585840361040e565b5060019392505050565b6000610265338484610532565b6001600160a01b0383166104705760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016102fc565b6001600160a01b0382166104d15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016102fc565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166105965760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016102fc565b6001600160a01b0382166105f85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016102fc565b6001600160a01b038316600090815260208190526040902054818110156106705760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016102fc565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106a790849061082d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106f391815260200190565b60405180910390a350505050565b80356001600160a01b038116811461071857600080fd5b919050565b60006020828403121561072f57600080fd5b61073882610701565b9392505050565b6000806040838503121561075257600080fd5b61075b83610701565b915061076960208401610701565b90509250929050565b60008060006060848603121561078757600080fd5b61079084610701565b925061079e60208501610701565b9150604084013590509250925092565b600080604083850312156107c157600080fd5b6107ca83610701565b946020939093013593505050565b600060208083528351808285015260005b81811015610805578581018301518582016040015282016107e9565b81811115610817576000604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561084e57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c9082168061086757607f821691505b6020821081141561088857634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212200392c530d962a0435aad04b374300c341918f6b84b10f8703d1b7e1db3b393dc64736f6c63430008060033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xB56 CODESIZE SUB DUP1 PUSH3 0xB56 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x1C5 JUMP JUMPDEST DUP2 MLOAD PUSH3 0x49 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x5F SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP POP POP PUSH3 0x282 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x76 SWAP1 PUSH3 0x22F JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x9A JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0xB5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0xE5 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0xE5 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0xC8 JUMP JUMPDEST POP PUSH3 0xF3 SWAP3 SWAP2 POP PUSH3 0xF7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0xF3 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0xF8 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x120 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x13D JUMPI PUSH3 0x13D PUSH3 0x26C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x168 JUMPI PUSH3 0x168 PUSH3 0x26C JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x185 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x1A9 JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x18A JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x1BB JUMPI PUSH1 0x0 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x1F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x1FF DUP7 DUP4 DUP8 ADD PUSH3 0x10E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x225 DUP6 DUP3 DUP7 ADD PUSH3 0x10E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x244 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x266 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x8C4 DUP1 PUSH3 0x292 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x18D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x1C6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x7D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x7AE JUMP JUMPDEST PUSH2 0x258 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x26E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0x7AE JUMP JUMPDEST PUSH2 0x31D JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x71D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x359 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x7AE JUMP JUMPDEST PUSH2 0x368 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x188 CALLDATASIZE PUSH1 0x4 PUSH2 0x7AE JUMP JUMPDEST PUSH2 0x401 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x73F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1D5 SWAP1 PUSH2 0x853 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x201 SWAP1 PUSH2 0x853 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x24E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x223 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x24E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x231 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x265 CALLER DUP5 DUP5 PUSH2 0x40E JUMP JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27B DUP5 DUP5 DUP5 PUSH2 0x532 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP3 DUP2 LT ISZERO PUSH2 0x305 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732061 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x6C6C6F77616E6365 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x312 DUP6 CALLER DUP6 DUP5 SUB PUSH2 0x40E JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0x265 SWAP2 DUP6 SWAP1 PUSH2 0x354 SWAP1 DUP7 SWAP1 PUSH2 0x82D JUMP JUMPDEST PUSH2 0x40E JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1D5 SWAP1 PUSH2 0x853 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD DUP3 DUP2 LT ISZERO PUSH2 0x3EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2FC JUMP JUMPDEST PUSH2 0x3F7 CALLER DUP6 DUP6 DUP5 SUB PUSH2 0x40E JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x265 CALLER DUP5 DUP5 PUSH2 0x532 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x470 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2FC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2FC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x596 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2FC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2FC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x670 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2FC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x6A7 SWAP1 DUP5 SWAP1 PUSH2 0x82D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6F3 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x72F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x738 DUP3 PUSH2 0x701 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x75B DUP4 PUSH2 0x701 JUMP JUMPDEST SWAP2 POP PUSH2 0x769 PUSH1 0x20 DUP5 ADD PUSH2 0x701 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x787 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x790 DUP5 PUSH2 0x701 JUMP JUMPDEST SWAP3 POP PUSH2 0x79E PUSH1 0x20 DUP6 ADD PUSH2 0x701 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7CA DUP4 PUSH2 0x701 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x805 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x7E9 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x817 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x84E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x867 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x888 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SUB SWAP3 0xC5 ADDRESS 0xD9 PUSH3 0xA0435A 0xAD DIV 0xB3 PUSH21 0x300C341918F6B84B10F8703D1B7E1DB3B393DC6473 PUSH16 0x6C634300080600330000000000000000 ", + "sourceMap": "1331:10416:1:-:0;;;1906:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1972:13;;;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;1995:17:1;;;;:7;;:17;;;;;:::i;:::-;;1906:113;;1331:10416;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1331:10416:1;;;-1:-1:-1;1331:10416:1;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:885:6;68:5;121:3;114:4;106:6;102:17;98:27;88:2;;139:1;136;129:12;88:2;162:13;;-1:-1:-1;;;;;224:10:6;;;221:2;;;237:18;;:::i;:::-;312:2;306:9;280:2;366:13;;-1:-1:-1;;362:22:6;;;386:2;358:31;354:40;342:53;;;410:18;;;430:22;;;407:46;404:2;;;456:18;;:::i;:::-;496:10;492:2;485:22;531:2;523:6;516:18;553:4;543:14;;598:3;593:2;588;580:6;576:15;572:24;569:33;566:2;;;615:1;612;605:12;566:2;637:1;628:10;;647:133;661:2;658:1;655:9;647:133;;;749:14;;;745:23;;739:30;718:14;;;714:23;;707:63;672:10;;;;647:133;;;798:2;795:1;792:9;789:2;;;857:1;852:2;847;839:6;835:15;831:24;824:35;789:2;887:6;78:821;-1:-1:-1;;;;;;78:821:6:o;904:562::-;1003:6;1011;1064:2;1052:9;1043:7;1039:23;1035:32;1032:2;;;1080:1;1077;1070:12;1032:2;1107:16;;-1:-1:-1;;;;;1172:14:6;;;1169:2;;;1199:1;1196;1189:12;1169:2;1222:61;1275:7;1266:6;1255:9;1251:22;1222:61;:::i;:::-;1212:71;;1329:2;1318:9;1314:18;1308:25;1292:41;;1358:2;1348:8;1345:16;1342:2;;;1374:1;1371;1364:12;1342:2;;1397:63;1452:7;1441:8;1430:9;1426:24;1397:63;:::i;:::-;1387:73;;;1022:444;;;;;:::o;1471:380::-;1550:1;1546:12;;;;1593;;;1614:2;;1668:4;1660:6;1656:17;1646:27;;1614:2;1721;1713:6;1710:14;1690:18;1687:38;1684:2;;;1767:10;1762:3;1758:20;1755:1;1748:31;1802:4;1799:1;1792:15;1830:4;1827:1;1820:15;1684:2;;1526:325;;;:::o;1856:127::-;1917:10;1912:3;1908:20;1905:1;1898:31;1948:4;1945:1;1938:15;1972:4;1969:1;1962:15;1888:95;1331:10416:1;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_afterTokenTransfer_648": { + "entryPoint": null, + "id": 648, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_626": { + "entryPoint": 1038, + "id": 626, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_beforeTokenTransfer_637": { + "entryPoint": null, + "id": 637, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_msgSender_764": { + "entryPoint": null, + "id": 764, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_transfer_453": { + "entryPoint": 1330, + "id": 453, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_241": { + "entryPoint": null, + "id": 241, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_262": { + "entryPoint": 600, + "id": 262, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_202": { + "entryPoint": null, + "id": 202, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_178": { + "entryPoint": null, + "id": 178, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@decreaseAllowance_376": { + "entryPoint": 872, + "id": 376, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@increaseAllowance_337": { + "entryPoint": 797, + "id": 337, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@name_158": { + "entryPoint": 454, + "id": 158, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_168": { + "entryPoint": 857, + "id": 168, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_310": { + "entryPoint": 622, + "id": 310, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_223": { + "entryPoint": 1025, + "id": 223, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_address": { + "entryPoint": 1793, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 1821, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 1855, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 1906, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 1966, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2008, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 2093, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 2131, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5857:6", + "statements": [ + { + "nodeType": "YulBlock", + "src": "6:3:6", + "statements": [] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "63:124:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "73:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "95:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "82:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "82:20:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "73:5:6" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "165:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "174:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "177:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "167:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "167:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "167:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "124:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "135:5:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "150:3:6", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "155:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "146:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "146:11:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "159:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "142:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "142:19:6" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "131:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "131:31:6" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "121:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "121:42:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "114:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "114:50:6" + }, + "nodeType": "YulIf", + "src": "111:2:6" + } + ] + }, + "name": "abi_decode_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "42:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:6", + "type": "" + } + ], + "src": "14:173:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "262:116:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "308:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "283:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "292:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "279:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "279:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "304:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "275:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "275:32:6" + }, + "nodeType": "YulIf", + "src": "272:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "333:39:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "362:9:6" + } + ], + "functionName": { + "name": "abi_decode_address", + "nodeType": "YulIdentifier", + "src": "343:18:6" + }, + "nodeType": "YulFunctionCall", + "src": "343:29:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "333:6:6" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "228:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "239:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "251:6:6", + "type": "" + } + ], + "src": "192:186:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "470:173:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "516:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "528:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "518:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "518:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "518:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "491:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "500:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "487:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "487:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "512:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "483:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "483:32:6" + }, + "nodeType": "YulIf", + "src": "480:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "541:39:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "570:9:6" + } + ], + "functionName": { + "name": "abi_decode_address", + "nodeType": "YulIdentifier", + "src": "551:18:6" + }, + "nodeType": "YulFunctionCall", + "src": "551:29:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "541:6:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "589:48:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "622:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "633:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "618:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "618:18:6" + } + ], + "functionName": { + "name": "abi_decode_address", + "nodeType": "YulIdentifier", + "src": "599:18:6" + }, + "nodeType": "YulFunctionCall", + "src": "599:38:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "589:6:6" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "428:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "439:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "451:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "459:6:6", + "type": "" + } + ], + "src": "383:260:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "752:224:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "798:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "807:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "810:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "800:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "800:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "800:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "773:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "782:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "769:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "769:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "794:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "765:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "765:32:6" + }, + "nodeType": "YulIf", + "src": "762:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "823:39:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "852:9:6" + } + ], + "functionName": { + "name": "abi_decode_address", + "nodeType": "YulIdentifier", + "src": "833:18:6" + }, + "nodeType": "YulFunctionCall", + "src": "833:29:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "823:6:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "871:48:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "904:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "915:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "900:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "900:18:6" + } + ], + "functionName": { + "name": "abi_decode_address", + "nodeType": "YulIdentifier", + "src": "881:18:6" + }, + "nodeType": "YulFunctionCall", + "src": "881:38:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "871:6:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "928:42:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "955:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "966:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "951:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "951:18:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "938:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "938:32:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "928:6:6" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "702:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "713:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "725:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "733:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "741:6:6", + "type": "" + } + ], + "src": "648:328:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1068:167:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1114:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1123:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1126:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1116:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1116:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1116:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1089:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1098:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1085:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1085:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1110:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1081:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1081:32:6" + }, + "nodeType": "YulIf", + "src": "1078:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "1139:39:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1168:9:6" + } + ], + "functionName": { + "name": "abi_decode_address", + "nodeType": "YulIdentifier", + "src": "1149:18:6" + }, + "nodeType": "YulFunctionCall", + "src": "1149:29:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1139:6:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1187:42:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1214:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1225:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1210:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1210:18:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1197:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "1197:32:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1187:6:6" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1026:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1037:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1049:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1057:6:6", + "type": "" + } + ], + "src": "981:254:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1335:92:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1345:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1357:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1368:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1353:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1353:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1345:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1387:9:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1412:6:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1405:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1405:14:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1398:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1398:22:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1380:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1380:41:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1380:41:6" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1304:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1315:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1326:4:6", + "type": "" + } + ], + "src": "1240:187:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1553:476:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1563:12:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1573:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "_1", + "nodeType": "YulTypedName", + "src": "1567:2:6", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1591:9:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "1602:2:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1584:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1584:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1584:21:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1614:27:6", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1634:6:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1628:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "1628:13:6" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1618:6:6", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1661:9:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "1672:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1657:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1657:18:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1677:6:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1650:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1650:34:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1650:34:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1693:10:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1702:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "1697:1:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1762:90:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1791:9:6" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1802:1:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1787:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1787:17:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1806:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1783:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1783:26:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1825:6:6" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1833:1:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1821:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1821:14:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "1837:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1817:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1817:23:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1811:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "1811:30:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1776:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1776:66:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1776:66:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1723:1:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1726:6:6" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1720:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "1720:13:6" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1734:19:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1736:15:6", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1745:1:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "1748:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1741:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1741:10:6" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1736:1:6" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1716:3:6", + "statements": [] + }, + "src": "1712:140:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1886:66:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1915:9:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1926:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1911:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1911:22:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1935:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1907:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1907:31:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1940:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1900:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1900:42:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1900:42:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1867:1:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1870:6:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1864:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "1864:13:6" + }, + "nodeType": "YulIf", + "src": "1861:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "1961:62:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1977:9:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1996:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2004:2:6", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1992:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1992:15:6" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2013:2:6", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "2009:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2009:7:6" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1988:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1988:29:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1973:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1973:45:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2020:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1969:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1969:54:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1961:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1522:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1533:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1544:4:6", + "type": "" + } + ], + "src": "1432:597:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2208:225:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2225:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2236:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2218:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2218:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2218:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2259:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2270:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2255:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2255:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2275:2:6", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2248:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2248:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2248:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2298:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2309:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2294:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2294:18:6" + }, + { + "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472", + "kind": "string", + "nodeType": "YulLiteral", + "src": "2314:34:6", + "type": "", + "value": "ERC20: transfer to the zero addr" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2287:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2287:62:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2287:62:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2369:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2380:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2365:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2365:18:6" + }, + { + "hexValue": "657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "2385:5:6", + "type": "", + "value": "ess" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2358:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2358:33:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2358:33:6" + }, + { + "nodeType": "YulAssignment", + "src": "2400:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2412:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2423:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2408:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2408:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2400:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2185:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2199:4:6", + "type": "" + } + ], + "src": "2034:399:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2612:224:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2629:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2640:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2622:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2622:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2622:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2663:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2674:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2659:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2659:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2679:2:6", + "type": "", + "value": "34" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2652:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2652:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2652:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2702:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2713:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2698:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2698:18:6" + }, + { + "hexValue": "45524332303a20617070726f766520746f20746865207a65726f206164647265", + "kind": "string", + "nodeType": "YulLiteral", + "src": "2718:34:6", + "type": "", + "value": "ERC20: approve to the zero addre" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2691:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2691:62:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2691:62:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2773:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2784:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2769:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2769:18:6" + }, + { + "hexValue": "7373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "2789:4:6", + "type": "", + "value": "ss" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2762:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2762:32:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2762:32:6" + }, + { + "nodeType": "YulAssignment", + "src": "2803:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2815:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2826:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2811:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2811:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2803:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2589:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2603:4:6", + "type": "" + } + ], + "src": "2438:398:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3015:228:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3032:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3043:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3025:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3025:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3025:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3066:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3077:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3062:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3062:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3082:2:6", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3055:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3055:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3055:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3105:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3116:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3101:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3101:18:6" + }, + { + "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062", + "kind": "string", + "nodeType": "YulLiteral", + "src": "3121:34:6", + "type": "", + "value": "ERC20: transfer amount exceeds b" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3094:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3094:62:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3094:62:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3176:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3187:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3172:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3172:18:6" + }, + { + "hexValue": "616c616e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "3192:8:6", + "type": "", + "value": "alance" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3165:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3165:36:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3165:36:6" + }, + { + "nodeType": "YulAssignment", + "src": "3210:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3222:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3233:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3218:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3218:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3210:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2992:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3006:4:6", + "type": "" + } + ], + "src": "2841:402:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3422:230:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3439:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3450:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3432:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3432:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3432:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3473:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3469:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3469:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3489:2:6", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3462:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3462:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3462:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3512:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3523:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3508:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3508:18:6" + }, + { + "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732061", + "kind": "string", + "nodeType": "YulLiteral", + "src": "3528:34:6", + "type": "", + "value": "ERC20: transfer amount exceeds a" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3501:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3501:62:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3501:62:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3583:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3594:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3579:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3579:18:6" + }, + { + "hexValue": "6c6c6f77616e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "3599:10:6", + "type": "", + "value": "llowance" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3572:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3572:38:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3572:38:6" + }, + { + "nodeType": "YulAssignment", + "src": "3619:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3631:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3642:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3627:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3627:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3619:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3399:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3413:4:6", + "type": "" + } + ], + "src": "3248:404:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3831:227:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3848:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3859:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3841:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3841:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3841:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3882:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3893:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3878:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3878:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3898:2:6", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3871:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3871:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3871:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3921:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3932:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3917:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3917:18:6" + }, + { + "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f206164", + "kind": "string", + "nodeType": "YulLiteral", + "src": "3937:34:6", + "type": "", + "value": "ERC20: transfer from the zero ad" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3910:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3910:62:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3910:62:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3992:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4003:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3988:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3988:18:6" + }, + { + "hexValue": "6472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "4008:7:6", + "type": "", + "value": "dress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3981:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3981:35:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3981:35:6" + }, + { + "nodeType": "YulAssignment", + "src": "4025:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4037:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4048:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4033:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4033:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4025:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3808:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3822:4:6", + "type": "" + } + ], + "src": "3657:401:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4237:226:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4254:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4265:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4247:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4247:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4247:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4288:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4299:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4284:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4284:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4304:2:6", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4277:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4277:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4277:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4327:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4338:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4323:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4323:18:6" + }, + { + "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f20616464", + "kind": "string", + "nodeType": "YulLiteral", + "src": "4343:34:6", + "type": "", + "value": "ERC20: approve from the zero add" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4316:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4316:62:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4316:62:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4398:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4409:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4394:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4394:18:6" + }, + { + "hexValue": "72657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "4414:6:6", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4387:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4387:34:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4387:34:6" + }, + { + "nodeType": "YulAssignment", + "src": "4430:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4442:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4453:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4438:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4438:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4430:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4214:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4228:4:6", + "type": "" + } + ], + "src": "4063:400:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4642:227:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4659:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4670:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4652:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4652:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4652:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4693:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4704:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4689:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4689:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4709:2:6", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4682:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4682:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4682:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4732:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4743:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4728:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4728:18:6" + }, + { + "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77", + "kind": "string", + "nodeType": "YulLiteral", + "src": "4748:34:6", + "type": "", + "value": "ERC20: decreased allowance below" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4721:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4721:62:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4721:62:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4803:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4814:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4799:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4799:18:6" + }, + { + "hexValue": "207a65726f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "4819:7:6", + "type": "", + "value": " zero" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4792:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4792:35:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4792:35:6" + }, + { + "nodeType": "YulAssignment", + "src": "4836:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4848:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4859:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4844:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4844:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4836:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4619:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4633:4:6", + "type": "" + } + ], + "src": "4468:401:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4975:76:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4985:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4997:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5008:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4993:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4993:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4985:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5027:9:6" + }, + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5038:6:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5020:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5020:25:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5020:25:6" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4944:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4955:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4966:4:6", + "type": "" + } + ], + "src": "4874:177:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5153:87:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5163:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5175:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5186:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5171:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5171:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5163:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5205:9:6" + }, + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5220:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5228:4:6", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5216:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5216:17:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5198:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5198:36:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5198:36:6" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5122:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5133:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5144:4:6", + "type": "" + } + ], + "src": "5056:184:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5293:177:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5328:111:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5349:1:6", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5356:3:6", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5361:10:6", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "5352:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5352:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5342:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5342:31:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5342:31:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5393:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5396:4:6", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5386:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5386:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5386:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5421:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5424:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5414:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5414:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5414:15:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5309:1:6" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5316:1:6" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "5312:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5312:6:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "5306:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "5306:13:6" + }, + "nodeType": "YulIf", + "src": "5303:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "5448:16:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5459:1:6" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5462:1:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5455:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5455:9:6" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "5448:3:6" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "5276:1:6", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "5279:1:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "5285:3:6", + "type": "" + } + ], + "src": "5245:225:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5530:325:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5540:22:6", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5554:1:6", + "type": "", + "value": "1" + }, + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5557:4:6" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "5550:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5550:12:6" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5540:6:6" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5571:38:6", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5601:4:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5607:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5597:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5597:12:6" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "5575:18:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5648:31:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5650:27:6", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5664:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5672:4:6", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5660:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5660:17:6" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5650:6:6" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "5628:18:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5621:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5621:26:6" + }, + "nodeType": "YulIf", + "src": "5618:2:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5738:111:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5759:1:6", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5766:3:6", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5771:10:6", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "5762:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5762:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5752:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5752:31:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5752:31:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5803:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5806:4:6", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5796:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5796:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5796:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5831:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5834:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5824:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5824:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5824:15:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "5694:18:6" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5717:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5725:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5714:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "5714:14:6" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "5691:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "5691:38:6" + }, + "nodeType": "YulIf", + "src": "5688:2:6" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5510:4:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5519:6:6", + "type": "" + } + ], + "src": "5475:380:6" + } + ] + }, + "contents": "{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), 0)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds a\")\n mstore(add(headStart, 96), \"llowance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}", + "id": 6, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101c6565b6040516100c391906107d8565b60405180910390f35b6100df6100da3660046107ae565b610258565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610772565b61026e565b604051601281526020016100c3565b6100df6101313660046107ae565b61031d565b6100f361014436600461071d565b6001600160a01b031660009081526020819052604090205490565b6100b6610359565b6100df6101753660046107ae565b610368565b6100df6101883660046107ae565b610401565b6100f361019b36600461073f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101d590610853565b80601f016020809104026020016040519081016040528092919081815260200182805461020190610853565b801561024e5780601f106102235761010080835404028352916020019161024e565b820191906000526020600020905b81548152906001019060200180831161023157829003601f168201915b5050505050905090565b600061026533848461040e565b50600192915050565b600061027b848484610532565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156103055760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610312853385840361040e565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161026591859061035490869061082d565b61040e565b6060600480546101d590610853565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156103ea5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016102fc565b6103f7338585840361040e565b5060019392505050565b6000610265338484610532565b6001600160a01b0383166104705760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016102fc565b6001600160a01b0382166104d15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016102fc565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166105965760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016102fc565b6001600160a01b0382166105f85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016102fc565b6001600160a01b038316600090815260208190526040902054818110156106705760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016102fc565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106a790849061082d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106f391815260200190565b60405180910390a350505050565b80356001600160a01b038116811461071857600080fd5b919050565b60006020828403121561072f57600080fd5b61073882610701565b9392505050565b6000806040838503121561075257600080fd5b61075b83610701565b915061076960208401610701565b90509250929050565b60008060006060848603121561078757600080fd5b61079084610701565b925061079e60208501610701565b9150604084013590509250925092565b600080604083850312156107c157600080fd5b6107ca83610701565b946020939093013593505050565b600060208083528351808285015260005b81811015610805578581018301518582016040015282016107e9565b81811115610817576000604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561084e57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c9082168061086757607f821691505b6020821081141561088857634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212200392c530d962a0435aad04b374300c341918f6b84b10f8703d1b7e1db3b393dc64736f6c63430008060033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x18D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x1C6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x7D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x7AE JUMP JUMPDEST PUSH2 0x258 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x26E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0x7AE JUMP JUMPDEST PUSH2 0x31D JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x71D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x359 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x7AE JUMP JUMPDEST PUSH2 0x368 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x188 CALLDATASIZE PUSH1 0x4 PUSH2 0x7AE JUMP JUMPDEST PUSH2 0x401 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x73F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1D5 SWAP1 PUSH2 0x853 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x201 SWAP1 PUSH2 0x853 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x24E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x223 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x24E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x231 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x265 CALLER DUP5 DUP5 PUSH2 0x40E JUMP JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27B DUP5 DUP5 DUP5 PUSH2 0x532 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP3 DUP2 LT ISZERO PUSH2 0x305 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732061 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x6C6C6F77616E6365 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x312 DUP6 CALLER DUP6 DUP5 SUB PUSH2 0x40E JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0x265 SWAP2 DUP6 SWAP1 PUSH2 0x354 SWAP1 DUP7 SWAP1 PUSH2 0x82D JUMP JUMPDEST PUSH2 0x40E JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1D5 SWAP1 PUSH2 0x853 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD DUP3 DUP2 LT ISZERO PUSH2 0x3EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2FC JUMP JUMPDEST PUSH2 0x3F7 CALLER DUP6 DUP6 DUP5 SUB PUSH2 0x40E JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x265 CALLER DUP5 DUP5 PUSH2 0x532 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x470 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2FC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2FC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x596 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2FC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2FC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x670 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2FC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x6A7 SWAP1 DUP5 SWAP1 PUSH2 0x82D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6F3 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x72F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x738 DUP3 PUSH2 0x701 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x75B DUP4 PUSH2 0x701 JUMP JUMPDEST SWAP2 POP PUSH2 0x769 PUSH1 0x20 DUP5 ADD PUSH2 0x701 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x787 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x790 DUP5 PUSH2 0x701 JUMP JUMPDEST SWAP3 POP PUSH2 0x79E PUSH1 0x20 DUP6 ADD PUSH2 0x701 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7CA DUP4 PUSH2 0x701 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x805 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x7E9 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x817 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x84E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x867 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x888 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SUB SWAP3 0xC5 ADDRESS 0xD9 PUSH3 0xA0435A 0xAD DIV 0xB3 PUSH21 0x300C341918F6B84B10F8703D1B7E1DB3B393DC6473 PUSH16 0x6C634300080600330000000000000000 ", + "sourceMap": "1331:10416:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2084:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4181:166;;;;;;:::i;:::-;;:::i;:::-;;;1405:14:6;;1398:22;1380:41;;1368:2;1353:18;4181:166:1;1335:92:6;3172:106:1;3259:12;;3172:106;;;5020:25:6;;;5008:2;4993:18;3172:106:1;4975:76:6;4814:478:1;;;;;;:::i;:::-;;:::i;3021:91::-;;;3103:2;5198:36:6;;5186:2;5171:18;3021:91:1;5153:87:6;5687:212:1;;;;;;:::i;:::-;;:::i;3336:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3436:18:1;3410:7;3436:18;;;;;;;;;;;;3336:125;2295:102;;;:::i;6386:405::-;;;;;;:::i;:::-;;:::i;3664:172::-;;;;;;:::i;:::-;;:::i;3894:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4009:18:1;;;3983:7;4009:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3894:149;2084:98;2138:13;2170:5;2163:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2084:98;:::o;4181:166::-;4264:4;4280:39;666:10:4;4303:7:1;4312:6;4280:8;:39::i;:::-;-1:-1:-1;4336:4:1;4181:166;;;;:::o;4814:478::-;4950:4;4966:36;4976:6;4984:9;4995:6;4966:9;:36::i;:::-;-1:-1:-1;;;;;5040:19:1;;5013:24;5040:19;;;:11;:19;;;;;;;;666:10:4;5040:33:1;;;;;;;;5091:26;;;;5083:79;;;;-1:-1:-1;;;5083:79:1;;3450:2:6;5083:79:1;;;3432:21:6;3489:2;3469:18;;;3462:30;3528:34;3508:18;;;3501:62;-1:-1:-1;;;3579:18:6;;;3572:38;3627:19;;5083:79:1;;;;;;;;;5196:57;5205:6;666:10:4;5246:6:1;5227:16;:25;5196:8;:57::i;:::-;-1:-1:-1;5281:4:1;;4814:478;-1:-1:-1;;;;4814:478:1:o;5687:212::-;666:10:4;5775:4:1;5823:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5823:34:1;;;;;;;;;;5775:4;;5791:80;;5814:7;;5823:47;;5860:10;;5823:47;:::i;:::-;5791:8;:80::i;2295:102::-;2351:13;2383:7;2376:14;;;;;:::i;6386:405::-;666:10:4;6479:4:1;6522:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6522:34:1;;;;;;;;;;6574:35;;;;6566:85;;;;-1:-1:-1;;;6566:85:1;;4670:2:6;6566:85:1;;;4652:21:6;4709:2;4689:18;;;4682:30;4748:34;4728:18;;;4721:62;-1:-1:-1;;;4799:18:6;;;4792:35;4844:19;;6566:85:1;4642:227:6;6566:85:1;6685:67;666:10:4;6708:7:1;6736:15;6717:16;:34;6685:8;:67::i;:::-;-1:-1:-1;6780:4:1;;6386:405;-1:-1:-1;;;6386:405:1:o;3664:172::-;3750:4;3766:42;666:10:4;3790:9:1;3801:6;3766:9;:42::i;9962:370::-;-1:-1:-1;;;;;10093:19:1;;10085:68;;;;-1:-1:-1;;;10085:68:1;;4265:2:6;10085:68:1;;;4247:21:6;4304:2;4284:18;;;4277:30;4343:34;4323:18;;;4316:62;-1:-1:-1;;;4394:18:6;;;4387:34;4438:19;;10085:68:1;4237:226:6;10085:68:1;-1:-1:-1;;;;;10171:21:1;;10163:68;;;;-1:-1:-1;;;10163:68:1;;2640:2:6;10163:68:1;;;2622:21:6;2679:2;2659:18;;;2652:30;2718:34;2698:18;;;2691:62;-1:-1:-1;;;2769:18:6;;;2762:32;2811:19;;10163:68:1;2612:224:6;10163:68:1;-1:-1:-1;;;;;10242:18:1;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10293:32;;5020:25:6;;;10293:32:1;;4993:18:6;10293:32:1;;;;;;;9962:370;;;:::o;7265:713::-;-1:-1:-1;;;;;7400:20:1;;7392:70;;;;-1:-1:-1;;;7392:70:1;;3859:2:6;7392:70:1;;;3841:21:6;3898:2;3878:18;;;3871:30;3937:34;3917:18;;;3910:62;-1:-1:-1;;;3988:18:6;;;3981:35;4033:19;;7392:70:1;3831:227:6;7392:70:1;-1:-1:-1;;;;;7480:23:1;;7472:71;;;;-1:-1:-1;;;7472:71:1;;2236:2:6;7472:71:1;;;2218:21:6;2275:2;2255:18;;;2248:30;2314:34;2294:18;;;2287:62;-1:-1:-1;;;2365:18:6;;;2358:33;2408:19;;7472:71:1;2208:225:6;7472:71:1;-1:-1:-1;;;;;7636:17:1;;7612:21;7636:17;;;;;;;;;;;7671:23;;;;7663:74;;;;-1:-1:-1;;;7663:74:1;;3043:2:6;7663:74:1;;;3025:21:6;3082:2;3062:18;;;3055:30;3121:34;3101:18;;;3094:62;-1:-1:-1;;;3172:18:6;;;3165:36;3218:19;;7663:74:1;3015:228:6;7663:74:1;-1:-1:-1;;;;;7771:17:1;;;:9;:17;;;;;;;;;;;7791:22;;;7771:42;;7833:20;;;;;;;;:30;;7807:6;;7771:9;7833:30;;7807:6;;7833:30;:::i;:::-;;;;;;;;7896:9;-1:-1:-1;;;;;7879:35:1;7888:6;-1:-1:-1;;;;;7879:35:1;;7907:6;7879:35;;;;5020:25:6;;5008:2;4993:18;;4975:76;7879:35:1;;;;;;;;7382:596;7265:713;;;:::o;14:173:6:-;82:20;;-1:-1:-1;;;;;131:31:6;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;320:1;317;310:12;272:2;343:29;362:9;343:29;:::i;:::-;333:39;262:116;-1:-1:-1;;;262:116:6:o;383:260::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:2;;;528:1;525;518:12;480:2;551:29;570:9;551:29;:::i;:::-;541:39;;599:38;633:2;622:9;618:18;599:38;:::i;:::-;589:48;;470:173;;;;;:::o;648:328::-;725:6;733;741;794:2;782:9;773:7;769:23;765:32;762:2;;;810:1;807;800:12;762:2;833:29;852:9;833:29;:::i;:::-;823:39;;881:38;915:2;904:9;900:18;881:38;:::i;:::-;871:48;;966:2;955:9;951:18;938:32;928:42;;752:224;;;;;:::o;981:254::-;1049:6;1057;1110:2;1098:9;1089:7;1085:23;1081:32;1078:2;;;1126:1;1123;1116:12;1078:2;1149:29;1168:9;1149:29;:::i;:::-;1139:39;1225:2;1210:18;;;;1197:32;;-1:-1:-1;;;1068:167:6:o;1432:597::-;1544:4;1573:2;1602;1591:9;1584:21;1634:6;1628:13;1677:6;1672:2;1661:9;1657:18;1650:34;1702:1;1712:140;1726:6;1723:1;1720:13;1712:140;;;1821:14;;;1817:23;;1811:30;1787:17;;;1806:2;1783:26;1776:66;1741:10;;1712:140;;;1870:6;1867:1;1864:13;1861:2;;;1940:1;1935:2;1926:6;1915:9;1911:22;1907:31;1900:42;1861:2;-1:-1:-1;2013:2:6;1992:15;-1:-1:-1;;1988:29:6;1973:45;;;;2020:2;1969:54;;1553:476;-1:-1:-1;;;1553:476:6:o;5245:225::-;5285:3;5316:1;5312:6;5309:1;5306:13;5303:2;;;5361:10;5356:3;5352:20;5349:1;5342:31;5396:4;5393:1;5386:15;5424:4;5421:1;5414:15;5303:2;-1:-1:-1;5455:9:6;;5293:177::o;5475:380::-;5554:1;5550:12;;;;5597;;;5618:2;;5672:4;5664:6;5660:17;5650:27;;5618:2;5725;5717:6;5714:14;5694:18;5691:38;5688:2;;;5771:10;5766:3;5762:20;5759:1;5752:31;5806:4;5803:1;5796:15;5834:4;5831:1;5824:15;5688:2;;5530:325;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "decreaseAllowance(address,uint256)": "a457c2d7", + "increaseAllowance(address,uint256)": "39509351", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.6+commit.11564f7e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. The default value of {decimals} is 18. To select a different value for {decimals} you should overload it. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"berlin\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xb03df8481a954604ad0c9125680893b2e3f7ff770fe470e38b89ac61b84e8072\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b34655953d18ba3a45b762fb6bdbb6549af69a27435e10ece178742bf70baf45\",\"dweb:/ipfs/QmcqjUoFLLMyx7dbwSHUnDBH6aphkVHXWQvQRRev5EAWEh\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x027b891937d20ccf213fdb9c31531574256de774bda99d3a70ecef6e1913ed2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://087318b21c528119f649899f5b5580566dd8d7b0303d4904bd0e8580c3545f14\",\"dweb:/ipfs/Qmbn5Mj7aUn8hJuQ8VrQjjEXRsXyJKykgnjR9p4C3nfLtL\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x83fe24f5c04a56091e50f4a345ff504c8bff658a76d4c43b16878c8f940c53b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4c3df1a7ca104b633a7d81c6c6f5192367d150cd5a32cba81f7f27012729013\",\"dweb:/ipfs/QmSim72e3ZVsfgZt8UceCvbiSuMRHR6WDsiamqNzZahGSY\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x90565a39ae45c80f0468dc96c7b20d0afc3055f344c8203a0c9258239f350b9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26e8b38a7ac8e7b4463af00cf7fff1bf48ae9875765bf4f7751e100124d0bc8c\",\"dweb:/ipfs/QmWcsmkVr24xmmjfnBQZoemFniXjj3vwT78Cz6uqZW1Hux\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "IERC20": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.6+commit.11564f7e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"berlin\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x027b891937d20ccf213fdb9c31531574256de774bda99d3a70ecef6e1913ed2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://087318b21c528119f649899f5b5580566dd8d7b0303d4904bd0e8580c3545f14\",\"dweb:/ipfs/Qmbn5Mj7aUn8hJuQ8VrQjjEXRsXyJKykgnjR9p4C3nfLtL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "IERC20Metadata": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.6+commit.11564f7e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"berlin\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x027b891937d20ccf213fdb9c31531574256de774bda99d3a70ecef6e1913ed2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://087318b21c528119f649899f5b5580566dd8d7b0303d4904bd0e8580c3545f14\",\"dweb:/ipfs/Qmbn5Mj7aUn8hJuQ8VrQjjEXRsXyJKykgnjR9p4C3nfLtL\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x83fe24f5c04a56091e50f4a345ff504c8bff658a76d4c43b16878c8f940c53b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4c3df1a7ca104b633a7d81c6c6f5192367d150cd5a32cba81f7f27012729013\",\"dweb:/ipfs/QmSim72e3ZVsfgZt8UceCvbiSuMRHR6WDsiamqNzZahGSY\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Context.sol": { + "Context": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.6+commit.11564f7e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"berlin\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x90565a39ae45c80f0468dc96c7b20d0afc3055f344c8203a0c9258239f350b9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26e8b38a7ac8e7b4463af00cf7fff1bf48ae9875765bf4f7751e100124d0bc8c\",\"dweb:/ipfs/QmWcsmkVr24xmmjfnBQZoemFniXjj3vwT78Cz6uqZW1Hux\"]}},\"version\":1}" + } + }, + "contracts/MyToken.sol": { + "MyToken": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_148": { + "entryPoint": null, + "id": 148, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_23": { + "entryPoint": null, + "id": 23, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_804": { + "entryPoint": null, + "id": 804, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_afterTokenTransfer_648": { + "entryPoint": null, + "id": 648, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_beforeTokenTransfer_637": { + "entryPoint": null, + "id": 637, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_mint_509": { + "entryPoint": 242, + "id": 509, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_764": { + "entryPoint": 156, + "id": 764, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_setOwner_102": { + "entryPoint": 160, + "id": 102, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_string_fromMemory": { + "entryPoint": 640, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory": { + "entryPoint": 823, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 929, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 968, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x41": { + "entryPoint": 1029, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2757:6", + "statements": [ + { + "nodeType": "YulBlock", + "src": "6:3:6", + "statements": [] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "78:821:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "127:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "136:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "139:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "129:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "129:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "129:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "106:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "114:4:6", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "102:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "102:17:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "121:3:6" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "98:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "98:27:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "91:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "91:35:6" + }, + "nodeType": "YulIf", + "src": "88:2:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "152:23:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "168:6:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "162:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "162:13:6" + }, + "variables": [ + { + "name": "_1", + "nodeType": "YulTypedName", + "src": "156:2:6", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "184:28:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "202:2:6", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "206:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "198:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "198:10:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "210:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "194:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "194:18:6" + }, + "variables": [ + { + "name": "_2", + "nodeType": "YulTypedName", + "src": "188:2:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "237:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "237:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "237:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "227:2:6" + }, + { + "name": "_2", + "nodeType": "YulIdentifier", + "src": "231:2:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "224:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "224:10:6" + }, + "nodeType": "YulIf", + "src": "221:2:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "266:17:6", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "280:2:6", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "276:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "276:7:6" + }, + "variables": [ + { + "name": "_3", + "nodeType": "YulTypedName", + "src": "270:2:6", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "292:23:6", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "312:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "306:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "306:9:6" + }, + "variables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "296:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "324:71:6", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "346:6:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "370:2:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "374:4:6", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "366:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "366:13:6" + }, + { + "name": "_3", + "nodeType": "YulIdentifier", + "src": "381:2:6" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "362:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "362:22:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "386:2:6", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "358:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "358:31:6" + }, + { + "name": "_3", + "nodeType": "YulIdentifier", + "src": "391:2:6" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "354:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "354:40:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "342:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "342:53:6" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "328:10:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "454:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "456:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "456:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "456:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "413:10:6" + }, + { + "name": "_2", + "nodeType": "YulIdentifier", + "src": "425:2:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "410:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "410:18:6" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "433:10:6" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "445:6:6" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "430:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "430:22:6" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "407:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "407:46:6" + }, + "nodeType": "YulIf", + "src": "404:2:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "492:2:6", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "496:10:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "485:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "485:22:6" + }, + "nodeType": "YulExpressionStatement", + "src": "485:22:6" + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "523:6:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "531:2:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "516:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "516:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "516:18:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "543:14:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "553:4:6", + "type": "", + "value": "0x20" + }, + "variables": [ + { + "name": "_4", + "nodeType": "YulTypedName", + "src": "547:2:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "603:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "615:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "605:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "605:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "605:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "580:6:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "588:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "576:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "576:15:6" + }, + { + "name": "_4", + "nodeType": "YulIdentifier", + "src": "593:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "572:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "572:24:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "598:3:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "569:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "569:33:6" + }, + "nodeType": "YulIf", + "src": "566:2:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "628:10:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "637:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "632:1:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "693:87:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "722:6:6" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "730:1:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "718:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "718:14:6" + }, + { + "name": "_4", + "nodeType": "YulIdentifier", + "src": "734:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "714:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "714:23:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "753:6:6" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "761:1:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "749:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "749:14:6" + }, + { + "name": "_4", + "nodeType": "YulIdentifier", + "src": "765:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "745:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "745:23:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "739:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "739:30:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "707:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "707:63:6" + }, + "nodeType": "YulExpressionStatement", + "src": "707:63:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "658:1:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "661:2:6" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "655:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "655:9:6" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "665:19:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:15:6", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "676:1:6" + }, + { + "name": "_4", + "nodeType": "YulIdentifier", + "src": "679:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "672:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "672:10:6" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "667:1:6" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "651:3:6", + "statements": [] + }, + "src": "647:133:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "810:59:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "839:6:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "847:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "835:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "835:15:6" + }, + { + "name": "_4", + "nodeType": "YulIdentifier", + "src": "852:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "831:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "831:24:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "857:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "824:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "824:35:6" + }, + "nodeType": "YulExpressionStatement", + "src": "824:35:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "795:1:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "798:2:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "792:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "792:9:6" + }, + "nodeType": "YulIf", + "src": "789:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "878:15:6", + "value": { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "887:6:6" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "878:5:6" + } + ] + } + ] + }, + "name": "abi_decode_string_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "52:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "60:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "68:5:6", + "type": "" + } + ], + "src": "14:885:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1022:444:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1068:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1077:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1080:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1070:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1070:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1070:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1043:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1052:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1039:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1039:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1064:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1035:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1035:32:6" + }, + "nodeType": "YulIf", + "src": "1032:2:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1093:30:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1113:9:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1107:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "1107:16:6" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1097:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1132:28:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1150:2:6", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1154:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1146:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1146:10:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1158:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1142:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1142:18:6" + }, + "variables": [ + { + "name": "_1", + "nodeType": "YulTypedName", + "src": "1136:2:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1187:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1196:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1199:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1189:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1189:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1189:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1175:6:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "1183:2:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1172:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "1172:14:6" + }, + "nodeType": "YulIf", + "src": "1169:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "1212:71:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1255:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1266:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1251:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1251:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1275:7:6" + } + ], + "functionName": { + "name": "abi_decode_string_fromMemory", + "nodeType": "YulIdentifier", + "src": "1222:28:6" + }, + "nodeType": "YulFunctionCall", + "src": "1222:61:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1212:6:6" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1292:41:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1318:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1329:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1314:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1314:18:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1308:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "1308:25:6" + }, + "variables": [ + { + "name": "offset_1", + "nodeType": "YulTypedName", + "src": "1296:8:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1362:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1371:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1374:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1364:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1364:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1364:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_1", + "nodeType": "YulIdentifier", + "src": "1348:8:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "1358:2:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1345:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "1345:16:6" + }, + "nodeType": "YulIf", + "src": "1342:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "1387:73:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1430:9:6" + }, + { + "name": "offset_1", + "nodeType": "YulIdentifier", + "src": "1441:8:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1426:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1426:24:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1452:7:6" + } + ], + "functionName": { + "name": "abi_decode_string_fromMemory", + "nodeType": "YulIdentifier", + "src": "1397:28:6" + }, + "nodeType": "YulFunctionCall", + "src": "1397:63:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1387:6:6" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "980:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "991:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1003:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1011:6:6", + "type": "" + } + ], + "src": "904:562:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:181:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1662:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1673:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1655:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1655:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1655:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1696:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1707:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1692:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1692:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1712:2:6", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1685:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1685:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1685:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1735:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1746:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1731:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1731:18:6" + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "1751:33:6", + "type": "", + "value": "ERC20: mint to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1724:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1724:61:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1724:61:6" + }, + { + "nodeType": "YulAssignment", + "src": "1794:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1806:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1817:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1802:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1802:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1794:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1622:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1636:4:6", + "type": "" + } + ], + "src": "1471:355:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1932:76:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1942:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1954:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1965:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1950:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1950:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1942:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1984:9:6" + }, + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1995:6:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1977:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1977:25:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1977:25:6" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1901:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1912:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1923:4:6", + "type": "" + } + ], + "src": "1831:177:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2061:177:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2096:111:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2117:1:6", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2124:3:6", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2129:10:6", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "2120:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2120:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2110:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2110:31:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2110:31:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2161:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2164:4:6", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2154:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2154:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2154:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2189:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2192:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2182:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2182:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2182:15:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2077:1:6" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2084:1:6" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "2080:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2080:6:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2074:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "2074:13:6" + }, + "nodeType": "YulIf", + "src": "2071:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "2216:16:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2227:1:6" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2230:1:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2223:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2223:9:6" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "2216:3:6" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "2044:1:6", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "2047:1:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "2053:3:6", + "type": "" + } + ], + "src": "2013:225:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2298:325:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2308:22:6", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2322:1:6", + "type": "", + "value": "1" + }, + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "2325:4:6" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "2318:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2318:12:6" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2308:6:6" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2339:38:6", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "2369:4:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2365:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2365:12:6" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "2343:18:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2416:31:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2418:27:6", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2432:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2440:4:6", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2428:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2428:17:6" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2418:6:6" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "2396:18:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2389:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2389:26:6" + }, + "nodeType": "YulIf", + "src": "2386:2:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2506:111:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2527:1:6", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2534:3:6", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2539:10:6", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "2530:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2530:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2520:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2520:31:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2520:31:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2571:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2574:4:6", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2564:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2564:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2564:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2602:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2592:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2592:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2592:15:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "2462:18:6" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2485:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2493:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2482:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "2482:14:6" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2459:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "2459:38:6" + }, + "nodeType": "YulIf", + "src": "2456:2:6" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "2278:4:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2287:6:6", + "type": "" + } + ], + "src": "2243:380:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2660:95:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2677:1:6", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2684:3:6", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2689:10:6", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "2680:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2680:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2670:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2670:31:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:31:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2717:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2720:4:6", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2710:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2710:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2710:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2741:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2744:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2734:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2734:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2734:15:6" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "2628:127:6" + } + ] + }, + "contents": "{\n { }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n let i := 0\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n if gt(i, _1)\n {\n mstore(add(add(memPtr, _1), _4), 0)\n }\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n}", + "id": 6, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b5060405162000ff638038062000ff6833981016040819052620000349162000337565b8151829082906200004d906003906020850190620001da565b50805162000063906004906020840190620001da565b505050620000806200007a6200009c60201b60201c565b620000a0565b6200009433670de0b6b3a7640000620000f2565b50506200041b565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200014d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620001619190620003a1565b90915550506001600160a01b0382166000908152602081905260408120805483929062000190908490620003a1565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001e890620003c8565b90600052602060002090601f0160209004810192826200020c576000855562000257565b82601f106200022757805160ff191683800117855562000257565b8280016001018555821562000257579182015b82811115620002575782518255916020019190600101906200023a565b506200026592915062000269565b5090565b5b808211156200026557600081556001016200026a565b600082601f8301126200029257600080fd5b81516001600160401b0380821115620002af57620002af62000405565b604051601f8301601f19908116603f01168101908282118183101715620002da57620002da62000405565b81604052838152602092508683858801011115620002f757600080fd5b600091505b838210156200031b5785820183015181830184015290820190620002fc565b838211156200032d5760008385830101525b9695505050505050565b600080604083850312156200034b57600080fd5b82516001600160401b03808211156200036357600080fd5b620003718683870162000280565b935060208501519150808211156200038857600080fd5b50620003978582860162000280565b9150509250929050565b60008219821115620003c357634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620003dd57607f821691505b60208210811415620003ff57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b610bcb806200042b6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d7146101eb578063a9059cbb146101fe578063dd62ed3e14610211578063f2fde38b1461024a57600080fd5b806370a0823114610197578063715018a6146101c05780638da5cb5b146101c857806395d89b41146101e357600080fd5b806323b872dd116100d357806323b872dd1461014d578063313ce56714610160578063395093511461016f57806340c10f191461018257600080fd5b806306fdde03146100fa578063095ea7b31461011857806318160ddd1461013b575b600080fd5b61010261025d565b60405161010f9190610adf565b60405180910390f35b61012b610126366004610ab5565b6102ef565b604051901515815260200161010f565b6002545b60405190815260200161010f565b61012b61015b366004610a79565b610305565b6040516009815260200161010f565b61012b61017d366004610ab5565b6103b4565b610195610190366004610ab5565b6103f0565b005b61013f6101a5366004610a24565b6001600160a01b031660009081526020819052604090205490565b6101956103fe565b6005546040516001600160a01b03909116815260200161010f565b610102610464565b61012b6101f9366004610ab5565b610473565b61012b61020c366004610ab5565b61050c565b61013f61021f366004610a46565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610195610258366004610a24565b610519565b60606003805461026c90610b5a565b80601f016020809104026020016040519081016040528092919081815260200182805461029890610b5a565b80156102e55780601f106102ba576101008083540402835291602001916102e5565b820191906000526020600020905b8154815290600101906020018083116102c857829003601f168201915b5050505050905090565b60006102fc3384846105e4565b50600192915050565b6000610312848484610708565b6001600160a01b03841660009081526001602090815260408083203384529091529020548281101561039c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6103a985338584036105e4565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102fc9185906103eb908690610b34565b6105e4565b6103fa82826108d7565b5050565b6005546001600160a01b031633146104585760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610393565b61046260006109b6565b565b60606004805461026c90610b5a565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156104f55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610393565b61050233858584036105e4565b5060019392505050565b60006102fc338484610708565b6005546001600160a01b031633146105735760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610393565b6001600160a01b0381166105d85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610393565b6105e1816109b6565b50565b6001600160a01b0383166106465760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610393565b6001600160a01b0382166106a75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610393565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661076c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610393565b6001600160a01b0382166107ce5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610393565b6001600160a01b038316600090815260208190526040902054818110156108465760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610393565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061087d908490610b34565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c991815260200190565b60405180910390a350505050565b6001600160a01b03821661092d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610393565b806002600082825461093f9190610b34565b90915550506001600160a01b0382166000908152602081905260408120805483929061096c908490610b34565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80356001600160a01b0381168114610a1f57600080fd5b919050565b600060208284031215610a3657600080fd5b610a3f82610a08565b9392505050565b60008060408385031215610a5957600080fd5b610a6283610a08565b9150610a7060208401610a08565b90509250929050565b600080600060608486031215610a8e57600080fd5b610a9784610a08565b9250610aa560208501610a08565b9150604084013590509250925092565b60008060408385031215610ac857600080fd5b610ad183610a08565b946020939093013593505050565b600060208083528351808285015260005b81811015610b0c57858101830151858201604001528201610af0565b81811115610b1e576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115610b5557634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680610b6e57607f821691505b60208210811415610b8f57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220f9fcaa60d4a598edaf07f31386ed6fae9022bde6f502d7dacf7a52356c4c555664736f6c63430008060033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xFF6 CODESIZE SUB DUP1 PUSH3 0xFF6 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x337 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 DUP3 SWAP1 PUSH3 0x4D SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x1DA JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x63 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x1DA JUMP JUMPDEST POP POP POP PUSH3 0x80 PUSH3 0x7A PUSH3 0x9C PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0xA0 JUMP JUMPDEST PUSH3 0x94 CALLER PUSH8 0xDE0B6B3A7640000 PUSH3 0xF2 JUMP JUMPDEST POP POP PUSH3 0x41B JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x14D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x161 SWAP2 SWAP1 PUSH3 0x3A1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH3 0x190 SWAP1 DUP5 SWAP1 PUSH3 0x3A1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x1E8 SWAP1 PUSH3 0x3C8 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x20C JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x257 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x227 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x257 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x257 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x257 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x23A JUMP JUMPDEST POP PUSH3 0x265 SWAP3 SWAP2 POP PUSH3 0x269 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x265 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x26A JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x2AF JUMPI PUSH3 0x2AF PUSH3 0x405 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x2DA JUMPI PUSH3 0x2DA PUSH3 0x405 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x2F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x31B JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x2FC JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x32D JUMPI PUSH1 0x0 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x34B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x363 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x371 DUP7 DUP4 DUP8 ADD PUSH3 0x280 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x388 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x397 DUP6 DUP3 DUP7 ADD PUSH3 0x280 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH3 0x3C3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x3DD JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x3FF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xBCB DUP1 PUSH3 0x42B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x14D JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x16F JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x182 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x13B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0x25D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10F SWAP2 SWAP1 PUSH2 0xADF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12B PUSH2 0x126 CALLDATASIZE PUSH1 0x4 PUSH2 0xAB5 JUMP JUMPDEST PUSH2 0x2EF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10F JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10F JUMP JUMPDEST PUSH2 0x12B PUSH2 0x15B CALLDATASIZE PUSH1 0x4 PUSH2 0xA79 JUMP JUMPDEST PUSH2 0x305 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10F JUMP JUMPDEST PUSH2 0x12B PUSH2 0x17D CALLDATASIZE PUSH1 0x4 PUSH2 0xAB5 JUMP JUMPDEST PUSH2 0x3B4 JUMP JUMPDEST PUSH2 0x195 PUSH2 0x190 CALLDATASIZE PUSH1 0x4 PUSH2 0xAB5 JUMP JUMPDEST PUSH2 0x3F0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x13F PUSH2 0x1A5 CALLDATASIZE PUSH1 0x4 PUSH2 0xA24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x195 PUSH2 0x3FE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10F JUMP JUMPDEST PUSH2 0x102 PUSH2 0x464 JUMP JUMPDEST PUSH2 0x12B PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0xAB5 JUMP JUMPDEST PUSH2 0x473 JUMP JUMPDEST PUSH2 0x12B PUSH2 0x20C CALLDATASIZE PUSH1 0x4 PUSH2 0xAB5 JUMP JUMPDEST PUSH2 0x50C JUMP JUMPDEST PUSH2 0x13F PUSH2 0x21F CALLDATASIZE PUSH1 0x4 PUSH2 0xA46 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x195 PUSH2 0x258 CALLDATASIZE PUSH1 0x4 PUSH2 0xA24 JUMP JUMPDEST PUSH2 0x519 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x26C SWAP1 PUSH2 0xB5A JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x298 SWAP1 PUSH2 0xB5A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2E5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2BA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2E5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2C8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC CALLER DUP5 DUP5 PUSH2 0x5E4 JUMP JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x312 DUP5 DUP5 DUP5 PUSH2 0x708 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP3 DUP2 LT ISZERO PUSH2 0x39C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732061 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x6C6C6F77616E6365 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3A9 DUP6 CALLER DUP6 DUP5 SUB PUSH2 0x5E4 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0x2FC SWAP2 DUP6 SWAP1 PUSH2 0x3EB SWAP1 DUP7 SWAP1 PUSH2 0xB34 JUMP JUMPDEST PUSH2 0x5E4 JUMP JUMPDEST PUSH2 0x3FA DUP3 DUP3 PUSH2 0x8D7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x458 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x393 JUMP JUMPDEST PUSH2 0x462 PUSH1 0x0 PUSH2 0x9B6 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x26C SWAP1 PUSH2 0xB5A JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD DUP3 DUP2 LT ISZERO PUSH2 0x4F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x393 JUMP JUMPDEST PUSH2 0x502 CALLER DUP6 DUP6 DUP5 SUB PUSH2 0x5E4 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC CALLER DUP5 DUP5 PUSH2 0x708 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x573 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x393 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5D8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x393 JUMP JUMPDEST PUSH2 0x5E1 DUP2 PUSH2 0x9B6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x646 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x393 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x393 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x76C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x393 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x7CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x393 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x846 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x393 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x87D SWAP1 DUP5 SWAP1 PUSH2 0xB34 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x8C9 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x92D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x393 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x93F SWAP2 SWAP1 PUSH2 0xB34 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x96C SWAP1 DUP5 SWAP1 PUSH2 0xB34 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA3F DUP3 PUSH2 0xA08 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA62 DUP4 PUSH2 0xA08 JUMP JUMPDEST SWAP2 POP PUSH2 0xA70 PUSH1 0x20 DUP5 ADD PUSH2 0xA08 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xA8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA97 DUP5 PUSH2 0xA08 JUMP JUMPDEST SWAP3 POP PUSH2 0xAA5 PUSH1 0x20 DUP6 ADD PUSH2 0xA08 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAD1 DUP4 PUSH2 0xA08 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xB0C JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0xAF0 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xB1E JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xB55 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xB6E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xB8F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 0xFC 0xAA PUSH1 0xD4 0xA5 SWAP9 0xED 0xAF SMOD RETURN SGT DUP7 0xED PUSH16 0xAE9022BDE6F502D7DACF7A52356C4C55 JUMP PUSH5 0x736F6C6343 STOP ADDMOD MOD STOP CALLER ", + "sourceMap": "195:356:5:-:0;;;236:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1972:13:1;;296:4:5;;302:6;;1972:13:1;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;1995:17:1;;;;:7;;:17;;;;;:::i;:::-;;1906:113;;867:23:0;877:12;:10;;;:12;;:::i;:::-;867:9;:23::i;:::-;320:37:5::1;326:10;338:18;320:5;:37::i;:::-;236:128:::0;;195:356;;587:96:4;666:10;;587:96::o;2041:169:0:-;2115:6;;;-1:-1:-1;;;;;2131:17:0;;;-1:-1:-1;;;;;;2131:17:0;;;;;;;2163:40;;2115:6;;;2131:17;2115:6;;2163:40;;2096:16;;2163:40;2086:124;2041:169;:::o;8254:389:1:-;-1:-1:-1;;;;;8337:21:1;;8329:65;;;;-1:-1:-1;;;8329:65:1;;1673:2:6;8329:65:1;;;1655:21:6;1712:2;1692:18;;;1685:30;1751:33;1731:18;;;1724:61;1802:18;;8329:65:1;;;;;;;;8481:6;8465:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8497:18:1;;:9;:18;;;;;;;;;;:28;;8519:6;;8497:9;:28;;8519:6;;8497:28;:::i;:::-;;;;-1:-1:-1;;8540:37:1;;1977:25:6;;;-1:-1:-1;;;;;8540:37:1;;;8557:1;;8540:37;;1965:2:6;1950:18;8540:37:1;;;;;;;8254:389;;:::o;195:356:5:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;195:356:5;;;-1:-1:-1;195:356:5;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:885:6;68:5;121:3;114:4;106:6;102:17;98:27;88:2;;139:1;136;129:12;88:2;162:13;;-1:-1:-1;;;;;224:10:6;;;221:2;;;237:18;;:::i;:::-;312:2;306:9;280:2;366:13;;-1:-1:-1;;362:22:6;;;386:2;358:31;354:40;342:53;;;410:18;;;430:22;;;407:46;404:2;;;456:18;;:::i;:::-;496:10;492:2;485:22;531:2;523:6;516:18;553:4;543:14;;598:3;593:2;588;580:6;576:15;572:24;569:33;566:2;;;615:1;612;605:12;566:2;637:1;628:10;;647:133;661:2;658:1;655:9;647:133;;;749:14;;;745:23;;739:30;718:14;;;714:23;;707:63;672:10;;;;647:133;;;798:2;795:1;792:9;789:2;;;857:1;852:2;847;839:6;835:15;831:24;824:35;789:2;887:6;78:821;-1:-1:-1;;;;;;78:821:6:o;904:562::-;1003:6;1011;1064:2;1052:9;1043:7;1039:23;1035:32;1032:2;;;1080:1;1077;1070:12;1032:2;1107:16;;-1:-1:-1;;;;;1172:14:6;;;1169:2;;;1199:1;1196;1189:12;1169:2;1222:61;1275:7;1266:6;1255:9;1251:22;1222:61;:::i;:::-;1212:71;;1329:2;1318:9;1314:18;1308:25;1292:41;;1358:2;1348:8;1345:16;1342:2;;;1374:1;1371;1364:12;1342:2;;1397:63;1452:7;1441:8;1430:9;1426:24;1397:63;:::i;:::-;1387:73;;;1022:444;;;;;:::o;2013:225::-;2053:3;2084:1;2080:6;2077:1;2074:13;2071:2;;;2129:10;2124:3;2120:20;2117:1;2110:31;2164:4;2161:1;2154:15;2192:4;2189:1;2182:15;2071:2;-1:-1:-1;2223:9:6;;2061:177::o;2243:380::-;2322:1;2318:12;;;;2365;;;2386:2;;2440:4;2432:6;2428:17;2418:27;;2386:2;2493;2485:6;2482:14;2462:18;2459:38;2456:2;;;2539:10;2534:3;2530:20;2527:1;2520:31;2574:4;2571:1;2564:15;2602:4;2599:1;2592:15;2456:2;;2298:325;;;:::o;2628:127::-;2689:10;2684:3;2680:20;2677:1;2670:31;2720:4;2717:1;2710:15;2744:4;2741:1;2734:15;2660:95;195:356:5;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_afterTokenTransfer_648": { + "entryPoint": null, + "id": 648, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_626": { + "entryPoint": 1508, + "id": 626, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_beforeTokenTransfer_637": { + "entryPoint": null, + "id": 637, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_mint_509": { + "entryPoint": 2263, + "id": 509, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_764": { + "entryPoint": null, + "id": 764, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_setOwner_102": { + "entryPoint": 2486, + "id": 102, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transfer_453": { + "entryPoint": 1800, + "id": 453, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_241": { + "entryPoint": null, + "id": 241, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_262": { + "entryPoint": 751, + "id": 262, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_202": { + "entryPoint": null, + "id": 202, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_826": { + "entryPoint": null, + "id": 826, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@decreaseAllowance_376": { + "entryPoint": 1139, + "id": 376, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@increaseAllowance_337": { + "entryPoint": 948, + "id": 337, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@mint_817": { + "entryPoint": 1008, + "id": 817, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_158": { + "entryPoint": 605, + "id": 158, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@owner_32": { + "entryPoint": null, + "id": 32, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@renounceOwnership_60": { + "entryPoint": 1022, + "id": 60, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@symbol_168": { + "entryPoint": 1124, + "id": 168, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_310": { + "entryPoint": 773, + "id": 310, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transferOwnership_83": { + "entryPoint": 1305, + "id": 83, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@transfer_223": { + "entryPoint": 1292, + "id": 223, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_address": { + "entryPoint": 2568, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 2596, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 2630, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 2681, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 2741, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2783, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 2868, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 2906, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7193:6", + "statements": [ + { + "nodeType": "YulBlock", + "src": "6:3:6", + "statements": [] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "63:124:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "73:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "95:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "82:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "82:20:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "73:5:6" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "165:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "174:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "177:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "167:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "167:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "167:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "124:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "135:5:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "150:3:6", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "155:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "146:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "146:11:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "159:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "142:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "142:19:6" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "131:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "131:31:6" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "121:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "121:42:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "114:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "114:50:6" + }, + "nodeType": "YulIf", + "src": "111:2:6" + } + ] + }, + "name": "abi_decode_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "42:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:6", + "type": "" + } + ], + "src": "14:173:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "262:116:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "308:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "283:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "292:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "279:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "279:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "304:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "275:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "275:32:6" + }, + "nodeType": "YulIf", + "src": "272:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "333:39:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "362:9:6" + } + ], + "functionName": { + "name": "abi_decode_address", + "nodeType": "YulIdentifier", + "src": "343:18:6" + }, + "nodeType": "YulFunctionCall", + "src": "343:29:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "333:6:6" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "228:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "239:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "251:6:6", + "type": "" + } + ], + "src": "192:186:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "470:173:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "516:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "528:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "518:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "518:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "518:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "491:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "500:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "487:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "487:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "512:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "483:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "483:32:6" + }, + "nodeType": "YulIf", + "src": "480:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "541:39:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "570:9:6" + } + ], + "functionName": { + "name": "abi_decode_address", + "nodeType": "YulIdentifier", + "src": "551:18:6" + }, + "nodeType": "YulFunctionCall", + "src": "551:29:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "541:6:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "589:48:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "622:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "633:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "618:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "618:18:6" + } + ], + "functionName": { + "name": "abi_decode_address", + "nodeType": "YulIdentifier", + "src": "599:18:6" + }, + "nodeType": "YulFunctionCall", + "src": "599:38:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "589:6:6" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "428:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "439:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "451:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "459:6:6", + "type": "" + } + ], + "src": "383:260:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "752:224:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "798:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "807:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "810:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "800:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "800:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "800:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "773:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "782:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "769:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "769:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "794:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "765:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "765:32:6" + }, + "nodeType": "YulIf", + "src": "762:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "823:39:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "852:9:6" + } + ], + "functionName": { + "name": "abi_decode_address", + "nodeType": "YulIdentifier", + "src": "833:18:6" + }, + "nodeType": "YulFunctionCall", + "src": "833:29:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "823:6:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "871:48:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "904:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "915:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "900:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "900:18:6" + } + ], + "functionName": { + "name": "abi_decode_address", + "nodeType": "YulIdentifier", + "src": "881:18:6" + }, + "nodeType": "YulFunctionCall", + "src": "881:38:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "871:6:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "928:42:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "955:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "966:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "951:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "951:18:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "938:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "938:32:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "928:6:6" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "702:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "713:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "725:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "733:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "741:6:6", + "type": "" + } + ], + "src": "648:328:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1068:167:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1114:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1123:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1126:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1116:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1116:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1116:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1089:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1098:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1085:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1085:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1110:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1081:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1081:32:6" + }, + "nodeType": "YulIf", + "src": "1078:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "1139:39:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1168:9:6" + } + ], + "functionName": { + "name": "abi_decode_address", + "nodeType": "YulIdentifier", + "src": "1149:18:6" + }, + "nodeType": "YulFunctionCall", + "src": "1149:29:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1139:6:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1187:42:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1214:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1225:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1210:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1210:18:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1197:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "1197:32:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1187:6:6" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1026:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1037:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1049:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1057:6:6", + "type": "" + } + ], + "src": "981:254:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1341:102:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1351:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1363:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1374:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1359:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1359:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1351:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1393:9:6" + }, + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1408:6:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1424:3:6", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1429:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1420:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1420:11:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1433:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1416:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1416:19:6" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1404:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1404:32:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1386:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1386:51:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1386:51:6" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1310:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1321:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1332:4:6", + "type": "" + } + ], + "src": "1240:203:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1543:92:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1553:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1565:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1576:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1561:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1561:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1553:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1595:9:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1620:6:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1613:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1613:14:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1606:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1606:22:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1588:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1588:41:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1588:41:6" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1512:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1523:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1534:4:6", + "type": "" + } + ], + "src": "1448:187:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1761:476:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1771:12:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1781:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "_1", + "nodeType": "YulTypedName", + "src": "1775:2:6", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1799:9:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "1810:2:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1792:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1792:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1792:21:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1822:27:6", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1842:6:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1836:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "1836:13:6" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1826:6:6", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1869:9:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "1880:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1865:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1865:18:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1885:6:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1858:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1858:34:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1858:34:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1901:10:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1910:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "1905:1:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1970:90:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1999:9:6" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2010:1:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1995:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1995:17:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2014:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1991:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1991:26:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2033:6:6" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2041:1:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2029:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2029:14:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "2045:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2025:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2025:23:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2019:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "2019:30:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1984:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1984:66:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1984:66:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1931:1:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1934:6:6" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1928:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "1928:13:6" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1942:19:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1944:15:6", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1953:1:6" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "1956:2:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1949:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1949:10:6" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1944:1:6" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1924:3:6", + "statements": [] + }, + "src": "1920:140:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2094:66:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2123:9:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2134:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2119:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2119:22:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2143:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2115:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2115:31:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2148:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2108:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2108:42:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2108:42:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2075:1:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2078:6:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2072:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "2072:13:6" + }, + "nodeType": "YulIf", + "src": "2069:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "2169:62:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2185:9:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2204:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2212:2:6", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2200:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2200:15:6" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2221:2:6", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "2217:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2217:7:6" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2196:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2196:29:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2181:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2181:45:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2228:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2177:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2177:54:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2169:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1730:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1741:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1752:4:6", + "type": "" + } + ], + "src": "1640:597:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2416:225:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2433:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2444:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2426:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2426:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2426:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2467:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2478:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2463:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2463:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2483:2:6", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2456:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2456:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2456:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2506:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2517:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2502:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2502:18:6" + }, + { + "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472", + "kind": "string", + "nodeType": "YulLiteral", + "src": "2522:34:6", + "type": "", + "value": "ERC20: transfer to the zero addr" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2495:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2495:62:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2495:62:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2577:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2588:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2573:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2573:18:6" + }, + { + "hexValue": "657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "2593:5:6", + "type": "", + "value": "ess" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2566:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2566:33:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2566:33:6" + }, + { + "nodeType": "YulAssignment", + "src": "2608:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2620:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2631:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2616:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2616:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2608:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2393:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2407:4:6", + "type": "" + } + ], + "src": "2242:399:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2820:228:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2837:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2848:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2830:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2830:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2830:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2871:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2882:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2867:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2867:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2887:2:6", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2860:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2860:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2860:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2910:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2921:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2906:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2906:18:6" + }, + { + "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061", + "kind": "string", + "nodeType": "YulLiteral", + "src": "2926:34:6", + "type": "", + "value": "Ownable: new owner is the zero a" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2899:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2899:62:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2899:62:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2981:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2992:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2977:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2977:18:6" + }, + { + "hexValue": "646472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "2997:8:6", + "type": "", + "value": "ddress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2970:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2970:36:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2970:36:6" + }, + { + "nodeType": "YulAssignment", + "src": "3015:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3027:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3038:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3023:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3023:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3015:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2797:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2811:4:6", + "type": "" + } + ], + "src": "2646:402:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3227:224:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3244:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3255:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3237:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3237:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3237:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3278:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3289:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3274:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3274:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3294:2:6", + "type": "", + "value": "34" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3267:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3267:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3267:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3317:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3328:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3313:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3313:18:6" + }, + { + "hexValue": "45524332303a20617070726f766520746f20746865207a65726f206164647265", + "kind": "string", + "nodeType": "YulLiteral", + "src": "3333:34:6", + "type": "", + "value": "ERC20: approve to the zero addre" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3306:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3306:62:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3306:62:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3388:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3399:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3384:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3384:18:6" + }, + { + "hexValue": "7373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "3404:4:6", + "type": "", + "value": "ss" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3377:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3377:32:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3377:32:6" + }, + { + "nodeType": "YulAssignment", + "src": "3418:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3430:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3441:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3426:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3426:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3418:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3204:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3218:4:6", + "type": "" + } + ], + "src": "3053:398:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3630:228:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3647:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3658:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3640:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3640:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3640:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3681:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3692:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3677:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3677:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3697:2:6", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3670:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3670:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3670:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3720:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3731:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3716:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3716:18:6" + }, + { + "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062", + "kind": "string", + "nodeType": "YulLiteral", + "src": "3736:34:6", + "type": "", + "value": "ERC20: transfer amount exceeds b" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3709:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3709:62:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3709:62:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3791:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3802:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3787:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3787:18:6" + }, + { + "hexValue": "616c616e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "3807:8:6", + "type": "", + "value": "alance" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3780:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3780:36:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3780:36:6" + }, + { + "nodeType": "YulAssignment", + "src": "3825:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3837:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3848:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3833:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3833:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3825:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3607:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3621:4:6", + "type": "" + } + ], + "src": "3456:402:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4037:230:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4054:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4065:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4047:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4047:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4047:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4088:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4099:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4084:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4084:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4104:2:6", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4077:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4077:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4077:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4127:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4138:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4123:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4123:18:6" + }, + { + "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732061", + "kind": "string", + "nodeType": "YulLiteral", + "src": "4143:34:6", + "type": "", + "value": "ERC20: transfer amount exceeds a" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4116:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4116:62:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4116:62:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4198:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4209:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4194:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4194:18:6" + }, + { + "hexValue": "6c6c6f77616e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "4214:10:6", + "type": "", + "value": "llowance" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4187:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4187:38:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4187:38:6" + }, + { + "nodeType": "YulAssignment", + "src": "4234:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4246:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4257:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4242:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4242:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4234:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4014:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4028:4:6", + "type": "" + } + ], + "src": "3863:404:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4446:182:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4463:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4474:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4456:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4456:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4456:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4497:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4508:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4493:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4493:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4513:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4486:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4486:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4486:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4536:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4547:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4532:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4532:18:6" + }, + { + "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "4552:34:6", + "type": "", + "value": "Ownable: caller is not the owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4525:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4525:62:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4525:62:6" + }, + { + "nodeType": "YulAssignment", + "src": "4596:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4608:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4619:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4604:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4604:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4596:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4423:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4437:4:6", + "type": "" + } + ], + "src": "4272:356:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4807:227:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4824:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4835:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4817:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4817:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4817:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4858:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4869:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4854:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4854:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4874:2:6", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4847:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4847:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4847:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4897:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4908:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4893:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4893:18:6" + }, + { + "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f206164", + "kind": "string", + "nodeType": "YulLiteral", + "src": "4913:34:6", + "type": "", + "value": "ERC20: transfer from the zero ad" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4886:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4886:62:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4886:62:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4968:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4979:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4964:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4964:18:6" + }, + { + "hexValue": "6472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "4984:7:6", + "type": "", + "value": "dress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4957:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4957:35:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4957:35:6" + }, + { + "nodeType": "YulAssignment", + "src": "5001:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5013:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5024:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5009:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5009:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5001:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4784:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4798:4:6", + "type": "" + } + ], + "src": "4633:401:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5213:226:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5230:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5241:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5223:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5223:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5223:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5264:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5275:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5260:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5260:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5280:2:6", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5253:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5253:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5253:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5303:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5314:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5299:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5299:18:6" + }, + { + "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f20616464", + "kind": "string", + "nodeType": "YulLiteral", + "src": "5319:34:6", + "type": "", + "value": "ERC20: approve from the zero add" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5292:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5292:62:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5292:62:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5374:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5385:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5370:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5370:18:6" + }, + { + "hexValue": "72657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "5390:6:6", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5363:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5363:34:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5363:34:6" + }, + { + "nodeType": "YulAssignment", + "src": "5406:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5418:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5429:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5414:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5414:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5406:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5190:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5204:4:6", + "type": "" + } + ], + "src": "5039:400:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5618:227:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5635:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5646:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5628:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5628:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5628:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5669:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5680:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5665:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5665:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5685:2:6", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5658:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5658:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5658:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5708:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5719:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5704:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5704:18:6" + }, + { + "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77", + "kind": "string", + "nodeType": "YulLiteral", + "src": "5724:34:6", + "type": "", + "value": "ERC20: decreased allowance below" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5697:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5697:62:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5697:62:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5779:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5790:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5775:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5775:18:6" + }, + { + "hexValue": "207a65726f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "5795:7:6", + "type": "", + "value": " zero" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5768:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5768:35:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5768:35:6" + }, + { + "nodeType": "YulAssignment", + "src": "5812:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5824:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5835:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5820:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5820:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5812:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5595:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5609:4:6", + "type": "" + } + ], + "src": "5444:401:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6024:181:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6041:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6052:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6034:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "6034:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "6034:21:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6075:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6086:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6071:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6071:18:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6091:2:6", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6064:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "6064:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "6064:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6114:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6125:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6110:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6110:18:6" + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "6130:33:6", + "type": "", + "value": "ERC20: mint to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6103:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "6103:61:6" + }, + "nodeType": "YulExpressionStatement", + "src": "6103:61:6" + }, + { + "nodeType": "YulAssignment", + "src": "6173:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6185:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6196:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6181:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6181:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6173:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6001:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6015:4:6", + "type": "" + } + ], + "src": "5850:355:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6311:76:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6321:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6333:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6344:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6329:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6329:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6321:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6363:9:6" + }, + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6374:6:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6356:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "6356:25:6" + }, + "nodeType": "YulExpressionStatement", + "src": "6356:25:6" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6280:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6291:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6302:4:6", + "type": "" + } + ], + "src": "6210:177:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6489:87:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6499:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6511:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6522:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6507:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6507:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6499:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6541:9:6" + }, + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6556:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6564:4:6", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6552:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6552:17:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6534:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "6534:36:6" + }, + "nodeType": "YulExpressionStatement", + "src": "6534:36:6" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6458:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6469:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6480:4:6", + "type": "" + } + ], + "src": "6392:184:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6629:177:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6664:111:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6685:1:6", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6692:3:6", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6697:10:6", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "6688:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6688:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6678:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "6678:31:6" + }, + "nodeType": "YulExpressionStatement", + "src": "6678:31:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6729:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6732:4:6", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6722:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "6722:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "6722:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6757:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6760:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6750:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "6750:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "6750:15:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "6645:1:6" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "6652:1:6" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6648:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6648:6:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6642:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "6642:13:6" + }, + "nodeType": "YulIf", + "src": "6639:2:6" + }, + { + "nodeType": "YulAssignment", + "src": "6784:16:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "6795:1:6" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "6798:1:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6791:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6791:9:6" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "6784:3:6" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "6612:1:6", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "6615:1:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "6621:3:6", + "type": "" + } + ], + "src": "6581:225:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6866:325:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6876:22:6", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6890:1:6", + "type": "", + "value": "1" + }, + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6893:4:6" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "6886:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6886:12:6" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6876:6:6" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6907:38:6", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6937:4:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6943:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6933:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6933:12:6" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "6911:18:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6984:31:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6986:27:6", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7000:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7008:4:6", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6996:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6996:17:6" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6986:6:6" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6964:18:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6957:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "6957:26:6" + }, + "nodeType": "YulIf", + "src": "6954:2:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7074:111:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7095:1:6", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7102:3:6", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7107:10:6", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "7098:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7098:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7088:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "7088:31:6" + }, + "nodeType": "YulExpressionStatement", + "src": "7088:31:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7139:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7142:4:6", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7132:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "7132:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "7132:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7167:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7170:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7160:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "7160:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "7160:15:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "7030:18:6" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7053:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7061:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7050:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "7050:14:6" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "7027:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "7027:38:6" + }, + "nodeType": "YulIf", + "src": "7024:2:6" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6846:4:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6855:6:6", + "type": "" + } + ], + "src": "6811:380:6" + } + ] + }, + "contents": "{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), 0)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds a\")\n mstore(add(headStart, 96), \"llowance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}", + "id": 6, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d7146101eb578063a9059cbb146101fe578063dd62ed3e14610211578063f2fde38b1461024a57600080fd5b806370a0823114610197578063715018a6146101c05780638da5cb5b146101c857806395d89b41146101e357600080fd5b806323b872dd116100d357806323b872dd1461014d578063313ce56714610160578063395093511461016f57806340c10f191461018257600080fd5b806306fdde03146100fa578063095ea7b31461011857806318160ddd1461013b575b600080fd5b61010261025d565b60405161010f9190610adf565b60405180910390f35b61012b610126366004610ab5565b6102ef565b604051901515815260200161010f565b6002545b60405190815260200161010f565b61012b61015b366004610a79565b610305565b6040516009815260200161010f565b61012b61017d366004610ab5565b6103b4565b610195610190366004610ab5565b6103f0565b005b61013f6101a5366004610a24565b6001600160a01b031660009081526020819052604090205490565b6101956103fe565b6005546040516001600160a01b03909116815260200161010f565b610102610464565b61012b6101f9366004610ab5565b610473565b61012b61020c366004610ab5565b61050c565b61013f61021f366004610a46565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610195610258366004610a24565b610519565b60606003805461026c90610b5a565b80601f016020809104026020016040519081016040528092919081815260200182805461029890610b5a565b80156102e55780601f106102ba576101008083540402835291602001916102e5565b820191906000526020600020905b8154815290600101906020018083116102c857829003601f168201915b5050505050905090565b60006102fc3384846105e4565b50600192915050565b6000610312848484610708565b6001600160a01b03841660009081526001602090815260408083203384529091529020548281101561039c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6103a985338584036105e4565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102fc9185906103eb908690610b34565b6105e4565b6103fa82826108d7565b5050565b6005546001600160a01b031633146104585760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610393565b61046260006109b6565b565b60606004805461026c90610b5a565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156104f55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610393565b61050233858584036105e4565b5060019392505050565b60006102fc338484610708565b6005546001600160a01b031633146105735760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610393565b6001600160a01b0381166105d85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610393565b6105e1816109b6565b50565b6001600160a01b0383166106465760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610393565b6001600160a01b0382166106a75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610393565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661076c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610393565b6001600160a01b0382166107ce5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610393565b6001600160a01b038316600090815260208190526040902054818110156108465760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610393565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061087d908490610b34565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c991815260200190565b60405180910390a350505050565b6001600160a01b03821661092d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610393565b806002600082825461093f9190610b34565b90915550506001600160a01b0382166000908152602081905260408120805483929061096c908490610b34565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80356001600160a01b0381168114610a1f57600080fd5b919050565b600060208284031215610a3657600080fd5b610a3f82610a08565b9392505050565b60008060408385031215610a5957600080fd5b610a6283610a08565b9150610a7060208401610a08565b90509250929050565b600080600060608486031215610a8e57600080fd5b610a9784610a08565b9250610aa560208501610a08565b9150604084013590509250925092565b60008060408385031215610ac857600080fd5b610ad183610a08565b946020939093013593505050565b600060208083528351808285015260005b81811015610b0c57858101830151858201604001528201610af0565b81811115610b1e576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115610b5557634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680610b6e57607f821691505b60208210811415610b8f57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220f9fcaa60d4a598edaf07f31386ed6fae9022bde6f502d7dacf7a52356c4c555664736f6c63430008060033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x14D JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x16F JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x182 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x13B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0x25D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10F SWAP2 SWAP1 PUSH2 0xADF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12B PUSH2 0x126 CALLDATASIZE PUSH1 0x4 PUSH2 0xAB5 JUMP JUMPDEST PUSH2 0x2EF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10F JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10F JUMP JUMPDEST PUSH2 0x12B PUSH2 0x15B CALLDATASIZE PUSH1 0x4 PUSH2 0xA79 JUMP JUMPDEST PUSH2 0x305 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10F JUMP JUMPDEST PUSH2 0x12B PUSH2 0x17D CALLDATASIZE PUSH1 0x4 PUSH2 0xAB5 JUMP JUMPDEST PUSH2 0x3B4 JUMP JUMPDEST PUSH2 0x195 PUSH2 0x190 CALLDATASIZE PUSH1 0x4 PUSH2 0xAB5 JUMP JUMPDEST PUSH2 0x3F0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x13F PUSH2 0x1A5 CALLDATASIZE PUSH1 0x4 PUSH2 0xA24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x195 PUSH2 0x3FE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10F JUMP JUMPDEST PUSH2 0x102 PUSH2 0x464 JUMP JUMPDEST PUSH2 0x12B PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0xAB5 JUMP JUMPDEST PUSH2 0x473 JUMP JUMPDEST PUSH2 0x12B PUSH2 0x20C CALLDATASIZE PUSH1 0x4 PUSH2 0xAB5 JUMP JUMPDEST PUSH2 0x50C JUMP JUMPDEST PUSH2 0x13F PUSH2 0x21F CALLDATASIZE PUSH1 0x4 PUSH2 0xA46 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x195 PUSH2 0x258 CALLDATASIZE PUSH1 0x4 PUSH2 0xA24 JUMP JUMPDEST PUSH2 0x519 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x26C SWAP1 PUSH2 0xB5A JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x298 SWAP1 PUSH2 0xB5A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2E5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2BA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2E5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2C8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC CALLER DUP5 DUP5 PUSH2 0x5E4 JUMP JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x312 DUP5 DUP5 DUP5 PUSH2 0x708 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP3 DUP2 LT ISZERO PUSH2 0x39C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732061 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x6C6C6F77616E6365 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3A9 DUP6 CALLER DUP6 DUP5 SUB PUSH2 0x5E4 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0x2FC SWAP2 DUP6 SWAP1 PUSH2 0x3EB SWAP1 DUP7 SWAP1 PUSH2 0xB34 JUMP JUMPDEST PUSH2 0x5E4 JUMP JUMPDEST PUSH2 0x3FA DUP3 DUP3 PUSH2 0x8D7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x458 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x393 JUMP JUMPDEST PUSH2 0x462 PUSH1 0x0 PUSH2 0x9B6 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x26C SWAP1 PUSH2 0xB5A JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD DUP3 DUP2 LT ISZERO PUSH2 0x4F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x393 JUMP JUMPDEST PUSH2 0x502 CALLER DUP6 DUP6 DUP5 SUB PUSH2 0x5E4 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC CALLER DUP5 DUP5 PUSH2 0x708 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x573 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x393 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5D8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x393 JUMP JUMPDEST PUSH2 0x5E1 DUP2 PUSH2 0x9B6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x646 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x393 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x393 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x76C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x393 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x7CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x393 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x846 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x393 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x87D SWAP1 DUP5 SWAP1 PUSH2 0xB34 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x8C9 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x92D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x393 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x93F SWAP2 SWAP1 PUSH2 0xB34 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x96C SWAP1 DUP5 SWAP1 PUSH2 0xB34 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA3F DUP3 PUSH2 0xA08 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA62 DUP4 PUSH2 0xA08 JUMP JUMPDEST SWAP2 POP PUSH2 0xA70 PUSH1 0x20 DUP5 ADD PUSH2 0xA08 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xA8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA97 DUP5 PUSH2 0xA08 JUMP JUMPDEST SWAP3 POP PUSH2 0xAA5 PUSH1 0x20 DUP6 ADD PUSH2 0xA08 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAD1 DUP4 PUSH2 0xA08 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xB0C JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0xAF0 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xB1E JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xB55 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xB6E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xB8F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 0xFC 0xAA PUSH1 0xD4 0xA5 SWAP9 0xED 0xAF SMOD RETURN SGT DUP7 0xED PUSH16 0xAE9022BDE6F502D7DACF7A52356C4C55 JUMP PUSH5 0x736F6C6343 STOP ADDMOD MOD STOP CALLER ", + "sourceMap": "195:356:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2084:98:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4181:166;;;;;;:::i;:::-;;:::i;:::-;;;1613:14:6;;1606:22;1588:41;;1576:2;1561:18;4181:166:1;1543:92:6;3172:106:1;3259:12;;3172:106;;;6356:25:6;;;6344:2;6329:18;3172:106:1;6311:76:6;4814:478:1;;;;;;:::i;:::-;;:::i;459:90:5:-;;;541:1;6534:36:6;;6522:2;6507:18;459:90:5;6489:87:6;5687:212:1;;;;;;:::i;:::-;;:::i;370:83:5:-;;;;;;:::i;:::-;;:::i;:::-;;3336:125:1;;;;;;:::i;:::-;-1:-1:-1;;;;;3436:18:1;3410:7;3436:18;;;;;;;;;;;;3336:125;1605:92:0;;;:::i;973:85::-;1045:6;;973:85;;-1:-1:-1;;;;;1045:6:0;;;1386:51:6;;1374:2;1359:18;973:85:0;1341:102:6;2295::1;;;:::i;6386:405::-;;;;;;:::i;:::-;;:::i;3664:172::-;;;;;;:::i;:::-;;:::i;3894:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4009:18:1;;;3983:7;4009:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3894:149;1846:189:0;;;;;;:::i;:::-;;:::i;2084:98:1:-;2138:13;2170:5;2163:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2084:98;:::o;4181:166::-;4264:4;4280:39;666:10:4;4303:7:1;4312:6;4280:8;:39::i;:::-;-1:-1:-1;4336:4:1;4181:166;;;;:::o;4814:478::-;4950:4;4966:36;4976:6;4984:9;4995:6;4966:9;:36::i;:::-;-1:-1:-1;;;;;5040:19:1;;5013:24;5040:19;;;:11;:19;;;;;;;;666:10:4;5040:33:1;;;;;;;;5091:26;;;;5083:79;;;;-1:-1:-1;;;5083:79:1;;4065:2:6;5083:79:1;;;4047:21:6;4104:2;4084:18;;;4077:30;4143:34;4123:18;;;4116:62;-1:-1:-1;;;4194:18:6;;;4187:38;4242:19;;5083:79:1;;;;;;;;;5196:57;5205:6;666:10:4;5246:6:1;5227:16;:25;5196:8;:57::i;:::-;-1:-1:-1;5281:4:1;;4814:478;-1:-1:-1;;;;4814:478:1:o;5687:212::-;666:10:4;5775:4:1;5823:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5823:34:1;;;;;;;;;;5775:4;;5791:80;;5814:7;;5823:47;;5860:10;;5823:47;:::i;:::-;5791:8;:80::i;370:83:5:-;429:17;435:2;439:6;429:5;:17::i;:::-;370:83;;:::o;1605:92:0:-;1045:6;;-1:-1:-1;;;;;1045:6:0;666:10:4;1185:23:0;1177:68;;;;-1:-1:-1;;;1177:68:0;;4474:2:6;1177:68:0;;;4456:21:6;;;4493:18;;;4486:30;4552:34;4532:18;;;4525:62;4604:18;;1177:68:0;4446:182:6;1177:68:0;1669:21:::1;1687:1;1669:9;:21::i;:::-;1605:92::o:0;2295:102:1:-;2351:13;2383:7;2376:14;;;;;:::i;6386:405::-;666:10:4;6479:4:1;6522:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6522:34:1;;;;;;;;;;6574:35;;;;6566:85;;;;-1:-1:-1;;;6566:85:1;;5646:2:6;6566:85:1;;;5628:21:6;5685:2;5665:18;;;5658:30;5724:34;5704:18;;;5697:62;-1:-1:-1;;;5775:18:6;;;5768:35;5820:19;;6566:85:1;5618:227:6;6566:85:1;6685:67;666:10:4;6708:7:1;6736:15;6717:16;:34;6685:8;:67::i;:::-;-1:-1:-1;6780:4:1;;6386:405;-1:-1:-1;;;6386:405:1:o;3664:172::-;3750:4;3766:42;666:10:4;3790:9:1;3801:6;3766:9;:42::i;1846:189:0:-;1045:6;;-1:-1:-1;;;;;1045:6:0;666:10:4;1185:23:0;1177:68;;;;-1:-1:-1;;;1177:68:0;;4474:2:6;1177:68:0;;;4456:21:6;;;4493:18;;;4486:30;4552:34;4532:18;;;4525:62;4604:18;;1177:68:0;4446:182:6;1177:68:0;-1:-1:-1;;;;;1934:22:0;::::1;1926:73;;;::::0;-1:-1:-1;;;1926:73:0;;2848:2:6;1926:73:0::1;::::0;::::1;2830:21:6::0;2887:2;2867:18;;;2860:30;2926:34;2906:18;;;2899:62;-1:-1:-1;;;2977:18:6;;;2970:36;3023:19;;1926:73:0::1;2820:228:6::0;1926:73:0::1;2009:19;2019:8;2009:9;:19::i;:::-;1846:189:::0;:::o;9962:370:1:-;-1:-1:-1;;;;;10093:19:1;;10085:68;;;;-1:-1:-1;;;10085:68:1;;5241:2:6;10085:68:1;;;5223:21:6;5280:2;5260:18;;;5253:30;5319:34;5299:18;;;5292:62;-1:-1:-1;;;5370:18:6;;;5363:34;5414:19;;10085:68:1;5213:226:6;10085:68:1;-1:-1:-1;;;;;10171:21:1;;10163:68;;;;-1:-1:-1;;;10163:68:1;;3255:2:6;10163:68:1;;;3237:21:6;3294:2;3274:18;;;3267:30;3333:34;3313:18;;;3306:62;-1:-1:-1;;;3384:18:6;;;3377:32;3426:19;;10163:68:1;3227:224:6;10163:68:1;-1:-1:-1;;;;;10242:18:1;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10293:32;;6356:25:6;;;10293:32:1;;6329:18:6;10293:32:1;;;;;;;9962:370;;;:::o;7265:713::-;-1:-1:-1;;;;;7400:20:1;;7392:70;;;;-1:-1:-1;;;7392:70:1;;4835:2:6;7392:70:1;;;4817:21:6;4874:2;4854:18;;;4847:30;4913:34;4893:18;;;4886:62;-1:-1:-1;;;4964:18:6;;;4957:35;5009:19;;7392:70:1;4807:227:6;7392:70:1;-1:-1:-1;;;;;7480:23:1;;7472:71;;;;-1:-1:-1;;;7472:71:1;;2444:2:6;7472:71:1;;;2426:21:6;2483:2;2463:18;;;2456:30;2522:34;2502:18;;;2495:62;-1:-1:-1;;;2573:18:6;;;2566:33;2616:19;;7472:71:1;2416:225:6;7472:71:1;-1:-1:-1;;;;;7636:17:1;;7612:21;7636:17;;;;;;;;;;;7671:23;;;;7663:74;;;;-1:-1:-1;;;7663:74:1;;3658:2:6;7663:74:1;;;3640:21:6;3697:2;3677:18;;;3670:30;3736:34;3716:18;;;3709:62;-1:-1:-1;;;3787:18:6;;;3780:36;3833:19;;7663:74:1;3630:228:6;7663:74:1;-1:-1:-1;;;;;7771:17:1;;;:9;:17;;;;;;;;;;;7791:22;;;7771:42;;7833:20;;;;;;;;:30;;7807:6;;7771:9;7833:30;;7807:6;;7833:30;:::i;:::-;;;;;;;;7896:9;-1:-1:-1;;;;;7879:35:1;7888:6;-1:-1:-1;;;;;7879:35:1;;7907:6;7879:35;;;;6356:25:6;;6344:2;6329:18;;6311:76;7879:35:1;;;;;;;;7382:596;7265:713;;;:::o;8254:389::-;-1:-1:-1;;;;;8337:21:1;;8329:65;;;;-1:-1:-1;;;8329:65:1;;6052:2:6;8329:65:1;;;6034:21:6;6091:2;6071:18;;;6064:30;6130:33;6110:18;;;6103:61;6181:18;;8329:65:1;6024:181:6;8329:65:1;8481:6;8465:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8497:18:1;;:9;:18;;;;;;;;;;:28;;8519:6;;8497:9;:28;;8519:6;;8497:28;:::i;:::-;;;;-1:-1:-1;;8540:37:1;;6356:25:6;;;-1:-1:-1;;;;;8540:37:1;;;8557:1;;8540:37;;6344:2:6;6329:18;8540:37:1;;;;;;;370:83:5;;:::o;2041:169:0:-;2115:6;;;-1:-1:-1;;;;;2131:17:0;;;-1:-1:-1;;;;;;2131:17:0;;;;;;;2163:40;;2115:6;;;2131:17;2115:6;;2163:40;;2096:16;;2163:40;2086:124;2041:169;:::o;14:173:6:-;82:20;;-1:-1:-1;;;;;131:31:6;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;320:1;317;310:12;272:2;343:29;362:9;343:29;:::i;:::-;333:39;262:116;-1:-1:-1;;;262:116:6:o;383:260::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:2;;;528:1;525;518:12;480:2;551:29;570:9;551:29;:::i;:::-;541:39;;599:38;633:2;622:9;618:18;599:38;:::i;:::-;589:48;;470:173;;;;;:::o;648:328::-;725:6;733;741;794:2;782:9;773:7;769:23;765:32;762:2;;;810:1;807;800:12;762:2;833:29;852:9;833:29;:::i;:::-;823:39;;881:38;915:2;904:9;900:18;881:38;:::i;:::-;871:48;;966:2;955:9;951:18;938:32;928:42;;752:224;;;;;:::o;981:254::-;1049:6;1057;1110:2;1098:9;1089:7;1085:23;1081:32;1078:2;;;1126:1;1123;1116:12;1078:2;1149:29;1168:9;1149:29;:::i;:::-;1139:39;1225:2;1210:18;;;;1197:32;;-1:-1:-1;;;1068:167:6:o;1640:597::-;1752:4;1781:2;1810;1799:9;1792:21;1842:6;1836:13;1885:6;1880:2;1869:9;1865:18;1858:34;1910:1;1920:140;1934:6;1931:1;1928:13;1920:140;;;2029:14;;;2025:23;;2019:30;1995:17;;;2014:2;1991:26;1984:66;1949:10;;1920:140;;;2078:6;2075:1;2072:13;2069:2;;;2148:1;2143:2;2134:6;2123:9;2119:22;2115:31;2108:42;2069:2;-1:-1:-1;2221:2:6;2200:15;-1:-1:-1;;2196:29:6;2181:45;;;;2228:2;2177:54;;1761:476;-1:-1:-1;;;1761:476:6:o;6581:225::-;6621:3;6652:1;6648:6;6645:1;6642:13;6639:2;;;6697:10;6692:3;6688:20;6685:1;6678:31;6732:4;6729:1;6722:15;6760:4;6757:1;6750:15;6639:2;-1:-1:-1;6791:9:6;;6629:177::o;6811:380::-;6890:1;6886:12;;;;6933;;;6954:2;;7008:4;7000:6;6996:17;6986:27;;6954:2;7061;7053:6;7050:14;7030:18;7027:38;7024:2;;;7107:10;7102:3;7098:20;7095:1;7088:31;7142:4;7139:1;7132:15;7170:4;7167:1;7160:15;7024:2;;6866:325;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "decreaseAllowance(address,uint256)": "a457c2d7", + "increaseAllowance(address,uint256)": "39509351", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.6+commit.11564f7e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MyToken.sol\":\"MyToken\"},\"evmVersion\":\"berlin\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x6bb804a310218875e89d12c053e94a13a4607cdf7cc2052f3e52bd32a0dc50a1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2ebbbe6d0011175bd9e7268b83de3f9c2f9d8d4cbfbaef12aff977d7d727163\",\"dweb:/ipfs/Qmd5c7Vxtis9wzkDNhxwc6A2QT5H9xn9kfjhx7qx44vpro\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xb03df8481a954604ad0c9125680893b2e3f7ff770fe470e38b89ac61b84e8072\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b34655953d18ba3a45b762fb6bdbb6549af69a27435e10ece178742bf70baf45\",\"dweb:/ipfs/QmcqjUoFLLMyx7dbwSHUnDBH6aphkVHXWQvQRRev5EAWEh\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x027b891937d20ccf213fdb9c31531574256de774bda99d3a70ecef6e1913ed2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://087318b21c528119f649899f5b5580566dd8d7b0303d4904bd0e8580c3545f14\",\"dweb:/ipfs/Qmbn5Mj7aUn8hJuQ8VrQjjEXRsXyJKykgnjR9p4C3nfLtL\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x83fe24f5c04a56091e50f4a345ff504c8bff658a76d4c43b16878c8f940c53b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4c3df1a7ca104b633a7d81c6c6f5192367d150cd5a32cba81f7f27012729013\",\"dweb:/ipfs/QmSim72e3ZVsfgZt8UceCvbiSuMRHR6WDsiamqNzZahGSY\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x90565a39ae45c80f0468dc96c7b20d0afc3055f344c8203a0c9258239f350b9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26e8b38a7ac8e7b4463af00cf7fff1bf48ae9875765bf4f7751e100124d0bc8c\",\"dweb:/ipfs/QmWcsmkVr24xmmjfnBQZoemFniXjj3vwT78Cz6uqZW1Hux\"]},\"contracts/MyToken.sol\":{\"keccak256\":\"0x48156c0ca61d057b24061d323854f6ff82f01dc6d228a6c1e050247a45d9740f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16901a64c288fc1caf96fad6bdd4a8bb43187203f6e2bcabd5e471470e7ad755\",\"dweb:/ipfs/QmfJpjmum3ASKdD2qUspWqS2mKT5NgcVDo2BJcJmBBJwhx\"]}},\"version\":1}" + } + } + }, + "sources": { + "@openzeppelin/contracts/access/Ownable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "exportedSymbols": { + "Context": [ + 774 + ], + "Ownable": [ + 103 + ] + }, + "id": 104, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:0" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "id": 2, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 104, + "sourceUnit": 775, + "src": "58:30:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 4, + "name": "Context", + "nodeType": "IdentifierPath", + "referencedDeclaration": 774, + "src": "614:7:0" + }, + "id": 5, + "nodeType": "InheritanceSpecifier", + "src": "614:7:0" + } + ], + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 3, + "nodeType": "StructuredDocumentation", + "src": "90:494:0", + "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." + }, + "fullyImplemented": true, + "id": 103, + "linearizedBaseContracts": [ + 103, + 774 + ], + "name": "Ownable", + "nameLocation": "603:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 7, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "644:6:0", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "628:22:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "628:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "anonymous": false, + "id": 13, + "name": "OwnershipTransferred", + "nameLocation": "663:20:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "700:13:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "684:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "684:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "731:8:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "715:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "715:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "683:57:0" + }, + "src": "657:84:0" + }, + { + "body": { + "id": 22, + "nodeType": "Block", + "src": "857:40:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 18, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 764, + "src": "877:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "877:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 17, + "name": "_setOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 102, + "src": "867:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "867:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21, + "nodeType": "ExpressionStatement", + "src": "867:23:0" + } + ] + }, + "documentation": { + "id": 14, + "nodeType": "StructuredDocumentation", + "src": "747:91:0", + "text": " @dev Initializes the contract setting the deployer as the initial owner." + }, + "id": 23, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15, + "nodeType": "ParameterList", + "parameters": [], + "src": "854:2:0" + }, + "returnParameters": { + "id": 16, + "nodeType": "ParameterList", + "parameters": [], + "src": "857:0:0" + }, + "scope": 103, + "src": "843:54:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 31, + "nodeType": "Block", + "src": "1028:30:0", + "statements": [ + { + "expression": { + "id": 29, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "1045:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 28, + "id": 30, + "nodeType": "Return", + "src": "1038:13:0" + } + ] + }, + "documentation": { + "id": 24, + "nodeType": "StructuredDocumentation", + "src": "903:65:0", + "text": " @dev Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "id": 32, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "982:5:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "987:2:0" + }, + "returnParameters": { + "id": 28, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 32, + "src": "1019:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1019:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1018:9:0" + }, + "scope": 103, + "src": "973:85:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 45, + "nodeType": "Block", + "src": "1167:96:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 36, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32, + "src": "1185:5:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 37, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1185:7:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 764, + "src": "1196:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1196:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1185:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1210:34:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", + "typeString": "literal_string \"Ownable: caller is not the owner\"" + }, + "value": "Ownable: caller is not the owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", + "typeString": "literal_string \"Ownable: caller is not the owner\"" + } + ], + "id": 35, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1177:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1177:68:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "1177:68:0" + }, + { + "id": 44, + "nodeType": "PlaceholderStatement", + "src": "1255:1:0" + } + ] + }, + "documentation": { + "id": 33, + "nodeType": "StructuredDocumentation", + "src": "1064:77:0", + "text": " @dev Throws if called by any account other than the owner." + }, + "id": 46, + "name": "onlyOwner", + "nameLocation": "1155:9:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 34, + "nodeType": "ParameterList", + "parameters": [], + "src": "1164:2:0" + }, + "src": "1146:117:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 59, + "nodeType": "Block", + "src": "1659:38:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 55, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1687:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1679:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 53, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1679:7:0", + "typeDescriptions": {} + } + }, + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1679:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 52, + "name": "_setOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 102, + "src": "1669:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 57, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1669:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 58, + "nodeType": "ExpressionStatement", + "src": "1669:21:0" + } + ] + }, + "documentation": { + "id": 47, + "nodeType": "StructuredDocumentation", + "src": "1269:331:0", + "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner." + }, + "functionSelector": "715018a6", + "id": 60, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 50, + "kind": "modifierInvocation", + "modifierName": { + "id": 49, + "name": "onlyOwner", + "nodeType": "IdentifierPath", + "referencedDeclaration": 46, + "src": "1649:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "1649:9:0" + } + ], + "name": "renounceOwnership", + "nameLocation": "1614:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 48, + "nodeType": "ParameterList", + "parameters": [], + "src": "1631:2:0" + }, + "returnParameters": { + "id": 51, + "nodeType": "ParameterList", + "parameters": [], + "src": "1659:0:0" + }, + "scope": 103, + "src": "1605:92:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 82, + "nodeType": "Block", + "src": "1916:119:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 69, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 63, + "src": "1934:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1954:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1946:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 70, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1946:7:0", + "typeDescriptions": {} + } + }, + "id": 73, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1946:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1934:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1958:40:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", + "typeString": "literal_string \"Ownable: new owner is the zero address\"" + }, + "value": "Ownable: new owner is the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", + "typeString": "literal_string \"Ownable: new owner is the zero address\"" + } + ], + "id": 68, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1926:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1926:73:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 77, + "nodeType": "ExpressionStatement", + "src": "1926:73:0" + }, + { + "expression": { + "arguments": [ + { + "id": 79, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 63, + "src": "2019:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 78, + "name": "_setOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 102, + "src": "2009:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2009:19:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 81, + "nodeType": "ExpressionStatement", + "src": "2009:19:0" + } + ] + }, + "documentation": { + "id": 61, + "nodeType": "StructuredDocumentation", + "src": "1703:138:0", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "id": 83, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 66, + "kind": "modifierInvocation", + "modifierName": { + "id": 65, + "name": "onlyOwner", + "nodeType": "IdentifierPath", + "referencedDeclaration": 46, + "src": "1906:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "1906:9:0" + } + ], + "name": "transferOwnership", + "nameLocation": "1855:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 64, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 63, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "1881:8:0", + "nodeType": "VariableDeclaration", + "scope": 83, + "src": "1873:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 62, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1873:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1872:18:0" + }, + "returnParameters": { + "id": 67, + "nodeType": "ParameterList", + "parameters": [], + "src": "1916:0:0" + }, + "scope": 103, + "src": "1846:189:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 101, + "nodeType": "Block", + "src": "2086:124:0", + "statements": [ + { + "assignments": [ + 89 + ], + "declarations": [ + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "oldOwner", + "nameLocation": "2104:8:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "2096:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 88, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2096:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 91, + "initialValue": { + "id": 90, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "2115:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2096:25:0" + }, + { + "expression": { + "id": 94, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 92, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "2131:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 93, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 85, + "src": "2140:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2131:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 95, + "nodeType": "ExpressionStatement", + "src": "2131:17:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 97, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2184:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 98, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 85, + "src": "2194:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 96, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13, + "src": "2163:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 99, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2163:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 100, + "nodeType": "EmitStatement", + "src": "2158:45:0" + } + ] + }, + "id": 102, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setOwner", + "nameLocation": "2050:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 86, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 85, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2068:8:0", + "nodeType": "VariableDeclaration", + "scope": 102, + "src": "2060:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 84, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2060:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2059:18:0" + }, + "returnParameters": { + "id": 87, + "nodeType": "ParameterList", + "parameters": [], + "src": "2086:0:0" + }, + "scope": 103, + "src": "2041:169:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 104, + "src": "585:1627:0", + "usedErrors": [] + } + ], + "src": "33:2180:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "exportedSymbols": { + "Context": [ + 774 + ], + "ERC20": [ + 649 + ], + "IERC20": [ + 727 + ], + "IERC20Metadata": [ + 752 + ] + }, + "id": 650, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 105, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:1" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 106, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 650, + "sourceUnit": 728, + "src": "58:22:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "file": "./extensions/IERC20Metadata.sol", + "id": 107, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 650, + "sourceUnit": 753, + "src": "81:41:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 108, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 650, + "sourceUnit": 775, + "src": "123:33:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 110, + "name": "Context", + "nodeType": "IdentifierPath", + "referencedDeclaration": 774, + "src": "1349:7:1" + }, + "id": 111, + "nodeType": "InheritanceSpecifier", + "src": "1349:7:1" + }, + { + "baseName": { + "id": 112, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 727, + "src": "1358:6:1" + }, + "id": 113, + "nodeType": "InheritanceSpecifier", + "src": "1358:6:1" + }, + { + "baseName": { + "id": 114, + "name": "IERC20Metadata", + "nodeType": "IdentifierPath", + "referencedDeclaration": 752, + "src": "1366:14:1" + }, + "id": 115, + "nodeType": "InheritanceSpecifier", + "src": "1366:14:1" + } + ], + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 109, + "nodeType": "StructuredDocumentation", + "src": "158:1172:1", + "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}." + }, + "fullyImplemented": true, + "id": 649, + "linearizedBaseContracts": [ + 649, + 752, + 727, + 774 + ], + "name": "ERC20", + "nameLocation": "1340:5:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 119, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "1423:9:1", + "nodeType": "VariableDeclaration", + "scope": 649, + "src": "1387:45:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 118, + "keyType": { + "id": 116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1395:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1387:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 117, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1406:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 125, + "mutability": "mutable", + "name": "_allowances", + "nameLocation": "1495:11:1", + "nodeType": "VariableDeclaration", + "scope": 649, + "src": "1439:67:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 124, + "keyType": { + "id": 120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1447:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1439:47:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 123, + "keyType": { + "id": 121, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1466:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1458:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 122, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1477:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 127, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "1529:12:1", + "nodeType": "VariableDeclaration", + "scope": 649, + "src": "1513:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1513:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 129, + "mutability": "mutable", + "name": "_name", + "nameLocation": "1563:5:1", + "nodeType": "VariableDeclaration", + "scope": 649, + "src": "1548:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 128, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1548:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 131, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "1589:7:1", + "nodeType": "VariableDeclaration", + "scope": 649, + "src": "1574:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 130, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1574:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 147, + "nodeType": "Block", + "src": "1962:57:1", + "statements": [ + { + "expression": { + "id": 141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 139, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 129, + "src": "1972:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 140, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 134, + "src": "1980:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1972:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 142, + "nodeType": "ExpressionStatement", + "src": "1972:13:1" + }, + { + "expression": { + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 143, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "1995:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 144, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 136, + "src": "2005:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1995:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 146, + "nodeType": "ExpressionStatement", + "src": "1995:17:1" + } + ] + }, + "documentation": { + "id": 132, + "nodeType": "StructuredDocumentation", + "src": "1603:298:1", + "text": " @dev Sets the values for {name} and {symbol}.\n The default value of {decimals} is 18. To select a different value for\n {decimals} you should overload it.\n All two of these values are immutable: they can only be set once during\n construction." + }, + "id": 148, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 134, + "mutability": "mutable", + "name": "name_", + "nameLocation": "1932:5:1", + "nodeType": "VariableDeclaration", + "scope": 148, + "src": "1918:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 133, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1918:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 136, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "1953:7:1", + "nodeType": "VariableDeclaration", + "scope": 148, + "src": "1939:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 135, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1939:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1917:44:1" + }, + "returnParameters": { + "id": 138, + "nodeType": "ParameterList", + "parameters": [], + "src": "1962:0:1" + }, + "scope": 649, + "src": "1906:113:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 739 + ], + "body": { + "id": 157, + "nodeType": "Block", + "src": "2153:29:1", + "statements": [ + { + "expression": { + "id": 155, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 129, + "src": "2170:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 154, + "id": 156, + "nodeType": "Return", + "src": "2163:12:1" + } + ] + }, + "documentation": { + "id": 149, + "nodeType": "StructuredDocumentation", + "src": "2025:54:1", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 158, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "2093:4:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 151, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2120:8:1" + }, + "parameters": { + "id": 150, + "nodeType": "ParameterList", + "parameters": [], + "src": "2097:2:1" + }, + "returnParameters": { + "id": 154, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 153, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 158, + "src": "2138:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 152, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2138:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2137:15:1" + }, + "scope": 649, + "src": "2084:98:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 745 + ], + "body": { + "id": 167, + "nodeType": "Block", + "src": "2366:31:1", + "statements": [ + { + "expression": { + "id": 165, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "2383:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 164, + "id": 166, + "nodeType": "Return", + "src": "2376:14:1" + } + ] + }, + "documentation": { + "id": 159, + "nodeType": "StructuredDocumentation", + "src": "2188:102:1", + "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." + }, + "functionSelector": "95d89b41", + "id": 168, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "2304:6:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 161, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2333:8:1" + }, + "parameters": { + "id": 160, + "nodeType": "ParameterList", + "parameters": [], + "src": "2310:2:1" + }, + "returnParameters": { + "id": 164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 163, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 168, + "src": "2351:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 162, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2351:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2350:15:1" + }, + "scope": 649, + "src": "2295:102:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 751 + ], + "body": { + "id": 177, + "nodeType": "Block", + "src": "3086:26:1", + "statements": [ + { + "expression": { + "hexValue": "3138", + "id": 175, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3103:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "functionReturnParameters": 174, + "id": 176, + "nodeType": "Return", + "src": "3096:9:1" + } + ] + }, + "documentation": { + "id": 169, + "nodeType": "StructuredDocumentation", + "src": "2403:613:1", + "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless this function is\n overridden;\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}." + }, + "functionSelector": "313ce567", + "id": 178, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "3030:8:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 171, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3061:8:1" + }, + "parameters": { + "id": 170, + "nodeType": "ParameterList", + "parameters": [], + "src": "3038:2:1" + }, + "returnParameters": { + "id": 174, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 173, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 178, + "src": "3079:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 172, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3079:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "3078:7:1" + }, + "scope": 649, + "src": "3021:91:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 658 + ], + "body": { + "id": 187, + "nodeType": "Block", + "src": "3242:36:1", + "statements": [ + { + "expression": { + "id": 185, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 127, + "src": "3259:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 184, + "id": 186, + "nodeType": "Return", + "src": "3252:19:1" + } + ] + }, + "documentation": { + "id": 179, + "nodeType": "StructuredDocumentation", + "src": "3118:49:1", + "text": " @dev See {IERC20-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 188, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "3181:11:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 181, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3215:8:1" + }, + "parameters": { + "id": 180, + "nodeType": "ParameterList", + "parameters": [], + "src": "3192:2:1" + }, + "returnParameters": { + "id": 184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 183, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "3233:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 182, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3233:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3232:9:1" + }, + "scope": 649, + "src": "3172:106:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 666 + ], + "body": { + "id": 201, + "nodeType": "Block", + "src": "3419:42:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 197, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 119, + "src": "3436:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 199, + "indexExpression": { + "id": 198, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 191, + "src": "3446:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3436:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 196, + "id": 200, + "nodeType": "Return", + "src": "3429:25:1" + } + ] + }, + "documentation": { + "id": 189, + "nodeType": "StructuredDocumentation", + "src": "3284:47:1", + "text": " @dev See {IERC20-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 202, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "3345:9:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 193, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3392:8:1" + }, + "parameters": { + "id": 192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 191, + "mutability": "mutable", + "name": "account", + "nameLocation": "3363:7:1", + "nodeType": "VariableDeclaration", + "scope": 202, + "src": "3355:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3355:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3354:17:1" + }, + "returnParameters": { + "id": 196, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 195, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 202, + "src": "3410:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 194, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3410:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3409:9:1" + }, + "scope": 649, + "src": "3336:125:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 676 + ], + "body": { + "id": 222, + "nodeType": "Block", + "src": "3756:80:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 214, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 764, + "src": "3776:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3776:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 216, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3790:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 217, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 207, + "src": "3801:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 213, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 453, + "src": "3766:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3766:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 219, + "nodeType": "ExpressionStatement", + "src": "3766:42:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3825:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 212, + "id": 221, + "nodeType": "Return", + "src": "3818:11:1" + } + ] + }, + "documentation": { + "id": 203, + "nodeType": "StructuredDocumentation", + "src": "3467:192:1", + "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `recipient` cannot be the zero address.\n - the caller must have a balance of at least `amount`." + }, + "functionSelector": "a9059cbb", + "id": 223, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "3673:8:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 209, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3732:8:1" + }, + "parameters": { + "id": 208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 205, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "3690:9:1", + "nodeType": "VariableDeclaration", + "scope": 223, + "src": "3682:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3682:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 207, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3709:6:1", + "nodeType": "VariableDeclaration", + "scope": 223, + "src": "3701:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 206, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3701:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3681:35:1" + }, + "returnParameters": { + "id": 212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 211, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 223, + "src": "3750:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 210, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3750:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3749:6:1" + }, + "scope": 649, + "src": "3664:172:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 686 + ], + "body": { + "id": 240, + "nodeType": "Block", + "src": "3992:51:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 234, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "4009:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 236, + "indexExpression": { + "id": 235, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 226, + "src": "4021:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4009:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 238, + "indexExpression": { + "id": 237, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 228, + "src": "4028:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4009:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 233, + "id": 239, + "nodeType": "Return", + "src": "4002:34:1" + } + ] + }, + "documentation": { + "id": 224, + "nodeType": "StructuredDocumentation", + "src": "3842:47:1", + "text": " @dev See {IERC20-allowance}." + }, + "functionSelector": "dd62ed3e", + "id": 241, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "3903:9:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 230, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3965:8:1" + }, + "parameters": { + "id": 229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 226, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3921:5:1", + "nodeType": "VariableDeclaration", + "scope": 241, + "src": "3913:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 225, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3913:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 228, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3936:7:1", + "nodeType": "VariableDeclaration", + "scope": 241, + "src": "3928:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3928:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3912:32:1" + }, + "returnParameters": { + "id": 233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 232, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 241, + "src": "3983:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3983:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3982:9:1" + }, + "scope": 649, + "src": "3894:149:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 696 + ], + "body": { + "id": 261, + "nodeType": "Block", + "src": "4270:77:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 253, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 764, + "src": "4289:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4289:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 255, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 244, + "src": "4303:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 256, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "4312:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 252, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 626, + "src": "4280:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4280:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 258, + "nodeType": "ExpressionStatement", + "src": "4280:39:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4336:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 251, + "id": 260, + "nodeType": "Return", + "src": "4329:11:1" + } + ] + }, + "documentation": { + "id": 242, + "nodeType": "StructuredDocumentation", + "src": "4049:127:1", + "text": " @dev See {IERC20-approve}.\n Requirements:\n - `spender` cannot be the zero address." + }, + "functionSelector": "095ea7b3", + "id": 262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4190:7:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 248, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4246:8:1" + }, + "parameters": { + "id": 247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 244, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4206:7:1", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "4198:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 243, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4198:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 246, + "mutability": "mutable", + "name": "amount", + "nameLocation": "4223:6:1", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "4215:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4215:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4197:33:1" + }, + "returnParameters": { + "id": 251, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 250, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "4264:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 249, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4264:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4263:6:1" + }, + "scope": 649, + "src": "4181:166:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 708 + ], + "body": { + "id": 309, + "nodeType": "Block", + "src": "4956:336:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 276, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 265, + "src": "4976:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 277, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 267, + "src": "4984:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 278, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "4995:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 275, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 453, + "src": "4966:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4966:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 280, + "nodeType": "ExpressionStatement", + "src": "4966:36:1" + }, + { + "assignments": [ + 282 + ], + "declarations": [ + { + "constant": false, + "id": 282, + "mutability": "mutable", + "name": "currentAllowance", + "nameLocation": "5021:16:1", + "nodeType": "VariableDeclaration", + "scope": 309, + "src": "5013:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 281, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5013:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 289, + "initialValue": { + "baseExpression": { + "baseExpression": { + "id": 283, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "5040:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 285, + "indexExpression": { + "id": 284, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 265, + "src": "5052:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5040:19:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 288, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 286, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 764, + "src": "5060:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5060:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5040:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5013:60:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 291, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "5091:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 292, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "5111:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5091:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365", + "id": 294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5119:42:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330", + "typeString": "literal_string \"ERC20: transfer amount exceeds allowance\"" + }, + "value": "ERC20: transfer amount exceeds allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330", + "typeString": "literal_string \"ERC20: transfer amount exceeds allowance\"" + } + ], + "id": 290, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5083:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5083:79:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 296, + "nodeType": "ExpressionStatement", + "src": "5083:79:1" + }, + { + "id": 306, + "nodeType": "UncheckedBlock", + "src": "5172:92:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 298, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 265, + "src": "5205:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 299, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 764, + "src": "5213:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5213:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 301, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "5227:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 302, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "5246:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5227:25:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 297, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 626, + "src": "5196:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5196:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 305, + "nodeType": "ExpressionStatement", + "src": "5196:57:1" + } + ] + }, + { + "expression": { + "hexValue": "74727565", + "id": 307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5281:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 274, + "id": 308, + "nodeType": "Return", + "src": "5274:11:1" + } + ] + }, + "documentation": { + "id": 263, + "nodeType": "StructuredDocumentation", + "src": "4353:456:1", + "text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n Requirements:\n - `sender` and `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`.\n - the caller must have allowance for ``sender``'s tokens of at least\n `amount`." + }, + "functionSelector": "23b872dd", + "id": 310, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "4823:12:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 271, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4932:8:1" + }, + "parameters": { + "id": 270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 265, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4853:6:1", + "nodeType": "VariableDeclaration", + "scope": 310, + "src": "4845:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 264, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4845:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 267, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "4877:9:1", + "nodeType": "VariableDeclaration", + "scope": 310, + "src": "4869:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 266, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 269, + "mutability": "mutable", + "name": "amount", + "nameLocation": "4904:6:1", + "nodeType": "VariableDeclaration", + "scope": 310, + "src": "4896:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4896:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4835:81:1" + }, + "returnParameters": { + "id": 274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 273, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 310, + "src": "4950:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 272, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4950:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4949:6:1" + }, + "scope": 649, + "src": "4814:478:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 336, + "nodeType": "Block", + "src": "5781:118:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 321, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 764, + "src": "5800:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5800:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 323, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 313, + "src": "5814:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "baseExpression": { + "id": 324, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "5823:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 327, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 325, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 764, + "src": "5835:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5835:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5823:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 329, + "indexExpression": { + "id": 328, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 313, + "src": "5849:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5823:34:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 330, + "name": "addedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "5860:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5823:47:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 320, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 626, + "src": "5791:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5791:80:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 333, + "nodeType": "ExpressionStatement", + "src": "5791:80:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5888:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 319, + "id": 335, + "nodeType": "Return", + "src": "5881:11:1" + } + ] + }, + "documentation": { + "id": 311, + "nodeType": "StructuredDocumentation", + "src": "5298:384:1", + "text": " @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address." + }, + "functionSelector": "39509351", + "id": 337, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "increaseAllowance", + "nameLocation": "5696:17:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 316, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 313, + "mutability": "mutable", + "name": "spender", + "nameLocation": "5722:7:1", + "nodeType": "VariableDeclaration", + "scope": 337, + "src": "5714:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 312, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5714:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 315, + "mutability": "mutable", + "name": "addedValue", + "nameLocation": "5739:10:1", + "nodeType": "VariableDeclaration", + "scope": 337, + "src": "5731:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 314, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5731:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5713:37:1" + }, + "returnParameters": { + "id": 319, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 318, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 337, + "src": "5775:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 317, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5775:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5774:6:1" + }, + "scope": 649, + "src": "5687:212:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 375, + "nodeType": "Block", + "src": "6485:306:1", + "statements": [ + { + "assignments": [ + 348 + ], + "declarations": [ + { + "constant": false, + "id": 348, + "mutability": "mutable", + "name": "currentAllowance", + "nameLocation": "6503:16:1", + "nodeType": "VariableDeclaration", + "scope": 375, + "src": "6495:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6495:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 355, + "initialValue": { + "baseExpression": { + "baseExpression": { + "id": 349, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "6522:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 352, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 350, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 764, + "src": "6534:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6534:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6522:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 354, + "indexExpression": { + "id": 353, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 340, + "src": "6548:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6522:34:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6495:61:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 357, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 348, + "src": "6574:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 358, + "name": "subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 342, + "src": "6594:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6574:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", + "id": 360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6611:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "typeString": "literal_string \"ERC20: decreased allowance below zero\"" + }, + "value": "ERC20: decreased allowance below zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "typeString": "literal_string \"ERC20: decreased allowance below zero\"" + } + ], + "id": 356, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6566:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6566:85:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 362, + "nodeType": "ExpressionStatement", + "src": "6566:85:1" + }, + { + "id": 372, + "nodeType": "UncheckedBlock", + "src": "6661:102:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 364, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 764, + "src": "6694:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6694:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 366, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 340, + "src": "6708:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 367, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 348, + "src": "6717:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 368, + "name": "subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 342, + "src": "6736:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6717:34:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 363, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 626, + "src": "6685:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6685:67:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 371, + "nodeType": "ExpressionStatement", + "src": "6685:67:1" + } + ] + }, + { + "expression": { + "hexValue": "74727565", + "id": 373, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6780:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 346, + "id": 374, + "nodeType": "Return", + "src": "6773:11:1" + } + ] + }, + "documentation": { + "id": 338, + "nodeType": "StructuredDocumentation", + "src": "5905:476:1", + "text": " @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`." + }, + "functionSelector": "a457c2d7", + "id": 376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decreaseAllowance", + "nameLocation": "6395:17:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 340, + "mutability": "mutable", + "name": "spender", + "nameLocation": "6421:7:1", + "nodeType": "VariableDeclaration", + "scope": 376, + "src": "6413:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 339, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6413:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 342, + "mutability": "mutable", + "name": "subtractedValue", + "nameLocation": "6438:15:1", + "nodeType": "VariableDeclaration", + "scope": 376, + "src": "6430:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 341, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6430:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6412:42:1" + }, + "returnParameters": { + "id": 346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 345, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 376, + "src": "6479:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 344, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6479:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6478:6:1" + }, + "scope": 649, + "src": "6386:405:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 452, + "nodeType": "Block", + "src": "7382:596:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 387, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 379, + "src": "7400:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 390, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7418:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7410:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7410:7:1", + "typeDescriptions": {} + } + }, + "id": 391, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7410:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7400:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373", + "id": 393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7422:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "typeString": "literal_string \"ERC20: transfer from the zero address\"" + }, + "value": "ERC20: transfer from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "typeString": "literal_string \"ERC20: transfer from the zero address\"" + } + ], + "id": 386, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7392:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7392:70:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 395, + "nodeType": "ExpressionStatement", + "src": "7392:70:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 397, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "7480:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7501:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7493:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 398, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7493:7:1", + "typeDescriptions": {} + } + }, + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7493:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7480:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 403, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7505:37:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "typeString": "literal_string \"ERC20: transfer to the zero address\"" + }, + "value": "ERC20: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "typeString": "literal_string \"ERC20: transfer to the zero address\"" + } + ], + "id": 396, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7472:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7472:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 405, + "nodeType": "ExpressionStatement", + "src": "7472:71:1" + }, + { + "expression": { + "arguments": [ + { + "id": 407, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 379, + "src": "7575:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 408, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "7583:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 409, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 383, + "src": "7594:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 406, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "7554:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7554:47:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 411, + "nodeType": "ExpressionStatement", + "src": "7554:47:1" + }, + { + "assignments": [ + 413 + ], + "declarations": [ + { + "constant": false, + "id": 413, + "mutability": "mutable", + "name": "senderBalance", + "nameLocation": "7620:13:1", + "nodeType": "VariableDeclaration", + "scope": 452, + "src": "7612:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 412, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7612:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 417, + "initialValue": { + "baseExpression": { + "id": 414, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 119, + "src": "7636:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 416, + "indexExpression": { + "id": 415, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 379, + "src": "7646:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7636:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7612:41:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 419, + "name": "senderBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 413, + "src": "7671:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 420, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 383, + "src": "7688:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7671:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", + "id": 422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7696:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "typeString": "literal_string \"ERC20: transfer amount exceeds balance\"" + }, + "value": "ERC20: transfer amount exceeds balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "typeString": "literal_string \"ERC20: transfer amount exceeds balance\"" + } + ], + "id": 418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7663:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7663:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 424, + "nodeType": "ExpressionStatement", + "src": "7663:74:1" + }, + { + "id": 433, + "nodeType": "UncheckedBlock", + "src": "7747:77:1", + "statements": [ + { + "expression": { + "id": 431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 425, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 119, + "src": "7771:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 427, + "indexExpression": { + "id": 426, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 379, + "src": "7781:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7771:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 428, + "name": "senderBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 413, + "src": "7791:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 429, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 383, + "src": "7807:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7791:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7771:42:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 432, + "nodeType": "ExpressionStatement", + "src": "7771:42:1" + } + ] + }, + { + "expression": { + "id": 438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 434, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 119, + "src": "7833:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 436, + "indexExpression": { + "id": 435, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "7843:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7833:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 437, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 383, + "src": "7857:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7833:30:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 439, + "nodeType": "ExpressionStatement", + "src": "7833:30:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 441, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 379, + "src": "7888:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 442, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "7896:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 443, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 383, + "src": "7907:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 440, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 717, + "src": "7879:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7879:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 445, + "nodeType": "EmitStatement", + "src": "7874:40:1" + }, + { + "expression": { + "arguments": [ + { + "id": 447, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 379, + "src": "7945:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 448, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "7953:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 449, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 383, + "src": "7964:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 446, + "name": "_afterTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 648, + "src": "7925:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7925:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 451, + "nodeType": "ExpressionStatement", + "src": "7925:46:1" + } + ] + }, + "documentation": { + "id": 377, + "nodeType": "StructuredDocumentation", + "src": "6797:463:1", + "text": " @dev Moves `amount` of tokens from `sender` to `recipient`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `sender` cannot be the zero address.\n - `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`." + }, + "id": 453, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "7274:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 384, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 379, + "mutability": "mutable", + "name": "sender", + "nameLocation": "7301:6:1", + "nodeType": "VariableDeclaration", + "scope": 453, + "src": "7293:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 378, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7293:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 381, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "7325:9:1", + "nodeType": "VariableDeclaration", + "scope": 453, + "src": "7317:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7317:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 383, + "mutability": "mutable", + "name": "amount", + "nameLocation": "7352:6:1", + "nodeType": "VariableDeclaration", + "scope": 453, + "src": "7344:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 382, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7344:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7283:81:1" + }, + "returnParameters": { + "id": 385, + "nodeType": "ParameterList", + "parameters": [], + "src": "7382:0:1" + }, + "scope": 649, + "src": "7265:713:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 508, + "nodeType": "Block", + "src": "8319:324:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 462, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 456, + "src": "8337:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8356:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8348:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 463, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8348:7:1", + "typeDescriptions": {} + } + }, + "id": 466, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8348:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8337:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "id": 468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8360:33:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + }, + "value": "ERC20: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + } + ], + "id": 461, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8329:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8329:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 470, + "nodeType": "ExpressionStatement", + "src": "8329:65:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8434:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8426:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8426:7:1", + "typeDescriptions": {} + } + }, + "id": 475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8426:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 476, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 456, + "src": "8438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 477, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "8447:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 471, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "8405:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8405:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 479, + "nodeType": "ExpressionStatement", + "src": "8405:49:1" + }, + { + "expression": { + "id": 482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 480, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 127, + "src": "8465:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 481, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "8481:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8465:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 483, + "nodeType": "ExpressionStatement", + "src": "8465:22:1" + }, + { + "expression": { + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 484, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 119, + "src": "8497:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 486, + "indexExpression": { + "id": 485, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 456, + "src": "8507:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8497:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 487, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "8519:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8497:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 489, + "nodeType": "ExpressionStatement", + "src": "8497:28:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8557:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8549:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 491, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8549:7:1", + "typeDescriptions": {} + } + }, + "id": 494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8549:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 495, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 456, + "src": "8561:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 496, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "8570:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 490, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 717, + "src": "8540:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8540:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 498, + "nodeType": "EmitStatement", + "src": "8535:42:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8616:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8608:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 500, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8608:7:1", + "typeDescriptions": {} + } + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8608:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 504, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 456, + "src": "8620:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 505, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "8629:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 499, + "name": "_afterTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 648, + "src": "8588:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8588:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 507, + "nodeType": "ExpressionStatement", + "src": "8588:48:1" + } + ] + }, + "documentation": { + "id": 454, + "nodeType": "StructuredDocumentation", + "src": "7984:265:1", + "text": "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address." + }, + "id": 509, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "8263:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 459, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 456, + "mutability": "mutable", + "name": "account", + "nameLocation": "8277:7:1", + "nodeType": "VariableDeclaration", + "scope": 509, + "src": "8269:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 455, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8269:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 458, + "mutability": "mutable", + "name": "amount", + "nameLocation": "8294:6:1", + "nodeType": "VariableDeclaration", + "scope": 509, + "src": "8286:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 457, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8286:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8268:33:1" + }, + "returnParameters": { + "id": 460, + "nodeType": "ParameterList", + "parameters": [], + "src": "8319:0:1" + }, + "scope": 649, + "src": "8254:389:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 580, + "nodeType": "Block", + "src": "9028:511:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 518, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 512, + "src": "9046:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9065:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9057:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 519, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9057:7:1", + "typeDescriptions": {} + } + }, + "id": 522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9057:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9046:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373", + "id": 524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9069:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f", + "typeString": "literal_string \"ERC20: burn from the zero address\"" + }, + "value": "ERC20: burn from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f", + "typeString": "literal_string \"ERC20: burn from the zero address\"" + } + ], + "id": 517, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9038:67:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 526, + "nodeType": "ExpressionStatement", + "src": "9038:67:1" + }, + { + "expression": { + "arguments": [ + { + "id": 528, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 512, + "src": "9137:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9154:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9146:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 529, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9146:7:1", + "typeDescriptions": {} + } + }, + "id": 532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9146:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 533, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 514, + "src": "9158:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 527, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "9116:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9116:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 535, + "nodeType": "ExpressionStatement", + "src": "9116:49:1" + }, + { + "assignments": [ + 537 + ], + "declarations": [ + { + "constant": false, + "id": 537, + "mutability": "mutable", + "name": "accountBalance", + "nameLocation": "9184:14:1", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "9176:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9176:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 541, + "initialValue": { + "baseExpression": { + "id": 538, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 119, + "src": "9201:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 540, + "indexExpression": { + "id": 539, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 512, + "src": "9211:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9201:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9176:43:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 543, + "name": "accountBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 537, + "src": "9237:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 544, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 514, + "src": "9255:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9237:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365", + "id": 546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9263:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd", + "typeString": "literal_string \"ERC20: burn amount exceeds balance\"" + }, + "value": "ERC20: burn amount exceeds balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd", + "typeString": "literal_string \"ERC20: burn amount exceeds balance\"" + } + ], + "id": 542, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9229:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9229:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 548, + "nodeType": "ExpressionStatement", + "src": "9229:71:1" + }, + { + "id": 557, + "nodeType": "UncheckedBlock", + "src": "9310:79:1", + "statements": [ + { + "expression": { + "id": 555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 549, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 119, + "src": "9334:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 551, + "indexExpression": { + "id": 550, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 512, + "src": "9344:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9334:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 552, + "name": "accountBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 537, + "src": "9355:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 553, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 514, + "src": "9372:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9355:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9334:44:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 556, + "nodeType": "ExpressionStatement", + "src": "9334:44:1" + } + ] + }, + { + "expression": { + "id": 560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 558, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 127, + "src": "9398:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 559, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 514, + "src": "9414:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9398:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 561, + "nodeType": "ExpressionStatement", + "src": "9398:22:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 563, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 512, + "src": "9445:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9462:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9454:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 564, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9454:7:1", + "typeDescriptions": {} + } + }, + "id": 567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9454:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 568, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 514, + "src": "9466:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 562, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 717, + "src": "9436:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9436:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 570, + "nodeType": "EmitStatement", + "src": "9431:42:1" + }, + { + "expression": { + "arguments": [ + { + "id": 572, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 512, + "src": "9504:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9521:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9513:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 573, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9513:7:1", + "typeDescriptions": {} + } + }, + "id": 576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9513:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 577, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 514, + "src": "9525:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 571, + "name": "_afterTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 648, + "src": "9484:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9484:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 579, + "nodeType": "ExpressionStatement", + "src": "9484:48:1" + } + ] + }, + "documentation": { + "id": 510, + "nodeType": "StructuredDocumentation", + "src": "8649:309:1", + "text": " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens." + }, + "id": 581, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "8972:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 515, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "account", + "nameLocation": "8986:7:1", + "nodeType": "VariableDeclaration", + "scope": 581, + "src": "8978:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8978:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 514, + "mutability": "mutable", + "name": "amount", + "nameLocation": "9003:6:1", + "nodeType": "VariableDeclaration", + "scope": 581, + "src": "8995:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 513, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8995:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8977:33:1" + }, + "returnParameters": { + "id": 516, + "nodeType": "ParameterList", + "parameters": [], + "src": "9028:0:1" + }, + "scope": 649, + "src": "8963:576:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 625, + "nodeType": "Block", + "src": "10075:257:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 592, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "10093:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10110:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10102:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 593, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10102:7:1", + "typeDescriptions": {} + } + }, + "id": 596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10102:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10093:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373", + "id": 598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10114:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "typeString": "literal_string \"ERC20: approve from the zero address\"" + }, + "value": "ERC20: approve from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "typeString": "literal_string \"ERC20: approve from the zero address\"" + } + ], + "id": 591, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10085:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10085:68:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 600, + "nodeType": "ExpressionStatement", + "src": "10085:68:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 602, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "10171:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10190:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10182:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 603, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10182:7:1", + "typeDescriptions": {} + } + }, + "id": 606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10182:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10171:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373", + "id": 608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10194:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "typeString": "literal_string \"ERC20: approve to the zero address\"" + }, + "value": "ERC20: approve to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "typeString": "literal_string \"ERC20: approve to the zero address\"" + } + ], + "id": 601, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10163:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10163:68:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 610, + "nodeType": "ExpressionStatement", + "src": "10163:68:1" + }, + { + "expression": { + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 611, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "10242:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 614, + "indexExpression": { + "id": 612, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "10254:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10242:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 615, + "indexExpression": { + "id": 613, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "10261:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10242:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 616, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 588, + "src": "10272:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10242:36:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 618, + "nodeType": "ExpressionStatement", + "src": "10242:36:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 620, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "10302:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 621, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "10309:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 622, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 588, + "src": "10318:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 619, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "10293:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10293:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 624, + "nodeType": "EmitStatement", + "src": "10288:37:1" + } + ] + }, + "documentation": { + "id": 582, + "nodeType": "StructuredDocumentation", + "src": "9545:412:1", + "text": " @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address." + }, + "id": 626, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "9971:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 584, + "mutability": "mutable", + "name": "owner", + "nameLocation": "9997:5:1", + "nodeType": "VariableDeclaration", + "scope": 626, + "src": "9989:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9989:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "spender", + "nameLocation": "10020:7:1", + "nodeType": "VariableDeclaration", + "scope": 626, + "src": "10012:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10012:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 588, + "mutability": "mutable", + "name": "amount", + "nameLocation": "10045:6:1", + "nodeType": "VariableDeclaration", + "scope": 626, + "src": "10037:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 587, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10037:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9979:78:1" + }, + "returnParameters": { + "id": 590, + "nodeType": "ParameterList", + "parameters": [], + "src": "10075:0:1" + }, + "scope": 649, + "src": "9962:370:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 636, + "nodeType": "Block", + "src": "11035:2:1", + "statements": [] + }, + "documentation": { + "id": 627, + "nodeType": "StructuredDocumentation", + "src": "10338:573:1", + "text": " @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nameLocation": "10925:20:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "from", + "nameLocation": "10963:4:1", + "nodeType": "VariableDeclaration", + "scope": 637, + "src": "10955:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 628, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10955:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 631, + "mutability": "mutable", + "name": "to", + "nameLocation": "10985:2:1", + "nodeType": "VariableDeclaration", + "scope": 637, + "src": "10977:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 630, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10977:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 633, + "mutability": "mutable", + "name": "amount", + "nameLocation": "11005:6:1", + "nodeType": "VariableDeclaration", + "scope": 637, + "src": "10997:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 632, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10997:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10945:72:1" + }, + "returnParameters": { + "id": 635, + "nodeType": "ParameterList", + "parameters": [], + "src": "11035:0:1" + }, + "scope": 649, + "src": "10916:121:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 647, + "nodeType": "Block", + "src": "11743:2:1", + "statements": [] + }, + "documentation": { + "id": 638, + "nodeType": "StructuredDocumentation", + "src": "11043:577:1", + "text": " @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 648, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_afterTokenTransfer", + "nameLocation": "11634:19:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "from", + "nameLocation": "11671:4:1", + "nodeType": "VariableDeclaration", + "scope": 648, + "src": "11663:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 639, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11663:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 642, + "mutability": "mutable", + "name": "to", + "nameLocation": "11693:2:1", + "nodeType": "VariableDeclaration", + "scope": 648, + "src": "11685:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 641, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11685:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 644, + "mutability": "mutable", + "name": "amount", + "nameLocation": "11713:6:1", + "nodeType": "VariableDeclaration", + "scope": 648, + "src": "11705:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11705:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11653:72:1" + }, + "returnParameters": { + "id": 646, + "nodeType": "ParameterList", + "parameters": [], + "src": "11743:0:1" + }, + "scope": 649, + "src": "11625:120:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 650, + "src": "1331:10416:1", + "usedErrors": [] + } + ], + "src": "33:11715:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 727 + ] + }, + "id": 728, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 651, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:2" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 652, + "nodeType": "StructuredDocumentation", + "src": "58:70:2", + "text": " @dev Interface of the ERC20 standard as defined in the EIP." + }, + "fullyImplemented": false, + "id": 727, + "linearizedBaseContracts": [ + 727 + ], + "name": "IERC20", + "nameLocation": "139:6:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 653, + "nodeType": "StructuredDocumentation", + "src": "152:66:2", + "text": " @dev Returns the amount of tokens in existence." + }, + "functionSelector": "18160ddd", + "id": 658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "232:11:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 654, + "nodeType": "ParameterList", + "parameters": [], + "src": "243:2:2" + }, + "returnParameters": { + "id": 657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 656, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 658, + "src": "269:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "269:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "268:9:2" + }, + "scope": 727, + "src": "223:55:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 659, + "nodeType": "StructuredDocumentation", + "src": "284:72:2", + "text": " @dev Returns the amount of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "id": 666, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "370:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 662, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 661, + "mutability": "mutable", + "name": "account", + "nameLocation": "388:7:2", + "nodeType": "VariableDeclaration", + "scope": 666, + "src": "380:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 660, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "380:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "379:17:2" + }, + "returnParameters": { + "id": 665, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 664, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 666, + "src": "420:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "420:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "419:9:2" + }, + "scope": 727, + "src": "361:68:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 667, + "nodeType": "StructuredDocumentation", + "src": "435:209:2", + "text": " @dev Moves `amount` tokens from the caller's account to `recipient`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "a9059cbb", + "id": 676, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "658:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 672, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 669, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "675:9:2", + "nodeType": "VariableDeclaration", + "scope": 676, + "src": "667:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "667:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 671, + "mutability": "mutable", + "name": "amount", + "nameLocation": "694:6:2", + "nodeType": "VariableDeclaration", + "scope": 676, + "src": "686:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 670, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "686:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "666:35:2" + }, + "returnParameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 676, + "src": "720:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 673, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "720:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "719:6:2" + }, + "scope": 727, + "src": "649:77:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 677, + "nodeType": "StructuredDocumentation", + "src": "732:264:2", + "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." + }, + "functionSelector": "dd62ed3e", + "id": 686, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "1010:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 679, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1028:5:2", + "nodeType": "VariableDeclaration", + "scope": 686, + "src": "1020:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 678, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1020:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 681, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1043:7:2", + "nodeType": "VariableDeclaration", + "scope": 686, + "src": "1035:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1035:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1019:32:2" + }, + "returnParameters": { + "id": 685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 684, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 686, + "src": "1075:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1075:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1074:9:2" + }, + "scope": 727, + "src": "1001:83:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 687, + "nodeType": "StructuredDocumentation", + "src": "1090:642:2", + "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 696, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "1746:7:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 689, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1762:7:2", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1754:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 688, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1754:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 691, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1779:6:2", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1771:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1771:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1753:33:2" + }, + "returnParameters": { + "id": 695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 694, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1805:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 693, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1805:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1804:6:2" + }, + "scope": 727, + "src": "1737:74:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 697, + "nodeType": "StructuredDocumentation", + "src": "1817:296:2", + "text": " @dev Moves `amount` tokens from `sender` to `recipient` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 708, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2127:12:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 699, + "mutability": "mutable", + "name": "sender", + "nameLocation": "2157:6:2", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "2149:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 698, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2149:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 701, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "2181:9:2", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "2173:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2173:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 703, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2208:6:2", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "2200:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2200:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2139:81:2" + }, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "2239:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 705, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2239:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2238:6:2" + }, + "scope": 727, + "src": "2118:127:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": { + "id": 709, + "nodeType": "StructuredDocumentation", + "src": "2251:158:2", + "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." + }, + "id": 717, + "name": "Transfer", + "nameLocation": "2420:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 711, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "2445:4:2", + "nodeType": "VariableDeclaration", + "scope": 717, + "src": "2429:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 710, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2429:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 713, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "2467:2:2", + "nodeType": "VariableDeclaration", + "scope": 717, + "src": "2451:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 712, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2451:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 715, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "2479:5:2", + "nodeType": "VariableDeclaration", + "scope": 717, + "src": "2471:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 714, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2471:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2428:57:2" + }, + "src": "2414:72:2" + }, + { + "anonymous": false, + "documentation": { + "id": 718, + "nodeType": "StructuredDocumentation", + "src": "2492:148:2", + "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." + }, + "id": 726, + "name": "Approval", + "nameLocation": "2651:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 725, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 720, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2676:5:2", + "nodeType": "VariableDeclaration", + "scope": 726, + "src": "2660:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 719, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2660:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 722, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2699:7:2", + "nodeType": "VariableDeclaration", + "scope": 726, + "src": "2683:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 721, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2683:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 724, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "2716:5:2", + "nodeType": "VariableDeclaration", + "scope": 726, + "src": "2708:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 723, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2708:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2659:63:2" + }, + "src": "2645:78:2" + } + ], + "scope": 728, + "src": "129:2596:2", + "usedErrors": [] + } + ], + "src": "33:2693:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "exportedSymbols": { + "IERC20": [ + 727 + ], + "IERC20Metadata": [ + 752 + ] + }, + "id": 753, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 729, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:3" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "../IERC20.sol", + "id": 730, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 753, + "sourceUnit": 728, + "src": "58:23:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 732, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 727, + "src": "228:6:3" + }, + "id": 733, + "nodeType": "InheritanceSpecifier", + "src": "228:6:3" + } + ], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 731, + "nodeType": "StructuredDocumentation", + "src": "83:116:3", + "text": " @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._" + }, + "fullyImplemented": false, + "id": 752, + "linearizedBaseContracts": [ + 752, + 727 + ], + "name": "IERC20Metadata", + "nameLocation": "210:14:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "241:54:3", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 739, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "309:4:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 735, + "nodeType": "ParameterList", + "parameters": [], + "src": "313:2:3" + }, + "returnParameters": { + "id": 738, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 737, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "339:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 736, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "339:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "338:15:3" + }, + "scope": 752, + "src": "300:54:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 740, + "nodeType": "StructuredDocumentation", + "src": "360:56:3", + "text": " @dev Returns the symbol of the token." + }, + "functionSelector": "95d89b41", + "id": 745, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "430:6:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 741, + "nodeType": "ParameterList", + "parameters": [], + "src": "436:2:3" + }, + "returnParameters": { + "id": 744, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 743, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 745, + "src": "462:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 742, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "462:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "461:15:3" + }, + "scope": 752, + "src": "421:56:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 746, + "nodeType": "StructuredDocumentation", + "src": "483:65:3", + "text": " @dev Returns the decimals places of the token." + }, + "functionSelector": "313ce567", + "id": 751, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "562:8:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 747, + "nodeType": "ParameterList", + "parameters": [], + "src": "570:2:3" + }, + "returnParameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 751, + "src": "596:5:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 748, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "596:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "595:7:3" + }, + "scope": 752, + "src": "553:50:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 753, + "src": "200:405:3", + "usedErrors": [] + } + ], + "src": "33:573:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 774 + ] + }, + "id": 775, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 754, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:4" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 755, + "nodeType": "StructuredDocumentation", + "src": "58:496:4", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 774, + "linearizedBaseContracts": [ + 774 + ], + "name": "Context", + "nameLocation": "573:7:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 763, + "nodeType": "Block", + "src": "649:34:4", + "statements": [ + { + "expression": { + "expression": { + "id": 760, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "666:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "666:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 759, + "id": 762, + "nodeType": "Return", + "src": "659:17:4" + } + ] + }, + "id": 764, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "596:10:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 756, + "nodeType": "ParameterList", + "parameters": [], + "src": "606:2:4" + }, + "returnParameters": { + "id": 759, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 758, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 764, + "src": "640:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "640:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "639:9:4" + }, + "scope": 774, + "src": "587:96:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 772, + "nodeType": "Block", + "src": "756:32:4", + "statements": [ + { + "expression": { + "expression": { + "id": 769, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "773:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "src": "773:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 768, + "id": 771, + "nodeType": "Return", + "src": "766:15:4" + } + ] + }, + "id": 773, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "698:8:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 765, + "nodeType": "ParameterList", + "parameters": [], + "src": "706:2:4" + }, + "returnParameters": { + "id": 768, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 767, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 773, + "src": "740:14:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 766, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "740:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "739:16:4" + }, + "scope": 774, + "src": "689:99:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 775, + "src": "555:235:4", + "usedErrors": [] + } + ], + "src": "33:758:4" + }, + "id": 4 + }, + "contracts/MyToken.sol": { + "ast": { + "absolutePath": "contracts/MyToken.sol", + "exportedSymbols": { + "Context": [ + 774 + ], + "ERC20": [ + 649 + ], + "IERC20": [ + 727 + ], + "IERC20Metadata": [ + 752 + ], + "MyToken": [ + 827 + ], + "Ownable": [ + 103 + ] + }, + "id": 828, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 776, + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ], + "nodeType": "PragmaDirective", + "src": "32:23:5" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 777, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 828, + "sourceUnit": 650, + "src": "57:55:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "id": 778, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 828, + "sourceUnit": 104, + "src": "113:52:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 779, + "name": "ERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 649, + "src": "215:5:5" + }, + "id": 780, + "nodeType": "InheritanceSpecifier", + "src": "215:5:5" + }, + { + "baseName": { + "id": 781, + "name": "Ownable", + "nodeType": "IdentifierPath", + "referencedDeclaration": 103, + "src": "222:7:5" + }, + "id": 782, + "nodeType": "InheritanceSpecifier", + "src": "222:7:5" + } + ], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 827, + "linearizedBaseContracts": [ + 827, + 103, + 649, + 752, + 727, + 774 + ], + "name": "MyToken", + "nameLocation": "204:7:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 803, + "nodeType": "Block", + "src": "310:54:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 794, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "326:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "326:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31303030303030303030", + "id": 796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "338:10:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1000000000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "351:2:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "39", + "id": 798, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "355:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "src": "351:5:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + } + }, + "src": "338:18:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + ], + "id": 793, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 509, + "src": "320:5:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "320:37:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 802, + "nodeType": "ExpressionStatement", + "src": "320:37:5" + } + ] + }, + "id": 804, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 789, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 784, + "src": "296:4:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 790, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "302:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "id": 791, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 788, + "name": "ERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 649, + "src": "290:5:5" + }, + "nodeType": "ModifierInvocation", + "src": "290:19:5" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 784, + "mutability": "mutable", + "name": "name", + "nameLocation": "262:4:5", + "nodeType": "VariableDeclaration", + "scope": 804, + "src": "248:18:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 783, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "248:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "symbol", + "nameLocation": "282:6:5", + "nodeType": "VariableDeclaration", + "scope": 804, + "src": "268:20:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 785, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "268:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "247:42:5" + }, + "returnParameters": { + "id": 792, + "nodeType": "ParameterList", + "parameters": [], + "src": "310:0:5" + }, + "scope": 827, + "src": "236:128:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 816, + "nodeType": "Block", + "src": "419:34:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 812, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "435:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 813, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 808, + "src": "439:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 811, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 509, + "src": "429:5:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "429:17:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 815, + "nodeType": "ExpressionStatement", + "src": "429:17:5" + } + ] + }, + "functionSelector": "40c10f19", + "id": 817, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "379:4:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 806, + "mutability": "mutable", + "name": "to", + "nameLocation": "392:2:5", + "nodeType": "VariableDeclaration", + "scope": 817, + "src": "384:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 805, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "384:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 808, + "mutability": "mutable", + "name": "amount", + "nameLocation": "404:6:5", + "nodeType": "VariableDeclaration", + "scope": 817, + "src": "396:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "396:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "383:28:5" + }, + "returnParameters": { + "id": 810, + "nodeType": "ParameterList", + "parameters": [], + "src": "419:0:5" + }, + "scope": 827, + "src": "370:83:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 178 + ], + "body": { + "id": 825, + "nodeType": "Block", + "src": "524:25:5", + "statements": [ + { + "expression": { + "hexValue": "39", + "id": 823, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "541:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "functionReturnParameters": 822, + "id": 824, + "nodeType": "Return", + "src": "534:8:5" + } + ] + }, + "functionSelector": "313ce567", + "id": 826, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "468:8:5", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 819, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "499:8:5" + }, + "parameters": { + "id": 818, + "nodeType": "ParameterList", + "parameters": [], + "src": "476:2:5" + }, + "returnParameters": { + "id": 822, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 821, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 826, + "src": "517:5:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 820, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "517:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "516:7:5" + }, + "scope": 827, + "src": "459:90:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "scope": 828, + "src": "195:356:5", + "usedErrors": [] + } + ], + "src": "32:520:5" + }, + "id": 5 + } + } + } +} diff --git a/services/validation/test/files/metadata-multiple-targets.json b/packages/lib-sourcify/test/validation/files/metadata-multiple-targets.json similarity index 100% rename from services/validation/test/files/metadata-multiple-targets.json rename to packages/lib-sourcify/test/validation/files/metadata-multiple-targets.json diff --git a/services/validation/test/files/metadata-with-content-altered.json b/packages/lib-sourcify/test/validation/files/metadata-with-content-altered.json similarity index 100% rename from services/validation/test/files/metadata-with-content-altered.json rename to packages/lib-sourcify/test/validation/files/metadata-with-content-altered.json diff --git a/services/validation/test/files/metadata-with-content.json b/packages/lib-sourcify/test/validation/files/metadata-with-content.json similarity index 100% rename from services/validation/test/files/metadata-with-content.json rename to packages/lib-sourcify/test/validation/files/metadata-with-content.json diff --git a/services/validation/test/files/multiple-altered/Escrow.sol b/packages/lib-sourcify/test/validation/files/multiple-altered/Escrow.sol similarity index 100% rename from services/validation/test/files/multiple-altered/Escrow.sol rename to packages/lib-sourcify/test/validation/files/multiple-altered/Escrow.sol diff --git a/services/validation/test/files/multiple-altered/Main.sol b/packages/lib-sourcify/test/validation/files/multiple-altered/Main.sol similarity index 100% rename from services/validation/test/files/multiple-altered/Main.sol rename to packages/lib-sourcify/test/validation/files/multiple-altered/Main.sol diff --git a/services/validation/test/files/multiple-altered/Owned.sol b/packages/lib-sourcify/test/validation/files/multiple-altered/Owned.sol similarity index 100% rename from services/validation/test/files/multiple-altered/Owned.sol rename to packages/lib-sourcify/test/validation/files/multiple-altered/Owned.sol diff --git a/services/validation/test/files/multiple-altered/Savings.sol b/packages/lib-sourcify/test/validation/files/multiple-altered/Savings.sol similarity index 100% rename from services/validation/test/files/multiple-altered/Savings.sol rename to packages/lib-sourcify/test/validation/files/multiple-altered/Savings.sol diff --git a/services/validation/test/files/multiple-altered/metadata.json b/packages/lib-sourcify/test/validation/files/multiple-altered/metadata.json similarity index 100% rename from services/validation/test/files/multiple-altered/metadata.json rename to packages/lib-sourcify/test/validation/files/multiple-altered/metadata.json diff --git a/services/validation/test/files/multiple-altered/provableAPI_0.6.sol b/packages/lib-sourcify/test/validation/files/multiple-altered/provableAPI_0.6.sol similarity index 100% rename from services/validation/test/files/multiple-altered/provableAPI_0.6.sol rename to packages/lib-sourcify/test/validation/files/multiple-altered/provableAPI_0.6.sol diff --git a/services/validation/test/files/multiple/Escrow.sol b/packages/lib-sourcify/test/validation/files/multiple/Escrow.sol similarity index 100% rename from services/validation/test/files/multiple/Escrow.sol rename to packages/lib-sourcify/test/validation/files/multiple/Escrow.sol diff --git a/services/validation/test/files/multiple/Main.sol b/packages/lib-sourcify/test/validation/files/multiple/Main.sol similarity index 100% rename from services/validation/test/files/multiple/Main.sol rename to packages/lib-sourcify/test/validation/files/multiple/Main.sol diff --git a/services/validation/test/files/multiple/Owned.sol b/packages/lib-sourcify/test/validation/files/multiple/Owned.sol similarity index 100% rename from services/validation/test/files/multiple/Owned.sol rename to packages/lib-sourcify/test/validation/files/multiple/Owned.sol diff --git a/services/validation/test/files/multiple/Savings.sol b/packages/lib-sourcify/test/validation/files/multiple/Savings.sol similarity index 100% rename from services/validation/test/files/multiple/Savings.sol rename to packages/lib-sourcify/test/validation/files/multiple/Savings.sol diff --git a/services/validation/test/files/multiple/metadata.json b/packages/lib-sourcify/test/validation/files/multiple/metadata.json similarity index 100% rename from services/validation/test/files/multiple/metadata.json rename to packages/lib-sourcify/test/validation/files/multiple/metadata.json diff --git a/services/validation/test/files/multiple/provableAPI_0.6.sol b/packages/lib-sourcify/test/validation/files/multiple/provableAPI_0.6.sol similarity index 100% rename from services/validation/test/files/multiple/provableAPI_0.6.sol rename to packages/lib-sourcify/test/validation/files/multiple/provableAPI_0.6.sol diff --git a/services/validation/test/files/single-add-trailing-n/1_Storage.sol b/packages/lib-sourcify/test/validation/files/single-add-trailing-n/1_Storage.sol similarity index 100% rename from services/validation/test/files/single-add-trailing-n/1_Storage.sol rename to packages/lib-sourcify/test/validation/files/single-add-trailing-n/1_Storage.sol diff --git a/services/validation/test/files/single-add-trailing-n/metadata.json b/packages/lib-sourcify/test/validation/files/single-add-trailing-n/metadata.json similarity index 100% rename from services/validation/test/files/single-add-trailing-n/metadata.json rename to packages/lib-sourcify/test/validation/files/single-add-trailing-n/metadata.json diff --git a/services/validation/test/files/single-add-trailing-rn/1_Storage.sol b/packages/lib-sourcify/test/validation/files/single-add-trailing-rn/1_Storage.sol similarity index 100% rename from services/validation/test/files/single-add-trailing-rn/1_Storage.sol rename to packages/lib-sourcify/test/validation/files/single-add-trailing-rn/1_Storage.sol diff --git a/services/validation/test/files/single-add-trailing-rn/metadata.json b/packages/lib-sourcify/test/validation/files/single-add-trailing-rn/metadata.json similarity index 100% rename from services/validation/test/files/single-add-trailing-rn/metadata.json rename to packages/lib-sourcify/test/validation/files/single-add-trailing-rn/metadata.json diff --git a/services/validation/test/files/single-altered-metadata/1_Storage.sol b/packages/lib-sourcify/test/validation/files/single-altered-metadata/1_Storage.sol similarity index 100% rename from services/validation/test/files/single-altered-metadata/1_Storage.sol rename to packages/lib-sourcify/test/validation/files/single-altered-metadata/1_Storage.sol diff --git a/services/validation/test/files/single-altered-metadata/metadata.json b/packages/lib-sourcify/test/validation/files/single-altered-metadata/metadata.json similarity index 100% rename from services/validation/test/files/single-altered-metadata/metadata.json rename to packages/lib-sourcify/test/validation/files/single-altered-metadata/metadata.json diff --git a/services/validation/test/files/single-altered/1_Storage.sol b/packages/lib-sourcify/test/validation/files/single-altered/1_Storage.sol similarity index 100% rename from services/validation/test/files/single-altered/1_Storage.sol rename to packages/lib-sourcify/test/validation/files/single-altered/1_Storage.sol diff --git a/services/validation/test/files/single-altered/metadata.json b/packages/lib-sourcify/test/validation/files/single-altered/metadata.json similarity index 100% rename from services/validation/test/files/single-altered/metadata.json rename to packages/lib-sourcify/test/validation/files/single-altered/metadata.json diff --git a/services/validation/test/files/single-keep-original/1_Storage.sol b/packages/lib-sourcify/test/validation/files/single-keep-original/1_Storage.sol similarity index 100% rename from services/validation/test/files/single-keep-original/1_Storage.sol rename to packages/lib-sourcify/test/validation/files/single-keep-original/1_Storage.sol diff --git a/services/validation/test/files/single-keep-original/metadata.json b/packages/lib-sourcify/test/validation/files/single-keep-original/metadata.json similarity index 100% rename from services/validation/test/files/single-keep-original/metadata.json rename to packages/lib-sourcify/test/validation/files/single-keep-original/metadata.json diff --git a/services/validation/test/files/single-remove-trailing-n/1_Storage.sol b/packages/lib-sourcify/test/validation/files/single-remove-trailing-n/1_Storage.sol similarity index 100% rename from services/validation/test/files/single-remove-trailing-n/1_Storage.sol rename to packages/lib-sourcify/test/validation/files/single-remove-trailing-n/1_Storage.sol diff --git a/services/validation/test/files/single-remove-trailing-n/metadata.json b/packages/lib-sourcify/test/validation/files/single-remove-trailing-n/metadata.json similarity index 100% rename from services/validation/test/files/single-remove-trailing-n/metadata.json rename to packages/lib-sourcify/test/validation/files/single-remove-trailing-n/metadata.json diff --git a/services/validation/test/files/single-remove-trailing-rn/1_Storage.sol b/packages/lib-sourcify/test/validation/files/single-remove-trailing-rn/1_Storage.sol similarity index 100% rename from services/validation/test/files/single-remove-trailing-rn/1_Storage.sol rename to packages/lib-sourcify/test/validation/files/single-remove-trailing-rn/1_Storage.sol diff --git a/services/validation/test/files/single-remove-trailing-rn/metadata.json b/packages/lib-sourcify/test/validation/files/single-remove-trailing-rn/metadata.json similarity index 100% rename from services/validation/test/files/single-remove-trailing-rn/metadata.json rename to packages/lib-sourcify/test/validation/files/single-remove-trailing-rn/metadata.json diff --git a/services/validation/test/files/single-replace-with-n/1_Storage.sol b/packages/lib-sourcify/test/validation/files/single-replace-with-n/1_Storage.sol similarity index 100% rename from services/validation/test/files/single-replace-with-n/1_Storage.sol rename to packages/lib-sourcify/test/validation/files/single-replace-with-n/1_Storage.sol diff --git a/services/validation/test/files/single-replace-with-n/metadata.json b/packages/lib-sourcify/test/validation/files/single-replace-with-n/metadata.json similarity index 100% rename from services/validation/test/files/single-replace-with-n/metadata.json rename to packages/lib-sourcify/test/validation/files/single-replace-with-n/metadata.json diff --git a/services/validation/test/files/single-replace-with-rn/1_Storage.sol b/packages/lib-sourcify/test/validation/files/single-replace-with-rn/1_Storage.sol similarity index 100% rename from services/validation/test/files/single-replace-with-rn/1_Storage.sol rename to packages/lib-sourcify/test/validation/files/single-replace-with-rn/1_Storage.sol diff --git a/services/validation/test/files/single-replace-with-rn/metadata.json b/packages/lib-sourcify/test/validation/files/single-replace-with-rn/metadata.json similarity index 100% rename from services/validation/test/files/single-replace-with-rn/metadata.json rename to packages/lib-sourcify/test/validation/files/single-replace-with-rn/metadata.json diff --git a/services/validation/test/files/single/1_Storage.sol b/packages/lib-sourcify/test/validation/files/single/1_Storage.sol similarity index 100% rename from services/validation/test/files/single/1_Storage.sol rename to packages/lib-sourcify/test/validation/files/single/1_Storage.sol diff --git a/services/validation/test/files/single/metadata.json b/packages/lib-sourcify/test/validation/files/single/metadata.json similarity index 100% rename from services/validation/test/files/single/metadata.json rename to packages/lib-sourcify/test/validation/files/single/metadata.json diff --git a/services/validation/test/files/truffle-example-missing-source.zip b/packages/lib-sourcify/test/validation/files/truffle-example-missing-source.zip similarity index 100% rename from services/validation/test/files/truffle-example-missing-source.zip rename to packages/lib-sourcify/test/validation/files/truffle-example-missing-source.zip diff --git a/services/validation/test/files/truffle-example-missing-source/.gitattributes b/packages/lib-sourcify/test/validation/files/truffle-example-missing-source/.gitattributes similarity index 100% rename from services/validation/test/files/truffle-example-missing-source/.gitattributes rename to packages/lib-sourcify/test/validation/files/truffle-example-missing-source/.gitattributes diff --git a/services/validation/test/files/truffle-example-missing-source/LICENSE b/packages/lib-sourcify/test/validation/files/truffle-example-missing-source/LICENSE similarity index 100% rename from services/validation/test/files/truffle-example-missing-source/LICENSE rename to packages/lib-sourcify/test/validation/files/truffle-example-missing-source/LICENSE diff --git a/services/validation/test/files/truffle-example-missing-source/contracts/ConvertLib.sol b/packages/lib-sourcify/test/validation/files/truffle-example-missing-source/contracts/ConvertLib.sol similarity index 100% rename from services/validation/test/files/truffle-example-missing-source/contracts/ConvertLib.sol rename to packages/lib-sourcify/test/validation/files/truffle-example-missing-source/contracts/ConvertLib.sol diff --git a/services/validation/test/files/truffle-example-missing-source/contracts/Migrations.sol b/packages/lib-sourcify/test/validation/files/truffle-example-missing-source/contracts/Migrations.sol similarity index 100% rename from services/validation/test/files/truffle-example-missing-source/contracts/Migrations.sol rename to packages/lib-sourcify/test/validation/files/truffle-example-missing-source/contracts/Migrations.sol diff --git a/services/validation/test/files/truffle-example-missing-source/migrations/1_initial_migration.js b/packages/lib-sourcify/test/validation/files/truffle-example-missing-source/migrations/1_initial_migration.js similarity index 100% rename from services/validation/test/files/truffle-example-missing-source/migrations/1_initial_migration.js rename to packages/lib-sourcify/test/validation/files/truffle-example-missing-source/migrations/1_initial_migration.js diff --git a/services/validation/test/files/truffle-example-missing-source/migrations/2_deploy_contracts.js b/packages/lib-sourcify/test/validation/files/truffle-example-missing-source/migrations/2_deploy_contracts.js similarity index 100% rename from services/validation/test/files/truffle-example-missing-source/migrations/2_deploy_contracts.js rename to packages/lib-sourcify/test/validation/files/truffle-example-missing-source/migrations/2_deploy_contracts.js diff --git a/services/validation/test/files/truffle-example-missing-source/test/TestMetaCoin.sol b/packages/lib-sourcify/test/validation/files/truffle-example-missing-source/test/TestMetaCoin.sol similarity index 100% rename from services/validation/test/files/truffle-example-missing-source/test/TestMetaCoin.sol rename to packages/lib-sourcify/test/validation/files/truffle-example-missing-source/test/TestMetaCoin.sol diff --git a/services/validation/test/files/truffle-example-missing-source/test/metacoin.js b/packages/lib-sourcify/test/validation/files/truffle-example-missing-source/test/metacoin.js similarity index 100% rename from services/validation/test/files/truffle-example-missing-source/test/metacoin.js rename to packages/lib-sourcify/test/validation/files/truffle-example-missing-source/test/metacoin.js diff --git a/services/validation/test/files/truffle-example-missing-source/truffle-config.js b/packages/lib-sourcify/test/validation/files/truffle-example-missing-source/truffle-config.js similarity index 100% rename from services/validation/test/files/truffle-example-missing-source/truffle-config.js rename to packages/lib-sourcify/test/validation/files/truffle-example-missing-source/truffle-config.js diff --git a/services/validation/test/files/truffle-example-missing-source2.zip b/packages/lib-sourcify/test/validation/files/truffle-example-missing-source2.zip similarity index 100% rename from services/validation/test/files/truffle-example-missing-source2.zip rename to packages/lib-sourcify/test/validation/files/truffle-example-missing-source2.zip diff --git a/services/validation/test/files/truffle-example.zip b/packages/lib-sourcify/test/validation/files/truffle-example.zip similarity index 100% rename from services/validation/test/files/truffle-example.zip rename to packages/lib-sourcify/test/validation/files/truffle-example.zip diff --git a/services/validation/test/files/truffle-example/.gitattributes b/packages/lib-sourcify/test/validation/files/truffle-example/.gitattributes similarity index 100% rename from services/validation/test/files/truffle-example/.gitattributes rename to packages/lib-sourcify/test/validation/files/truffle-example/.gitattributes diff --git a/services/validation/test/files/truffle-example/LICENSE b/packages/lib-sourcify/test/validation/files/truffle-example/LICENSE similarity index 100% rename from services/validation/test/files/truffle-example/LICENSE rename to packages/lib-sourcify/test/validation/files/truffle-example/LICENSE diff --git a/services/validation/test/files/truffle-example/contracts/ConvertLib.sol b/packages/lib-sourcify/test/validation/files/truffle-example/contracts/ConvertLib.sol similarity index 100% rename from services/validation/test/files/truffle-example/contracts/ConvertLib.sol rename to packages/lib-sourcify/test/validation/files/truffle-example/contracts/ConvertLib.sol diff --git a/services/validation/test/files/truffle-example/contracts/MetaCoin.sol b/packages/lib-sourcify/test/validation/files/truffle-example/contracts/MetaCoin.sol similarity index 100% rename from services/validation/test/files/truffle-example/contracts/MetaCoin.sol rename to packages/lib-sourcify/test/validation/files/truffle-example/contracts/MetaCoin.sol diff --git a/services/validation/test/files/truffle-example/contracts/Migrations.sol b/packages/lib-sourcify/test/validation/files/truffle-example/contracts/Migrations.sol similarity index 100% rename from services/validation/test/files/truffle-example/contracts/Migrations.sol rename to packages/lib-sourcify/test/validation/files/truffle-example/contracts/Migrations.sol diff --git a/services/validation/test/files/truffle-example/migrations/1_initial_migration.js b/packages/lib-sourcify/test/validation/files/truffle-example/migrations/1_initial_migration.js similarity index 100% rename from services/validation/test/files/truffle-example/migrations/1_initial_migration.js rename to packages/lib-sourcify/test/validation/files/truffle-example/migrations/1_initial_migration.js diff --git a/services/validation/test/files/truffle-example/migrations/2_deploy_contracts.js b/packages/lib-sourcify/test/validation/files/truffle-example/migrations/2_deploy_contracts.js similarity index 100% rename from services/validation/test/files/truffle-example/migrations/2_deploy_contracts.js rename to packages/lib-sourcify/test/validation/files/truffle-example/migrations/2_deploy_contracts.js diff --git a/services/validation/test/files/truffle-example/test/TestMetaCoin.sol b/packages/lib-sourcify/test/validation/files/truffle-example/test/TestMetaCoin.sol similarity index 100% rename from services/validation/test/files/truffle-example/test/TestMetaCoin.sol rename to packages/lib-sourcify/test/validation/files/truffle-example/test/TestMetaCoin.sol diff --git a/services/validation/test/files/truffle-example/test/metacoin.js b/packages/lib-sourcify/test/validation/files/truffle-example/test/metacoin.js similarity index 100% rename from services/validation/test/files/truffle-example/test/metacoin.js rename to packages/lib-sourcify/test/validation/files/truffle-example/test/metacoin.js diff --git a/services/validation/test/files/truffle-example/truffle-config.js b/packages/lib-sourcify/test/validation/files/truffle-example/truffle-config.js similarity index 100% rename from services/validation/test/files/truffle-example/truffle-config.js rename to packages/lib-sourcify/test/validation/files/truffle-example/truffle-config.js diff --git a/packages/lib-sourcify/test/verification.spec.ts b/packages/lib-sourcify/test/verification.spec.ts new file mode 100644 index 000000000..d2401f97e --- /dev/null +++ b/packages/lib-sourcify/test/verification.spec.ts @@ -0,0 +1,722 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +import path from 'path'; +import { Metadata } from '../src/lib/types'; +import Ganache from 'ganache'; +import { + /* callContractMethodWithTx, */ + checkAndVerifyDeployed, + checkFilesFromContractFolder, + deployCheckAndVerify, + deployFromAbiAndBytecode, + expectMatch, +} from './utils'; +import { describe, it, before } from 'mocha'; +import { expect } from 'chai'; +import { + SourcifyChain, + calculateCreate2Address, + /* + getBytecode, + matchWithSimulation, + */ + matchWithCreationTx, + replaceImmutableReferences, + verifyCreate2, + verifyDeployed, +} from '../src'; +import fs from 'fs'; +import { JsonRpcSigner } from 'ethers'; + +const ganacheServer = Ganache.server({ + wallet: { totalAccounts: 1 }, + chain: { chainId: 0, networkId: 0 }, +}); +const GANACHE_PORT = 8545; + +const UNUSED_ADDRESS = '0x1F98431c8aD98523631AE4a59f267346ea31F984'; // checksum valid + +const ganacheChain = { + name: 'ganache', + shortName: 'ganache', + chainId: 0, + networkId: 0, + nativeCurrency: { + name: 'Ether', + symbol: 'ETH', + decimals: 18, + }, + rpc: [`http://localhost:${GANACHE_PORT}`], + monitored: false, + supported: true, +}; +const sourcifyChainGanache: SourcifyChain = new SourcifyChain(ganacheChain); + +let signer: JsonRpcSigner; + +describe('lib-sourcify tests', () => { + before(async () => { + await ganacheServer.listen(GANACHE_PORT); + signer = await sourcifyChainGanache.providers[0].getSigner(); + }); + + describe('Verification tests', () => { + it('should verify a simple contract', async () => { + const contractFolderPath = path.join(__dirname, 'sources', 'Storage'); + const { match, contractAddress } = await deployCheckAndVerify( + contractFolderPath, + sourcifyChainGanache, + signer + ); + expectMatch(match, 'perfect', contractAddress); + }); + + it('should partially verify a simple contract', async () => { + const contractFolderPath = path.join(__dirname, 'sources', 'Storage'); + const modifiedContractFolderPath = path.join( + __dirname, + 'sources', + 'StorageModified' + ); + const { contractAddress } = await deployFromAbiAndBytecode( + signer, + contractFolderPath + ); + const match = await checkAndVerifyDeployed( + modifiedContractFolderPath, // Using the modified contract + sourcifyChainGanache, + contractAddress + ); + + expectMatch(match, 'partial', contractAddress); + }); + + it('should fail to verify a different simple contract', async () => { + const contractFolderPath = path.join(__dirname, 'sources', 'Storage'); + const wrongContractFolderPath = path.join( + __dirname, + 'sources', + 'UsingLibrary' + ); + const { contractAddress } = await deployFromAbiAndBytecode( + signer, + contractFolderPath + ); + try { + await checkAndVerifyDeployed( + wrongContractFolderPath, // Using the wrong contract + sourcifyChainGanache, + contractAddress + ); + throw new Error('Should have failed'); + } catch (err) { + if (err instanceof Error) { + expect(err.message).to.equal( + "The deployed and recompiled bytecode don't match." + ); + } else { + throw err; + } + } + }); + + it('should fail to verify a non-existing address', async () => { + const contractFolderPath = path.join(__dirname, 'sources', 'Storage'); + const match = await checkAndVerifyDeployed( + contractFolderPath, // Using the wrong contract + sourcifyChainGanache, + UNUSED_ADDRESS + ); + expectMatch( + match, + null, + UNUSED_ADDRESS, + undefined, + `Chain #${sourcifyChainGanache.chainId} does not have a contract deployed at ${UNUSED_ADDRESS}.` + ); + }); + + it('should verify a contract with library placeholders', async () => { + // Originally https://goerli.etherscan.io/address/0x399B23c75d8fd0b95E81E41e1c7c88937Ee18000#code + const contractFolderPath = path.join( + __dirname, + 'sources', + 'UsingLibrary' + ); + const { match, contractAddress } = await deployCheckAndVerify( + contractFolderPath, + sourcifyChainGanache, + signer + ); + const expectedLibraryMap = { + __$da572ae5e60c838574a0f88b27a0543803$__: + '11fea6722e00ba9f43861a6e4da05fecdf9806b7', + }; + expectMatch(match, 'perfect', contractAddress, expectedLibraryMap); + }); + + it('should verify a contract with viaIR:true', async () => { + const contractFolderPath = path.join( + __dirname, + 'sources', + 'StorageViaIR' + ); + const { match, contractAddress } = await deployCheckAndVerify( + contractFolderPath, + sourcifyChainGanache, + signer + ); + expectMatch(match, 'perfect', contractAddress); + }); + + it('should verify a contract with immutables', async () => { + const contractFolderPath = path.join( + __dirname, + 'sources', + 'WithImmutables' + ); + const { contractAddress } = await deployFromAbiAndBytecode( + signer, + contractFolderPath, + ['12345'] + ); + + const match = await checkAndVerifyDeployed( + contractFolderPath, + sourcifyChainGanache, + contractAddress + ); + expectMatch(match, 'perfect', contractAddress); + }); + + it('should verify a create2 contract', async () => { + const contractFolderPath = path.join(__dirname, 'sources', 'Create2'); + const checkedContracts = await checkFilesFromContractFolder( + contractFolderPath + ); + const saltNum = 12345; + const saltHex = '0x' + saltNum.toString(16); + const match = await verifyCreate2( + checkedContracts[0], + '0xd9145CCE52D386f254917e481eB44e9943F39138', + saltHex, + '0x801B9c0Ee599C3E5ED60e4Ec285C95fC9878Ee64', + '0x0000000000000000000000005b38da6a701c568545dcfcb03fcb875f56beddc40000000000000000000000005b38da6a701c568545dcfcb03fcb875f56beddc4' + ); + expectMatch( + match, + 'perfect', + '0x801B9c0Ee599C3E5ED60e4Ec285C95fC9878Ee64' + ); + }); + + it('should verify fail to a create2 contract with wrong address', async () => { + const contractFolderPath = path.join(__dirname, 'sources', 'Create2'); + const checkedContracts = await checkFilesFromContractFolder( + contractFolderPath + ); + const saltNum = 12345; + const saltHex = '0x' + saltNum.toString(16); + try { + await verifyCreate2( + checkedContracts[0], + '0xd9145CCE52D386f254917e481eB44e9943F39138', + saltHex, + UNUSED_ADDRESS, + '0x0000000000000000000000005b38da6a701c568545dcfcb03fcb875f56beddc40000000000000000000000005b38da6a701c568545dcfcb03fcb875f56beddc4' + ); + } catch (err) { + if (err instanceof Error) { + expect(err.message).to.equal( + `The provided create2 address doesn't match server's generated one. Expected: 0x801B9c0Ee599C3E5ED60e4Ec285C95fC9878Ee64 ; Received: ${UNUSED_ADDRESS} ;` + ); + } else { + throw err; + } + } + }); + // https://github.com/ethereum/sourcify/issues/640 + it('should remove the inliner option from metadata for solc >=0.8.2 to <=0.8.4 and be able to verify', async () => { + const contractFolderPath = path.join( + __dirname, + 'sources', + 'StorageInliner' + ); + const { match, contractAddress } = await deployCheckAndVerify( + contractFolderPath, + sourcifyChainGanache, + signer + ); + expectMatch(match, 'perfect', contractAddress); + }); + + /* it('should verify a contract created by a factory contract and has immutables', async () => { + const deployValue = 12345; + const childFolderPath = path.join( + __dirname, + 'sources', + 'FactoryImmutable', + 'Child' + ); + const factoryFolderPath = path.join( + __dirname, + 'sources', + 'FactoryImmutable', + 'Factory' + ); + const [factoryAddress] = await deployFromAbiAndBytecode( + localProvider, + factoryFolderPath, + signer, + [deployValue] + ); + + // Deploy the child by calling the factory + const txReceipt = await callContractMethodWithTx( + localProvider, + factoryFolderPath, + factoryAddress, + 'deploy', + signer, + [deployValue] + ); + const childAddress = txReceipt.events.Deployment.returnValues[0]; + const abiEncoded = localProvider.eth.abi.encodeParameter( + 'uint', + deployValue + ); + const match = await checkAndVerifyDeployed( + childFolderPath, + sourcifyChainGanache, + childAddress, + { + abiEncodedConstructorArguments: abiEncoded, + } + ); + + expectMatch(match, 'perfect', childAddress); + }); */ + + /* it('should verify a contract created by a factory contract and has immutables without constructor arguments but with msg.sender assigned immutable', async () => { + const childFolderPath = path.join( + __dirname, + 'sources', + 'FactoryImmutableWithoutConstrArg', + 'Child' + ); + const factoryFolderPath = path.join( + __dirname, + 'sources', + 'FactoryImmutableWithoutConstrArg', + 'Factory' + ); + const [factoryAddress] = await deployFromAbiAndBytecode( + localProvider, + factoryFolderPath, + signer, + [] + ); + + // Deploy the child by calling the factory + const txReceipt = await callContractMethodWithTx( + localProvider, + factoryFolderPath, + factoryAddress, + 'createChild', + signer, + [] + ); + const childAddress = txReceipt.events.ChildCreated.returnValues[0]; + const match = await checkAndVerifyDeployed( + childFolderPath, + sourcifyChainGanache, + childAddress, + { + msgSender: factoryAddress, + } + ); + + expectMatch(match, 'perfect', childAddress); + }); + */ + it('should fully verify a contract which is originally compiled and deployed with Unix style End Of Line (EOL) source code, but being verified with Windows style (CRLF) EOL source code', async () => { + const contractFolderPath = path.join( + __dirname, + 'sources', + 'WrongMetadata' + ); + const { contractAddress } = await deployFromAbiAndBytecode( + signer, + contractFolderPath + ); + + const match = await checkAndVerifyDeployed( + contractFolderPath, + sourcifyChainGanache, + contractAddress + ); + expectMatch(match, 'perfect', contractAddress); + }); + + it('should fully verify a contract when a not alphabetically sorted metadata is provided', async () => { + const contractFolderPath = path.join(__dirname, 'sources', 'Storage'); + const { contractAddress } = await deployFromAbiAndBytecode( + signer, + contractFolderPath + ); + + const checkedContracts = await checkFilesFromContractFolder( + contractFolderPath + ); + + // Get the unsorted metadata + const metadataPath = path.join( + path.join(__dirname, 'sources', 'StorageUnsortedMetadata'), + 'metadata.json' + ); + const metadataBuffer = fs.readFileSync(metadataPath); + + // Replace the metadata witht he unsorted one + checkedContracts[0].initSolcJsonInput( + JSON.parse(metadataBuffer.toString()), + checkedContracts[0].solidity + ); + + const match = await verifyDeployed( + checkedContracts[0], + sourcifyChainGanache, + contractAddress + ); + expectMatch(match, 'perfect', contractAddress); + }); + + it('should fully verify a library with call protection when viaIR is disabled (legacy compilation placeholder: 0x73 plus 20 zero bytes)', async () => { + const contractFolderPath = path.join( + __dirname, + 'sources', + 'CallProtectionForLibraries' + ); + const { contractAddress } = await deployFromAbiAndBytecode( + signer, + contractFolderPath + ); + + const match = await checkAndVerifyDeployed( + contractFolderPath, + sourcifyChainGanache, + contractAddress + ); + expectMatch(match, 'perfect', contractAddress); + }); + + it('should fully verify a library with call protection when viaIR is enabled', async () => { + const contractFolderPath = path.join( + __dirname, + 'sources', + 'CallProtectionForLibrariesViaIR' + ); + const { contractAddress } = await deployFromAbiAndBytecode( + signer, + contractFolderPath + ); + + const match = await checkAndVerifyDeployed( + contractFolderPath, + sourcifyChainGanache, + contractAddress + ); + expectMatch(match, 'perfect', contractAddress); + }); + }); + + describe('Unit tests', function () { + describe('SourcifyChain', () => { + it("Should fail to instantiate with empty rpc's", function () { + const emptyRpc = { ...ganacheChain, rpc: [] }; + try { + new SourcifyChain(emptyRpc); + throw new Error('Should have failed'); + } catch (err) { + if (err instanceof Error) { + expect(err.message).to.equal( + 'No RPC provider was given for this chain with id ' + + emptyRpc.chainId + + ' and name ' + + emptyRpc.name + ); + } else { + throw err; + } + } + }); + it('Should getBlock', async function () { + const block = await sourcifyChainGanache.getBlock(0); + expect(block?.number).equals(0); + }); + it('Should getBlockNumber', async function () { + const blockNumber = await sourcifyChainGanache.getBlockNumber(); + expect(blockNumber > 0); + }); + it('Should fail to get non-existing transaction', async function () { + try { + await sourcifyChainGanache.getTx( + '0x79ab5d59fcb70ca3f290aa39ed3f156a5c4b3897176aebd455cd20b6a30b107a' + ); + throw new Error('Should have failed'); + } catch (err) { + if (err instanceof Error) { + expect(err.message).to.equal( + 'None of the RPCs responded fetching tx 0x79ab5d59fcb70ca3f290aa39ed3f156a5c4b3897176aebd455cd20b6a30b107a on chain 0' + ); + } else { + throw err; + } + } + }); + }); + it('Should calculateCreate2Address', async function () { + expect( + calculateCreate2Address( + '0x71CB05EE1b1F506fF321Da3dac38f25c0c9ce6E1', + '123', + '0x00' + ) + ).equals('0xA0279ea82DF644AFb68FdD4aDa5848C5Df9F116B'); + }); + + it('Should replaceImmutableReferences', async function () { + const deployedBytecode = + '0x608060405234801561001057600080fd5b50600436106100415760003560e01c806357de26a41461004657806379d6348d146100c9578063ced7b2e314610184575b600080fd5b61004e6101a2565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561008e578082015181840152602081019050610073565b50505050905090810190601f1680156100bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610182600480360360208110156100df57600080fd5b81019080803590602001906401000000008111156100fc57600080fd5b82018360208201111561010e57600080fd5b8035906020019184600183028401116401000000008311171561013057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610244565b005b61018c61025e565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561023a5780601f1061020f5761010080835404028352916020019161023a565b820191906000526020600020905b81548152906001019060200180831161021d57829003601f168201915b5050505050905090565b806000908051906020019061025a929190610282565b5050565b7f000000000000000000000000000000000000000000000000000000000000000281565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826102b857600085556102ff565b82601f106102d157805160ff19168380011785556102ff565b828001600101855582156102ff579182015b828111156102fe5782518255916020019190600101906102e3565b5b50905061030c9190610310565b5090565b5b80821115610329576000816000905550600101610311565b509056fea26469706673582212207d766cdc8c3a27e3071e5fbe3fb4327a900c77e0061b473bd4d024da7b147ee564736f6c63430007040033'; + + const recompiledDeployedBytecode = + '0x608060405234801561001057600080fd5b50600436106100415760003560e01c806357de26a41461004657806379d6348d146100c9578063ced7b2e314610184575b600080fd5b61004e6101a2565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561008e578082015181840152602081019050610073565b50505050905090810190601f1680156100bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610182600480360360208110156100df57600080fd5b81019080803590602001906401000000008111156100fc57600080fd5b82018360208201111561010e57600080fd5b8035906020019184600183028401116401000000008311171561013057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610244565b005b61018c61025e565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561023a5780601f1061020f5761010080835404028352916020019161023a565b820191906000526020600020905b81548152906001019060200180831161021d57829003601f168201915b5050505050905090565b806000908051906020019061025a929190610282565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826102b857600085556102ff565b82601f106102d157805160ff19168380011785556102ff565b828001600101855582156102ff579182015b828111156102fe5782518255916020019190600101906102e3565b5b50905061030c9190610310565b5090565b5b80821115610329576000816000905550600101610311565b509056fea26469706673582212207d766cdc8c3a27e3071e5fbe3fb4327a900c77e0061b473bd4d024da7b147ee564736f6c63430007040033'; + const immutableReferences = { + '3': [ + { + length: 32, + start: 608, + }, + ], + }; + + const replacedBytecode = replaceImmutableReferences( + immutableReferences, + deployedBytecode + ); + + expect(replacedBytecode).equals(recompiledDeployedBytecode); + }); + + /* + it('should matchWithSimulation', async () => { + const childFolderPath = path.join( + __dirname, + 'sources', + 'FactoryImmutableWithoutConstrArg', + 'Child' + ); + const factoryFolderPath = path.join( + __dirname, + 'sources', + 'FactoryImmutableWithoutConstrArg', + 'Factory' + ); + const [factoryAddress] = await deployFromAbiAndBytecode( + signer, + factoryFolderPath, + [] + ); + + // Deploy the child by calling the factory + const txReceipt = await callContractMethodWithTx( + localProvider, + factoryFolderPath, + factoryAddress, + 'createChild', + signer, + [] + ); + const childAddress = txReceipt.events.ChildCreated.returnValues[0]; + + const checkedContracts = await checkFilesFromContractFolder( + childFolderPath + ); + const recompiled = await checkedContracts[0].recompile(); + const deployedBytecode = await getBytecode( + sourcifyChainGanache, + childAddress + ); + const evmVersion = JSON.parse(recompiled.metadata).settings.evmVersion; + const match: Match = { + address: childAddress, + chainId: sourcifyChainGanache.chainId.toString(), + status: null, + }; + + await matchWithSimulation( + match, + recompiled.creationBytecode, + deployedBytecode, + evmVersion, + sourcifyChainGanache.chainId.toString(), + { + msgSender: factoryAddress, + } + ); + + expectMatch(match, 'perfect', childAddress); + }); + */ + + it('should fail to matchWithCreationTx with wrong creationTxHash', async () => { + const contractFolderPath = path.join( + __dirname, + 'sources', + 'WithImmutables' + ); + const { contractAddress } = await deployFromAbiAndBytecode( + signer, + contractFolderPath, + ['12345'] + ); + + // Get an arbitrary tx hash + const { txHash: wrongCreatorTxHash } = await deployFromAbiAndBytecode( + signer, + contractFolderPath, + ['12345'] + ); + + const checkedContracts = await checkFilesFromContractFolder( + contractFolderPath + ); + const recompiled = await checkedContracts[0].recompile(); + const match = { + address: contractAddress, + chainId: sourcifyChainGanache.chainId.toString(), + status: null, + }; + const recompiledMetadata: Metadata = JSON.parse(recompiled.metadata); + await matchWithCreationTx( + match, + recompiled.creationBytecode, + sourcifyChainGanache, + contractAddress, + wrongCreatorTxHash, + recompiledMetadata + ); + expectMatch(match, null, contractAddress, undefined); // status is null + }); + + // https://github.com/sourcifyeth/private-issues/issues/16 + // Shouldn't let the `startsWith` check in `matchWithCreationTx` pass and verify arbitrary contracts with the short constructor code snippet. The attack contract is just a simple constructor. Avoid this by treating the difference of the `startsWith` of the recompiled creation bytecode and the tx.input as constructor arguments. + it('should fail to matchWithCreationTx with creatorTxHash when trying to maliciously verify with a creation bytecode that startsWith the creatorTx input of the deployed contract', async () => { + const contractFolderPath = path.join( + __dirname, + 'sources', + 'WithImmutables' + ); + const maliciousContractFolderPath = path.join( + __dirname, + 'sources', + 'WithImmutablesCreationBytecodeAttack' + ); + + const maliciousArtifact = require(path.join( + maliciousContractFolderPath, + 'artifact.json' + )); + const { contractAddress, txHash } = await deployFromAbiAndBytecode( + signer, + contractFolderPath, + ['12345'] + ); + + const checkedContracts = await checkFilesFromContractFolder( + maliciousContractFolderPath + ); + const recompiled = await checkedContracts[0].recompile(); + const match = { + address: contractAddress, + chainId: sourcifyChainGanache.chainId.toString(), + status: null, + }; + const recompiledMetadata: Metadata = JSON.parse(recompiled.metadata); + await matchWithCreationTx( + match, + maliciousArtifact.bytecode, + sourcifyChainGanache, + contractAddress, + txHash, + recompiledMetadata + ); + expectMatch(match, null, contractAddress, undefined); // status is null + }); + + it('should fail to matchWithCreationTx when passing an abstract contract', async () => { + const contractFolderPath = path.join( + __dirname, + 'sources', + 'WithImmutables' + ); + + const { contractAddress, txHash: creatorTxHash } = + await deployFromAbiAndBytecode(signer, contractFolderPath, ['12345']); + + const maliciousContractFolderPath = path.join( + __dirname, + 'sources', + 'AbstractCreationBytecodeAttack' + ); + const checkedContracts = await checkFilesFromContractFolder( + maliciousContractFolderPath + ); + const recompiled = await checkedContracts[0].recompile(); + const match = { + address: contractAddress, + chainId: sourcifyChainGanache.chainId.toString(), + status: null, + }; + const recompiledMetadata: Metadata = JSON.parse(recompiled.metadata); + + await matchWithCreationTx( + match, + recompiled.creationBytecode, + sourcifyChainGanache, + contractAddress, + creatorTxHash, + recompiledMetadata + ); + expectMatch(match, null, contractAddress, undefined); // status is null + }); + + it('should successfuly verify with matchWithCreationTx with creationTxHash', async () => { + const contractFolderPath = path.join( + __dirname, + 'sources', + 'WithImmutables' + ); + const { contractAddress, txHash: creatorTxHash } = + await deployFromAbiAndBytecode(signer, contractFolderPath, ['12345']); + + const checkedContracts = await checkFilesFromContractFolder( + contractFolderPath + ); + const recompiled = await checkedContracts[0].recompile(); + const match = { + address: contractAddress, + chainId: sourcifyChainGanache.chainId.toString(), + status: null, + }; + const recompiledMetadata: Metadata = JSON.parse(recompiled.metadata); + await matchWithCreationTx( + match, + recompiled.creationBytecode, + sourcifyChainGanache, + contractAddress, + creatorTxHash, + recompiledMetadata + ); + expectMatch(match, 'perfect', contractAddress, undefined); // status is null + }); + }); +}); diff --git a/packages/lib-sourcify/tsconfig.json b/packages/lib-sourcify/tsconfig.json new file mode 100644 index 000000000..335b809ab --- /dev/null +++ b/packages/lib-sourcify/tsconfig.json @@ -0,0 +1,47 @@ +{ + "compilerOptions": { + "incremental": true, + "target": "es2017", + "outDir": "build/main", + "rootDir": "src", + "moduleResolution": "node", + "module": "commonjs", + "declaration": true, + "inlineSourceMap": true, + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, + "resolveJsonModule": true /* Include modules imported with .json extension. */, + + "strict": true /* Enable all strict type-checking options. */, + + /* Strict Type-Checking Options */ + // "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, + // "strictNullChecks": true /* Enable strict null checks. */, + // "strictFunctionTypes": true /* Enable strict checking of function types. */, + // "strictPropertyInitialization": true /* Enable strict checking of property initialization in classes. */, + // "noImplicitThis": true /* Raise error on 'this' expressions with an implied 'any' type. */, + // "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, + + /* Additional Checks */ + "noUnusedLocals": true /* Report errors on unused locals. */, + "noUnusedParameters": true /* Report errors on unused parameters. */, + "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, + "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, + + /* Debugging Options */ + "traceResolution": false /* Report module resolution log messages. */, + "listEmittedFiles": false /* Print names of generated files part of the compilation. */, + "listFiles": false /* Print names of files part of the compilation. */, + "pretty": true /* Stylize errors and messages using color and context. */, + + /* Experimental Options */ + // "experimentalDecorators": true /* Enables experimental support for ES7 decorators. */, + // "emitDecoratorMetadata": true /* Enables experimental support for emitting type metadata for decorators. */, + + "lib": ["es2017", "dom"], + "types": ["node", "mocha"], + "typeRoots": ["node_modules/@types", "src/types"] + }, + "include": ["src/**/*.ts"], + "exclude": ["node_modules/**"], + "compileOnSave": false +} diff --git a/packages/lib-sourcify/tsconfig.module.json b/packages/lib-sourcify/tsconfig.module.json new file mode 100644 index 000000000..dfb74fa3a --- /dev/null +++ b/packages/lib-sourcify/tsconfig.module.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "target": "esnext", + "outDir": "build/module", + "module": "esnext" + }, + "exclude": [ + "node_modules/**" + ] +} diff --git a/scripts/check-s3-backup.mjs b/scripts/check-s3-backup.mjs index 46cc50529..c62972dfa 100644 --- a/scripts/check-s3-backup.mjs +++ b/scripts/check-s3-backup.mjs @@ -1,65 +1,88 @@ -import { S3Client } from "@aws-sdk/client-s3" -import { GetObjectCommand } from "@aws-sdk/client-s3" -import assert from "assert" +import { S3Client } from "@aws-sdk/client-s3"; +import { GetObjectCommand } from "@aws-sdk/client-s3"; +import assert from "assert"; const bareBonesS3 = new S3Client({ - region: 'eu-west-2', - credentials: { - accessKeyId: process.env.AWS_S3_READ_ACCESS_KEY_ID, - secretAccessKey: process.env.AWS_S3_READ_SECRET_ACCESS_KEY, - } + region: "eu-west-2", + credentials: { + accessKeyId: process.env.AWS_S3_READ_ACCESS_KEY_ID, + secretAccessKey: process.env.AWS_S3_READ_SECRET_ACCESS_KEY, + }, }); // fetch latest workflow id -const branch = 'master' -const circleCIWorkflowsUrl = `https://circleci.com/api/v2/insights/gh/ethereum/sourcify/workflows/e2e-tests?branch=${branch}` -const circleCIWorkflowsResult = await fetch(circleCIWorkflowsUrl) -const circleCIWorkflowsJson = await circleCIWorkflowsResult.json() +const branch = "master"; +const circleCIWorkflowsUrl = `https://circleci.com/api/v2/insights/gh/ethereum/sourcify/workflows/e2e-tests?branch=${branch}`; +const circleCIWorkflowsResult = await fetch(circleCIWorkflowsUrl); +const circleCIWorkflowsJson = await circleCIWorkflowsResult.json(); -const yesterday = new Date() -yesterday.setDate(yesterday.getDate() - 1) -const circleCIWorkflowsYesterdayItem = circleCIWorkflowsJson.items.find(item => { - const workflowDate = new Date(item.created_at) - return yesterday.toDateString() === workflowDate.toDateString() -}) -assert(circleCIWorkflowsYesterdayItem !== undefined, `There is no backup workflow from yesterday`) +const yesterday = new Date(); +yesterday.setDate(yesterday.getDate() - 1); +const circleCIWorkflowsYesterdayItem = circleCIWorkflowsJson.items.find( + (item) => { + const workflowDate = new Date(item.created_at); + return yesterday.toDateString() === workflowDate.toDateString(); + } +); +assert( + circleCIWorkflowsYesterdayItem !== undefined, + `There is no backup workflow from yesterday` +); -const workflowId = circleCIWorkflowsYesterdayItem.id +const workflowId = circleCIWorkflowsYesterdayItem.id; -// find jobs id of verification-e2e-rinkeby, verification-e2e-sepolia, verification-e2e-goerli +// find jobs id of verification-e2e-sepolia, verification-e2e-goerli const jobsWithArtifacts = [ - 'verification-e2e-rinkeby', - 'verification-e2e-sepolia', - 'verification-e2e-goerli', -] -const circleCIJobsUrl = `https://circleci.com/api/v2/workflow/${workflowId}/job` -const circleCIJobsUrlResult = await fetch(circleCIJobsUrl) -const circleCIJobsUrlJson = await circleCIJobsUrlResult.json() -const jobIds = circleCIJobsUrlJson.items.filter(job => jobsWithArtifacts.includes(job.name)).map(job => job.id) + "verification-e2e-sepolia", + "verification-e2e-goerli", +]; +const circleCIJobsUrl = `https://circleci.com/api/v2/workflow/${workflowId}/job`; +console.log("Fetching jobs from: ", circleCIJobsUrl); +const circleCIJobsUrlResult = await fetch(circleCIJobsUrl); +const circleCIJobsUrlJson = await circleCIJobsUrlResult.json(); +const jobs = circleCIJobsUrlJson.items.filter((job) => + jobsWithArtifacts.includes(job.name) +); // for each job id get the artifact and check the existance on s3 -let existance = false -for (const jobId of jobIds) { - const circleCIArtifactVerifiedContractUrl = `https://dl.circleci.com/private/output/job/${jobId}/artifacts/0/verified-contracts/saved.json` - const circleCIArtifactVerifiedContractResult = await fetch(circleCIArtifactVerifiedContractUrl) - const circleCIArtifactVerifiedContractJson = await circleCIArtifactVerifiedContractResult.json() - const { deploymentAddress, deploymentChain } = circleCIArtifactVerifiedContractJson - if (deploymentAddress && deploymentChain) { - try { - const s3Object = await bareBonesS3.send(new GetObjectCommand({ - Key: `stable/repository/contracts/full_match/${deploymentChain}/${deploymentAddress}/metadata.json`, - Bucket: 'sourcify-backup-s3', - })); +let existance = false; +for (const job of jobs) { + console.log(`Checking job with name: ${job.name} and id: ${job.id}`); + const circleCIArtifactVerifiedContractUrl = `https://dl.circleci.com/private/output/job/${job.id}/artifacts/0/verified-contracts/saved.json`; + console.log("Fetching artifact from: ", circleCIArtifactVerifiedContractUrl); + const circleCIArtifactVerifiedContractResult = await fetch( + circleCIArtifactVerifiedContractUrl + ); + const circleCIArtifactVerifiedContractJson = + await circleCIArtifactVerifiedContractResult.json(); + const { deploymentAddress, deploymentChain } = + circleCIArtifactVerifiedContractJson; + + if (!deploymentAddress || !deploymentChain) { + throw new Error( + `Deployment address or chain not found in job ${job.id} with name ${job.name}. Deployment address: ${deploymentAddress}, Deployment chain: ${deploymentChain}` + ); + } + + try { + const s3Object = await bareBonesS3.send( + new GetObjectCommand({ + Key: `stable/repository/contracts/full_match/${deploymentChain}/${deploymentAddress}/metadata.json`, + Bucket: "sourcify-backup-s3", + }) + ); - if (s3Object.ETag?.length > 0) { - existance = true - break; - } - } catch (e) { - console.log(`not in backup: stable/repository/contracts/full_match/${deploymentChain}/${deploymentAddress}/metadata.json`) - } + if (s3Object.ETag?.length > 0) { + existance = true; + break; } + } catch (e) { + console.log(e); + console.log( + `not in backup: stable/repository/contracts/full_match/${deploymentChain}/${deploymentAddress}/metadata.json` + ); + } } -bareBonesS3.destroy() -assert(existance, 'Last nightly backup didn\'t worked') \ No newline at end of file +bareBonesS3.destroy(); +assert(existance, "Last nightly backup didn't worked"); diff --git a/scripts/encrypt.sh b/scripts/encrypt.sh index c3874d1a3..574871428 100755 --- a/scripts/encrypt.sh +++ b/scripts/encrypt.sh @@ -1,6 +1,6 @@ #!/bin/bash gpg --yes --batch --passphrase=$SECRET_KEY -c ./environments/.env.secrets -gpg --yes --batch --passphrase=$SECRET_KEY -c ./environments/ipfs-stable.key -gpg --yes --batch --passphrase=$SECRET_KEY -c ./environments/ipfs-latest.key +gpg --yes --batch --passphrase=$SECRET_KEY -c ./services/ipfs/ipfs-stable.key +gpg --yes --batch --passphrase=$SECRET_KEY -c ./services/ipfs/ipfs-latest.key diff --git a/scripts/find_replace.sh b/scripts/find_replace.sh index 65778f18a..d3e424658 100755 --- a/scripts/find_replace.sh +++ b/scripts/find_replace.sh @@ -25,7 +25,21 @@ if [ "$CIRCLE_BRANCH" == "staging" ]; then CHAINSAFE_S3_SECRET_ACCESS_KEY=$CHAINSAFE_S3_SECRET_ACCESS_KEY_STAGING ESTUARY_PINNING_SECRET=$ESTUARY_PINNING_SECRET_STAGING WEB3_STORAGE_PINNING_SECRET=$WEB3_STORAGE_PINNING_SECRET_STAGING + CREATE2_CLIENT_TOKENS=$CREATE2_CLIENT_TOKENS_STAGING + GRAFANA_HTTP_USER=$GRAFANA_HTTP_USER_STAGING + GRAFANA_HTTP_PASS=$GRAFANA_HTTP_PASS_STAGING ETHERSCAN_API_KEY=$ETHERSCAN_API_KEY_STAGING + ARBISCAN_API_KEY=$ARBISCAN_API_KEY_STAGING + POLYGONSCAN_API_KEY=$POLYGONSCAN_API_KEY_STAGING + BSCSCAN_API_KEY=$BSCSCAN_API_KEY_STAGING + SNOWTRACE_API_KEY=$SNOWTRACE_API_KEY_STAGING + CELOSCAN_API_KEY=$CELOSCAN_API_KEY_STAGING + MOONSCAN_MOONBEAM_API_KEY=$MOONSCAN_MOONBEAM_API_KEY_STAGING + MOONSCAN_MOONRIVER_API_KEY=$MOONSCAN_MOONRIVER_API_KEY_STAGING + BOBASCAN_API_KEY=$BOBASCAN_API_KEY_STAGING + GNOSISSCAN_API_KEY=$GNOSISSCAN_API_KEY_STAGING + OPTIMISMSCAN_API_KEY=$OPTIMISMSCAN_API_KEY_STAGING + CRONOSCAN_API_KEY=$CRONOSCAN_API_KEY_STAGING fi if [ "$CIRCLE_BRANCH" == "master" ]; then @@ -38,16 +52,33 @@ if [ "$CIRCLE_BRANCH" == "master" ]; then SESSION_SECRET=$SESSION_SECRET_MASTER ALCHEMY_ID_OPTIMISM=$ALCHEMY_ID_OPTIMISM_MASTER ALCHEMY_ID_ARBITRUM=$ALCHEMY_ID_ARBITRUM_MASTER + CHAINSAFE_S3_ACCESS_KEY_ID=$CHAINSAFE_S3_ACCESS_KEY_ID_MASTER + CHAINSAFE_S3_SECRET_ACCESS_KEY=$CHAINSAFE_S3_SECRET_ACCESS_KEY_MASTER ESTUARY_PINNING_SECRET=$ESTUARY_PINNING_SECRET_MASTER WEB3_STORAGE_PINNING_SECRET=$WEB3_STORAGE_PINNING_SECRET_MASTER + CREATE2_CLIENT_TOKENS=$CREATE2_CLIENT_TOKENS_MASTER + GRAFANA_HTTP_USER=$GRAFANA_HTTP_USER_MASTER + GRAFANA_HTTP_PASS=$GRAFANA_HTTP_PASS_MASTER ETHERSCAN_API_KEY=$ETHERSCAN_API_KEY_MASTER + ARBISCAN_API_KEY=$ARBISCAN_API_KEY_MASTER + POLYGONSCAN_API_KEY=$POLYGONSCAN_API_KEY_MASTER + BSCSCAN_API_KEY=$BSCSCAN_API_KEY_MASTER + SNOWTRACE_API_KEY=$SNOWTRACE_API_KEY_MASTER + CELOSCAN_API_KEY=$CELOSCAN_API_KEY_MASTER + MOONSCAN_MOONBEAM_API_KEY=$MOONSCAN_MOONBEAM_API_KEY_MASTER + MOONSCAN_MOONRIVER_API_KEY=$MOONSCAN_MOONRIVER_API_KEY_MASTER + BOBASCAN_API_KEY=$BOBASCAN_API_KEY_MASTER + GNOSISSCAN_API_KEY=$GNOSISSCAN_API_KEY_MASTER + OPTIMISMSCAN_API_KEY=$OPTIMISMSCAN_API_KEY_MASTER + CRONOSCAN_API_KEY=$CRONOSCAN_API_KEY_MASTER fi -for VAR_NAME in INFURA_ID ALCHEMY_ID AWS_S3_ACCESS_KEY_ID AWS_S3_SECRET_ACCESS_KEY IPFS_SECRET NPM_TOKEN PUBLIC_IP LOCAL_IP SESSION_SECRET ALCHEMY_ID_OPTIMISM ALCHEMY_ID_ARBITRUM CHAINSAFE_S3_ACCESS_KEY_ID CHAINSAFE_S3_SECRET_ACCESS_KEY ESTUARY_PINNING_SECRET WEB3_STORAGE_PINNING_SECRET ETHERSCAN_API_KEY +for VAR_NAME in INFURA_ID ALCHEMY_ID CF_ACCESS_CLIENT_ID CF_ACCESS_CLIENT_SECRET AWS_S3_ACCESS_KEY_ID AWS_S3_SECRET_ACCESS_KEY IPFS_SECRET NPM_TOKEN PUBLIC_IP LOCAL_IP SESSION_SECRET ALCHEMY_ID_OPTIMISM ALCHEMY_ID_ARBITRUM CHAINSAFE_S3_ACCESS_KEY_ID CHAINSAFE_S3_SECRET_ACCESS_KEY ESTUARY_PINNING_SECRET WEB3_STORAGE_PINNING_SECRET CREATE2_CLIENT_TOKENS GRAFANA_HTTP_USER GRAFANA_HTTP_PASS ETHERSCAN_API_KEY ARBISCAN_API_KEY POLYGONSCAN_API_KEY BSCSCAN_API_KEY SNOWTRACE_API_KEY CELOSCAN_API_KEY MOONSCAN_MOONBEAM_API_KEY MOONSCAN_MOONRIVER_API_KEY BOBASCAN_API_KEY GNOSISSCAN_API_KEY OPTIMISMSCAN_API_KEY CRONOSCAN_API_KEY do echo "find_repace.sh: replacing $VAR_NAME" VAR_VAL=$(eval "echo \${$VAR_NAME}") # Use @ as delimiter instead of / as values may contain / but @ is unlikely + # sed on MacOS has different syntax. Install "gsed" with brew install gnu-sed and replace when developing on MacOS sed -i "s@${VAR_NAME}=xxx@${VAR_NAME}=${VAR_VAL}@g" ../environments/.env.$TAG done diff --git a/scripts/monitor_ci.js b/scripts/monitor_ci.js index 6b92a778c..c95a23841 100755 --- a/scripts/monitor_ci.js +++ b/scripts/monitor_ci.js @@ -3,7 +3,7 @@ /** * Part of E2E Monitor test run for staging and master builds * Script queries the repository to discover whether a contract - * published to Rinkeby in CI has been picked up and saved by the + * published to {chainID} in CI has been picked up and saved by the * monitor. */ @@ -20,7 +20,7 @@ if (!chainID || !chainName) { process.exit(1); } -const artifact = require("../metacoin-source-verify/build/contracts/MetaCoin.json"); +const artifact = require("../metacoin-source-verify/MetaCoin.json"); const address = artifact.networks[chainID].address; async function main() { diff --git a/scripts/monitor_ci.sh b/scripts/monitor_ci.sh index 0ceb8b9a6..0bfa5d26e 100755 --- a/scripts/monitor_ci.sh +++ b/scripts/monitor_ci.sh @@ -6,7 +6,7 @@ git clone https://github.com/sourcifyeth/metacoin-source-verify.git cd metacoin-source-verify npm ci -# Publishes sources to IPFS (via Infura) and deploys contracts to Ropsten, Rinkeby, or Goerli +# Publishes sources to IPFS and deploys contracts to Goerli or Sepolia # Account key and Infura project ID are Circle CI env variable settings. npm run deploy:$CHAIN_NAME || exit 1 diff --git a/scripts/publish_to_npm.sh b/scripts/publish_to_npm.sh index 123c422a7..f4b26bf77 100755 --- a/scripts/publish_to_npm.sh +++ b/scripts/publish_to_npm.sh @@ -1,51 +1,51 @@ #!/bin/bash -CORE_LOCAL_VERSION=$(cat services/core/package.json \ +BYTECODE_UTILS_LOCAL_VERSION=$(cat packages/bytecode-utils/package.json \ | grep version \ | head -1 \ | awk -F: '{ print $2 }' \ | sed 's/[",]//g' \ | tr -d '[[:space:]]') -CORE_NPM_VERSION=$(npm view @ethereum-sourcify/core dist-tags.latest) +BYTECODE_UTILS_NPM_VERSION=$(npm view @ethereum-sourcify/bytecode-utils dist-tags.latest) -VALIDATION_LOCAL_VERSION=$(cat services/validation/package.json \ +CONTRACT_CALL_DECODER_LOCAL_VERSION=$(cat packages/contract-call-decoder/package.json \ | grep version \ | head -1 \ | awk -F: '{ print $2 }' \ | sed 's/[",]//g' \ | tr -d '[[:space:]]') -VALIDATION_NPM_VERSION=$(npm view @ethereum-sourcify/validation dist-tags.latest) +CONTRACT_CALL_DECODER_NPM_VERSION=$(npm view @ethereum-sourcify/contract-call-decoder dist-tags.latest) -VERIFICATION_LOCAL_VERSION=$(cat services/verification/package.json \ +LIB_SOURCIFY_LOCAL_VERSION=$(cat packages/lib-sourcify/package.json \ | grep version \ | head -1 \ | awk -F: '{ print $2 }' \ | sed 's/[",]//g' \ | tr -d '[[:space:]]') -VERIFICATION_NPM_VERSION=$(npm view @ethereum-sourcify/verification dist-tags.latest) +LIB_SOURCIFY_NPM_VERSION=$(npm view @ethereum-sourcify/lib-sourcify dist-tags.latest) npm config set //registry.npmjs.org/:_authToken=${NPM_TOKEN} -if [ $CORE_LOCAL_VERSION = $CORE_NPM_VERSION ]; then - echo "@ethereum-sourcify/core:" +if [ $BYTECODE_UTILS_LOCAL_VERSION = $BYTECODE_UTILS_NPM_VERSION ]; then + echo "@ethereum-sourcify/bytecode-utils:" echo "Latest npm version is equal to current package version. Up the version to publish to npm." else - npm publish services/core/ --verbose --access=public + npm publish packages/bytecode-utils/ --verbose --access=public fi -if [ $VALIDATION_LOCAL_VERSION = $VALIDATION_NPM_VERSION ]; then - echo "@ethereum-sourcify/validation:" +if [ $CONTRACT_CALL_DECODER_LOCAL_VERSION = $CONTRACT_CALL_DECODER_NPM_VERSION ]; then + echo "@ethereum-sourcify/contract-call-decoder:" echo "Latest npm version is equal to current package version. Up the version to publish to npm." else - npm publish services/validation/ --verbose --access=public + npm publish packages/contract-call-decoder/ --verbose --access=public fi -if [ $VERIFICATION_LOCAL_VERSION = $VERIFICATION_NPM_VERSION ]; then - echo "@ethereum-sourcify/verification:" +if [ $LIB_SOURCIFY_LOCAL_VERSION = $LIB_SOURCIFY_NPM_VERSION ]; then + echo "@ethereum-sourcify/lib-sourcify:" echo "Latest npm version is equal to current package version. Up the version to publish to npm." else - npm publish services/verification/ --verbose --access=public -fi + npm publish packages/lib-sourcify/ --verbose --access=public +fi \ No newline at end of file diff --git a/scripts/setup.sh b/scripts/setup.sh index b672856f8..d20fca3d2 100755 --- a/scripts/setup.sh +++ b/scripts/setup.sh @@ -15,7 +15,7 @@ else git reset --hard origin/${CIRCLE_BRANCH} fi -COMPOSE_COMMAND="COMPOSE_PROJECT_NAME=${TAG} docker-compose -f ipfs.yaml -f monitor.yaml -f repository.yaml -f s3.yaml -f server.yaml -f ui.yaml" +COMPOSE_COMMAND="COMPOSE_PROJECT_NAME=${TAG} docker-compose -f ipfs.yaml -f monitor.yaml -f repository.yaml -f s3.yaml -f server.yaml -f ui.yaml -f grafana.yaml" TAG=$TAG ./scripts/find_replace.sh diff --git a/scripts/test_new_chain_support.sh b/scripts/test_new_chain_support.sh index 91d51a6b7..c5192b13e 100755 --- a/scripts/test_new_chain_support.sh +++ b/scripts/test_new_chain_support.sh @@ -4,7 +4,7 @@ # from https://stackoverflow.com/questions/55839004/circleci-regex-filtering-match-within-string -NEW_CHAIN_REGEX='.*add-chain-(\d+)' +NEW_CHAIN_REGEX='.*(add|update)-chain-(\d+)' # if CIRCLE_PR_NUMBER is NOT set (meaning it is not a PR # from a forked repository), then CIRCLE_BRANCH will diff --git a/scripts/updateChains.mjs b/scripts/updateChains.mjs new file mode 100644 index 000000000..11978ec35 --- /dev/null +++ b/scripts/updateChains.mjs @@ -0,0 +1,9 @@ +import { promises } from "fs"; + +const chainsUrl = "https://chainid.network/chains.json"; +const chainsPath = "src/chains.json"; + +const result = await fetch(chainsUrl); +const chainsList = await result.text(); + +await promises.writeFile(chainsPath, chainsList); diff --git a/scripts/verification-e2e.js b/scripts/verification-e2e.js index 6e8ed4151..4b172970a 100644 --- a/scripts/verification-e2e.js +++ b/scripts/verification-e2e.js @@ -4,8 +4,10 @@ const { spawnSync } = require("child_process"); const deploymentChain = process.argv[2]; assert(deploymentChain, "No chain provided"); -const artifact = require("../metacoin-source-verify/build/contracts/MetaCoinSalted.json"); +const artifact = require("../metacoin-source-verify/MetaCoinSalted.json"); const deploymentAddress = artifact.networks[deploymentChain].address; +const buildInfoFilename = artifact.networks[deploymentChain].buildInfoFilename; + assert( deploymentAddress, `No address found - has the contract been deployed to chain ${deploymentChain}?` @@ -19,11 +21,9 @@ const args = [ "POST", serverUrl, "-F", - "files=@metacoin-source-verify/build/contracts/MetaCoinSalted.json", - "-F", - "files=@metacoin-source-verify/contracts/MetaCoinSalted.sol", + `files=@metacoin-source-verify/artifacts/build-info/${buildInfoFilename}`, "-F", - "files=@metacoin-source-verify/contracts/ConvertLib.sol", + "chosenContract=1", ]; if (deploymentChain) { diff --git a/scripts/verification-e2e.sh b/scripts/verification-e2e.sh index af0e26292..0d041fad1 100755 --- a/scripts/verification-e2e.sh +++ b/scripts/verification-e2e.sh @@ -8,9 +8,9 @@ npm ci # Test WITH providing address and chain npm run deploy-with-salt:$CHAIN_NAME || exit 3 -echo "Waiting 30 secs" -sleep 30 # Leave some buffer for blocks to propogate -echo "Waited 30 secs" +echo "Waiting 60 secs" +sleep 60 # Leave some buffer for blocks to propogate +echo "Waited 60 secs" cd .. node scripts/verification-e2e.js $CHAIN_ID || exit 4 diff --git a/scripts/verify-massively.mjs b/scripts/verify-massively.mjs new file mode 100644 index 000000000..b1019bb8a --- /dev/null +++ b/scripts/verify-massively.mjs @@ -0,0 +1,126 @@ +/** + * This program verifies all the contracts in repository/contracts/{MATCH_TYPE}/{CHAIN_ID} one after the other + * + * You need to give as input: + * - the repository folder: path + * - the MATCH_TYPE: full_match | partial_match + * - the CHAIN_ID: number + * + * You can set the environment variable "API_URL" to change the sourcify host, default: https://staging.sourcify.dev/server/verify + * + * example: + * node ./scripts/test-high-demand.mjs /home/user/sourcify/repository/contracts full_match 421613 + */ + +import fetch from 'node-fetch'; +import fs from 'fs' +import path from 'path' + +const API_URL = process.env.API_URL || 'https://staging.sourcify.dev/server/verify'; + +const verifyFiles = async (address, chain, files) => { + const contentType = 'application/json'; + const headers = { 'Content-Type': contentType }; + const body = { + files, + address, + chain, + }; + return await fetch(API_URL, { + method: 'POST', + headers, + body: JSON.stringify(body), + }) +} + +function exploreDirectory(dir, obj) { + // Get a list of all files in the directory + const files = fs.readdirSync(dir); + + // Loop through each file in the directory + for (const file of files) { + // Get the full path of the file + const filepath = `${dir}/${file}`; + + // Check if the file is a directory or a regular file + if (fs.statSync(filepath).isDirectory()) { + // If it's a directory, recursively explore it + exploreDirectory(filepath, obj); + } else { + // If it's a regular file, read its contents and add it to the object + obj[filepath] = fs.readFileSync(filepath, 'utf8'); + } + } +} + +export async function listFolders(dir) { + const files = await fs.promises.readdir(dir); + + const folders = files.filter(file => { + const filePath = path.join(dir, file); + return fs.promises.stat(filePath).then(stat => stat.isDirectory()); + }); + + return folders; +} + + +export async function verifyContractInPath(address, chain, contractPath) { + // create an empty object to hold the file contents + const files = {}; + + // start exploring the target directory + const targetDir = contractPath; + exploreDirectory(targetDir, files); + + + const filteredFiles = {} + for (const key of Object.keys(files)) { + filteredFiles[key.replace(targetDir, '')] = files[key] + } + + const res = await verifyFiles(address, chain, filteredFiles) + if (res.status !== 200) { + throw new Error(` +Request failed for ${address} with status ${res.status}, body: + +${await res.text()} + `) + } + const response = await res.json() + + console.log(res.status, response.result[0].status, response.result[0].address) +} + +if (process.argv?.length < 5) { + console.log("Provide all arguments") + process.exit() +} + +const args = process.argv.slice(2); + +const contractPath = args[0] +const matchType = args[1] +const chainId = args[2] + +if (!fs.existsSync(contractPath)) { + console.log("Path doesn't exists") + process.exit() +} + +if (matchType !== "partial_match" && matchType !== "full_match") { + console.log("matchType should be partial_match or full_match") + process.exit() +} + +const chainFolder = `${contractPath}/${matchType}/${chainId}/` +if (!fs.existsSync(chainFolder)) { + console.log("chainId doesn't exists in repo") + process.exit() +} + +const contracts = await listFolders(chainFolder) + +for (const contract of contracts) { + await verifyContractInPath(contract, chainId, `${chainFolder}${contract}`) +} \ No newline at end of file diff --git a/services/contract-call-decoder/build/index.d.ts b/services/contract-call-decoder/build/index.d.ts deleted file mode 100644 index 07eb53b15..000000000 --- a/services/contract-call-decoder/build/index.d.ts +++ /dev/null @@ -1,176 +0,0 @@ -import Web3 from "web3"; -import { AbiItem } from "web3-utils"; -import { Transaction } from "web3-core"; -declare type MetadataOutput = { - abi: AbiItem[]; - userdoc: any; - devdoc: any; -}; -declare type DecodedMetadataHash = { - origin: string; - hash: string; -}; -declare type DecodeOutput = { - functionName: "string"; - params: any; - userdoc: - | { - notice: string; - } - | undefined; - devdoc: - | { - details: string | undefined; - params: any; - returns: any; - } - | undefined; -}; -export default class ContractCallDecoder { - private web3; - private ipfsGateway; - utils: Web3["utils"]; - private timeout; - constructor(rpcURL?: string, ipfsGateway?: string, timeout?: number); - /** - * Main functionality of the ContractCallDecoder - * - * @param tx - Web3 Transaction object - * @param contractAddress - * @returns - */ - decode(tx: Transaction): Promise; - /** - * Funcion to fetch the metadata from IPFS. Requires the gateway to accept links as /ipfs/ - * - * @param metadataHash - hash and origin of the metadata to be fetched - * @returns the metadata file as an object - */ - fetchMetadataWithHash(metadataHash: DecodedMetadataHash): Promise; - fetchMetadataOutputWithHash( - metadataHash: DecodedMetadataHash - ): Promise; - /** - * Decodes a cbor encoded string into an object - * - * @param hexStringByteCode - * @returns - */ - static decodeCborAtTheEnd(hexStringByteCode: string): any; - static getHashFromDecodedCbor(decodedCbor: any): DecodedMetadataHash; - /** - * Wrapper function to directly decode the whole bytecode. - * - * @param {string} -hexStringByteCode bytecode in hex - * @return {MetadataOutput} the hash decoded from bytecode and its format - * @example - * { origin: "ipfs", hash: "QmarHSr9aSNaPSR6G9KFPbuLV9aEqJfTk1y9B8pdwqK4Rq"} - */ - static decodeMetadataHash(hexStringByteCode: string): DecodedMetadataHash; - /** - * Function to decode a human readable documentation for the called function. - * - * @param tx - Transaction object - * @param metadataOutput - output field of the metadata.json. Includes abi, userdoc, devdoc - * @returns an Object with all extractable useful information - * - * @example - * return { - * functionName: 'mint', - * params: [ - * { - * name: '_to', - * type: 'address', - * value: '0xAA6042aa65eb93C6439cDaeBC27B3bd09c5DFe94' - * }, - * { name: '_amount', type: 'uint256', value: '1000000000000000000' } - * ], - * userdoc: { - * notice: 'Creates 1000000000000000000 token to 0xAA6042aa65eb93C6439cDaeBC27B3bd09c5DFe94. Must only be called by the owner (MasterChef).' - * }, - * devdoc: undefined - * } - */ - decodeDocumentation( - tx: Transaction, - metadataOutput: MetadataOutput - ): Promise; - /** - * Function to generate the standard function signature from an AbiItem. - * - * Function signature === 'mint(address,uint256)' - * - * Function signature !== '0x4fa2d1f9' - * - * Function signature is the function name + parameter types that is hashed to create the function selector/function ID. The (first 4 bytes of the) hash is sometimes wrongly named as the "function signature" but the signature is the unhashed version. See https://docs.soliditylang.org/en/v0.8.8/abi-spec.html#function-selector - * - * @param functionAbiItem - * @returns - * @example - * // returns "mint(address,uint256)" - * generateFunctionSignature({ - "inputs": [ - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }) - */ - generateFunctionSignature(functionAbiItem: AbiItem): string; - /** - * Function to find the function in the abi array, using its signatureHash. - * - * @param functionSignatureHash - * @param abi - * @returns The matched AbiItem - * - * @example - * const abiItem: AbiItem = findAbiItemFromSignature('0x4fdba32d', [...]) - * console.log(abiItem) - * // returns - * { - "inputs": [ - { "internalType": "address", "name": "owner", "type": "address" }, - { "internalType": "address", "name": "spender", "type": "address" } - ], - "name": "allowance", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "stateMutability": "view", - "type": "function" - } - */ - findAbiItemFromSignatureHash( - functionSignatureHash: string, - abi: AbiItem[] - ): AbiItem; - /** - * Funtion to parse and fill the variables in the dynamic NatSpec expression - * - * @param expression - @notice or @dev comments of functions in dynamic Natspec - * @param abi - the whole abi array of the contract - * @param tx - Transaction object - * @returns filled NatSpec - * @example - * // returns "Sends 100000000 tokens to 0x88B6d1389736270c16604EeC0c1fdA318dc7e3BC" - * fillNatSpecExpression("Sends `_amount` tokens to `_address`", [{},...,{}], "0xa2fs...21a") - */ - fillNatSpecExpression( - expression: string, - abi: AbiItem[], - tx: Transaction - ): string; - private isAddress; - /** - * Function to fetch the contract deployed byte code. Requires the address of the contract - * - * @param address - Contract address - * @returns the deployed bytecode as a string - */ - fetchDeployedByteCode(address: string): Promise; -} -export {}; diff --git a/services/contract-call-decoder/build/index.js b/services/contract-call-decoder/build/index.js deleted file mode 100644 index a1749fba6..000000000 --- a/services/contract-call-decoder/build/index.js +++ /dev/null @@ -1,381 +0,0 @@ -var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; -import { evaluate } from "@ethereum-sourcify/radspec"; -import { decodeFirstSync } from "cbor"; -import { toB58String } from "multihashes"; -import fetch from "node-fetch"; -import timeoutSignal from "timeout-signal"; -import Web3 from "web3"; -import web3utils from "web3-utils"; -const { hexToBytes, bytesToHex } = web3utils; -const bytesToHashProcessors = [ - { origin: "ipfs", process: toB58String }, - { origin: "bzzr0", process: (data) => bytesToHex([...data]).slice(2) }, - { origin: "bzzr1", process: (data) => bytesToHex([...data]).slice(2) }, -]; -export default class ContractCallDecoder { - // TODO: Make IPFS argument a callback/promise to let non-http but tcp connections - constructor( - rpcURL = "http://localhost:8545", - ipfsGateway = "https://cloudflare-ipfs.com", - timeout = 30000 - ) { - this.web3 = new Web3(rpcURL); - this.utils = this.web3.utils; - this.ipfsGateway = ipfsGateway; - this.timeout = timeout; // timeout to wait for the IPFS gateway response. - } - /** - * Main functionality of the ContractCallDecoder - * - * @param tx - Web3 Transaction object - * @param contractAddress - * @returns - */ - decode(tx) { - return __awaiter(this, void 0, void 0, function* () { - if (tx.input == "0x") - // not a contract call - return null; - const contractAddress = tx.to; - const contractByteCode = yield this.fetchDeployedByteCode( - contractAddress - ); - const metadataHash = - ContractCallDecoder.decodeMetadataHash(contractByteCode); - const metadataOutput = yield this.fetchMetadataOutputWithHash( - metadataHash - ); - const documentation = yield this.decodeDocumentation(tx, metadataOutput); - return documentation; - }); - } - /** - * Funcion to fetch the metadata from IPFS. Requires the gateway to accept links as /ipfs/ - * - * @param metadataHash - hash and origin of the metadata to be fetched - * @returns the metadata file as an object - */ - fetchMetadataWithHash(metadataHash) { - return __awaiter(this, void 0, void 0, function* () { - let response; - if (metadataHash.origin !== "ipfs") - throw new Error( - `Unsupported origin: ${metadataHash.origin}, only ipfs is supported` - ); - try { - response = yield fetch( - `${this.ipfsGateway}/ipfs/${metadataHash.hash}`, - { signal: timeoutSignal(this.timeout) } - ); - } catch (err) { - // Catch timeout - if (err.type === "aborted") { - throw new Error( - `Timeout fetching from the IPFS gateway ${this.ipfsGateway}` - ); - } - throw err; - } - if (response.ok) { - // OK - return response.json(); - } else { - // Send Error message - const msg = yield response.text(); - throw new Error(msg); - } - }); - } - fetchMetadataOutputWithHash(metadataHash) { - return __awaiter(this, void 0, void 0, function* () { - const metadata = yield this.fetchMetadataWithHash(metadataHash); - return metadata.output; - }); - } - /** - * Decodes a cbor encoded string into an object - * - * @param hexStringByteCode - * @returns - */ - static decodeCborAtTheEnd(hexStringByteCode) { - const numArrayByteCode = hexToBytes(hexStringByteCode); // convert to number array - const cborLength = - numArrayByteCode[numArrayByteCode.length - 2] * 0x100 + - numArrayByteCode[numArrayByteCode.length - 1]; // length of cbor coded section - const cborBuffer = Buffer.from( - numArrayByteCode.slice(numArrayByteCode.length - 2 - cborLength, -2) - ); // get cbor decoded section from the end of bytecode - const decodedObject = decodeFirstSync(Buffer.from(cborBuffer)); - return decodedObject; - } - static getHashFromDecodedCbor(decodedCbor) { - // check which protocol the decoded object matches. ipfs, bzzr1... etc. Decode the string according to the protocol's hash format. - for (const processor of bytesToHashProcessors) { - const origin = processor.origin; - if (decodedCbor[origin]) - return { origin, hash: processor.process(decodedCbor[origin]) }; - } - throw new Error( - `Couldn't find an ipfs, bzzr0, or bzzr1 cbor code to decode.` - ); - } - /** - * Wrapper function to directly decode the whole bytecode. - * - * @param {string} -hexStringByteCode bytecode in hex - * @return {MetadataOutput} the hash decoded from bytecode and its format - * @example - * { origin: "ipfs", hash: "QmarHSr9aSNaPSR6G9KFPbuLV9aEqJfTk1y9B8pdwqK4Rq"} - */ - static decodeMetadataHash(hexStringByteCode) { - const decodedCbor = this.decodeCborAtTheEnd(hexStringByteCode); - return this.getHashFromDecodedCbor(decodedCbor); - } - /** - * Function to decode a human readable documentation for the called function. - * - * @param tx - Transaction object - * @param metadataOutput - output field of the metadata.json. Includes abi, userdoc, devdoc - * @returns an Object with all extractable useful information - * - * @example - * return { - * functionName: 'mint', - * params: [ - * { - * name: '_to', - * type: 'address', - * value: '0xAA6042aa65eb93C6439cDaeBC27B3bd09c5DFe94' - * }, - * { name: '_amount', type: 'uint256', value: '1000000000000000000' } - * ], - * userdoc: { - * notice: 'Creates 1000000000000000000 token to 0xAA6042aa65eb93C6439cDaeBC27B3bd09c5DFe94. Must only be called by the owner (MasterChef).' - * }, - * devdoc: undefined - * } - */ - decodeDocumentation(tx, metadataOutput) { - var _a, _b; - return __awaiter(this, void 0, void 0, function* () { - // 0x + 4bytes - const functionSignatureHash = tx.input.slice(0, 10); - const hexTxInputData = tx.input.slice(10); - const functionAbiItem = this.findAbiItemFromSignatureHash( - functionSignatureHash, - metadataOutput.abi - ); - const paramValues = this.web3.eth.abi.decodeParameters( - functionAbiItem.inputs, - hexTxInputData - ); - const params = functionAbiItem.inputs.map((param) => { - return { - name: param.name, - type: param.type, - value: paramValues[param.name], - }; - }); - const functionSignature = this.generateFunctionSignature(functionAbiItem); - const userdocItem = - (_a = metadataOutput.userdoc) === null || _a === void 0 - ? void 0 - : _a.methods[functionSignature]; - const devdocItem = - (_b = metadataOutput.devdoc) === null || _b === void 0 - ? void 0 - : _b.methods[functionSignature]; - const userdocExpression = - userdocItem && - userdocItem.notice && - (yield this.fillNatSpecExpression( - userdocItem.notice, - metadataOutput.abi, - tx - )); - const devdocExpression = - devdocItem && - devdocItem.details && - (yield this.fillNatSpecExpression( - devdocItem.details, - metadataOutput.abi, - tx - )); - return { - functionName: functionAbiItem.name, - params, - userdoc: - userdocItem && - Object.assign(Object.assign({}, userdocItem), { - notice: userdocExpression, - }), - devdoc: - devdocItem && - Object.assign(Object.assign({}, devdocItem), { - details: devdocExpression, - }), - }; - }); - } - /** - * Function to generate the standard function signature from an AbiItem. - * - * Function signature === 'mint(address,uint256)' - * - * Function signature !== '0x4fa2d1f9' - * - * Function signature is the function name + parameter types that is hashed to create the function selector/function ID. The (first 4 bytes of the) hash is sometimes wrongly named as the "function signature" but the signature is the unhashed version. See https://docs.soliditylang.org/en/v0.8.8/abi-spec.html#function-selector - * - * @param functionAbiItem - * @returns - * @example - * // returns "mint(address,uint256)" - * generateFunctionSignature({ - "inputs": [ - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }) - */ - generateFunctionSignature(functionAbiItem) { - const typeNamesStr = functionAbiItem.inputs - .map((inputItem) => inputItem.type) - .join(","); // e.g. 'address,uint26,uint8' or '' if empty - return `${functionAbiItem.name}(${typeNamesStr})`; - } - /** - * Function to find the function in the abi array, using its signatureHash. - * - * @param functionSignatureHash - * @param abi - * @returns The matched AbiItem - * - * @example - * const abiItem: AbiItem = findAbiItemFromSignature('0x4fdba32d', [...]) - * console.log(abiItem) - * // returns - * { - "inputs": [ - { "internalType": "address", "name": "owner", "type": "address" }, - { "internalType": "address", "name": "spender", "type": "address" } - ], - "name": "allowance", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "stateMutability": "view", - "type": "function" - } - */ - findAbiItemFromSignatureHash(functionSignatureHash, abi) { - // Generate function signature hashes in the abi - const abiFunctionSignatureHashes = abi.map((abiFunc) => { - // skip non functions e.g. constructor, event - if (abiFunc.type !== "function") { - return ""; - } - return this.web3.eth.abi.encodeFunctionSignature(abiFunc); - }); - const calledFunctionIndex = abiFunctionSignatureHashes.indexOf( - functionSignatureHash - ); - if (calledFunctionIndex === -1) { - throw new Error( - `Couldn't find the function with signature ${functionSignatureHash} in the given abi` - ); - } - return abi[calledFunctionIndex]; - } - /** - * Funtion to parse and fill the variables in the dynamic NatSpec expression - * - * @param expression - @notice or @dev comments of functions in dynamic Natspec - * @param abi - the whole abi array of the contract - * @param tx - Transaction object - * @returns filled NatSpec - * @example - * // returns "Sends 100000000 tokens to 0x88B6d1389736270c16604EeC0c1fdA318dc7e3BC" - * fillNatSpecExpression("Sends `_amount` tokens to `_address`", [{},...,{}], "0xa2fs...21a") - */ - fillNatSpecExpression(expression, abi, tx) { - const call = { - abi: abi, - transaction: Object.assign(Object.assign({}, tx), { - data: tx.input, // radspec expects data instead of input - }), - }; - const messagePromise = evaluate(expression, call); - return messagePromise; - } - isAddress(address) { - try { - return this.utils.isAddress(address); - } catch (_a) { - return false; - } - } - /** - * Function to fetch the contract deployed byte code. Requires the address of the contract - * - * @param address - Contract address - * @returns the deployed bytecode as a string - */ - fetchDeployedByteCode(address) { - return __awaiter(this, void 0, void 0, function* () { - if (!address) { - throw new Error("No contract address defined."); - } - if (!this.isAddress(address)) { - throw Error(`Invalid 'address' parameter '${address}'.`); - } - let byteCode; - try { - byteCode = yield this.web3.eth.getCode(address); - } catch (err) { - throw new Error(`Could not get bytecode for ${address}`); - } - if (byteCode === "0x0" || byteCode === "0x") { - throw new Error(`No bytecode found at ${address}`); - } - return byteCode; - }); - } -} -//# sourceMappingURL=index.js.map diff --git a/services/contract-call-decoder/build/index.js.map b/services/contract-call-decoder/build/index.js.map deleted file mode 100644 index d1314bb48..000000000 --- a/services/contract-call-decoder/build/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,QAAQ,EAAC,MAAM,4BAA4B,CAAC;AACpD,OAAO,SAAoB,MAAM,YAAY,CAAC;AAG9C,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;AA6B7C,MAAM,qBAAqB,GAAgB;IACvC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;IACxC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACtE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;CACzE,CAAA;AACD,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAUtC,kFAAkF;IAClF,YAAY,MAAM,GAAG,uBAAuB,EAAE,WAAW,GAAG,2BAA2B,EAAE,OAAO,GAAG,KAAK;QACtG,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,iDAAiD;IAC3E,CAAC;IAED;;;;;;OAMG;IACU,MAAM,CAAC,EAAe;;YACjC,IAAI,EAAE,CAAC,KAAK,IAAI,IAAI,EAAE,sBAAsB;gBAC1C,OAAO,IAAI,CAAC;YACd,MAAM,eAAe,GAAG,EAAE,CAAC,EAAE,CAAC;YAC9B,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;YAC3E,MAAM,YAAY,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;YAC9E,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC;YAC5E,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;YACzE,OAAO,aAAa,CAAC;QACvB,CAAC;KAAA;IAED;;;;;OAKG;IACG,qBAAqB,CAAC,YAAiC;;YAC3D,IAAI,QAAQ,CAAC;YACb,IAAI,YAAY,CAAC,MAAM,KAAK,MAAM;gBAChC,MAAM,IAAI,KAAK,CAAC,uBAAuB,YAAY,CAAC,MAAM,0BAA0B,CAAC,CAAC;YACxF,IAAI;gBACF,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,SAAS,YAAY,CAAC,IAAI,EAAE,EAAE,EAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC;aAChH;YAAC,OAAO,GAAQ,EAAE,EAAE,gBAAgB;gBACnC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE;oBAC1B,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;iBAC9E;gBACD,MAAM,GAAG,CAAC;aACX;YAED,IAAI,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK;gBACtB,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;aACxB;iBAAM,EAAE,qBAAqB;gBAC5B,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;aACrB;QACH,CAAC;KAAA;IAEK,2BAA2B,CAAC,YAAiC;;YACjE,MAAM,QAAQ,GAAQ,MAAM,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;YACrE,OAAO,QAAQ,CAAC,MAAM,CAAC;QACzB,CAAC;KAAA;IACD;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,iBAAyB;QACjD,MAAM,gBAAgB,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,0BAA0B;QAClF,MAAM,UAAU,GAAW,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,+BAA+B;QACjK,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oDAAoD;QAC1J,MAAM,aAAa,GAAQ,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACpE,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,sBAAsB,CAAC,WAAgB;QAC1C,kIAAkI;QAClI,KAAK,MAAM,SAAS,IAAI,qBAAqB,EAAE;YAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;YAChC,IAAI,WAAW,CAAC,MAAM,CAAC;gBACrB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAC,CAAA;SACjE;QACD,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACnF,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,kBAAkB,CAAC,iBAAyB;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,mBAAmB,CAAE,EAAe,EAAE,cAA8B;;;YACxE,cAAc;YACd,MAAM,qBAAqB,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC;YACnD,MAAM,cAAc,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,4BAA4B,CAAC,qBAAqB,EAAE,cAAc,CAAC,GAAG,CAAC,CAAA;YACpG,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAC/F,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAChD,OAAO,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC,CAAA;YAC7E,CAAC,CAAC,CAAC;YACH,MAAM,iBAAiB,GAAG,IAAI,CAAC,yBAAyB,CAAC,eAAe,CAAC,CAAC;YAC1E,MAAM,WAAW,GAAG,MAAA,cAAc,CAAC,OAAO,0CAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACvE,MAAM,UAAU,GAAG,MAAA,cAAc,CAAC,MAAM,0CAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACrE,MAAM,iBAAiB,GAAG,WAAW,IAAI,WAAW,CAAC,MAAM,KAAI,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA,CAAC;YAC5I,MAAM,gBAAgB,GAAG,UAAU,IAAI,UAAU,CAAC,OAAO,KAAI,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA,CAAC;YAE1I,OAAO;gBACH,YAAY,EAAE,eAAe,CAAC,IAAI;gBAClC,MAAM;gBACN,OAAO,EAAE,WAAW,oCAAQ,WAAW,KAAE,MAAM,EAAE,iBAAiB,GAAC;gBACnE,MAAM,EAAE,UAAU,oCAAQ,UAAU,KAAE,OAAO,EAAE,gBAAgB,GAAC;aACjE,CAAC;;KACL;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,yBAAyB,CAAC,eAAwB;QAChD,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAC,6CAA6C;QACpI,OAAO,GAAG,eAAe,CAAC,IAAI,IAAI,YAAY,GAAG,CAAC;IACpD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,4BAA4B,CAAC,qBAA6B,EAAE,GAAc;QACxE,gDAAgD;QAChD,MAAM,0BAA0B,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE;YACpD,6CAA6C;YAC7C,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC/B,OAAO,EAAE,CAAC;aACX;YACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC,CAAA;QAEH,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACtF,IAAI,mBAAmB,KAAK,CAAC,CAAC,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,6CAA6C,qBAAqB,mBAAmB,CAAC,CAAA;SACvG;QACD,OAAO,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;;OAUG;IACH,qBAAqB,CAAC,UAAkB,EAAE,GAAc,EAAE,EAAe;QACvE,MAAM,IAAI,GAAG;YACX,GAAG,EAAE,GAAG;YACR,WAAW,kCACN,EAAE,KACL,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,wCAAwC;eACxD;SACF,CAAA;QACD,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QACjD,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,SAAS,CAAC,OAAe;QAC/B,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SACtC;QAAC,WAAM;YACN,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED;;;;;OAKG;IACG,qBAAqB,CAAC,OAAe;;YACzC,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;aACjD;YAED,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBAC5B,MAAM,KAAK,CAAC,gCAAgC,OAAO,IAAI,CAAC,CAAC;aAC1D;YAED,IAAI,QAAQ,CAAC;YACb,IAAI;gBACF,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aACjD;YAAC,OAAM,GAAG,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;aAC1D;YACD,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,IAAI,EAAE;gBAC3C,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAA;aACnD;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;CACF"} \ No newline at end of file diff --git a/services/core/.gitignore b/services/core/.gitignore deleted file mode 100644 index 609a79c4b..000000000 --- a/services/core/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -build -test diff --git a/services/core/package-lock.json b/services/core/package-lock.json deleted file mode 100644 index d2621e27b..000000000 --- a/services/core/package-lock.json +++ /dev/null @@ -1,7639 +0,0 @@ -{ - "name": "@ethereum-sourcify/core", - "version": "0.2.10", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@ethereum-sourcify/core", - "version": "0.2.10", - "license": "MIT", - "dependencies": { - "bunyan": "^1.8.15", - "cbor": "^5.1.0", - "directory-tree": "^2.2.4", - "node-fetch": "^2.6.1", - "rimraf": "^3.0.2", - "semver": "^7.3.7", - "web3": "^1.3.0" - }, - "bin": { - "sourcify-core": "build/index.js" - }, - "devDependencies": { - "@types/bunyan": "^1.8.6", - "@types/cbor": "^5.0.1", - "@types/node-fetch": "^2.5.7", - "@types/rimraf": "^3.0.2", - "@types/semver": "^7.3.10", - "typescript": "^4.0.2" - } - }, - "node_modules/@ethereumjs/common": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.4.tgz", - "integrity": "sha512-RDJh/R/EAr+B7ZRg5LfJ0BIpf/1LydFgYdvZEuTraojCbVypO2sQ+QnpP5u2wJf9DASyooKqu8O4FJEWUV6NXw==", - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" - } - }, - "node_modules/@ethereumjs/tx": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.1.tgz", - "integrity": "sha512-xzDrTiu4sqZXUcaBxJ4n4W5FrppwxLxZB4ZDGVLtxSQR4lVuOnFR6RcUHdg1mpUhAPVrmnzLJpxaeXnPxIyhWA==", - "dependencies": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" - } - }, - "node_modules/@ethersproject/abi": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", - "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", - "dependencies": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz", - "integrity": "sha512-oPMFlKLN+g+y7a79cLK3WiLcjWFnZQtXWgnLAbHZcN3s7L4v90UHpTOrLk+m3yr0gt+/h9STTM6zrr7PM8uoRw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.1.tgz", - "integrity": "sha512-xhSLo6y0nGJS7NxfvOSzCaWKvWb1TLT7dQ0nnpHZrDnC67xfnWm9NXflTMFPUXXMtjr33CdV0kWDEmnbrQZ74Q==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "node_modules/@ethersproject/address": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.0.tgz", - "integrity": "sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "node_modules/@ethersproject/base64": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.0.tgz", - "integrity": "sha512-2Neq8wxJ9xHxCF9TUgmKeSh9BXJ6OAxWfeGWvbauPh8FuHEjamgHilllx8KkSd5ErxyHIX7Xv3Fkcud2kY9ezw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "node_modules/@ethersproject/bignumber": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.1.tgz", - "integrity": "sha512-UtMeZ3GaUuF9sx2u9nPZiPP3ULcAFmXyvynR7oHl/tPrM+vldZh7ocMsoa1PqKYGnQnqUZJoqxZnGN6J0qdipA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "node_modules/@ethersproject/bytes": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", - "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/constants": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.0.tgz", - "integrity": "sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "node_modules/@ethersproject/hash": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.0.tgz", - "integrity": "sha512-fFd+k9gtczqlr0/BruWLAu7UAOas1uRRJvOR84uDf4lNZ+bTkGl366qvniUZHKtlqxBRU65MkOobkmvmpHU+jA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "node_modules/@ethersproject/keccak256": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.0.tgz", - "integrity": "sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "node_modules/@ethersproject/logger": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", - "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] - }, - "node_modules/@ethersproject/networks": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.2.tgz", - "integrity": "sha512-9uEzaJY7j5wpYGTojGp8U89mSsgQLc40PCMJLMCnFXTs7nhBveZ0t7dbqWUNrepWTszDbFkYD6WlL8DKx5huHA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/properties": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz", - "integrity": "sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/rlp": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.0.tgz", - "integrity": "sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/signing-key": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.1.tgz", - "integrity": "sha512-XvqQ20DH0D+bS3qlrrgh+axRMth5kD1xuvqUQUTeezxUTXBOeR6hWz2/C6FBEu39FRytyybIWrYf7YLSAKr1LQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/strings": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.0.tgz", - "integrity": "sha512-uv10vTtLTZqrJuqBZR862ZQjTIa724wGPWQqZrofaPI/kUsf53TBG0I0D+hQ1qyNtllbNzaW+PDPHHUI6/65Mg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/transactions": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.0.tgz", - "integrity": "sha512-4HX+VOhNjXHZyGzER6E/LVI2i6lf9ejYeWD6l4g50AdmimyuStKc39kvKf1bXWQMg7QNVh+uC7dYwtaZ02IXeg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "node_modules/@ethersproject/web": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.0.tgz", - "integrity": "sha512-G/XHj0hV1FxI2teHRfCGvfBUHFmU+YOSbCxlAMqJklxSa7QMiHFQfAxvwY2PFqgvdkxEKwRNr/eCjfAPEm2Ctg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/bunyan": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.8.tgz", - "integrity": "sha512-Cblq+Yydg3u+sGiz2mjHjC5MPmdjY+No4qvHrF+BUhblsmSfMvsHLbOG62tPbonsqBj6sbWv1LHcsoe5Jw+/Ow==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cbor": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/cbor/-/cbor-5.0.1.tgz", - "integrity": "sha512-zVqJy2KzusZPLOgyGJDnOIbu3DxIGGqxYbEwtEEe4Z+la8jwIhOyb+GMrlHafs5tvKruwf8f8qOYP6zTvse/pw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "17.0.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.34.tgz", - "integrity": "sha512-XImEz7XwTvDBtzlTnm8YvMqGW/ErMWBsKZ+hMTvnDIjGCKxwK5Xpc+c/oQjOauwq8M4OS11hEkpjX8rrI/eEgA==" - }, - "node_modules/@types/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==", - "dev": true, - "dependencies": { - "@types/glob": "*", - "@types/node": "*" - } - }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/semver": { - "version": "7.3.10", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.10.tgz", - "integrity": "sha512-zsv3fsC7S84NN6nPK06u79oWgrPVd0NvOyqgghV1haPaFcVxIrP4DLomRwGAXk0ui4HZA7mOcSFL98sMVW9viw==", - "dev": true - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "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/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", - "engines": { - "node": "*" - } - }, - "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/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "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/body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "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/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-rsa/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "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": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==" - }, - "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.6", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz", - "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/bunyan": { - "version": "1.8.15", - "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.15.tgz", - "integrity": "sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==", - "engines": [ - "node >=0.10.0" - ], - "bin": { - "bunyan": "bin/bunyan" - }, - "optionalDependencies": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, - "node_modules/cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "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/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", - "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "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/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "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/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "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/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/directory-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/directory-tree/-/directory-tree-2.3.1.tgz", - "integrity": "sha512-hxolIHCtQ/a56CUywaLzGD/V78zPwFihI+UK/4ZjOp7GoV4Mptmtv95yavOn/RlnTi7cCMjszvfcNrwCoWLH+Q==", - "engines": { - "node": ">=10.0" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "node_modules/dtrace-provider": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz", - "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "nan": "^2.14.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "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/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.61", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.61.tgz", - "integrity": "sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA==", - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "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": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "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-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", - "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "node_modules/eth-ens-namehash/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" - }, - "node_modules/eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/ethereum-bloom-filters": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", - "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", - "dependencies": { - "js-sha3": "^0.8.0" - } - }, - "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.4", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", - "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", - "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-util/node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "node_modules/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" - }, - "node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" - }, - "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/express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", - "dependencies": { - "type": "^2.5.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.6.0.tgz", - "integrity": "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "engines": { - "node": "*" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dependencies": { - "has-symbol-support-x": "^1.4.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "dependencies": { - "punycode": "2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", - "engines": { - "node": ">=6" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "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/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "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/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", - "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "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/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lru-cache/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "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/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "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": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", - "deprecated": "This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.", - "dependencies": { - "mkdirp": "*" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mock-fs": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", - "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==" - }, - "node_modules/moment": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", - "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "varint": "^5.0.0" - } - }, - "node_modules/multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/mv": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", - "optional": true, - "dependencies": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/mv/node_modules/glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "optional": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mv/node_modules/rimraf": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", - "optional": true, - "dependencies": { - "glob": "^6.0.1" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "optional": true - }, - "node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" - }, - "node_modules/ncp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", - "optional": true, - "bin": { - "ncp": "bin/ncp" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "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-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-gyp-build": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", - "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=", - "dependencies": { - "http-https": "^1.0.0" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-headers": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", - "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "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/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "engines": { - "node": ">=4" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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/rlp/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "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/safe-json-stringify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", - "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", - "optional": true - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "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/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "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/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "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/simple-get": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", - "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "engines": { - "node": ">=0.10.0" - } - }, - "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.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/swarm-js": { - "version": "0.1.40", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", - "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "node_modules/swarm-js/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/swarm-js/node_modules/url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "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-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "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": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" - }, - "node_modules/url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "engines": { - "node": ">= 4" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz", - "integrity": "sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==", - "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": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/web3": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.7.3.tgz", - "integrity": "sha512-UgBvQnKIXncGYzsiGacaiHtm0xzQ/JtGqcSO/ddzQHYxnNuwI72j1Pb4gskztLYihizV9qPNQYHMSCiBlStI9A==", - "hasInstallScript": true, - "dependencies": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.7.3.tgz", - "integrity": "sha512-y2i2IW0MfSqFc1JBhBSQ59Ts9xE30hhxSmLS13jLKWzie24/An5dnoGarp2rFAy20tevJu1zJVPYrEl14jiL5w==", - "hasInstallScript": true, - "dependencies": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.20.52", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.52.tgz", - "integrity": "sha512-cfkwWw72849SNYp3Zx0IcIs25vABmFh73xicxhCkTcvtZQeIez15PpwQN8fY3RD7gv1Wrxlc9MEtfMORZDEsGw==" - }, - "node_modules/web3-core": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.7.3.tgz", - "integrity": "sha512-4RNxueGyevD1XSjdHE57vz/YWRHybpcd3wfQS33fgMyHZBVLFDNwhn+4dX4BeofVlK/9/cmPAokLfBUStZMLdw==", - "dependencies": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-helpers": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.3.tgz", - "integrity": "sha512-qS2t6UKLhRV/6C7OFHtMeoHphkcA+CKUr2vfpxy4hubs3+Nj28K9pgiqFuvZiXmtEEwIAE2A28GBOC3RdcSuFg==", - "dependencies": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-method": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.7.3.tgz", - "integrity": "sha512-SeF8YL/NVFbj/ddwLhJeS0io8y7wXaPYA2AVT0h2C2ESYkpvOtQmyw2Bc3aXxBmBErKcbOJjE2ABOKdUmLSmMA==", - "dependencies": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-promievent": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.7.3.tgz", - "integrity": "sha512-+mcfNJLP8h2JqcL/UdMGdRVfTdm+bsoLzAFtLpazE4u9kU7yJUgMMAqnK59fKD3Zpke3DjaUJKwz1TyiGM5wig==", - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-requestmanager": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.7.3.tgz", - "integrity": "sha512-bC+jeOjPbagZi2IuL1J5d44f3zfPcgX+GWYUpE9vicNkPUxFBWRG+olhMo7L+BIcD57cTmukDlnz+1xBULAjFg==", - "dependencies": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-subscriptions": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.7.3.tgz", - "integrity": "sha512-/i1ZCLW3SDxEs5mu7HW8KL4Vq7x4/fDXY+yf/vPoDljlpvcLEOnI8y9r7om+0kYwvuTlM6DUHHafvW0221TyRQ==", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core/node_modules/@types/node": { - "version": "12.20.52", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.52.tgz", - "integrity": "sha512-cfkwWw72849SNYp3Zx0IcIs25vABmFh73xicxhCkTcvtZQeIez15PpwQN8fY3RD7gv1Wrxlc9MEtfMORZDEsGw==" - }, - "node_modules/web3-eth": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.7.3.tgz", - "integrity": "sha512-BCIRMPwaMlTCbswXyGT6jj9chCh9RirbDFkPtvqozfQ73HGW7kP78TXXf9+Xdo1GjutQfxi/fQ9yPdxtDJEpDA==", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-abi": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.3.tgz", - "integrity": "sha512-ZlD8DrJro0ocnbZViZpAoMX44x5aYAb73u2tMq557rMmpiluZNnhcCYF/NnVMy6UIkn7SF/qEA45GXA1ne6Tnw==", - "dependencies": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.7.3.tgz", - "integrity": "sha512-aDaWjW1oJeh0LeSGRVyEBiTe/UD2/cMY4dD6pQYa8dOhwgMtNQjxIQ7kacBBXe7ZKhjbIFZDhvXN4mjXZ82R2Q==", - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/web3-eth-contract": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.7.3.tgz", - "integrity": "sha512-7mjkLxCNMWlQrlfM/MmNnlKRHwFk5XrZcbndoMt3KejcqDP6dPHi2PZLutEcw07n/Sk8OMpSamyF3QiGfmyRxw==", - "dependencies": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-ens": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.7.3.tgz", - "integrity": "sha512-q7+hFGHIc0mBI3LwgRVcLCQmp6GItsWgUtEZ5bjwdjOnJdbjYddm7PO9RDcTDQ6LIr7hqYaY4WTRnDHZ6BEt5Q==", - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-iban": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.3.tgz", - "integrity": "sha512-1GPVWgajwhh7g53mmYDD1YxcftQniIixMiRfOqlnA1w0mFGrTbCoPeVaSQ3XtSf+rYehNJIZAUeDBnONVjXXmg==", - "dependencies": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.7.3.tgz", - "integrity": "sha512-iTLz2OYzEsJj2qGE4iXC1Gw+KZN924fTAl0ESBFs2VmRhvVaM7GFqZz/wx7/XESl3GVxGxlRje3gNK0oGIoYYQ==", - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.20.52", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.52.tgz", - "integrity": "sha512-cfkwWw72849SNYp3Zx0IcIs25vABmFh73xicxhCkTcvtZQeIez15PpwQN8fY3RD7gv1Wrxlc9MEtfMORZDEsGw==" - }, - "node_modules/web3-net": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.7.3.tgz", - "integrity": "sha512-zAByK0Qrr71k9XW0Adtn+EOuhS9bt77vhBO6epAeQ2/VKl8rCGLAwrl3GbeEl7kWa8s/su72cjI5OetG7cYR0g==", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-http": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.7.3.tgz", - "integrity": "sha512-TQJfMsDQ5Uq9zGMYlu7azx1L7EvxW+Llks3MaWn3cazzr5tnrDbGh6V17x6LN4t8tFDHWx0rYKr3mDPqyTjOZw==", - "dependencies": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ipc": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.7.3.tgz", - "integrity": "sha512-Z4EGdLKzz6I1Bw+VcSyqVN4EJiT2uAro48Am1eRvxUi4vktGoZtge1ixiyfrRIVb6nPe7KnTFl30eQBtMqS0zA==", - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.7.3.tgz", - "integrity": "sha512-PpykGbkkkKtxPgv7U4ny4UhnkqSZDfLgBEvFTXuXLAngbX/qdgfYkhIuz3MiGplfL7Yh93SQw3xDjImXmn2Rgw==", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-shh": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.7.3.tgz", - "integrity": "sha512-bQTSKkyG7GkuULdZInJ0osHjnmkHij9tAySibpev1XjYdjLiQnd0J9YGF4HjvxoG3glNROpuCyTaRLrsLwaZuw==", - "hasInstallScript": true, - "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-utils": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.3.tgz", - "integrity": "sha512-g6nQgvb/bUpVUIxJE+ezVN+rYwYmlFyMvMIRSuqpi1dk6ApDD00YNArrk7sPcZnjvxOJ76813Xs2vIN2rgh4lg==", - "dependencies": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "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/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", - "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "node_modules/ws/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "node_modules/xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "node_modules/xhr2-cookies": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", - "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", - "dependencies": { - "cookiejar": "^2.1.1" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - }, - "dependencies": { - "@ethereumjs/common": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.4.tgz", - "integrity": "sha512-RDJh/R/EAr+B7ZRg5LfJ0BIpf/1LydFgYdvZEuTraojCbVypO2sQ+QnpP5u2wJf9DASyooKqu8O4FJEWUV6NXw==", - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" - } - }, - "@ethereumjs/tx": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.1.tgz", - "integrity": "sha512-xzDrTiu4sqZXUcaBxJ4n4W5FrppwxLxZB4ZDGVLtxSQR4lVuOnFR6RcUHdg1mpUhAPVrmnzLJpxaeXnPxIyhWA==", - "requires": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" - } - }, - "@ethersproject/abi": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", - "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", - "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz", - "integrity": "sha512-oPMFlKLN+g+y7a79cLK3WiLcjWFnZQtXWgnLAbHZcN3s7L4v90UHpTOrLk+m3yr0gt+/h9STTM6zrr7PM8uoRw==", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.1.tgz", - "integrity": "sha512-xhSLo6y0nGJS7NxfvOSzCaWKvWb1TLT7dQ0nnpHZrDnC67xfnWm9NXflTMFPUXXMtjr33CdV0kWDEmnbrQZ74Q==", - "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "@ethersproject/address": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.0.tgz", - "integrity": "sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ==", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "@ethersproject/base64": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.0.tgz", - "integrity": "sha512-2Neq8wxJ9xHxCF9TUgmKeSh9BXJ6OAxWfeGWvbauPh8FuHEjamgHilllx8KkSd5ErxyHIX7Xv3Fkcud2kY9ezw==", - "requires": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.1.tgz", - "integrity": "sha512-UtMeZ3GaUuF9sx2u9nPZiPP3ULcAFmXyvynR7oHl/tPrM+vldZh7ocMsoa1PqKYGnQnqUZJoqxZnGN6J0qdipA==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "@ethersproject/bytes": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", - "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/constants": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.0.tgz", - "integrity": "sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA==", - "requires": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "@ethersproject/hash": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.0.tgz", - "integrity": "sha512-fFd+k9gtczqlr0/BruWLAu7UAOas1uRRJvOR84uDf4lNZ+bTkGl366qvniUZHKtlqxBRU65MkOobkmvmpHU+jA==", - "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/keccak256": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.0.tgz", - "integrity": "sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/logger": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", - "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==" - }, - "@ethersproject/networks": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.2.tgz", - "integrity": "sha512-9uEzaJY7j5wpYGTojGp8U89mSsgQLc40PCMJLMCnFXTs7nhBveZ0t7dbqWUNrepWTszDbFkYD6WlL8DKx5huHA==", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/properties": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz", - "integrity": "sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/rlp": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.0.tgz", - "integrity": "sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/signing-key": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.1.tgz", - "integrity": "sha512-XvqQ20DH0D+bS3qlrrgh+axRMth5kD1xuvqUQUTeezxUTXBOeR6hWz2/C6FBEu39FRytyybIWrYf7YLSAKr1LQ==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "@ethersproject/strings": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.0.tgz", - "integrity": "sha512-uv10vTtLTZqrJuqBZR862ZQjTIa724wGPWQqZrofaPI/kUsf53TBG0I0D+hQ1qyNtllbNzaW+PDPHHUI6/65Mg==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/transactions": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.0.tgz", - "integrity": "sha512-4HX+VOhNjXHZyGzER6E/LVI2i6lf9ejYeWD6l4g50AdmimyuStKc39kvKf1bXWQMg7QNVh+uC7dYwtaZ02IXeg==", - "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "@ethersproject/web": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.0.tgz", - "integrity": "sha512-G/XHj0hV1FxI2teHRfCGvfBUHFmU+YOSbCxlAMqJklxSa7QMiHFQfAxvwY2PFqgvdkxEKwRNr/eCjfAPEm2Ctg==", - "requires": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "requires": { - "@types/node": "*" - } - }, - "@types/bunyan": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.8.tgz", - "integrity": "sha512-Cblq+Yydg3u+sGiz2mjHjC5MPmdjY+No4qvHrF+BUhblsmSfMvsHLbOG62tPbonsqBj6sbWv1LHcsoe5Jw+/Ow==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/cbor": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/cbor/-/cbor-5.0.1.tgz", - "integrity": "sha512-zVqJy2KzusZPLOgyGJDnOIbu3DxIGGqxYbEwtEEe4Z+la8jwIhOyb+GMrlHafs5tvKruwf8f8qOYP6zTvse/pw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "@types/node": { - "version": "17.0.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.34.tgz", - "integrity": "sha512-XImEz7XwTvDBtzlTnm8YvMqGW/ErMWBsKZ+hMTvnDIjGCKxwK5Xpc+c/oQjOauwq8M4OS11hEkpjX8rrI/eEgA==" - }, - "@types/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==", - "dev": true, - "requires": { - "@types/glob": "*", - "@types/node": "*" - } - }, - "@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "requires": { - "@types/node": "*" - } - }, - "@types/semver": { - "version": "7.3.10", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.10.tgz", - "integrity": "sha512-zsv3fsC7S84NN6nPK06u79oWgrPVd0NvOyqgghV1haPaFcVxIrP4DLomRwGAXk0ui4HZA7mOcSFL98sMVW9viw==", - "dev": true - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "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==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" - }, - "blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "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==" - }, - "body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "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" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - } - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" - }, - "bufferutil": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz", - "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "bunyan": { - "version": "1.8.15", - "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.15.tgz", - "integrity": "sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==", - "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, - "cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "dependencies": { - "multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - } - } - }, - "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==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", - "requires": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "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==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "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==", - "requires": { - "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" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "directory-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/directory-tree/-/directory-tree-2.3.1.tgz", - "integrity": "sha512-hxolIHCtQ/a56CUywaLzGD/V78zPwFihI+UK/4ZjOp7GoV4Mptmtv95yavOn/RlnTi7cCMjszvfcNrwCoWLH+Q==" - }, - "dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "dtrace-provider": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz", - "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==", - "optional": true, - "requires": { - "nan": "^2.14.0" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "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" - } - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.61", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.61.tgz", - "integrity": "sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA==", - "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "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==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", - "requires": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" - } - } - }, - "eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethereum-bloom-filters": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", - "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", - "requires": { - "js-sha3": "^0.8.0" - } - }, - "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==", - "requires": { - "@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" - } - }, - "ethereumjs-util": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", - "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", - "requires": { - "@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" - }, - "dependencies": { - "@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - } - } - }, - "ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" - } - } - }, - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" - }, - "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==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, - "ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", - "requires": { - "type": "^2.5.0" - }, - "dependencies": { - "type": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.6.0.tgz", - "integrity": "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - } - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "^1.1.3" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "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==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" - } - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, - "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", - "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "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==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "requires": { - "dom-walk": "^0.1.0" - } - }, - "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==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - }, - "mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", - "requires": { - "mkdirp": "*" - } - }, - "mock-fs": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", - "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==" - }, - "moment": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", - "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", - "optional": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "requires": { - "varint": "^5.0.0" - } - }, - "multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - }, - "dependencies": { - "multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } - }, - "mv": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", - "optional": true, - "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "optional": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", - "optional": true, - "requires": { - "glob": "^6.0.1" - } - } - } - }, - "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "optional": true - }, - "nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" - }, - "ncp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", - "optional": true - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "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-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-gyp-build": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", - "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==" - }, - "nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==" - }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" - }, - "number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" - } - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=", - "requires": { - "http-https": "^1.0.0" - } - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "requires": { - "p-finally": "^1.0.0" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-headers": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", - "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" - } - } - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rlp": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", - "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", - "requires": { - "bn.js": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - } - } - }, - "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==" - }, - "safe-json-stringify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", - "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" - }, - "simple-get": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", - "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - }, - "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==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "requires": { - "is-hex-prefixed": "1.0.0" - } - }, - "swarm-js": { - "version": "0.1.40", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", - "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - }, - "dependencies": { - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "requires": { - "prepend-http": "^1.0.1" - } - } - } - }, - "tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - } - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "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==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", - "dev": true - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "requires": { - "prepend-http": "^2.0.0" - } - }, - "url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" - }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" - }, - "utf-8-validate": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz", - "integrity": "sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" - }, - "util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "web3": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.7.3.tgz", - "integrity": "sha512-UgBvQnKIXncGYzsiGacaiHtm0xzQ/JtGqcSO/ddzQHYxnNuwI72j1Pb4gskztLYihizV9qPNQYHMSCiBlStI9A==", - "requires": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-bzz": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.7.3.tgz", - "integrity": "sha512-y2i2IW0MfSqFc1JBhBSQ59Ts9xE30hhxSmLS13jLKWzie24/An5dnoGarp2rFAy20tevJu1zJVPYrEl14jiL5w==", - "requires": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.52.tgz", - "integrity": "sha512-cfkwWw72849SNYp3Zx0IcIs25vABmFh73xicxhCkTcvtZQeIez15PpwQN8fY3RD7gv1Wrxlc9MEtfMORZDEsGw==" - } - } - }, - "web3-core": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.7.3.tgz", - "integrity": "sha512-4RNxueGyevD1XSjdHE57vz/YWRHybpcd3wfQS33fgMyHZBVLFDNwhn+4dX4BeofVlK/9/cmPAokLfBUStZMLdw==", - "requires": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.52.tgz", - "integrity": "sha512-cfkwWw72849SNYp3Zx0IcIs25vABmFh73xicxhCkTcvtZQeIez15PpwQN8fY3RD7gv1Wrxlc9MEtfMORZDEsGw==" - } - } - }, - "web3-core-helpers": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.3.tgz", - "integrity": "sha512-qS2t6UKLhRV/6C7OFHtMeoHphkcA+CKUr2vfpxy4hubs3+Nj28K9pgiqFuvZiXmtEEwIAE2A28GBOC3RdcSuFg==", - "requires": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-method": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.7.3.tgz", - "integrity": "sha512-SeF8YL/NVFbj/ddwLhJeS0io8y7wXaPYA2AVT0h2C2ESYkpvOtQmyw2Bc3aXxBmBErKcbOJjE2ABOKdUmLSmMA==", - "requires": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-promievent": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.7.3.tgz", - "integrity": "sha512-+mcfNJLP8h2JqcL/UdMGdRVfTdm+bsoLzAFtLpazE4u9kU7yJUgMMAqnK59fKD3Zpke3DjaUJKwz1TyiGM5wig==", - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-core-requestmanager": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.7.3.tgz", - "integrity": "sha512-bC+jeOjPbagZi2IuL1J5d44f3zfPcgX+GWYUpE9vicNkPUxFBWRG+olhMo7L+BIcD57cTmukDlnz+1xBULAjFg==", - "requires": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" - } - }, - "web3-core-subscriptions": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.7.3.tgz", - "integrity": "sha512-/i1ZCLW3SDxEs5mu7HW8KL4Vq7x4/fDXY+yf/vPoDljlpvcLEOnI8y9r7om+0kYwvuTlM6DUHHafvW0221TyRQ==", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" - } - }, - "web3-eth": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.7.3.tgz", - "integrity": "sha512-BCIRMPwaMlTCbswXyGT6jj9chCh9RirbDFkPtvqozfQ73HGW7kP78TXXf9+Xdo1GjutQfxi/fQ9yPdxtDJEpDA==", - "requires": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-abi": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.3.tgz", - "integrity": "sha512-ZlD8DrJro0ocnbZViZpAoMX44x5aYAb73u2tMq557rMmpiluZNnhcCYF/NnVMy6UIkn7SF/qEA45GXA1ne6Tnw==", - "requires": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - } - }, - "web3-eth-accounts": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.7.3.tgz", - "integrity": "sha512-aDaWjW1oJeh0LeSGRVyEBiTe/UD2/cMY4dD6pQYa8dOhwgMtNQjxIQ7kacBBXe7ZKhjbIFZDhvXN4mjXZ82R2Q==", - "requires": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - } - } - }, - "web3-eth-contract": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.7.3.tgz", - "integrity": "sha512-7mjkLxCNMWlQrlfM/MmNnlKRHwFk5XrZcbndoMt3KejcqDP6dPHi2PZLutEcw07n/Sk8OMpSamyF3QiGfmyRxw==", - "requires": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-ens": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.7.3.tgz", - "integrity": "sha512-q7+hFGHIc0mBI3LwgRVcLCQmp6GItsWgUtEZ5bjwdjOnJdbjYddm7PO9RDcTDQ6LIr7hqYaY4WTRnDHZ6BEt5Q==", - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-iban": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.3.tgz", - "integrity": "sha512-1GPVWgajwhh7g53mmYDD1YxcftQniIixMiRfOqlnA1w0mFGrTbCoPeVaSQ3XtSf+rYehNJIZAUeDBnONVjXXmg==", - "requires": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" - } - }, - "web3-eth-personal": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.7.3.tgz", - "integrity": "sha512-iTLz2OYzEsJj2qGE4iXC1Gw+KZN924fTAl0ESBFs2VmRhvVaM7GFqZz/wx7/XESl3GVxGxlRje3gNK0oGIoYYQ==", - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.52.tgz", - "integrity": "sha512-cfkwWw72849SNYp3Zx0IcIs25vABmFh73xicxhCkTcvtZQeIez15PpwQN8fY3RD7gv1Wrxlc9MEtfMORZDEsGw==" - } - } - }, - "web3-net": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.7.3.tgz", - "integrity": "sha512-zAByK0Qrr71k9XW0Adtn+EOuhS9bt77vhBO6epAeQ2/VKl8rCGLAwrl3GbeEl7kWa8s/su72cjI5OetG7cYR0g==", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-providers-http": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.7.3.tgz", - "integrity": "sha512-TQJfMsDQ5Uq9zGMYlu7azx1L7EvxW+Llks3MaWn3cazzr5tnrDbGh6V17x6LN4t8tFDHWx0rYKr3mDPqyTjOZw==", - "requires": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.7.3.tgz", - "integrity": "sha512-Z4EGdLKzz6I1Bw+VcSyqVN4EJiT2uAro48Am1eRvxUi4vktGoZtge1ixiyfrRIVb6nPe7KnTFl30eQBtMqS0zA==", - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" - } - }, - "web3-providers-ws": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.7.3.tgz", - "integrity": "sha512-PpykGbkkkKtxPgv7U4ny4UhnkqSZDfLgBEvFTXuXLAngbX/qdgfYkhIuz3MiGplfL7Yh93SQw3xDjImXmn2Rgw==", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" - } - }, - "web3-shh": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.7.3.tgz", - "integrity": "sha512-bQTSKkyG7GkuULdZInJ0osHjnmkHij9tAySibpev1XjYdjLiQnd0J9YGF4HjvxoG3glNROpuCyTaRLrsLwaZuw==", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" - } - }, - "web3-utils": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.3.tgz", - "integrity": "sha512-g6nQgvb/bUpVUIxJE+ezVN+rYwYmlFyMvMIRSuqpi1dk6ApDD00YNArrk7sPcZnjvxOJ76813Xs2vIN2rgh4lg==", - "requires": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "requires": { - "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" - } - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", - "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "requires": { - "xhr-request": "^1.1.0" - } - }, - "xhr2-cookies": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", - "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", - "requires": { - "cookiejar": "^2.1.1" - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } -} diff --git a/services/core/package.json b/services/core/package.json deleted file mode 100644 index 67af8dd69..000000000 --- a/services/core/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "@ethereum-sourcify/core", - "version": "0.2.10", - "description": "Sourcify core module with common interfaces, types and methods", - "bin": { - "sourcify-core": "./build/index.js" - }, - "types": "build/index.d.ts", - "files": [ - "build" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/ethereum/sourcify.git" - }, - "main": "build/index.js", - "scripts": { - "test": "echo \"Error: no test specified\"", - "build": "rimraf ./build && tsc", - "start": "npm run build && node build/index.js" - }, - "author": "sourcifyeth", - "license": "MIT", - "devDependencies": { - "@types/bunyan": "^1.8.6", - "@types/cbor": "^5.0.1", - "@types/node-fetch": "^2.5.7", - "@types/rimraf": "^3.0.2", - "@types/semver": "^7.3.10", - "typescript": "^4.0.2" - }, - "dependencies": { - "bunyan": "^1.8.15", - "cbor": "^5.1.0", - "directory-tree": "^2.2.4", - "node-fetch": "^2.6.1", - "rimraf": "^3.0.2", - "semver": "^7.3.7", - "web3": "^1.3.0" - } -} diff --git a/services/core/src/chains.json b/services/core/src/chains.json deleted file mode 100644 index edf861334..000000000 --- a/services/core/src/chains.json +++ /dev/null @@ -1,11116 +0,0 @@ -[ - { - "name": "Ethereum Mainnet", - "chain": "ETH", - "icon": "ethereum", - "rpc": [ - "https://mainnet.infura.io/v3/${INFURA_API_KEY}", - "wss://mainnet.infura.io/ws/v3/${INFURA_API_KEY}", - "https://api.mycryptoapi.com/eth", - "https://cloudflare-eth.com" - ], - "faucets": [], - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://ethereum.org", - "shortName": "eth", - "chainId": 1, - "networkId": 1, - "slip44": 60, - "ens": { - "registry": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" - }, - "explorers": [ - { - "name": "etherscan", - "url": "https://etherscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Expanse Network", - "chain": "EXP", - "rpc": ["https://node.expanse.tech"], - "faucets": [], - "nativeCurrency": { - "name": "Expanse Network Ether", - "symbol": "EXP", - "decimals": 18 - }, - "infoURL": "https://expanse.tech", - "shortName": "exp", - "chainId": 2, - "networkId": 1, - "slip44": 40 - }, - { - "name": "Ropsten", - "title": "Ethereum Testnet Ropsten", - "chain": "ETH", - "rpc": [ - "https://ropsten.infura.io/v3/${INFURA_API_KEY}", - "wss://ropsten.infura.io/ws/v3/${INFURA_API_KEY}" - ], - "faucets": [ - "http://fauceth.komputing.org?chain=3&address=${ADDRESS}", - "https://faucet.ropsten.be?${ADDRESS}" - ], - "nativeCurrency": { - "name": "Ropsten Ether", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://github.com/ethereum/ropsten", - "shortName": "rop", - "chainId": 3, - "networkId": 3, - "ens": { - "registry": "0x112234455c3a32fd11230c42e7bccd4a84e02010" - }, - "explorers": [ - { - "name": "etherscan", - "url": "https://ropsten.etherscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Rinkeby", - "title": "Ethereum Testnet Rinkeby", - "chain": "ETH", - "rpc": [ - "https://rinkeby.infura.io/v3/${INFURA_API_KEY}", - "wss://rinkeby.infura.io/ws/v3/${INFURA_API_KEY}" - ], - "faucets": [ - "http://fauceth.komputing.org?chain=4&address=${ADDRESS}", - "https://faucet.rinkeby.io" - ], - "nativeCurrency": { - "name": "Rinkeby Ether", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://www.rinkeby.io", - "shortName": "rin", - "chainId": 4, - "networkId": 4, - "ens": { - "registry": "0xe7410170f87102df0055eb195163a03b7f2bff4a" - }, - "explorers": [ - { - "name": "etherscan-rinkeby", - "url": "https://rinkeby.etherscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Görli", - "title": "Ethereum Testnet Görli", - "chain": "ETH", - "rpc": [ - "https://goerli.infura.io/v3/${INFURA_API_KEY}", - "wss://goerli.infura.io/v3/${INFURA_API_KEY}", - "https://rpc.goerli.mudit.blog/" - ], - "faucets": [ - "http://fauceth.komputing.org?chain=5&address=${ADDRESS}", - "https://goerli-faucet.slock.it?address=${ADDRESS}", - "https://faucet.goerli.mudit.blog" - ], - "nativeCurrency": { - "name": "Görli Ether", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://goerli.net/#about", - "shortName": "gor", - "chainId": 5, - "networkId": 5, - "ens": { - "registry": "0x112234455c3a32fd11230c42e7bccd4a84e02010" - }, - "explorers": [ - { - "name": "etherscan-goerli", - "url": "https://goerli.etherscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Ethereum Classic Testnet Kotti", - "chain": "ETC", - "rpc": ["https://www.ethercluster.com/kotti"], - "faucets": [], - "nativeCurrency": { - "name": "Kotti Ether", - "symbol": "KOT", - "decimals": 18 - }, - "infoURL": "https://explorer.jade.builders/?network=kotti", - "shortName": "kot", - "chainId": 6, - "networkId": 6 - }, - { - "name": "ThaiChain", - "chain": "TCH", - "rpc": ["https://rpc.dome.cloud"], - "faucets": [], - "nativeCurrency": { - "name": "ThaiChain Ether", - "symbol": "TCH", - "decimals": 18 - }, - "infoURL": "https://thaichain.io", - "shortName": "tch", - "chainId": 7, - "networkId": 7 - }, - { - "name": "Ubiq", - "chain": "UBQ", - "rpc": ["https://rpc.octano.dev", "https://pyrus2.ubiqscan.io"], - "faucets": [], - "nativeCurrency": { - "name": "Ubiq Ether", - "symbol": "UBQ", - "decimals": 18 - }, - "infoURL": "https://ubiqsmart.com", - "shortName": "ubq", - "chainId": 8, - "networkId": 8, - "slip44": 108, - "explorers": [ - { - "name": "ubiqscan", - "url": "https://ubiqscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Ubiq Network Testnet", - "chain": "UBQ", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Ubiq Testnet Ether", - "symbol": "TUBQ", - "decimals": 18 - }, - "infoURL": "https://ethersocial.org", - "shortName": "tubq", - "chainId": 9, - "networkId": 2 - }, - { - "name": "Optimism", - "chain": "ETH", - "rpc": ["https://mainnet.optimism.io/"], - "faucets": [], - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://optimism.io", - "shortName": "oeth", - "chainId": 10, - "networkId": 10, - "explorers": [ - { - "name": "etherscan", - "url": "https://optimistic.etherscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Metadium Mainnet", - "chain": "META", - "rpc": ["https://api.metadium.com/prod"], - "faucets": [], - "nativeCurrency": { - "name": "Metadium Mainnet Ether", - "symbol": "META", - "decimals": 18 - }, - "infoURL": "https://metadium.com", - "shortName": "meta", - "chainId": 11, - "networkId": 11, - "slip44": 916 - }, - { - "name": "Metadium Testnet", - "chain": "META", - "rpc": ["https://api.metadium.com/dev"], - "faucets": [], - "nativeCurrency": { - "name": "Metadium Testnet Ether", - "symbol": "KAL", - "decimals": 18 - }, - "infoURL": "https://metadium.com", - "shortName": "kal", - "chainId": 12, - "networkId": 12 - }, - { - "name": "Diode Testnet Staging", - "chain": "DIODE", - "rpc": ["https://staging.diode.io:8443/", "wss://staging.diode.io:8443/ws"], - "faucets": [], - "nativeCurrency": { - "name": "Staging Diodes", - "symbol": "sDIODE", - "decimals": 18 - }, - "infoURL": "https://diode.io/staging", - "shortName": "dstg", - "chainId": 13, - "networkId": 13 - }, - { - "name": "Flare Mainnet", - "chain": "FLR", - "icon": "flare", - "rpc": ["https://flare-api.flare.network/ext/C/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Flare", - "symbol": "FLR", - "decimals": 18 - }, - "infoURL": "https://flare.xyz", - "shortName": "flr", - "chainId": 14, - "networkId": 14, - "explorers": [ - { - "name": "blockscout", - "url": "https://flare-explorer.flare.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "Diode Prenet", - "chain": "DIODE", - "rpc": ["https://prenet.diode.io:8443/", "wss://prenet.diode.io:8443/ws"], - "faucets": [], - "nativeCurrency": { - "name": "Diodes", - "symbol": "DIODE", - "decimals": 18 - }, - "infoURL": "https://diode.io/prenet", - "shortName": "diode", - "chainId": 15, - "networkId": 15 - }, - { - "name": "Flare Testnet Coston", - "chain": "FLR", - "rpc": ["https://coston-api.flare.network/ext/bc/C/rpc"], - "faucets": [ - "https://faucet.towolabs.com", - "https://fauceth.komputing.org?chain=16&address=${ADDRESS}" - ], - "nativeCurrency": { - "name": "Coston Flare", - "symbol": "CFLR", - "decimals": 18 - }, - "infoURL": "https://flare.xyz", - "shortName": "cflr", - "chainId": 16, - "networkId": 16, - "explorers": [ - { - "name": "blockscout", - "url": "https://coston-explorer.flare.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "ThaiChain 2.0 ThaiFi", - "chain": "TCH", - "rpc": ["https://rpc.thaifi.com"], - "faucets": [], - "nativeCurrency": { - "name": "Thaifi Ether", - "symbol": "TFI", - "decimals": 18 - }, - "infoURL": "https://exp.thaifi.com", - "shortName": "tfi", - "chainId": 17, - "networkId": 17 - }, - { - "name": "ThunderCore Testnet", - "chain": "TST", - "rpc": ["https://testnet-rpc.thundercore.com"], - "faucets": ["https://faucet-testnet.thundercore.com"], - "nativeCurrency": { - "name": "ThunderCore Testnet Token", - "symbol": "TST", - "decimals": 18 - }, - "infoURL": "https://thundercore.com", - "shortName": "TST", - "chainId": 18, - "networkId": 18, - "explorers": [ - { - "name": "thundercore-blockscout-testnet", - "url": "https://explorer-testnet.thundercore.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Songbird Canary-Network", - "chain": "SGB", - "icon": "songbird", - "rpc": [ - "https://songbird.towolabs.com/rpc", - "https://songbird-api.flare.network/ext/C/rpc", - "https://sgb.ftso.com.au/ext/bc/C/rpc", - "https://sgb.lightft.so/rpc", - "https://sgb-rpc.ftso.eu" - ], - "faucets": [], - "nativeCurrency": { - "name": "Songbird", - "symbol": "SGB", - "decimals": 18 - }, - "infoURL": "https://flare.xyz", - "shortName": "sgb", - "chainId": 19, - "networkId": 19, - "explorers": [ - { - "name": "blockscout", - "url": "https://songbird-explorer.flare.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "Elastos Smart Chain", - "chain": "ETH", - "rpc": ["https://api.elastos.io/eth"], - "faucets": ["https://faucet.elastos.org/"], - "nativeCurrency": { - "name": "Elastos", - "symbol": "ELA", - "decimals": 18 - }, - "infoURL": "https://www.elastos.org/", - "shortName": "elaeth", - "chainId": 20, - "networkId": 20, - "explorers": [ - { - "name": "elastos eth explorer", - "url": "https://eth.elastos.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "ELA-ETH-Sidechain Testnet", - "chain": "ETH", - "rpc": ["https://rpc.elaeth.io"], - "faucets": ["https://faucet.elaeth.io/"], - "nativeCurrency": { - "name": "Elastos", - "symbol": "tELA", - "decimals": 18 - }, - "infoURL": "https://elaeth.io/", - "shortName": "elaetht", - "chainId": 21, - "networkId": 21 - }, - { - "name": "ELA-DID-Sidechain Mainnet", - "chain": "ETH", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Elastos", - "symbol": "ELA", - "decimals": 18 - }, - "infoURL": "https://www.elastos.org/", - "shortName": "eladid", - "chainId": 22, - "networkId": 22 - }, - { - "name": "ELA-DID-Sidechain Testnet", - "chain": "ETH", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Elastos", - "symbol": "tELA", - "decimals": 18 - }, - "infoURL": "https://elaeth.io/", - "shortName": "eladidt", - "chainId": 23, - "networkId": 23 - }, - { - "name": "Dithereum Mainnet", - "chain": "DTH", - "icon": "dithereum", - "rpc": ["https://node-mainnet.dithereum.io"], - "faucets": ["https://faucet.dithereum.org"], - "nativeCurrency": { - "name": "Dither", - "symbol": "DTH", - "decimals": 18 - }, - "infoURL": "https://dithereum.org", - "shortName": "dthmainnet", - "chainId": 24, - "networkId": 24 - }, - { - "name": "Cronos Mainnet Beta", - "chain": "CRO", - "rpc": ["https://evm.cronos.org"], - "faucets": [], - "nativeCurrency": { - "name": "Cronos", - "symbol": "CRO", - "decimals": 18 - }, - "infoURL": "https://cronos.org/", - "shortName": "cro", - "chainId": 25, - "networkId": 25, - "explorers": [ - { - "name": "Cronos Explorer", - "url": "https://cronos.org/explorer", - "standard": "none" - } - ] - }, - { - "name": "Genesis L1 testnet", - "chain": "genesis", - "rpc": ["https://testrpc.genesisl1.org"], - "faucets": [], - "nativeCurrency": { - "name": "L1 testcoin", - "symbol": "L1test", - "decimals": 18 - }, - "infoURL": "https://www.genesisl1.com", - "shortName": "L1test", - "chainId": 26, - "networkId": 26, - "explorers": [ - { - "name": "Genesis L1 testnet explorer", - "url": "https://testnet.genesisl1.org", - "standard": "none" - } - ] - }, - { - "name": "ShibaChain", - "chain": "SHIB", - "rpc": ["https://rpc.shibachain.net"], - "faucets": [], - "nativeCurrency": { - "name": "SHIBA INU COIN", - "symbol": "SHIB", - "decimals": 18 - }, - "infoURL": "https://www.shibachain.net", - "shortName": "shib", - "chainId": 27, - "networkId": 27, - "explorers": [ - { - "name": "Shiba Explorer", - "url": "https://exp.shibachain.net", - "standard": "none" - } - ] - }, - { - "name": "Boba Network Rinkeby Testnet", - "chain": "ETH", - "rpc": ["https://rinkeby.boba.network/"], - "faucets": [], - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://boba.network", - "shortName": "BobaRinkeby", - "chainId": 28, - "networkId": 28, - "explorers": [ - { - "name": "Blockscout", - "url": "https://blockexplorer.rinkeby.boba.network", - "standard": "none" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-4", - "bridges": [ - { - "url": "https://gateway.rinkeby.boba.network" - } - ] - } - }, - { - "name": "Genesis L1", - "chain": "genesis", - "rpc": ["https://rpc.genesisl1.org"], - "faucets": [], - "nativeCurrency": { - "name": "L1 coin", - "symbol": "L1", - "decimals": 18 - }, - "infoURL": "https://www.genesisl1.com", - "shortName": "L1", - "chainId": 29, - "networkId": 29, - "explorers": [ - { - "name": "Genesis L1 blockchain explorer", - "url": "https://explorer.genesisl1.org", - "standard": "none" - } - ] - }, - { - "name": "RSK Mainnet", - "chain": "RSK", - "rpc": ["https://public-node.rsk.co", "https://mycrypto.rsk.co"], - "faucets": ["https://faucet.rsk.co/"], - "nativeCurrency": { - "name": "Smart Bitcoin", - "symbol": "RBTC", - "decimals": 18 - }, - "infoURL": "https://rsk.co", - "shortName": "rsk", - "chainId": 30, - "networkId": 30, - "slip44": 137, - "explorers": [ - { - "name": "RSK Explorer", - "url": "https://explorer.rsk.co", - "standard": "EIP3091" - } - ] - }, - { - "name": "RSK Testnet", - "chain": "RSK", - "rpc": [ - "https://public-node.testnet.rsk.co", - "https://mycrypto.testnet.rsk.co" - ], - "faucets": ["https://faucet.rsk.co/"], - "nativeCurrency": { - "name": "Testnet Smart Bitcoin", - "symbol": "tRBTC", - "decimals": 18 - }, - "infoURL": "https://rsk.co", - "shortName": "trsk", - "chainId": 31, - "networkId": 31, - "explorers": [ - { - "name": "RSK Testnet Explorer", - "url": "https://explorer.testnet.rsk.co", - "standard": "EIP3091" - } - ] - }, - { - "name": "GoodData Testnet", - "chain": "GooD", - "rpc": ["https://test2.goodata.io"], - "faucets": [], - "nativeCurrency": { - "name": "GoodData Testnet Ether", - "symbol": "GooD", - "decimals": 18 - }, - "infoURL": "https://www.goodata.org", - "shortName": "GooDT", - "chainId": 32, - "networkId": 32 - }, - { - "name": "GoodData Mainnet", - "chain": "GooD", - "rpc": ["https://rpc.goodata.io"], - "faucets": [], - "nativeCurrency": { - "name": "GoodData Mainnet Ether", - "symbol": "GooD", - "decimals": 18 - }, - "infoURL": "https://www.goodata.org", - "shortName": "GooD", - "chainId": 33, - "networkId": 33 - }, - { - "name": "Dithereum Testnet", - "chain": "DTH", - "icon": "dithereum", - "rpc": ["https://node-testnet.dithereum.io"], - "faucets": ["https://faucet.dithereum.org"], - "nativeCurrency": { - "name": "Dither", - "symbol": "DTH", - "decimals": 18 - }, - "infoURL": "https://dithereum.org", - "shortName": "dth", - "chainId": 34, - "networkId": 34 - }, - { - "name": "TBWG Chain", - "chain": "TBWG", - "rpc": ["https://rpc.tbwg.io"], - "faucets": [], - "nativeCurrency": { - "name": "TBWG Ether", - "symbol": "TBG", - "decimals": 18 - }, - "infoURL": "https://tbwg.io", - "shortName": "tbwg", - "chainId": 35, - "networkId": 35 - }, - { - "name": "Dxchain Mainnet", - "chain": "Dxchain", - "icon": "dx", - "rpc": ["https://mainnet.dxchain.com"], - "faucets": [], - "nativeCurrency": { - "name": "Dxchain", - "symbol": "DX", - "decimals": 18 - }, - "infoURL": "https://www.dxchain.com/", - "shortName": "dx", - "chainId": 36, - "networkId": 36, - "explorers": [ - { - "name": "dxscan", - "url": "https://dxscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "SeedCoin-Network", - "chain": "SeedCoin-Network", - "rpc": ["https://node.seedcoin.network"], - "faucets": [], - "nativeCurrency": { - "name": "SeedCoin", - "symbol": "SEED", - "decimals": 18 - }, - "infoURL": "https://www.seedcoin.network/", - "shortName": "SEED", - "icon": "seedcoin", - "chainId": 37, - "networkId": 37 - }, - { - "name": "Valorbit", - "chain": "VAL", - "rpc": ["https://rpc.valorbit.com/v2"], - "faucets": [], - "nativeCurrency": { - "name": "Valorbit", - "symbol": "VAL", - "decimals": 18 - }, - "infoURL": "https://valorbit.com", - "shortName": "val", - "chainId": 38, - "networkId": 38, - "slip44": 538 - }, - { - "name": "Telos EVM Mainnet", - "chain": "TLOS", - "rpc": ["https://mainnet.telos.net/evm"], - "faucets": [], - "nativeCurrency": { - "name": "Telos", - "symbol": "TLOS", - "decimals": 18 - }, - "infoURL": "https://telos.net", - "shortName": "TelosEVM", - "chainId": 40, - "networkId": 40, - "explorers": [ - { - "name": "teloscan", - "url": "https://teloscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Telos EVM Testnet", - "chain": "TLOS", - "rpc": ["https://testnet.telos.net/evm"], - "faucets": ["https://app.telos.net/testnet/developers"], - "nativeCurrency": { - "name": "Telos", - "symbol": "TLOS", - "decimals": 18 - }, - "infoURL": "https://telos.net", - "shortName": "TelosEVMTestnet", - "chainId": 41, - "networkId": 41 - }, - { - "name": "Kovan", - "title": "Ethereum Testnet Kovan", - "chain": "ETH", - "rpc": [ - "https://kovan.poa.network", - "http://kovan.poa.network:8545", - "https://kovan.infura.io/v3/${INFURA_API_KEY}", - "wss://kovan.infura.io/ws/v3/${INFURA_API_KEY}", - "ws://kovan.poa.network:8546" - ], - "faucets": [ - "http://fauceth.komputing.org?chain=42&address=${ADDRESS}", - "https://faucet.kovan.network", - "https://gitter.im/kovan-testnet/faucet" - ], - "nativeCurrency": { - "name": "Kovan Ether", - "symbol": "ETH", - "decimals": 18 - }, - "explorers": [ - { - "name": "etherscan", - "url": "https://kovan.etherscan.io", - "standard": "EIP3091" - } - ], - "infoURL": "https://kovan-testnet.github.io/website", - "shortName": "kov", - "chainId": 42, - "networkId": 42 - }, - { - "name": "Darwinia Pangolin Testnet", - "chain": "pangolin", - "rpc": ["https://pangolin-rpc.darwinia.network"], - "faucets": [ - "https://docs.crab.network/dvm/wallets/dvm-metamask#apply-for-the-test-token" - ], - "nativeCurrency": { - "name": "Pangolin Network Native Tokenâ€", - "symbol": "PRING", - "decimals": 18 - }, - "infoURL": "https://darwinia.network/", - "shortName": "pangolin", - "chainId": 43, - "networkId": 43, - "explorers": [ - { - "name": "subscan", - "url": "https://pangolin.subscan.io", - "standard": "none" - } - ] - }, - { - "name": "Darwinia Crab Network", - "chain": "crab", - "rpc": ["https://crab-rpc.darwinia.network"], - "faucets": [], - "nativeCurrency": { - "name": "Crab Network Native Token", - "symbol": "CRAB", - "decimals": 18 - }, - "infoURL": "https://crab.network/", - "shortName": "crab", - "chainId": 44, - "networkId": 44, - "explorers": [ - { - "name": "subscan", - "url": "https://crab.subscan.io", - "standard": "none" - } - ] - }, - { - "name": "Darwinia Pangoro Testnet", - "chain": "pangoro", - "rpc": ["http://pangoro-rpc.darwinia.network"], - "faucets": [], - "nativeCurrency": { - "name": "Pangoro Network Native Tokenâ€", - "symbol": "ORING", - "decimals": 18 - }, - "infoURL": "https://darwinia.network/", - "shortName": "pangoro", - "chainId": 45, - "networkId": 45, - "explorers": [ - { - "name": "subscan", - "url": "https://pangoro.subscan.io", - "standard": "none" - } - ] - }, - { - "name": "Darwinia Network", - "chain": "darwinia", - "rpc": ["https://darwinia-rpc.darwinia.network"], - "faucets": [], - "nativeCurrency": { - "name": "Darwinia Network Native Token", - "symbol": "RING", - "decimals": 18 - }, - "infoURL": "https://darwinia.network/", - "shortName": "darwinia", - "chainId": 46, - "networkId": 46, - "explorers": [ - { - "name": "subscan", - "url": "https://darwinia.subscan.io", - "standard": "none" - } - ] - }, - { - "name": "XinFin XDC Network", - "chain": "XDC", - "rpc": [ - "https://erpc.xinfin.network", - "https://rpc.xinfin.network", - "https://rpc1.xinfin.network" - ], - "faucets": [], - "nativeCurrency": { - "name": "XinFin", - "symbol": "XDC", - "decimals": 18 - }, - "infoURL": "https://xinfin.org", - "shortName": "xdc", - "chainId": 50, - "networkId": 50, - "icon": "xdc", - "explorers": [ - { - "name": "xdcscan", - "url": "https://xdcscan.io", - "icon": "blocksscan", - "standard": "EIP3091" - }, - { - "name": "blocksscan", - "url": "https://xdc.blocksscan.io", - "icon": "blocksscan", - "standard": "EIP3091" - } - ] - }, - { - "name": "XDC Apothem Network", - "chain": "XDC", - "rpc": ["https://rpc.apothem.network", "https://erpc.apothem.network"], - "faucets": ["https://faucet.apothem.network"], - "nativeCurrency": { - "name": "XinFin", - "symbol": "TXDC", - "decimals": 18 - }, - "infoURL": "https://xinfin.org", - "shortName": "txdc", - "chainId": 51, - "networkId": 51, - "icon": "xdc", - "explorers": [ - { - "name": "xdcscan", - "url": "https://apothem.xinfinscan.com", - "icon": "blocksscan", - "standard": "EIP3091" - }, - { - "name": "blocksscan", - "url": "https://apothem.blocksscan.io", - "icon": "blocksscan", - "standard": "EIP3091" - } - ] - }, - { - "name": "CoinEx Smart Chain Mainnet", - "chain": "CSC", - "rpc": ["https://rpc.coinex.net"], - "faucets": [], - "nativeCurrency": { - "name": "CoinEx Chain Native Token", - "symbol": "cet", - "decimals": 18 - }, - "infoURL": "https://www.coinex.org/", - "shortName": "cet", - "chainId": 52, - "networkId": 52, - "explorers": [ - { - "name": "coinexscan", - "url": "https://www.coinex.net", - "standard": "none" - } - ] - }, - { - "name": "CoinEx Smart Chain Testnet", - "chain": "CSC", - "rpc": ["https://testnet-rpc.coinex.net/"], - "faucets": [], - "nativeCurrency": { - "name": "CoinEx Chain Test Native Token", - "symbol": "cett", - "decimals": 18 - }, - "infoURL": "https://www.coinex.org/", - "shortName": "tcet", - "chainId": 53, - "networkId": 53, - "explorers": [ - { - "name": "coinexscan", - "url": "https://testnet.coinex.net", - "standard": "none" - } - ] - }, - { - "name": "Openpiece Mainnet", - "chain": "OPENPIECE", - "icon": "openpiece", - "rpc": ["https://mainnet.openpiece.io"], - "faucets": [], - "nativeCurrency": { - "name": "Belly", - "symbol": "BELLY", - "decimals": 18 - }, - "infoURL": "https://cryptopiece.online", - "shortName": "OP", - "chainId": 54, - "networkId": 54, - "explorers": [ - { - "name": "Belly Scan", - "url": "https://bellyscan.com", - "standard": "none" - } - ] - }, - { - "name": "Zyx Mainnet", - "chain": "ZYX", - "rpc": [ - "https://rpc-1.zyx.network/", - "https://rpc-2.zyx.network/", - "https://rpc-3.zyx.network/", - "https://rpc-4.zyx.network/", - "https://rpc-5.zyx.network/", - "https://rpc-6.zyx.network/" - ], - "faucets": [], - "nativeCurrency": { - "name": "Zyx", - "symbol": "ZYX", - "decimals": 18 - }, - "infoURL": "https://zyx.network/", - "shortName": "ZYX", - "chainId": 55, - "networkId": 55, - "explorers": [ - { - "name": "zyxscan", - "url": "https://zyxscan.com", - "standard": "none" - } - ] - }, - { - "name": "Binance Smart Chain Mainnet", - "chain": "BSC", - "rpc": [ - "https://bsc-dataseed1.binance.org", - "https://bsc-dataseed2.binance.org", - "https://bsc-dataseed3.binance.org", - "https://bsc-dataseed4.binance.org", - "https://bsc-dataseed1.defibit.io", - "https://bsc-dataseed2.defibit.io", - "https://bsc-dataseed3.defibit.io", - "https://bsc-dataseed4.defibit.io", - "https://bsc-dataseed1.ninicoin.io", - "https://bsc-dataseed2.ninicoin.io", - "https://bsc-dataseed3.ninicoin.io", - "https://bsc-dataseed4.ninicoin.io", - "wss://bsc-ws-node.nariox.org" - ], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], - "nativeCurrency": { - "name": "Binance Chain Native Token", - "symbol": "BNB", - "decimals": 18 - }, - "infoURL": "https://www.binance.org", - "shortName": "bnb", - "chainId": 56, - "networkId": 56, - "slip44": 714, - "explorers": [ - { - "name": "bscscan", - "url": "https://bscscan.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Syscoin Mainnet", - "chain": "SYS", - "rpc": ["https://rpc.syscoin.org", "wss://rpc.syscoin.org/wss"], - "faucets": ["https://faucet.syscoin.org"], - "nativeCurrency": { - "name": "Syscoin", - "symbol": "SYS", - "decimals": 18 - }, - "infoURL": "https://www.syscoin.org", - "shortName": "sys", - "chainId": 57, - "networkId": 57, - "explorers": [ - { - "name": "Syscoin Block Explorer", - "url": "https://explorer.syscoin.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "Ontology Mainnet", - "chain": "Ontology", - "rpc": [ - "http://dappnode1.ont.io:20339", - "http://dappnode2.ont.io:20339", - "http://dappnode3.ont.io:20339", - "http://dappnode4.ont.io:20339", - "https://dappnode1.ont.io:10339", - "https://dappnode2.ont.io:10339", - "https://dappnode3.ont.io:10339", - "https://dappnode4.ont.io:10339" - ], - "faucets": [], - "nativeCurrency": { - "name": "ONG", - "symbol": "ONG", - "decimals": 18 - }, - "infoURL": "https://ont.io/", - "shortName": "OntologyMainnet", - "chainId": 58, - "networkId": 58, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.ont.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "EOS Mainnet", - "chain": "EOS", - "rpc": ["https://api.eosargentina.io"], - "faucets": [], - "nativeCurrency": { - "name": "EOS", - "symbol": "EOS", - "decimals": 18 - }, - "infoURL": "https://eoscommunity.org/", - "shortName": "EOSMainnet", - "chainId": 59, - "networkId": 59, - "explorers": [ - { - "name": "bloks", - "url": "https://bloks.eosargentina.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "GoChain", - "chain": "GO", - "rpc": ["https://rpc.gochain.io"], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], - "nativeCurrency": { - "name": "GoChain Ether", - "symbol": "GO", - "decimals": 18 - }, - "infoURL": "https://gochain.io", - "shortName": "go", - "chainId": 60, - "networkId": 60, - "slip44": 6060, - "explorers": [ - { - "name": "GoChain Explorer", - "url": "https://explorer.gochain.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Ethereum Classic Mainnet", - "chain": "ETC", - "rpc": ["https://www.ethercluster.com/etc"], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/?"], - "nativeCurrency": { - "name": "Ethereum Classic Ether", - "symbol": "ETC", - "decimals": 18 - }, - "infoURL": "https://ethereumclassic.org", - "shortName": "etc", - "chainId": 61, - "networkId": 1, - "slip44": 61, - "explorers": [ - { - "name": "blockscout", - "url": "https://blockscout.com/etc/mainnet", - "standard": "none" - } - ] - }, - { - "name": "Ethereum Classic Testnet Morden", - "chain": "ETC", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Ethereum Classic Testnet Ether", - "symbol": "TETC", - "decimals": 18 - }, - "infoURL": "https://ethereumclassic.org", - "shortName": "tetc", - "chainId": 62, - "networkId": 2 - }, - { - "name": "Ethereum Classic Testnet Mordor", - "chain": "ETC", - "rpc": ["https://www.ethercluster.com/mordor"], - "faucets": [], - "nativeCurrency": { - "name": "Mordor Classic Testnet Ether", - "symbol": "METC", - "decimals": 18 - }, - "infoURL": "https://github.com/eth-classic/mordor/", - "shortName": "metc", - "chainId": 63, - "networkId": 7 - }, - { - "name": "Ellaism", - "chain": "ELLA", - "rpc": ["https://jsonrpc.ellaism.org"], - "faucets": [], - "nativeCurrency": { - "name": "Ellaism Ether", - "symbol": "ELLA", - "decimals": 18 - }, - "infoURL": "https://ellaism.org", - "shortName": "ellaism", - "chainId": 64, - "networkId": 64, - "slip44": 163 - }, - { - "name": "OKExChain Testnet", - "chain": "okexchain", - "rpc": ["https://exchaintestrpc.okex.org"], - "faucets": ["https://www.okex.com/drawdex"], - "nativeCurrency": { - "name": "OKExChain Global Utility Token in testnet", - "symbol": "OKT", - "decimals": 18 - }, - "infoURL": "https://www.okex.com/okexchain", - "shortName": "tokt", - "chainId": 65, - "networkId": 65, - "explorers": [ - { - "name": "OKLink", - "url": "https://www.oklink.com/okexchain-test", - "standard": "EIP3091" - } - ] - }, - { - "name": "OKXChain Mainnet", - "chain": "okxchain", - "rpc": [ - "https://exchainrpc.okex.org", - "https://okc-mainnet.gateway.pokt.network/v1/lb/6275309bea1b320039c893ff" - ], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/?"], - "nativeCurrency": { - "name": "OKXChain Global Utility Token", - "symbol": "OKT", - "decimals": 18 - }, - "infoURL": "https://www.okex.com/okc", - "shortName": "okt", - "chainId": 66, - "networkId": 66, - "explorers": [ - { - "name": "OKLink", - "url": "https://www.oklink.com/en/okc", - "standard": "EIP3091" - } - ] - }, - { - "name": "DBChain Testnet", - "chain": "DBM", - "rpc": ["http://test-rpc.dbmbp.com"], - "faucets": [], - "nativeCurrency": { - "name": "DBChain Testnet", - "symbol": "DBM", - "decimals": 18 - }, - "infoURL": "http://test.dbmbp.com", - "shortName": "dbm", - "chainId": 67, - "networkId": 67 - }, - { - "name": "SoterOne Mainnet", - "chain": "SOTER", - "rpc": ["https://rpc.soter.one"], - "faucets": [], - "nativeCurrency": { - "name": "SoterOne Mainnet Ether", - "symbol": "SOTER", - "decimals": 18 - }, - "infoURL": "https://www.soterone.com", - "shortName": "SO1", - "chainId": 68, - "networkId": 68 - }, - { - "name": "Optimism Kovan", - "title": "Optimism Testnet Kovan", - "chain": "ETH", - "rpc": ["https://kovan.optimism.io/"], - "faucets": ["http://fauceth.komputing.org?chain=69&address=${ADDRESS}"], - "nativeCurrency": { - "name": "Kovan Ether", - "symbol": "ETH", - "decimals": 18 - }, - "explorers": [ - { - "name": "etherscan", - "url": "https://kovan-optimistic.etherscan.io", - "standard": "EIP3091" - } - ], - "infoURL": "https://optimism.io", - "shortName": "okov", - "chainId": 69, - "networkId": 69 - }, - { - "name": "Hoo Smart Chain", - "chain": "HSC", - "rpc": [ - "https://http-mainnet.hoosmartchain.com", - "https://http-mainnet2.hoosmartchain.com", - "wss://ws-mainnet.hoosmartchain.com", - "wss://ws-mainnet2.hoosmartchain.com" - ], - "faucets": [], - "nativeCurrency": { - "name": "Hoo Smart Chain Native Token", - "symbol": "HOO", - "decimals": 18 - }, - "infoURL": "https://www.hoosmartchain.com", - "shortName": "hsc", - "chainId": 70, - "networkId": 70, - "slip44": 1170, - "explorers": [ - { - "name": "hooscan", - "url": "https://www.hooscan.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Conflux eSpace (Testnet)", - "chain": "Conflux", - "rpc": ["https://evmtestnet.confluxrpc.com"], - "faucets": ["https://faucet.confluxnetwork.org"], - "nativeCurrency": { - "name": "CFX", - "symbol": "CFX", - "decimals": 18 - }, - "infoURL": "https://confluxnetwork.org", - "shortName": "cfxtest", - "chainId": 71, - "networkId": 71, - "icon": "conflux", - "explorers": [ - { - "name": "Conflux Scan", - "url": "https://evmtestnet.confluxscan.net", - "standard": "none" - } - ] - }, - { - "name": "DxChain Testnet", - "chain": "DxChain", - "rpc": ["https://testnet-http.dxchain.com"], - "faucets": ["https://faucet.dxscan.io"], - "nativeCurrency": { - "name": "DxChain Testnet", - "symbol": "DX", - "decimals": 18 - }, - "infoURL": "https://testnet.dxscan.io/", - "shortName": "dxc", - "chainId": 72, - "networkId": 72 - }, - { - "name": "IDChain Mainnet", - "chain": "IDChain", - "rpc": ["https://idchain.one/rpc/", "wss://idchain.one/ws/"], - "faucets": [], - "nativeCurrency": { - "name": "EIDI", - "symbol": "EIDI", - "decimals": 18 - }, - "infoURL": "https://idchain.one/begin/", - "shortName": "idchain", - "chainId": 74, - "networkId": 74, - "icon": "idchain", - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.idchain.one", - "icon": "etherscan", - "standard": "EIP3091" - } - ] - }, - { - "name": "Mix", - "chain": "MIX", - "rpc": ["https://rpc2.mix-blockchain.org:8647"], - "faucets": [], - "nativeCurrency": { - "name": "Mix Ether", - "symbol": "MIX", - "decimals": 18 - }, - "infoURL": "https://mix-blockchain.org", - "shortName": "mix", - "chainId": 76, - "networkId": 76, - "slip44": 76 - }, - { - "name": "POA Network Sokol", - "chain": "POA", - "rpc": [ - "https://sokol.poa.network", - "wss://sokol.poa.network/wss", - "ws://sokol.poa.network:8546" - ], - "faucets": ["https://faucet.poa.network"], - "nativeCurrency": { - "name": "POA Sokol Ether", - "symbol": "SPOA", - "decimals": 18 - }, - "infoURL": "https://poa.network", - "shortName": "spoa", - "chainId": 77, - "networkId": 77, - "explorers": [ - { - "name": "blockscout", - "url": "https://blockscout.com/poa/sokol", - "standard": "none" - } - ] - }, - { - "name": "PrimusChain mainnet", - "chain": "PC", - "rpc": ["https://ethnode.primusmoney.com/mainnet"], - "faucets": [], - "nativeCurrency": { - "name": "Primus Ether", - "symbol": "PETH", - "decimals": 18 - }, - "infoURL": "https://primusmoney.com", - "shortName": "primuschain", - "chainId": 78, - "networkId": 78 - }, - { - "name": "Zenith Mainnet", - "chain": "Zenith", - "rpc": [ - "https://dataserver-us-1.zenithchain.co/", - "https://dataserver-asia-3.zenithchain.co/", - "https://dataserver-asia-4.zenithchain.co/", - "https://dataserver-asia-2.zenithchain.co/", - "https://dataserver-asia-5.zenithchain.co/", - "https://dataserver-asia-6.zenithchain.co/", - "https://dataserver-asia-7.zenithchain.co/" - ], - "faucets": [], - "nativeCurrency": { - "name": "ZENITH", - "symbol": "ZENITH", - "decimals": 18 - }, - "infoURL": "https://www.zenithchain.co/", - "chainId": 79, - "networkId": 79, - "shortName": "zenith", - "explorers": [ - { - "name": "zenith scan", - "url": "https://scan.zenithchain.co", - "standard": "EIP3091" - } - ] - }, - { - "name": "GeneChain", - "chain": "GeneChain", - "rpc": ["https://rpc.genechain.io"], - "faucets": [], - "nativeCurrency": { - "name": "RNA", - "symbol": "RNA", - "decimals": 18 - }, - "infoURL": "https://scan.genechain.io/", - "shortName": "GeneChain", - "chainId": 80, - "networkId": 80, - "explorers": [ - { - "name": "GeneChain Scan", - "url": "https://scan.genechain.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Zenith Testnet (Vilnius)", - "chain": "Zenith", - "rpc": ["https://vilnius.zenithchain.co/http"], - "faucets": ["https://faucet.zenithchain.co/"], - "nativeCurrency": { - "name": "Vilnius", - "symbol": "VIL", - "decimals": 18 - }, - "infoURL": "https://www.zenithchain.co/", - "chainId": 81, - "networkId": 81, - "shortName": "VIL", - "explorers": [ - { - "name": "vilnius scan", - "url": "https://vilnius.scan.zenithchain.co", - "standard": "EIP3091" - } - ] - }, - { - "name": "Meter Mainnet", - "chain": "METER", - "rpc": ["https://rpc.meter.io"], - "faucets": ["https://faucet.meter.io"], - "nativeCurrency": { - "name": "Meter", - "symbol": "MTR", - "decimals": 18 - }, - "infoURL": "https://www.meter.io", - "shortName": "Meter", - "chainId": 82, - "networkId": 82, - "explorers": [ - { - "name": "Meter Mainnet Scan", - "url": "https://scan.meter.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Meter Testnet", - "chain": "METER Testnet", - "rpc": ["https://rpctest.meter.io"], - "faucets": ["https://faucet-warringstakes.meter.io"], - "nativeCurrency": { - "name": "Meter", - "symbol": "MTR", - "decimals": 18 - }, - "infoURL": "https://www.meter.io", - "shortName": "MeterTest", - "chainId": 83, - "networkId": 83, - "explorers": [ - { - "name": "Meter Testnet Scan", - "url": "https://scan-warringstakes.meter.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "GateChain Testnet", - "chainId": 85, - "shortName": "gttest", - "chain": "GTTEST", - "networkId": 85, - "nativeCurrency": { - "name": "GateToken", - "symbol": "GT", - "decimals": 18 - }, - "rpc": ["https://testnet.gatenode.cc"], - "faucets": ["https://www.gatescan.org/testnet/faucet"], - "explorers": [ - { - "name": "GateScan", - "url": "https://www.gatescan.org/testnet", - "standard": "EIP3091" - } - ], - "infoURL": "https://www.gatechain.io" - }, - { - "name": "GateChain Mainnet", - "chainId": 86, - "shortName": "gt", - "chain": "GT", - "networkId": 86, - "nativeCurrency": { - "name": "GateToken", - "symbol": "GT", - "decimals": 18 - }, - "rpc": ["https://evm.gatenode.cc"], - "faucets": ["https://www.gatescan.org/faucet"], - "explorers": [ - { - "name": "GateScan", - "url": "https://www.gatescan.org", - "standard": "EIP3091" - } - ], - "infoURL": "https://www.gatechain.io" - }, - { - "name": "Nova Network", - "chain": "NNW", - "icon": "novanetwork", - "rpc": [ - "https://connect.novanetwork.io", - "https://0x57.redjackstudio.com", - "https://rpc.novanetwork.io:9070" - ], - "faucets": [], - "nativeCurrency": { - "name": "Supernova", - "symbol": "SNT", - "decimals": 18 - }, - "infoURL": "https://novanetwork.io", - "shortName": "nnw", - "chainId": 87, - "networkId": 87, - "explorers": [ - { - "name": "novanetwork", - "url": "https://explorer.novanetwork.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "TomoChain", - "chain": "TOMO", - "rpc": ["https://rpc.tomochain.com"], - "faucets": [], - "nativeCurrency": { - "name": "TomoChain", - "symbol": "TOMO", - "decimals": 18 - }, - "infoURL": "https://tomochain.com", - "shortName": "tomo", - "chainId": 88, - "networkId": 88, - "slip44": 889 - }, - { - "name": "TomoChain Testnet", - "chain": "TOMO", - "rpc": ["https://rpc.testnet.tomochain.com"], - "faucets": [], - "nativeCurrency": { - "name": "TomoChain", - "symbol": "TOMO", - "decimals": 18 - }, - "infoURL": "https://tomochain.com", - "shortName": "tomot", - "chainId": 89, - "networkId": 89, - "slip44": 889 - }, - { - "name": "Garizon Stage0", - "chain": "GAR", - "icon": "garizon", - "rpc": ["https://s0.garizon.net/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Garizon", - "symbol": "GAR", - "decimals": 18 - }, - "infoURL": "https://garizon.com", - "shortName": "gar-s0", - "chainId": 90, - "networkId": 90, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.garizon.com", - "icon": "garizon", - "standard": "EIP3091" - } - ] - }, - { - "name": "Garizon Stage1", - "chain": "GAR", - "icon": "garizon", - "rpc": ["https://s1.garizon.net/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Garizon", - "symbol": "GAR", - "decimals": 18 - }, - "infoURL": "https://garizon.com", - "shortName": "gar-s1", - "chainId": 91, - "networkId": 91, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.garizon.com", - "icon": "garizon", - "standard": "EIP3091" - } - ], - "parent": { - "chain": "eip155-90", - "type": "shard" - } - }, - { - "name": "Garizon Stage2", - "chain": "GAR", - "icon": "garizon", - "rpc": ["https://s2.garizon.net/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Garizon", - "symbol": "GAR", - "decimals": 18 - }, - "infoURL": "https://garizon.com", - "shortName": "gar-s2", - "chainId": 92, - "networkId": 92, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.garizon.com", - "icon": "garizon", - "standard": "EIP3091" - } - ], - "parent": { - "chain": "eip155-90", - "type": "shard" - } - }, - { - "name": "Garizon Stage3", - "chain": "GAR", - "icon": "garizon", - "rpc": ["https://s3.garizon.net/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Garizon", - "symbol": "GAR", - "decimals": 18 - }, - "infoURL": "https://garizon.com", - "shortName": "gar-s3", - "chainId": 93, - "networkId": 93, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.garizon.com", - "icon": "garizon", - "standard": "EIP3091" - } - ], - "parent": { - "chain": "eip155-90", - "type": "shard" - } - }, - { - "name": "CryptoKylin Testnet", - "chain": "EOS", - "rpc": ["https://kylin.eosargentina.io"], - "faucets": [], - "nativeCurrency": { - "name": "EOS", - "symbol": "EOS", - "decimals": 18 - }, - "infoURL": "https://www.cryptokylin.io/", - "shortName": "KylinTestnet", - "chainId": 95, - "networkId": 95, - "explorers": [ - { - "name": "eosq", - "url": "https://kylin.eosargentina.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "NEXT Smart Chain", - "chain": "NSC", - "rpc": ["https://rpc.nextsmartchain.com"], - "faucets": ["https://faucet.nextsmartchain.com"], - "nativeCurrency": { - "name": "NEXT", - "symbol": "NEXT", - "decimals": 18 - }, - "infoURL": "https://www.nextsmartchain.com/", - "shortName": "nsc", - "chainId": 96, - "networkId": 96, - "explorers": [ - { - "name": "Next Smart Chain Explorer", - "url": "https://explorer.nextsmartchain.com", - "standard": "none" - } - ] - }, - { - "name": "Binance Smart Chain Testnet", - "chain": "BSC", - "rpc": [ - "https://data-seed-prebsc-1-s1.binance.org:8545", - "https://data-seed-prebsc-2-s1.binance.org:8545", - "https://data-seed-prebsc-1-s2.binance.org:8545", - "https://data-seed-prebsc-2-s2.binance.org:8545", - "https://data-seed-prebsc-1-s3.binance.org:8545", - "https://data-seed-prebsc-2-s3.binance.org:8545" - ], - "faucets": ["https://testnet.binance.org/faucet-smart"], - "nativeCurrency": { - "name": "Binance Chain Native Token", - "symbol": "tBNB", - "decimals": 18 - }, - "infoURL": "https://testnet.binance.org/", - "shortName": "bnbt", - "chainId": 97, - "networkId": 97, - "explorers": [ - { - "name": "bscscan-testnet", - "url": "https://testnet.bscscan.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "POA Network Core", - "chain": "POA", - "rpc": [ - "https://core.poanetwork.dev", - "http://core.poanetwork.dev:8545", - "https://core.poa.network", - "ws://core.poanetwork.dev:8546" - ], - "faucets": [], - "nativeCurrency": { - "name": "POA Network Core Ether", - "symbol": "POA", - "decimals": 18 - }, - "infoURL": "https://poa.network", - "shortName": "poa", - "chainId": 99, - "networkId": 99, - "slip44": 178, - "explorers": [ - { - "name": "blockscout", - "url": "https://blockscout.com/poa/core", - "standard": "none" - } - ] - }, - { - "name": "Gnosis", - "chain": "GNO", - "icon": "gnosis", - "rpc": [ - "https://rpc.gnosischain.com", - "https://rpc.ankr.com/gnosis", - "https://gnosischain-rpc.gateway.pokt.network", - "https://gnosis-mainnet.public.blastapi.io", - "wss://rpc.gnosischain.com/wss" - ], - "faucets": [ - "https://gnosisfaucet.com", - "https://faucet.gimlu.com/gnosis", - "https://stakely.io/faucet/gnosis-chain-xdai", - "https://faucet.prussia.dev/xdai" - ], - "nativeCurrency": { - "name": "xDAI", - "symbol": "xDAI", - "decimals": 18 - }, - "infoURL": "https://docs.gnosischain.com", - "shortName": "gno", - "chainId": 100, - "networkId": 100, - "slip44": 700, - "explorers": [ - { - "name": "gnosisscan", - "url": "https://gnosisscan.io", - "icon": "gnosisscan", - "standard": "EIP3091" - }, - { - "name": "blockscout", - "url": "https://blockscout.com/xdai/mainnet", - "icon": "blockscout", - "standard": "EIP3091" - } - ] - }, - { - "name": "EtherInc", - "chain": "ETI", - "rpc": ["https://api.einc.io/jsonrpc/mainnet"], - "faucets": [], - "nativeCurrency": { - "name": "EtherInc Ether", - "symbol": "ETI", - "decimals": 18 - }, - "infoURL": "https://einc.io", - "shortName": "eti", - "chainId": 101, - "networkId": 1, - "slip44": 464 - }, - { - "name": "Web3Games Testnet", - "chain": "Web3Games", - "icon": "web3games", - "rpc": [ - "https://testnet-rpc-0.web3games.org/evm", - "https://testnet-rpc-1.web3games.org/evm", - "https://testnet-rpc-2.web3games.org/evm" - ], - "faucets": [], - "nativeCurrency": { - "name": "Web3Games", - "symbol": "W3G", - "decimals": 18 - }, - "infoURL": "https://web3games.org/", - "shortName": "tw3g", - "chainId": 102, - "networkId": 102 - }, - { - "name": "Kaiba Lightning Chain Testnet", - "chain": "tKLC", - "rpc": ["https://klc.live/"], - "faucets": [], - "nativeCurrency": { - "name": "Kaiba Testnet Token", - "symbol": "tKAIBA", - "decimals": 18 - }, - "infoURL": "https://kaibadefi.com", - "shortName": "tklc", - "chainId": 104, - "networkId": 104, - "icon": "kaiba", - "explorers": [ - { - "name": "kaibascan", - "url": "https://kaibascan.io", - "icon": "kaibascan", - "standard": "EIP3091" - } - ] - }, - { - "name": "Web3Games Devnet", - "chain": "Web3Games", - "icon": "web3games", - "rpc": ["https://devnet.web3games.org/evm"], - "faucets": [], - "nativeCurrency": { - "name": "Web3Games", - "symbol": "W3G", - "decimals": 18 - }, - "infoURL": "https://web3games.org/", - "shortName": "dw3g", - "chainId": 105, - "networkId": 105, - "explorers": [ - { - "name": "Web3Games Explorer", - "url": "https://explorer-devnet.web3games.org", - "standard": "none" - } - ] - }, - { - "name": "Velas EVM Mainnet", - "chain": "Velas", - "icon": "velas", - "rpc": [ - "https://evmexplorer.velas.com/rpc", - "https://explorer.velas.com/rpc" - ], - "faucets": [], - "nativeCurrency": { - "name": "Velas", - "symbol": "VLX", - "decimals": 18 - }, - "infoURL": "https://velas.com", - "shortName": "vlx", - "chainId": 106, - "networkId": 106, - "explorers": [ - { - "name": "Velas Explorer", - "url": "https://evmexplorer.velas.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Nebula Testnet", - "chain": "NTN", - "icon": "nebulatestnet", - "rpc": ["https://testnet.rpc.novanetwork.io:9070"], - "faucets": ["https://faucet.novanetwork.io"], - "nativeCurrency": { - "name": "Nebula X", - "symbol": "NBX", - "decimals": 18 - }, - "infoURL": "https://novanetwork.io", - "shortName": "ntn", - "chainId": 107, - "networkId": 107, - "explorers": [ - { - "name": "nebulatestnet", - "url": "https://explorer.novanetwork.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "ThunderCore Mainnet", - "chain": "TT", - "rpc": [ - "https://mainnet-rpc.thundercore.com", - "https://mainnet-rpc.thundertoken.net", - "https://mainnet-rpc.thundercore.io" - ], - "faucets": ["https://faucet.thundercore.com"], - "nativeCurrency": { - "name": "ThunderCore Token", - "symbol": "TT", - "decimals": 18 - }, - "infoURL": "https://thundercore.com", - "shortName": "TT", - "chainId": 108, - "networkId": 108, - "slip44": 1001, - "explorers": [ - { - "name": "thundercore-viewblock", - "url": "https://viewblock.io/thundercore", - "standard": "EIP3091" - } - ] - }, - { - "name": "Proton Testnet", - "chain": "XPR", - "rpc": ["https://protontestnet.greymass.com/"], - "faucets": [], - "nativeCurrency": { - "name": "Proton", - "symbol": "XPR", - "decimals": 4 - }, - "infoURL": "https://protonchain.com", - "shortName": "xpr", - "chainId": 110, - "networkId": 110 - }, - { - "name": "EtherLite Chain", - "chain": "ETL", - "rpc": ["https://rpc.etherlite.org"], - "faucets": ["https://etherlite.org/faucets"], - "nativeCurrency": { - "name": "EtherLite", - "symbol": "ETL", - "decimals": 18 - }, - "infoURL": "https://etherlite.org", - "shortName": "ETL", - "chainId": 111, - "networkId": 111, - "icon": "etherlite" - }, - { - "name": "Fuse Mainnet", - "chain": "FUSE", - "rpc": ["https://rpc.fuse.io"], - "faucets": [], - "nativeCurrency": { - "name": "Fuse", - "symbol": "FUSE", - "decimals": 18 - }, - "infoURL": "https://fuse.io/", - "shortName": "fuse", - "chainId": 122, - "networkId": 122 - }, - { - "name": "Fuse Sparknet", - "chain": "fuse", - "rpc": ["https://rpc.fusespark.io"], - "faucets": ["https://get.fusespark.io"], - "nativeCurrency": { - "name": "Spark", - "symbol": "SPARK", - "decimals": 18 - }, - "infoURL": "https://docs.fuse.io/general/fuse-network-blockchain/fuse-testnet", - "shortName": "spark", - "chainId": 123, - "networkId": 123 - }, - { - "name": "Decentralized Web Mainnet", - "shortName": "dwu", - "chain": "DWU", - "chainId": 124, - "networkId": 124, - "rpc": ["https://decentralized-web.tech/dw_rpc.php"], - "faucets": [], - "infoURL": "https://decentralized-web.tech/dw_chain.php", - "nativeCurrency": { - "name": "Decentralized Web Utility", - "symbol": "DWU", - "decimals": 18 - } - }, - { - "name": "OYchain Testnet", - "chain": "OYchain", - "rpc": ["https://rpc.testnet.oychain.io"], - "faucets": ["https://faucet.oychain.io"], - "nativeCurrency": { - "name": "OYchain Token", - "symbol": "OY", - "decimals": 18 - }, - "infoURL": "https://www.oychain.io", - "shortName": "OYchainTestnet", - "chainId": 125, - "networkId": 125, - "slip44": 125, - "explorers": [ - { - "name": "OYchain Testnet Explorer", - "url": "https://explorer.testnet.oychain.io", - "standard": "none" - } - ] - }, - { - "name": "OYchain Mainnet", - "chain": "OYchain", - "icon": "oychain", - "rpc": ["https://rpc.mainnet.oychain.io"], - "faucets": [], - "nativeCurrency": { - "name": "OYchain Token", - "symbol": "OY", - "decimals": 18 - }, - "infoURL": "https://www.oychain.io", - "shortName": "OYchainMainnet", - "chainId": 126, - "networkId": 126, - "slip44": 126, - "explorers": [ - { - "name": "OYchain Mainnet Explorer", - "url": "https://explorer.oychain.io", - "standard": "none" - } - ] - }, - { - "name": "Factory 127 Mainnet", - "chain": "FETH", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Factory 127 Token", - "symbol": "FETH", - "decimals": 18 - }, - "infoURL": "https://www.factory127.com", - "shortName": "feth", - "chainId": 127, - "networkId": 127, - "slip44": 127 - }, - { - "name": "Huobi ECO Chain Mainnet", - "chain": "Heco", - "rpc": [ - "https://http-mainnet.hecochain.com", - "wss://ws-mainnet.hecochain.com" - ], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], - "nativeCurrency": { - "name": "Huobi ECO Chain Native Token", - "symbol": "HT", - "decimals": 18 - }, - "infoURL": "https://www.hecochain.com", - "shortName": "heco", - "chainId": 128, - "networkId": 128, - "slip44": 1010, - "explorers": [ - { - "name": "hecoinfo", - "url": "https://hecoinfo.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Polygon Mainnet", - "chain": "Polygon", - "rpc": [ - "https://polygon-rpc.com/", - "https://rpc-mainnet.matic.network", - "https://matic-mainnet.chainstacklabs.com", - "https://rpc-mainnet.maticvigil.com", - "https://rpc-mainnet.matic.quiknode.pro", - "https://matic-mainnet-full-rpc.bwarelabs.com" - ], - "faucets": [], - "nativeCurrency": { - "name": "MATIC", - "symbol": "MATIC", - "decimals": 18 - }, - "infoURL": "https://polygon.technology/", - "shortName": "matic", - "chainId": 137, - "networkId": 137, - "slip44": 966, - "explorers": [ - { - "name": "polygonscan", - "url": "https://polygonscan.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Openpiece Testnet", - "chain": "OPENPIECE", - "icon": "openpiece", - "rpc": ["https://testnet.openpiece.io"], - "faucets": [], - "nativeCurrency": { - "name": "Belly", - "symbol": "BELLY", - "decimals": 18 - }, - "infoURL": "https://cryptopiece.online", - "shortName": "OPtest", - "chainId": 141, - "networkId": 141, - "explorers": [ - { - "name": "Belly Scan", - "url": "https://testnet.bellyscan.com", - "standard": "none" - } - ] - }, - { - "name": "DAX CHAIN", - "chain": "DAX", - "rpc": ["https://rpc.prodax.io"], - "faucets": [], - "nativeCurrency": { - "name": "Prodax", - "symbol": "DAX", - "decimals": 18 - }, - "infoURL": "https://prodax.io/", - "shortName": "dax", - "chainId": 142, - "networkId": 142 - }, - { - "name": "PHI Network v2", - "chain": "PHI", - "rpc": ["https://connect.phi.network", ""], - "faucets": [], - "nativeCurrency": { - "name": "PHI", - "symbol": "Φ", - "decimals": 18 - }, - "infoURL": "https://phi.network", - "shortName": "PHI", - "chainId": 144, - "networkId": 144, - "icon": "phi", - "explorers": [ - { - "name": "Phiscan", - "url": "https://phiscan.com", - "icon": "phi", - "standard": "none" - } - ] - }, - { - "name": "Lightstreams Testnet", - "chain": "PHT", - "rpc": ["https://node.sirius.lightstreams.io"], - "faucets": ["https://discuss.lightstreams.network/t/request-test-tokens"], - "nativeCurrency": { - "name": "Lightstreams PHT", - "symbol": "PHT", - "decimals": 18 - }, - "infoURL": "https://explorer.sirius.lightstreams.io", - "shortName": "tpht", - "chainId": 162, - "networkId": 162 - }, - { - "name": "Lightstreams Mainnet", - "chain": "PHT", - "rpc": ["https://node.mainnet.lightstreams.io"], - "faucets": [], - "nativeCurrency": { - "name": "Lightstreams PHT", - "symbol": "PHT", - "decimals": 18 - }, - "infoURL": "https://explorer.lightstreams.io", - "shortName": "pht", - "chainId": 163, - "networkId": 163 - }, - { - "name": "AIOZ Network", - "chain": "AIOZ", - "icon": "aioz", - "rpc": ["https://eth-dataseed.aioz.network"], - "faucets": [], - "nativeCurrency": { - "name": "AIOZ", - "symbol": "AIOZ", - "decimals": 18 - }, - "infoURL": "https://aioz.network", - "shortName": "aioz", - "chainId": 168, - "networkId": 168, - "slip44": 60, - "explorers": [ - { - "name": "AIOZ Network Explorer", - "url": "https://explorer.aioz.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "HOO Smart Chain Testnet", - "chain": "ETH", - "rpc": ["https://http-testnet.hoosmartchain.com"], - "faucets": ["https://faucet-testnet.hscscan.com/"], - "nativeCurrency": { - "name": "HOO", - "symbol": "HOO", - "decimals": 18 - }, - "infoURL": "https://www.hoosmartchain.com", - "shortName": "hoosmartchain", - "chainId": 170, - "networkId": 170 - }, - { - "name": "Latam-Blockchain Resil Testnet", - "chain": "Resil", - "rpc": [ - "https://rpc.latam-blockchain.com", - "wss://ws.latam-blockchain.com" - ], - "faucets": ["https://faucet.latam-blockchain.com"], - "nativeCurrency": { - "name": "Latam-Blockchain Resil Test Native Token", - "symbol": "usd", - "decimals": 18 - }, - "infoURL": "https://latam-blockchain.com", - "shortName": "resil", - "chainId": 172, - "networkId": 172 - }, - { - "name": "AME Chain Mainnet", - "chain": "AME", - "rpc": ["https://node1.amechain.io/"], - "faucets": [], - "nativeCurrency": { - "name": "AME", - "symbol": "AME", - "decimals": 18 - }, - "infoURL": "https://amechain.io/", - "shortName": "ame", - "chainId": 180, - "networkId": 180, - "explorers": [ - { - "name": "AME Scan", - "url": "https://amescan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Seele Mainnet", - "chain": "Seele", - "rpc": ["https://rpc.seelen.pro/"], - "faucets": [], - "nativeCurrency": { - "name": "Seele", - "symbol": "Seele", - "decimals": 18 - }, - "infoURL": "https://seelen.pro/", - "shortName": "Seele", - "chainId": 186, - "networkId": 186, - "explorers": [ - { - "name": "seeleview", - "url": "https://seeleview.net", - "standard": "none" - } - ] - }, - { - "name": "BMC Mainnet", - "chain": "BMC", - "rpc": ["https://mainnet.bmcchain.com/"], - "faucets": [], - "nativeCurrency": { - "name": "BTM", - "symbol": "BTM", - "decimals": 18 - }, - "infoURL": "https://bmc.bytom.io/", - "shortName": "BMC", - "chainId": 188, - "networkId": 188, - "explorers": [ - { - "name": "Blockmeta", - "url": "https://bmc.blockmeta.com", - "standard": "none" - } - ] - }, - { - "name": "BMC Testnet", - "chain": "BMC", - "rpc": ["https://testnet.bmcchain.com"], - "faucets": [], - "nativeCurrency": { - "name": "BTM", - "symbol": "BTM", - "decimals": 18 - }, - "infoURL": "https://bmc.bytom.io/", - "shortName": "BMCT", - "chainId": 189, - "networkId": 189, - "explorers": [ - { - "name": "Blockmeta", - "url": "https://bmctestnet.blockmeta.com", - "standard": "none" - } - ] - }, - { - "name": "Crypto Emergency", - "chain": "CEM", - "rpc": ["https://cemchain.com"], - "faucets": [], - "nativeCurrency": { - "name": "Crypto Emergency", - "symbol": "CEM", - "decimals": 18 - }, - "infoURL": "https://cemblockchain.com/", - "shortName": "cem", - "chainId": 193, - "networkId": 193, - "explorers": [ - { - "name": "cemscan", - "url": "https://cemscan.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "BitTorrent Chain Mainnet", - "chain": "BTTC", - "rpc": ["https://rpc.bittorrentchain.io/"], - "faucets": [], - "nativeCurrency": { - "name": "BitTorrent", - "symbol": "BTT", - "decimals": 18 - }, - "infoURL": "https://bittorrentchain.io/", - "shortName": "BTT", - "chainId": 199, - "networkId": 199, - "explorers": [ - { - "name": "bttcscan", - "url": "https://scan.bittorrentchain.io", - "standard": "none" - } - ] - }, - { - "name": "Arbitrum on xDai", - "chain": "AOX", - "rpc": ["https://arbitrum.xdaichain.com/"], - "faucets": [], - "nativeCurrency": { - "name": "xDAI", - "symbol": "xDAI", - "decimals": 18 - }, - "infoURL": "https://xdaichain.com", - "shortName": "aox", - "chainId": 200, - "networkId": 200, - "explorers": [ - { - "name": "blockscout", - "url": "https://blockscout.com/xdai/arbitrum", - "standard": "EIP3091" - } - ], - "parent": { - "chain": "eip155-100", - "type": "L2" - } - }, - { - "name": "Freight Trust Network", - "chain": "EDI", - "rpc": [ - "http://13.57.207.168:3435", - "https://app.freighttrust.net/ftn/${API_KEY}" - ], - "faucets": ["http://faucet.freight.sh"], - "nativeCurrency": { - "name": "Freight Trust Native", - "symbol": "0xF", - "decimals": 18 - }, - "infoURL": "https://freighttrust.com", - "shortName": "EDI", - "chainId": 211, - "networkId": 0 - }, - { - "name": "SoterOne Mainnet old", - "chain": "SOTER", - "rpc": ["https://rpc.soter.one"], - "faucets": [], - "nativeCurrency": { - "name": "SoterOne Mainnet Ether", - "symbol": "SOTER", - "decimals": 18 - }, - "infoURL": "https://www.soterone.com", - "shortName": "SO1-old", - "chainId": 218, - "networkId": 218, - "status": "deprecated" - }, - { - "name": "Permission", - "chain": "ASK", - "rpc": ["https://blockchain-api-mainnet.permission.io/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "ASK", - "symbol": "ASK", - "decimals": 18 - }, - "infoURL": "https://permission.io/", - "shortName": "ASK", - "chainId": 222, - "networkId": 2221, - "slip44": 2221, - "status": "deprecated" - }, - { - "name": "LACHAIN Mainnet", - "chain": "LA", - "icon": "lachain", - "rpc": ["https://rpc-mainnet.lachain.io"], - "faucets": [], - "nativeCurrency": { - "name": "LA", - "symbol": "LA", - "decimals": 18 - }, - "infoURL": "https://lachain.io", - "shortName": "LA", - "chainId": 225, - "networkId": 225, - "explorers": [ - { - "name": "blockscout", - "url": "https://scan.lachain.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "LACHAIN Testnet", - "chain": "TLA", - "icon": "lachain", - "rpc": ["https://rpc-testnet.lachain.io"], - "faucets": [], - "nativeCurrency": { - "name": "TLA", - "symbol": "TLA", - "decimals": 18 - }, - "infoURL": "https://lachain.io", - "shortName": "TLA", - "chainId": 226, - "networkId": 226, - "explorers": [ - { - "name": "blockscout", - "url": "https://scan-test.lachain.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Energy Web Chain", - "chain": "Energy Web Chain", - "rpc": ["https://rpc.energyweb.org", "wss://rpc.energyweb.org/ws"], - "faucets": [ - "https://faucet.carbonswap.exchange", - "https://free-online-app.com/faucet-for-eth-evm-chains/" - ], - "nativeCurrency": { - "name": "Energy Web Token", - "symbol": "EWT", - "decimals": 18 - }, - "infoURL": "https://energyweb.org", - "shortName": "ewt", - "chainId": 246, - "networkId": 246, - "slip44": 246, - "explorers": [ - { - "name": "blockscout", - "url": "https://explorer.energyweb.org", - "standard": "none" - } - ] - }, - { - "name": "Fantom Opera", - "chain": "FTM", - "rpc": ["https://rpc.ftm.tools"], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], - "nativeCurrency": { - "name": "Fantom", - "symbol": "FTM", - "decimals": 18 - }, - "infoURL": "https://fantom.foundation", - "shortName": "ftm", - "chainId": 250, - "networkId": 250, - "icon": "fantom", - "explorers": [ - { - "name": "ftmscan", - "url": "https://ftmscan.com", - "icon": "ftmscan", - "standard": "EIP3091" - } - ] - }, - { - "name": "Huobi ECO Chain Testnet", - "chain": "Heco", - "rpc": [ - "https://http-testnet.hecochain.com", - "wss://ws-testnet.hecochain.com" - ], - "faucets": ["https://scan-testnet.hecochain.com/faucet"], - "nativeCurrency": { - "name": "Huobi ECO Chain Test Native Token", - "symbol": "htt", - "decimals": 18 - }, - "infoURL": "https://testnet.hecoinfo.com", - "shortName": "hecot", - "chainId": 256, - "networkId": 256 - }, - { - "name": "Setheum", - "chain": "Setheum", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Setheum", - "symbol": "SETM", - "decimals": 18 - }, - "infoURL": "https://setheum.xyz", - "shortName": "setm", - "chainId": 258, - "networkId": 258 - }, - { - "name": "SUR Blockchain Network", - "chain": "SUR", - "rpc": ["https://sur.nilin.org"], - "faucets": [], - "nativeCurrency": { - "name": "Suren", - "symbol": "SRN", - "decimals": 18 - }, - "infoURL": "https://surnet.org", - "shortName": "SUR", - "chainId": 262, - "networkId": 1, - "icon": "SUR", - "explorers": [ - { - "name": "Surnet Explorer", - "url": "https://explorer.surnet.org", - "icon": "SUR", - "standard": "EIP3091" - } - ] - }, - { - "name": "High Performance Blockchain", - "chain": "HPB", - "rpc": ["https://hpbnode.com", "wss://ws.hpbnode.com"], - "faucets": ["https://myhpbwallet.com/"], - "nativeCurrency": { - "name": "High Performance Blockchain Ether", - "symbol": "HPB", - "decimals": 18 - }, - "infoURL": "https://hpb.io", - "shortName": "hpb", - "chainId": 269, - "networkId": 269, - "slip44": 269, - "explorers": [ - { - "name": "hscan", - "url": "https://hscan.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "zkSync alpha testnet", - "chain": "ETH", - "rpc": ["https://zksync2-testnet.zksync.dev"], - "faucets": ["https://portal.zksync.io/faucet"], - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://v2-docs.zksync.io/", - "shortName": "zksync-goerli", - "chainId": 280, - "networkId": 280, - "icon": "ethereum", - "explorers": [ - { - "name": "blockscout", - "url": "https://zksync2-testnet.zkscan.io", - "icon": "blockscout", - "standard": "EIP3091" - } - ] - }, - { - "name": "Boba Network", - "chain": "ETH", - "rpc": ["https://mainnet.boba.network/"], - "faucets": [], - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://boba.network", - "shortName": "Boba", - "chainId": 288, - "networkId": 288, - "explorers": [ - { - "name": "Blockscout", - "url": "https://blockexplorer.boba.network", - "standard": "none" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-1", - "bridges": [ - { - "url": "https://gateway.boba.network" - } - ] - } - }, - { - "name": "Optimism on Gnosis", - "chain": "OGC", - "rpc": [ - "https://optimism.gnosischain.com", - "wss://optimism.gnosischain.com/wss" - ], - "faucets": ["https://faucet.gimlu.com/gnosis"], - "nativeCurrency": { - "name": "xDAI", - "symbol": "xDAI", - "decimals": 18 - }, - "infoURL": "https://www.xdaichain.com/for-developers/optimism-optimistic-rollups-on-gc", - "shortName": "ogc", - "chainId": 300, - "networkId": 300, - "explorers": [ - { - "name": "blockscout", - "url": "https://blockscout.com/xdai/optimism", - "icon": "blockscout", - "standard": "EIP3091" - } - ] - }, - { - "name": "KCC Mainnet", - "chain": "KCC", - "rpc": [ - "https://rpc-mainnet.kcc.network", - "wss://rpc-ws-mainnet.kcc.network" - ], - "faucets": [], - "nativeCurrency": { - "name": "KuCoin Token", - "symbol": "KCS", - "decimals": 18 - }, - "infoURL": "https://kcc.io", - "shortName": "kcs", - "chainId": 321, - "networkId": 1, - "explorers": [ - { - "name": "KCC Explorer", - "url": "https://explorer.kcc.io/en", - "standard": "EIP3091" - } - ] - }, - { - "name": "KCC Testnet", - "chain": "KCC", - "rpc": [ - "https://rpc-testnet.kcc.network", - "wss://rpc-ws-testnet.kcc.network" - ], - "faucets": ["https://faucet-testnet.kcc.network"], - "nativeCurrency": { - "name": "KuCoin Testnet Token", - "symbol": "tKCS", - "decimals": 18 - }, - "infoURL": "https://scan-testnet.kcc.network", - "shortName": "kcst", - "chainId": 322, - "networkId": 322, - "explorers": [ - { - "name": "kcc-scan", - "url": "https://scan-testnet.kcc.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "Web3Q Mainnet", - "chain": "Web3Q", - "rpc": ["https://mainnet.web3q.io:8545"], - "faucets": [], - "nativeCurrency": { - "name": "Web3Q", - "symbol": "W3Q", - "decimals": 18 - }, - "infoURL": "https://web3q.io/home.w3q/", - "shortName": "w3q", - "chainId": 333, - "networkId": 333, - "explorers": [ - { - "name": "w3q-mainnet", - "url": "https://explorer.mainnet.web3q.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "DFK Chain Test", - "chain": "DFK", - "icon": "dfk", - "rpc": ["https://subnets.avax.network/defi-kingdoms/dfk-chain-testnet/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Jewel", - "symbol": "JEWEL", - "decimals": 18 - }, - "infoURL": "https://defikingdoms.com", - "shortName": "DFKTEST", - "chainId": 335, - "networkId": 335, - "explorers": [ - { - "name": "ethernal", - "url": "https://explorer-test.dfkchain.com", - "icon": "ethereum", - "standard": "none" - } - ] - }, - { - "name": "Shiden", - "chain": "SDN", - "rpc": [ - "https://rpc.shiden.astar.network:8545", - "wss://shiden.api.onfinality.io/public-ws" - ], - "faucets": [], - "nativeCurrency": { - "name": "Shiden", - "symbol": "SDN", - "decimals": 18 - }, - "infoURL": "https://shiden.astar.network/", - "shortName": "sdn", - "chainId": 336, - "networkId": 336, - "icon": "shiden", - "explorers": [ - { - "name": "subscan", - "url": "https://shiden.subscan.io", - "standard": "none", - "icon": "subscan" - } - ] - }, - { - "name": "Cronos Testnet", - "chain": "CRO", - "rpc": [ - "https://cronos-testnet-3.crypto.org:8545", - "wss://cronos-testnet-3.crypto.org:8546" - ], - "faucets": ["https://cronos.crypto.org/faucet"], - "nativeCurrency": { - "name": "Crypto.org Test Coin", - "symbol": "TCRO", - "decimals": 18 - }, - "infoURL": "https://cronos.crypto.org", - "shortName": "tcro", - "chainId": 338, - "networkId": 338, - "explorers": [ - { - "name": "Cronos Testnet Explorer", - "url": "https://cronos.crypto.org/explorer/testnet3", - "standard": "none" - } - ] - }, - { - "name": "Theta Mainnet", - "chain": "Theta", - "rpc": ["https://eth-rpc-api.thetatoken.org/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Theta Fuel", - "symbol": "TFUEL", - "decimals": 18 - }, - "infoURL": "https://www.thetatoken.org/", - "shortName": "theta-mainnet", - "chainId": 361, - "networkId": 361, - "explorers": [ - { - "name": "Theta Mainnet Explorer", - "url": "https://explorer.thetatoken.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "Theta Sapphire Testnet", - "chain": "Theta", - "rpc": ["https://eth-rpc-api-sapphire.thetatoken.org/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Theta Fuel", - "symbol": "TFUEL", - "decimals": 18 - }, - "infoURL": "https://www.thetatoken.org/", - "shortName": "theta-sapphire", - "chainId": 363, - "networkId": 363, - "explorers": [ - { - "name": "Theta Sapphire Testnet Explorer", - "url": "https://guardian-testnet-sapphire-explorer.thetatoken.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "Theta Amber Testnet", - "chain": "Theta", - "rpc": ["https://eth-rpc-api-amber.thetatoken.org/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Theta Fuel", - "symbol": "TFUEL", - "decimals": 18 - }, - "infoURL": "https://www.thetatoken.org/", - "shortName": "theta-amber", - "chainId": 364, - "networkId": 364, - "explorers": [ - { - "name": "Theta Amber Testnet Explorer", - "url": "https://guardian-testnet-amber-explorer.thetatoken.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "Theta Testnet", - "chain": "Theta", - "rpc": ["https://eth-rpc-api-testnet.thetatoken.org/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Theta Fuel", - "symbol": "TFUEL", - "decimals": 18 - }, - "infoURL": "https://www.thetatoken.org/", - "shortName": "theta-testnet", - "chainId": 365, - "networkId": 365, - "explorers": [ - { - "name": "Theta Testnet Explorer", - "url": "https://testnet-explorer.thetatoken.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "PulseChain Mainnet", - "shortName": "pls", - "chain": "PLS", - "chainId": 369, - "networkId": 369, - "infoURL": "https://pulsechain.com/", - "rpc": [ - "https://rpc.mainnet.pulsechain.com/", - "wss://rpc.mainnet.pulsechain.com/" - ], - "faucets": [], - "nativeCurrency": { - "name": "Pulse", - "symbol": "PLS", - "decimals": 18 - } - }, - { - "name": "Lisinski", - "chain": "CRO", - "rpc": ["https://rpc-bitfalls1.lisinski.online"], - "faucets": ["https://pipa.lisinski.online"], - "nativeCurrency": { - "name": "Lisinski Ether", - "symbol": "LISINS", - "decimals": 18 - }, - "infoURL": "https://lisinski.online", - "shortName": "lisinski", - "chainId": 385, - "networkId": 385 - }, - { - "name": "SX Network Mainnet", - "chain": "SX", - "icon": "SX", - "rpc": ["https://rpc.sx.technology"], - "faucets": [], - "nativeCurrency": { - "name": "SX Network", - "symbol": "SX", - "decimals": 18 - }, - "infoURL": "https://www.sx.technology", - "shortName": "SX", - "chainId": 416, - "networkId": 416, - "explorers": [ - { - "name": "SX Network Explorer", - "url": "https://explorer.sx.technology", - "standard": "EIP3091" - } - ] - }, - { - "name": "Optimism Goerli Testnet", - "chain": "ETH", - "rpc": ["https://goerli.optimism.io/"], - "faucets": [], - "nativeCurrency": { - "name": "Görli Ether", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://optimism.io", - "shortName": "ogor", - "chainId": 420, - "networkId": 420 - }, - { - "name": "Rupaya", - "chain": "RUPX", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Rupaya", - "symbol": "RUPX", - "decimals": 18 - }, - "infoURL": "https://www.rupx.io", - "shortName": "rupx", - "chainId": 499, - "networkId": 499, - "slip44": 499 - }, - { - "name": "Double-A Chain Mainnet", - "chain": "AAC", - "rpc": ["https://rpc.acuteangle.com"], - "faucets": [], - "nativeCurrency": { - "name": "Acuteangle Native Token", - "symbol": "AAC", - "decimals": 18 - }, - "infoURL": "https://www.acuteangle.com/", - "shortName": "aac", - "chainId": 512, - "networkId": 512, - "slip44": 1512, - "explorers": [ - { - "name": "aacscan", - "url": "https://scan.acuteangle.com", - "standard": "EIP3091" - } - ], - "icon": "aac" - }, - { - "name": "Double-A Chain Testnet", - "chain": "AAC", - "icon": "aac", - "rpc": ["https://rpc-testnet.acuteangle.com"], - "faucets": ["https://scan-testnet.acuteangle.com/faucet"], - "nativeCurrency": { - "name": "Acuteangle Native Token", - "symbol": "AAC", - "decimals": 18 - }, - "infoURL": "https://www.acuteangle.com/", - "shortName": "aact", - "chainId": 513, - "networkId": 513, - "explorers": [ - { - "name": "aacscan-testnet", - "url": "https://scan-testnet.acuteangle.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "XT Smart Chain Mainnet", - "chain": "XSC", - "icon": "xsc", - "rpc": [ - "https://datarpc1.xsc.pub", - "https://datarpc2.xsc.pub", - "https://datarpc3.xsc.pub" - ], - "faucets": ["https://xsc.pub/faucet"], - "nativeCurrency": { - "name": "XT Smart Chain Native Token", - "symbol": "XT", - "decimals": 18 - }, - "infoURL": "https://xsc.pub/", - "shortName": "xt", - "chainId": 520, - "networkId": 1024, - "explorers": [ - { - "name": "xscscan", - "url": "https://xscscan.pub", - "standard": "EIP3091" - } - ] - }, - { - "name": "F(x)Core Mainnet Network", - "chain": "Fxcore", - "rpc": ["https://fx-json-web3.functionx.io:8545"], - "faucets": [], - "nativeCurrency": { - "name": "Function X", - "symbol": "FX", - "decimals": 18 - }, - "infoURL": "https://functionx.io/", - "shortName": "FxCore", - "chainId": 530, - "networkId": 530, - "icon": "fxcore", - "explorers": [ - { - "name": "FunctionX Explorer", - "url": "https://fx-evm.functionx.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Candle", - "chain": "Candle", - "rpc": ["https://candle-rpc.com/", "https://rpc.cndlchain.com"], - "faucets": [], - "nativeCurrency": { - "name": "CANDLE", - "symbol": "CNDL", - "decimals": 18 - }, - "infoURL": "https://candlelabs.org/", - "shortName": "CNDL", - "chainId": 534, - "networkId": 534, - "slip44": 674, - "explorers": [ - { - "name": "candleexplorer", - "url": "https://candleexplorer.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Vela1 Chain Mainnet", - "chain": "VELA1", - "rpc": ["https://rpc.velaverse.io"], - "faucets": [], - "nativeCurrency": { - "name": "CLASS COIN", - "symbol": "CLASS", - "decimals": 18 - }, - "infoURL": "https://velaverse.io", - "shortName": "CLASS", - "chainId": 555, - "networkId": 555, - "explorers": [ - { - "name": "Vela1 Chain Mainnet Explorer", - "url": "https://exp.velaverse.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Tao Network", - "chain": "TAO", - "rpc": [ - "https://rpc.testnet.tao.network", - "http://rpc.testnet.tao.network:8545", - "https://rpc.tao.network", - "wss://rpc.tao.network" - ], - "faucets": [], - "nativeCurrency": { - "name": "Tao", - "symbol": "TAO", - "decimals": 18 - }, - "infoURL": "https://tao.network", - "shortName": "tao", - "chainId": 558, - "networkId": 558 - }, - { - "name": "Dogechain Testnet", - "chain": "DC", - "icon": "dogechain", - "rpc": ["https://rpc-testnet.dogechain.dog"], - "faucets": ["https://faucet.dogechain.dog"], - "nativeCurrency": { - "name": "Dogecoin", - "symbol": "DOGE", - "decimals": 18 - }, - "infoURL": "https://dogechain.dog", - "shortName": "dct", - "chainId": 568, - "networkId": 568, - "explorers": [ - { - "name": "dogechain testnet explorer", - "url": "https://explorer-testnet.dogechain.dog", - "standard": "EIP3091" - } - ] - }, - { - "name": "Metis Stardust Testnet", - "chain": "ETH", - "rpc": ["https://stardust.metis.io/?owner=588"], - "faucets": [], - "nativeCurrency": { - "name": "tMetis", - "symbol": "METIS", - "decimals": 18 - }, - "infoURL": "https://www.metis.io", - "shortName": "metis-stardust", - "chainId": 588, - "networkId": 588, - "explorers": [ - { - "name": "blockscout", - "url": "https://stardust-explorer.metis.io", - "standard": "EIP3091" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-4", - "bridges": [ - { - "url": "https://bridge.metis.io" - } - ] - } - }, - { - "name": "Astar", - "chain": "ASTR", - "rpc": ["https://rpc.astar.network:8545"], - "faucets": [], - "nativeCurrency": { - "name": "Astar", - "symbol": "ASTR", - "decimals": 18 - }, - "infoURL": "https://astar.network/", - "shortName": "astr", - "chainId": 592, - "networkId": 592, - "icon": "astar", - "explorers": [ - { - "name": "subscan", - "url": "https://astar.subscan.io", - "standard": "none", - "icon": "subscan" - } - ] - }, - { - "name": "Acala Mandala Testnet", - "chain": "mACA", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Acala Mandala Token", - "symbol": "mACA", - "decimals": 18 - }, - "infoURL": "https://acala.network", - "shortName": "maca", - "chainId": 595, - "networkId": 595 - }, - { - "name": "Karura Network Testnet", - "chain": "KAR", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Karura Token", - "symbol": "KAR", - "decimals": 18 - }, - "infoURL": "https://karura.network", - "shortName": "tkar", - "chainId": 596, - "networkId": 596, - "slip44": 596 - }, - { - "name": "Acala Network Testnet", - "chain": "ACA", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Acala Token", - "symbol": "ACA", - "decimals": 18 - }, - "infoURL": "https://acala.network", - "shortName": "taca", - "chainId": 597, - "networkId": 597, - "slip44": 597 - }, - { - "name": "Meshnyan testnet", - "chain": "MeshTestChain", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Meshnyan Testnet Native Token", - "symbol": "MESHT", - "decimals": 18 - }, - "infoURL": "", - "shortName": "mesh-chain-testnet", - "chainId": 600, - "networkId": 600 - }, - { - "name": "SX Network Testnet", - "chain": "SX", - "icon": "SX", - "rpc": ["https://rpc.toronto.sx.technology"], - "faucets": ["https://faucet.toronto.sx.technology"], - "nativeCurrency": { - "name": "SX Network", - "symbol": "SX", - "decimals": 18 - }, - "infoURL": "https://www.sx.technology", - "shortName": "SX-Testnet", - "chainId": 647, - "networkId": 647, - "explorers": [ - { - "name": "SX Network Toronto Explorer", - "url": "https://explorer.toronto.sx.technology", - "standard": "EIP3091" - } - ] - }, - { - "name": "Pixie Chain Testnet", - "chain": "PixieChain", - "rpc": [ - "https://http-testnet.chain.pixie.xyz", - "wss://ws-testnet.chain.pixie.xyz" - ], - "faucets": ["https://chain.pixie.xyz/faucet"], - "nativeCurrency": { - "name": "Pixie Chain Testnet Native Token", - "symbol": "PCTT", - "decimals": 18 - }, - "infoURL": "https://scan-testnet.chain.pixie.xyz", - "shortName": "pixie-chain-testnet", - "chainId": 666, - "networkId": 666 - }, - { - "name": "Karura Network", - "chain": "KAR", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Karura Token", - "symbol": "KAR", - "decimals": 18 - }, - "infoURL": "https://karura.network", - "shortName": "kar", - "chainId": 686, - "networkId": 686, - "slip44": 686 - }, - { - "name": "Star Social Testnet", - "chain": "SNS", - "rpc": ["https://avastar.cc/ext/bc/C/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Social", - "symbol": "SNS", - "decimals": 18 - }, - "infoURL": "https://info.avastar.cc", - "shortName": "SNS", - "chainId": 700, - "networkId": 700, - "explorers": [ - { - "name": "starscan", - "url": "https://avastar.info", - "standard": "EIP3091" - } - ] - }, - { - "name": "BlockChain Station Mainnet", - "chain": "BCS", - "rpc": ["https://rpc-mainnet.bcsdev.io", "wss://rpc-ws-mainnet.bcsdev.io"], - "faucets": [], - "nativeCurrency": { - "name": "BCS Token", - "symbol": "BCS", - "decimals": 18 - }, - "infoURL": "https://blockchainstation.io", - "shortName": "bcs", - "chainId": 707, - "networkId": 707, - "explorers": [ - { - "name": "BlockChain Station Explorer", - "url": "https://explorer.bcsdev.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "BlockChain Station Testnet", - "chain": "BCS", - "rpc": ["https://rpc-testnet.bcsdev.io", "wss://rpc-ws-testnet.bcsdev.io"], - "faucets": ["https://faucet.bcsdev.io"], - "nativeCurrency": { - "name": "BCS Testnet Token", - "symbol": "tBCS", - "decimals": 18 - }, - "infoURL": "https://blockchainstation.io", - "shortName": "tbcs", - "chainId": 708, - "networkId": 708, - "explorers": [ - { - "name": "BlockChain Station Explorer", - "url": "https://testnet.bcsdev.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Factory 127 Testnet", - "chain": "FETH", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Factory 127 Token", - "symbol": "FETH", - "decimals": 18 - }, - "infoURL": "https://www.factory127.com", - "shortName": "tfeth", - "chainId": 721, - "networkId": 721, - "slip44": 721 - }, - { - "name": "OpenChain Testnet", - "chain": "OpenChain Testnet", - "rpc": [ - "http://mainnet.openchain.info:8545", - "https://mainnet1.openchain.info" - ], - "faucets": ["https://faucet.openchain.info/"], - "nativeCurrency": { - "name": "Openchain Testnet", - "symbol": "TOPC", - "decimals": 18 - }, - "infoURL": "https://testnet.openchain.info/", - "shortName": "opc", - "chainId": 776, - "networkId": 776, - "explorers": [ - { - "name": "OPEN CHAIN TESTNET", - "url": "https://testnet.openchain.info", - "standard": "none" - } - ] - }, - { - "name": "cheapETH", - "chain": "cheapETH", - "rpc": ["https://node.cheapeth.org/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "cTH", - "symbol": "cTH", - "decimals": 18 - }, - "infoURL": "https://cheapeth.org/", - "shortName": "cth", - "chainId": 777, - "networkId": 777 - }, - { - "name": "Acala Network", - "chain": "ACA", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Acala Token", - "symbol": "ACA", - "decimals": 18 - }, - "infoURL": "https://acala.network", - "shortName": "aca", - "chainId": 787, - "networkId": 787, - "slip44": 787 - }, - { - "name": "Aerochain Testnet", - "chain": "Aerochain", - "rpc": ["https://testnet-rpc.aerochain.id/"], - "faucets": ["https://faucet.aerochain.id/"], - "nativeCurrency": { - "name": "Aerochain Testnet", - "symbol": "TAero", - "decimals": 18 - }, - "infoURL": "https://aerochaincoin.org/", - "shortName": "taero", - "chainId": 788, - "networkId": 788, - "explorers": [ - { - "name": "aeroscan", - "url": "https://testnet.aeroscan.id", - "standard": "EIP3091" - } - ] - }, - { - "name": "Haic", - "chain": "Haic", - "rpc": ["https://orig.haichain.io/"], - "faucets": [], - "nativeCurrency": { - "name": "Haicoin", - "symbol": "HAIC", - "decimals": 18 - }, - "infoURL": "https://www.haichain.io/", - "shortName": "haic", - "chainId": 803, - "networkId": 803 - }, - { - "name": "Portal Fantasy Chain Test", - "chain": "PF", - "icon": "pf", - "rpc": ["https://subnets.avax.network/portal-fantasy/testnet/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Portal Fantasy Token", - "symbol": "PFT", - "decimals": 18 - }, - "infoURL": "https://portalfantasy.io", - "shortName": "PFTEST", - "chainId": 808, - "networkId": 808, - "explorers": [] - }, - { - "name": "Callisto Mainnet", - "chain": "CLO", - "rpc": ["https://rpc.callisto.network/"], - "faucets": [], - "nativeCurrency": { - "name": "Callisto", - "symbol": "CLO", - "decimals": 18 - }, - "infoURL": "https://callisto.network", - "shortName": "clo", - "chainId": 820, - "networkId": 1, - "slip44": 820 - }, - { - "name": "Callisto Testnet Deprecated", - "chain": "CLO", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Callisto Testnet Ether", - "symbol": "TCLO", - "decimals": 18 - }, - "infoURL": "https://callisto.network", - "shortName": "tclo", - "chainId": 821, - "networkId": 2, - "status": "deprecated" - }, - { - "name": "Ambros Chain Mainnet", - "chain": "ambroschain", - "rpc": ["https://api.ambros.network"], - "faucets": [], - "nativeCurrency": { - "name": "AMBROS", - "symbol": "AMBROS", - "decimals": 18 - }, - "infoURL": "https://ambros.network", - "shortName": "ambros", - "chainId": 880, - "networkId": 880, - "explorers": [ - { - "name": "Ambros Chain Explorer", - "url": "https://ambrosscan.com", - "standard": "none" - } - ] - }, - { - "name": "Wanchain", - "chain": "WAN", - "rpc": ["https://gwan-ssl.wandevs.org:56891/"], - "faucets": [], - "nativeCurrency": { - "name": "Wancoin", - "symbol": "WAN", - "decimals": 18 - }, - "infoURL": "https://www.wanscan.org", - "shortName": "wan", - "chainId": 888, - "networkId": 888, - "slip44": 5718350 - }, - { - "name": "Garizon Testnet Stage0", - "chain": "GAR", - "icon": "garizon", - "rpc": ["https://s0-testnet.garizon.net/rpc"], - "faucets": ["https://faucet-testnet.garizon.com"], - "nativeCurrency": { - "name": "Garizon", - "symbol": "GAR", - "decimals": 18 - }, - "infoURL": "https://garizon.com", - "shortName": "gar-test-s0", - "chainId": 900, - "networkId": 900, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer-testnet.garizon.com", - "icon": "garizon", - "standard": "EIP3091" - } - ] - }, - { - "name": "Garizon Testnet Stage1", - "chain": "GAR", - "icon": "garizon", - "rpc": ["https://s1-testnet.garizon.net/rpc"], - "faucets": ["https://faucet-testnet.garizon.com"], - "nativeCurrency": { - "name": "Garizon", - "symbol": "GAR", - "decimals": 18 - }, - "infoURL": "https://garizon.com", - "shortName": "gar-test-s1", - "chainId": 901, - "networkId": 901, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer-testnet.garizon.com", - "icon": "garizon", - "standard": "EIP3091" - } - ], - "parent": { - "chain": "eip155-900", - "type": "shard" - } - }, - { - "name": "Garizon Testnet Stage2", - "chain": "GAR", - "icon": "garizon", - "rpc": ["https://s2-testnet.garizon.net/rpc"], - "faucets": ["https://faucet-testnet.garizon.com"], - "nativeCurrency": { - "name": "Garizon", - "symbol": "GAR", - "decimals": 18 - }, - "infoURL": "https://garizon.com", - "shortName": "gar-test-s2", - "chainId": 902, - "networkId": 902, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer-testnet.garizon.com", - "icon": "garizon", - "standard": "EIP3091" - } - ], - "parent": { - "chain": "eip155-900", - "type": "shard" - } - }, - { - "name": "Garizon Testnet Stage3", - "chain": "GAR", - "icon": "garizon", - "rpc": ["https://s3-testnet.garizon.net/rpc"], - "faucets": ["https://faucet-testnet.garizon.com"], - "nativeCurrency": { - "name": "Garizon", - "symbol": "GAR", - "decimals": 18 - }, - "infoURL": "https://garizon.com", - "shortName": "gar-test-s3", - "chainId": 903, - "networkId": 903, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer-testnet.garizon.com", - "icon": "garizon", - "standard": "EIP3091" - } - ], - "parent": { - "chain": "eip155-900", - "type": "shard" - } - }, - { - "name": "Portal Fantasy Chain", - "chain": "PF", - "icon": "pf", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Portal Fantasy Token", - "symbol": "PFT", - "decimals": 18 - }, - "infoURL": "https://portalfantasy.io", - "shortName": "PF", - "chainId": 909, - "networkId": 909, - "explorers": [], - "status": "incubating" - }, - { - "name": "PulseChain Testnet", - "shortName": "tpls", - "chain": "tPLS", - "chainId": 940, - "networkId": 940, - "infoURL": "https://pulsechain.com/", - "rpc": [ - "https://rpc.v2.testnet.pulsechain.com/", - "wss://rpc.v2.testnet.pulsechain.com/" - ], - "faucets": ["https://faucet.v2.testnet.pulsechain.com/"], - "nativeCurrency": { - "name": "Test Pulse", - "symbol": "tPLS", - "decimals": 18 - } - }, - { - "name": "PulseChain Testnet v2b", - "shortName": "t2bpls", - "chain": "t2bPLS", - "chainId": 941, - "networkId": 941, - "infoURL": "https://pulsechain.com/", - "rpc": [ - "https://rpc.v2b.testnet.pulsechain.com/", - "wss://rpc.v2b.testnet.pulsechain.com/" - ], - "faucets": ["https://faucet.v2b.testnet.pulsechain.com/"], - "nativeCurrency": { - "name": "Test Pulse", - "symbol": "tPLS", - "decimals": 18 - } - }, - { - "name": "PulseChain Testnet v3", - "shortName": "t3pls", - "chain": "t3PLS", - "chainId": 942, - "networkId": 942, - "infoURL": "https://pulsechain.com/", - "rpc": [ - "https://rpc.v3.testnet.pulsechain.com/", - "wss://rpc.v3.testnet.pulsechain.com/" - ], - "faucets": ["https://faucet.v3.testnet.pulsechain.com/"], - "nativeCurrency": { - "name": "Test Pulse", - "symbol": "tPLS", - "decimals": 18 - } - }, - { - "name": "CCN", - "title": "ComputeCoin Main Network", - "chain": "CCN", - "rpc": ["https://rpc.mainnet.computecoin.com"], - "faucets": [], - "nativeCurrency": { - "name": "ComputeCoin", - "symbol": "CCN", - "decimals": 18 - }, - "infoURL": "https://computecoin.com/", - "shortName": "ccn", - "chainId": 970, - "networkId": 970, - "icon": "ccn" - }, - { - "name": "CCN Beta", - "title": "ComputeCoin Beta Network", - "chain": "CCN Beta", - "rpc": ["https://beta-rpc.mainnet.computecoin.com"], - "faucets": [], - "nativeCurrency": { - "name": "ComputeCoin", - "symbol": "CCN", - "decimals": 18 - }, - "infoURL": "https://computecoin.com/", - "shortName": "ccnbeta", - "chainId": 971, - "networkId": 971, - "icon": "ccn" - }, - { - "name": "Nepal Blockchain Network", - "chain": "YETI", - "rpc": [ - "https://api.nepalblockchain.dev", - "https://api.nepalblockchain.network" - ], - "faucets": ["https://faucet.nepalblockchain.network"], - "nativeCurrency": { - "name": "Nepal Blockchain Network Ether", - "symbol": "YETI", - "decimals": 18 - }, - "infoURL": "https://nepalblockchain.network", - "shortName": "yeti", - "chainId": 977, - "networkId": 977 - }, - { - "name": "TOP Mainnet EVM", - "chain": "TOP", - "icon": "top", - "rpc": ["ethapi.topnetwork.org"], - "faucets": [], - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://www.topnetwork.org/", - "shortName": "top_evm", - "chainId": 980, - "networkId": 0, - "explorers": [ - { - "name": "topscan.dev", - "url": "https://www.topscan.io", - "standard": "none" - } - ] - }, - { - "name": "TOP Mainnet", - "chain": "TOP", - "icon": "top", - "rpc": ["topapi.topnetwork.org"], - "faucets": [], - "nativeCurrency": { - "name": "TOP", - "symbol": "TOP", - "decimals": 6 - }, - "infoURL": "https://www.topnetwork.org/", - "shortName": "top", - "chainId": 989, - "networkId": 0, - "explorers": [ - { - "name": "topscan.dev", - "url": "https://www.topscan.io", - "standard": "none" - } - ] - }, - { - "name": "Lucky Network", - "chain": "LN", - "rpc": [ - "https://rpc.luckynetwork.org", - "wss://ws.lnscan.org", - "https://rpc.lnscan.org" - ], - "faucets": [], - "nativeCurrency": { - "name": "Lucky", - "symbol": "L99", - "decimals": 18 - }, - "infoURL": "https://luckynetwork.org", - "shortName": "ln", - "chainId": 998, - "networkId": 998, - "icon": "lucky", - "explorers": [ - { - "name": "blockscout", - "url": "https://explorer.luckynetwork.org", - "standard": "none" - }, - { - "name": "expedition", - "url": "https://lnscan.org", - "standard": "none" - } - ] - }, - { - "name": "Wanchain Testnet", - "chain": "WAN", - "rpc": ["https://gwan-ssl.wandevs.org:46891/"], - "faucets": [], - "nativeCurrency": { - "name": "Wancoin", - "symbol": "WAN", - "decimals": 18 - }, - "infoURL": "https://testnet.wanscan.org", - "shortName": "twan", - "chainId": 999, - "networkId": 999 - }, - { - "name": "GTON Mainnet", - "chain": "GTON", - "rpc": ["https://rpc.gton.network/"], - "faucets": [], - "nativeCurrency": { - "name": "GCD", - "symbol": "GCD", - "decimals": 18 - }, - "infoURL": "https://gton.capital", - "shortName": "gton", - "chainId": 1000, - "networkId": 1000, - "explorers": [ - { - "name": "GTON Network Explorer", - "url": "https://explorer.gton.network", - "standard": "EIP3091" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-1" - } - }, - { - "name": "Klaytn Testnet Baobab", - "chain": "KLAY", - "rpc": ["https://api.baobab.klaytn.net:8651"], - "faucets": ["https://baobab.wallet.klaytn.com/access?next=faucet"], - "nativeCurrency": { - "name": "KLAY", - "symbol": "KLAY", - "decimals": 18 - }, - "infoURL": "https://www.klaytn.com/", - "shortName": "Baobab", - "chainId": 1001, - "networkId": 1001 - }, - { - "name": "Newton Testnet", - "chain": "NEW", - "rpc": ["https://rpc1.newchain.newtonproject.org"], - "faucets": [], - "nativeCurrency": { - "name": "Newton", - "symbol": "NEW", - "decimals": 18 - }, - "infoURL": "https://www.newtonproject.org/", - "shortName": "tnew", - "chainId": 1007, - "networkId": 1007 - }, - { - "name": "Eurus Mainnet", - "chain": "EUN", - "rpc": ["https://mainnet.eurus.network/"], - "faucets": [], - "nativeCurrency": { - "name": "Eurus", - "symbol": "EUN", - "decimals": 18 - }, - "infoURL": "https://eurus.network", - "shortName": "eun", - "chainId": 1008, - "networkId": 1008, - "icon": "eurus", - "explorers": [ - { - "name": "eurusexplorer", - "url": "https://explorer.eurus.network", - "icon": "eurus", - "standard": "none" - } - ] - }, - { - "name": "Evrice Network", - "chain": "EVC", - "rpc": ["https://meta.evrice.com"], - "faucets": [], - "nativeCurrency": { - "name": "Evrice", - "symbol": "EVC", - "decimals": 18 - }, - "infoURL": "https://evrice.com", - "shortName": "EVC", - "chainId": 1010, - "networkId": 1010, - "slip44": 1020 - }, - { - "name": "Newton", - "chain": "NEW", - "rpc": ["https://global.rpc.mainnet.newtonproject.org"], - "faucets": [], - "nativeCurrency": { - "name": "Newton", - "symbol": "NEW", - "decimals": 18 - }, - "infoURL": "https://www.newtonproject.org/", - "shortName": "new", - "chainId": 1012, - "networkId": 1012 - }, - { - "name": "Sakura", - "chain": "Sakura", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Sakura", - "symbol": "SKU", - "decimals": 18 - }, - "infoURL": "https://clover.finance/sakura", - "shortName": "sku", - "chainId": 1022, - "networkId": 1022 - }, - { - "name": "Clover Testnet", - "chain": "Clover", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Clover", - "symbol": "CLV", - "decimals": 18 - }, - "infoURL": "https://clover.finance", - "shortName": "tclv", - "chainId": 1023, - "networkId": 1023 - }, - { - "name": "CLV Parachain", - "chain": "CLV", - "rpc": ["https://api-para.clover.finance"], - "faucets": [], - "nativeCurrency": { - "name": "CLV", - "symbol": "CLV", - "decimals": 18 - }, - "infoURL": "https://clv.org", - "shortName": "clv", - "chainId": 1024, - "networkId": 1024 - }, - { - "name": "BitTorrent Chain Testnet", - "chain": "BTTC", - "rpc": ["https://testrpc.bittorrentchain.io/"], - "faucets": [], - "nativeCurrency": { - "name": "BitTorrent", - "symbol": "BTT", - "decimals": 18 - }, - "infoURL": "https://bittorrentchain.io/", - "shortName": "tbtt", - "chainId": 1028, - "networkId": 1028, - "explorers": [ - { - "name": "testbttcscan", - "url": "https://testscan.bittorrentchain.io", - "standard": "none" - } - ] - }, - { - "name": "Conflux eSpace", - "chain": "Conflux", - "rpc": ["https://evm.confluxrpc.com"], - "faucets": [], - "nativeCurrency": { - "name": "CFX", - "symbol": "CFX", - "decimals": 18 - }, - "infoURL": "https://confluxnetwork.org", - "shortName": "cfx", - "chainId": 1030, - "networkId": 1030, - "icon": "conflux", - "explorers": [ - { - "name": "Conflux Scan", - "url": "https://evm.confluxscan.net", - "standard": "none" - } - ] - }, - { - "name": "Metis Andromeda Mainnet", - "chain": "ETH", - "rpc": ["https://andromeda.metis.io/?owner=1088"], - "faucets": [], - "nativeCurrency": { - "name": "Metis", - "symbol": "METIS", - "decimals": 18 - }, - "infoURL": "https://www.metis.io", - "shortName": "metis-andromeda", - "chainId": 1088, - "networkId": 1088, - "explorers": [ - { - "name": "blockscout", - "url": "https://andromeda-explorer.metis.io", - "standard": "EIP3091" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-1", - "bridges": [ - { - "url": "https://bridge.metis.io" - } - ] - } - }, - { - "name": "WEMIX3.0 Testnet", - "chain": "TWEMIX", - "rpc": ["https://api.test.wemix.com", "wss://ws.test.wemi.com"], - "faucets": ["https://wallet.test.wemix.com/faucet"], - "nativeCurrency": { - "name": "TestnetWEMIX", - "symbol": "tWEMIX", - "decimals": 18 - }, - "infoURL": "https://wemix.com", - "shortName": "twemix", - "chainId": 1112, - "networkId": 1112, - "explorers": [ - { - "name": "WEMIX Testnet Microscope", - "url": "https://microscope.test.wemix.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "MathChain", - "chain": "MATH", - "rpc": [ - "https://mathchain-asia.maiziqianbao.net/rpc", - "https://mathchain-us.maiziqianbao.net/rpc" - ], - "faucets": [], - "nativeCurrency": { - "name": "MathChain", - "symbol": "MATH", - "decimals": 18 - }, - "infoURL": "https://mathchain.org", - "shortName": "MATH", - "chainId": 1139, - "networkId": 1139 - }, - { - "name": "MathChain Testnet", - "chain": "MATH", - "rpc": ["https://galois-hk.maiziqianbao.net/rpc"], - "faucets": ["https://scan.boka.network/#/Galois/faucet"], - "nativeCurrency": { - "name": "MathChain", - "symbol": "MATH", - "decimals": 18 - }, - "infoURL": "https://mathchain.org", - "shortName": "tMATH", - "chainId": 1140, - "networkId": 1140 - }, - { - "name": "Iora Chain", - "chain": "IORA", - "icon": "iorachain", - "rpc": ["https://dataseed.iorachain.com"], - "faucets": [], - "nativeCurrency": { - "name": "Iora", - "symbol": "IORA", - "decimals": 18 - }, - "infoURL": "https://iorachain.com", - "shortName": "iora", - "chainId": 1197, - "networkId": 1197, - "explorers": [ - { - "name": "ioraexplorer", - "url": "https://explorer.iorachain.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Evanesco Testnet", - "chain": "Evanesco Testnet", - "rpc": ["https://seed5.evanesco.org:8547"], - "faucets": [], - "nativeCurrency": { - "name": "AVIS", - "symbol": "AVIS", - "decimals": 18 - }, - "infoURL": "https://evanesco.org/", - "shortName": "avis", - "chainId": 1201, - "networkId": 1201 - }, - { - "name": "World Trade Technical Chain Mainnet", - "chain": "WTT", - "rpc": ["https://rpc.cadaut.com", "wss://rpc.cadaut.com/ws"], - "faucets": [], - "nativeCurrency": { - "name": "World Trade Token", - "symbol": "WTT", - "decimals": 18 - }, - "infoURL": "http://www.cadaut.com", - "shortName": "wtt", - "chainId": 1202, - "networkId": 2048, - "explorers": [ - { - "name": "WTTScout", - "url": "https://explorer.cadaut.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Popcateum Mainnet", - "chain": "POPCATEUM", - "rpc": ["https://dataseed.popcateum.org"], - "faucets": [], - "nativeCurrency": { - "name": "Popcat", - "symbol": "POP", - "decimals": 18 - }, - "infoURL": "https://popcateum.org", - "shortName": "popcat", - "chainId": 1213, - "networkId": 1213, - "explorers": [ - { - "name": "popcateum explorer", - "url": "https://explorer.popcateum.org", - "standard": "none" - } - ] - }, - { - "name": "EnterChain Mainnet", - "chain": "ENTER", - "rpc": ["https://tapi.entercoin.net/"], - "faucets": [], - "nativeCurrency": { - "name": "EnterCoin", - "symbol": "ENTER", - "decimals": 18 - }, - "infoURL": "https://entercoin.net", - "shortName": "enter", - "chainId": 1214, - "networkId": 1214, - "icon": "enter", - "explorers": [ - { - "name": "Enter Explorer - Expenter", - "url": "https://explorer.entercoin.net", - "icon": "enter", - "standard": "EIP3091" - } - ] - }, - { - "name": "Ultron Testnet", - "chain": "Ultron", - "icon": "ultron", - "rpc": ["https://ultron-dev.io"], - "faucets": [], - "nativeCurrency": { - "name": "Ultron", - "symbol": "ULX", - "decimals": 18 - }, - "infoURL": "https://ultron.foundation", - "shortName": "UltronTestnet", - "chainId": 1230, - "networkId": 1230, - "explorers": [ - { - "name": "Ultron Testnet Explorer", - "url": "https://explorer.ultron-dev.io", - "icon": "ultron", - "standard": "none" - } - ] - }, - { - "name": "Ultron Mainnet", - "chain": "Ultron", - "icon": "ultron", - "rpc": ["https://ultron-rpc.net"], - "faucets": [], - "nativeCurrency": { - "name": "Ultron", - "symbol": "ULX", - "decimals": 18 - }, - "infoURL": "https://ultron.foundation", - "shortName": "UtronMainnet", - "chainId": 1231, - "networkId": 1231, - "explorers": [ - { - "name": "Ultron Explorer", - "url": "https://ulxscan.com", - "icon": "ultron", - "standard": "none" - } - ] - }, - { - "name": "OM Platform Mainnet", - "chain": "omplatform", - "rpc": ["https://rpc-cnx.omplatform.com/"], - "faucets": [], - "nativeCurrency": { - "name": "OMCOIN", - "symbol": "OM", - "decimals": 18 - }, - "infoURL": "https://omplatform.com/", - "shortName": "om", - "chainId": 1246, - "networkId": 1246, - "explorers": [ - { - "name": "OMSCAN - Expenter", - "url": "https://omscan.omplatform.com", - "standard": "none" - } - ] - }, - { - "name": "HALO Mainnet", - "chain": "HALO", - "rpc": ["https://nodes.halo.land"], - "faucets": [], - "nativeCurrency": { - "name": "HALO", - "symbol": "HO", - "decimals": 18 - }, - "infoURL": "https://halo.land/#/", - "shortName": "HO", - "chainId": 1280, - "networkId": 1280, - "explorers": [ - { - "name": "HALOexplorer", - "url": "https://browser.halo.land", - "standard": "none" - } - ] - }, - { - "name": "Moonbeam", - "chain": "MOON", - "rpc": [ - "https://rpc.api.moonbeam.network", - "wss://wss.api.moonbeam.network" - ], - "faucets": [], - "nativeCurrency": { - "name": "Glimmer", - "symbol": "GLMR", - "decimals": 18 - }, - "infoURL": "https://moonbeam.network/networks/moonbeam/", - "shortName": "mbeam", - "chainId": 1284, - "networkId": 1284, - "explorers": [ - { - "name": "moonscan", - "url": "https://moonbeam.moonscan.io", - "standard": "none" - } - ] - }, - { - "name": "Moonriver", - "chain": "MOON", - "rpc": [ - "https://rpc.api.moonriver.moonbeam.network", - "wss://wss.api.moonriver.moonbeam.network" - ], - "faucets": [], - "nativeCurrency": { - "name": "Moonriver", - "symbol": "MOVR", - "decimals": 18 - }, - "infoURL": "https://moonbeam.network/networks/moonriver/", - "shortName": "mriver", - "chainId": 1285, - "networkId": 1285, - "explorers": [ - { - "name": "moonscan", - "url": "https://moonriver.moonscan.io", - "standard": "none" - } - ] - }, - { - "name": "Moonrock old", - "chain": "MOON", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Rocs", - "symbol": "ROC", - "decimals": 18 - }, - "infoURL": "", - "shortName": "mrock-old", - "chainId": 1286, - "networkId": 1286, - "status": "deprecated" - }, - { - "name": "Moonbase Alpha", - "chain": "MOON", - "rpc": [ - "https://rpc.api.moonbase.moonbeam.network", - "wss://wss.api.moonbase.moonbeam.network" - ], - "faucets": [], - "nativeCurrency": { - "name": "Dev", - "symbol": "DEV", - "decimals": 18 - }, - "infoURL": "https://docs.moonbeam.network/networks/testnet/", - "shortName": "mbase", - "chainId": 1287, - "networkId": 1287, - "explorers": [ - { - "name": "moonscan", - "url": "https://moonbase.moonscan.io", - "standard": "none" - } - ] - }, - { - "name": "Moonrock", - "chain": "MOON", - "rpc": [ - "https://rpc.api.moonrock.moonbeam.network", - "wss://wss.api.moonrock.moonbeam.network" - ], - "faucets": [], - "nativeCurrency": { - "name": "Rocs", - "symbol": "ROC", - "decimals": 18 - }, - "infoURL": "https://docs.moonbeam.network/learn/platform/networks/overview/", - "shortName": "mrock", - "chainId": 1288, - "networkId": 1288 - }, - { - "name": "Boba Network Bobabeam", - "chain": "Bobabeam", - "rpc": [ - "https://bobabeam.boba.network", - "wss://wss.bobabeam.boba.network", - "https://replica.bobabeam.boba.network", - "wss://replica-wss.bobabeam.boba.network" - ], - "faucets": [], - "nativeCurrency": { - "name": "Boba Token", - "symbol": "BOBA", - "decimals": 18 - }, - "infoURL": "https://boba.network", - "shortName": "Bobabeam", - "chainId": 1294, - "networkId": 1294, - "explorers": [ - { - "name": "Bobabeam block explorer", - "url": "https://blockexplorer.bobabeam.boba.network", - "standard": "none" - } - ] - }, - { - "name": "Boba Network Bobabase Testnet", - "chain": "Bobabase Testnet", - "rpc": [ - "https://bobabase.boba.network", - "wss://wss.bobabase.boba.network", - "https://replica.bobabase.boba.network", - "wss://replica-wss.bobabase.boba.network" - ], - "faucets": [], - "nativeCurrency": { - "name": "Boba Token", - "symbol": "BOBA", - "decimals": 18 - }, - "infoURL": "https://boba.network", - "shortName": "Bobabase", - "chainId": 1297, - "networkId": 1297, - "explorers": [ - { - "name": "Bobabase block explorer", - "url": "https://blockexplorer.bobabase.boba.network", - "standard": "none" - } - ] - }, - { - "name": "Aitd Mainnet", - "chain": "AITD", - "icon": "aitd", - "rpc": ["https://walletrpc.aitd.io", "https://node.aitd.io"], - "faucets": [], - "nativeCurrency": { - "name": "AITD Mainnet", - "symbol": "AITD", - "decimals": 18 - }, - "infoURL": "https://www.aitd.io/", - "shortName": "aitd", - "chainId": 1319, - "networkId": 1319, - "explorers": [ - { - "name": "AITD Chain Explorer Mainnet", - "url": "https://aitd-explorer-new.aitd.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Aitd Testnet", - "chain": "AITD", - "icon": "aitd", - "rpc": ["http://http-testnet.aitd.io"], - "faucets": ["https://aitd-faucet-pre.aitdcoin.com/"], - "nativeCurrency": { - "name": "AITD Testnet", - "symbol": "AITD", - "decimals": 18 - }, - "infoURL": "https://www.aitd.io/", - "shortName": "aitdtestnet", - "chainId": 1320, - "networkId": 1320, - "explorers": [ - { - "name": "AITD Chain Explorer Testnet", - "url": "https://block-explorer-testnet.aitd.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "CENNZnet old", - "chain": "CENNZnet", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "CPAY", - "symbol": "CPAY", - "decimals": 18 - }, - "infoURL": "https://cennz.net", - "shortName": "cennz-old", - "chainId": 1337, - "networkId": 1337, - "status": "deprecated" - }, - { - "name": "Sherpax Mainnet", - "chain": "Sherpax Mainnet", - "rpc": ["https://mainnet.sherpax.io/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "KSX", - "symbol": "KSX", - "decimals": 18 - }, - "infoURL": "https://sherpax.io/", - "shortName": "Sherpax", - "chainId": 1506, - "networkId": 1506, - "explorers": [ - { - "name": "Sherpax Mainnet Explorer", - "url": "https://evm.sherpax.io", - "standard": "none" - } - ] - }, - { - "name": "Sherpax Testnet", - "chain": "Sherpax Testnet", - "rpc": ["https://sherpax-testnet.chainx.org/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "KSX", - "symbol": "KSX", - "decimals": 18 - }, - "infoURL": "https://sherpax.io/", - "shortName": "SherpaxTestnet", - "chainId": 1507, - "networkId": 1507, - "explorers": [ - { - "name": "Sherpax Testnet Explorer", - "url": "https://evm-pre.sherpax.io", - "standard": "none" - } - ] - }, - { - "name": "Beagle Messaging Chain", - "chain": "BMC", - "rpc": ["https://beagle.chat/eth"], - "faucets": ["https://faucet.beagle.chat/"], - "nativeCurrency": { - "name": "Beagle", - "symbol": "BG", - "decimals": 18 - }, - "infoURL": "https://beagle.chat/", - "shortName": "beagle", - "chainId": 1515, - "networkId": 1515, - "explorers": [ - { - "name": "Beagle Messaging Chain Explorer", - "url": "https://eth.beagle.chat", - "standard": "EIP3091" - } - ] - }, - { - "name": "Catecoin Chain Mainnet", - "chain": "Catechain", - "rpc": ["https://send.catechain.com"], - "faucets": [], - "nativeCurrency": { - "name": "Catecoin", - "symbol": "CATE", - "decimals": 18 - }, - "infoURL": "https://catechain.com", - "shortName": "cate", - "chainId": 1618, - "networkId": 1618 - }, - { - "name": "Atheios", - "chain": "ATH", - "rpc": ["https://wallet.atheios.com:8797"], - "faucets": [], - "nativeCurrency": { - "name": "Atheios Ether", - "symbol": "ATH", - "decimals": 18 - }, - "infoURL": "https://atheios.com", - "shortName": "ath", - "chainId": 1620, - "networkId": 11235813, - "slip44": 1620 - }, - { - "name": "Btachain", - "chain": "btachain", - "rpc": ["https://dataseed1.btachain.com/"], - "faucets": [], - "nativeCurrency": { - "name": "Bitcoin Asset", - "symbol": "BTA", - "decimals": 18 - }, - "infoURL": "https://bitcoinasset.io/", - "shortName": "bta", - "chainId": 1657, - "networkId": 1657 - }, - { - "name": "LUDAN Mainnet", - "chain": "LUDAN", - "rpc": ["https://rpc.ludan.org/"], - "faucets": [], - "nativeCurrency": { - "name": "LUDAN", - "symbol": "LUDAN", - "decimals": 18 - }, - "infoURL": "https://www.ludan.org/", - "shortName": "LUDAN", - "icon": "ludan", - "chainId": 1688, - "networkId": 1688 - }, - { - "name": "Cube Chain Mainnet", - "chain": "Cube", - "icon": "cube", - "rpc": [ - "https://http-mainnet.cube.network", - "wss://ws-mainnet.cube.network", - "https://http-mainnet-sg.cube.network", - "wss://ws-mainnet-sg.cube.network", - "https://http-mainnet-us.cube.network", - "wss://ws-mainnet-us.cube.network" - ], - "faucets": [], - "nativeCurrency": { - "name": "Cube Chain Native Token", - "symbol": "CUBE", - "decimals": 18 - }, - "infoURL": "https://www.cube.network", - "shortName": "cube", - "chainId": 1818, - "networkId": 1818, - "slip44": 1818, - "explorers": [ - { - "name": "cube-scan", - "url": "https://cubescan.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "Cube Chain Testnet", - "chain": "Cube", - "icon": "cube", - "rpc": [ - "https://http-testnet.cube.network", - "wss://ws-testnet.cube.network", - "https://http-testnet-sg.cube.network", - "wss://ws-testnet-sg.cube.network", - "https://http-testnet-jp.cube.network", - "wss://ws-testnet-jp.cube.network", - "https://http-testnet-us.cube.network", - "wss://ws-testnet-us.cube.network" - ], - "faucets": ["https://faucet.cube.network"], - "nativeCurrency": { - "name": "Cube Chain Test Native Token", - "symbol": "CUBET", - "decimals": 18 - }, - "infoURL": "https://www.cube.network", - "shortName": "cubet", - "chainId": 1819, - "networkId": 1819, - "slip44": 1819, - "explorers": [ - { - "name": "cubetest-scan", - "url": "https://testnet.cubescan.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "Teslafunds", - "chain": "TSF", - "rpc": ["https://tsfapi.europool.me"], - "faucets": [], - "nativeCurrency": { - "name": "Teslafunds Ether", - "symbol": "TSF", - "decimals": 18 - }, - "infoURL": "https://teslafunds.io", - "shortName": "tsf", - "chainId": 1856, - "networkId": 1 - }, - { - "name": "BON Network", - "chain": "BON", - "rpc": ["http://rpc.boyanet.org:8545", "ws://rpc.boyanet.org:8546"], - "faucets": [], - "nativeCurrency": { - "name": "BOYACoin", - "symbol": "BOY", - "decimals": 18 - }, - "infoURL": "https://boyanet.org", - "shortName": "boya", - "chainId": 1898, - "networkId": 1, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.boyanet.org:4001", - "standard": "EIP3091" - } - ] - }, - { - "name": "Eurus Testnet", - "chain": "EUN", - "rpc": ["https://testnet.eurus.network"], - "faucets": [], - "nativeCurrency": { - "name": "Eurus", - "symbol": "EUN", - "decimals": 18 - }, - "infoURL": "https://eurus.network", - "shortName": "euntest", - "chainId": 1984, - "networkId": 1984, - "icon": "eurus", - "explorers": [ - { - "name": "testnetexplorer", - "url": "https://testnetexplorer.eurus.network", - "icon": "eurus", - "standard": "none" - } - ] - }, - { - "name": "EtherGem", - "chain": "EGEM", - "rpc": ["https://jsonrpc.egem.io/custom"], - "faucets": [], - "nativeCurrency": { - "name": "EtherGem Ether", - "symbol": "EGEM", - "decimals": 18 - }, - "infoURL": "https://egem.io", - "shortName": "egem", - "chainId": 1987, - "networkId": 1987, - "slip44": 1987 - }, - { - "name": "Dogechain Mainnet", - "chain": "DC", - "icon": "dogechain", - "rpc": [ - "https://rpc-sg.dogechain.dog", - "https://rpc-us.dogechain.dog", - "https://rpc.dogechain.dog", - "https://rpc01-sg.dogechain.dog", - "https://rpc02-sg.dogechain.dog", - "https://rpc03-sg.dogechain.dog" - ], - "faucets": [], - "nativeCurrency": { - "name": "Dogecoin", - "symbol": "DOGE", - "decimals": 18 - }, - "infoURL": "https://dogechain.dog", - "shortName": "dc", - "chainId": 2000, - "networkId": 2000, - "explorers": [ - { - "name": "dogechain explorer", - "url": "https://explorer.dogechain.dog", - "standard": "EIP3091" - } - ] - }, - { - "name": "Milkomeda C1 Mainnet", - "chain": "milkAda", - "icon": "milkomeda", - "rpc": [ - "https://rpc-mainnet-cardano-evm.c1.milkomeda.com", - "wss://rpc-mainnet-cardano-evm.c1.milkomeda.com" - ], - "faucets": [], - "nativeCurrency": { - "name": "milkAda", - "symbol": "mADA", - "decimals": 18 - }, - "infoURL": "https://milkomeda.com", - "shortName": "milkAda", - "chainId": 2001, - "networkId": 2001, - "explorers": [ - { - "name": "Blockscout", - "url": "https://explorer-mainnet-cardano-evm.c1.milkomeda.com", - "standard": "none" - } - ] - }, - { - "name": "CloudWalk Testnet", - "chain": "CloudWalk Testnet", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "CloudWalk Native Token", - "symbol": "CWN", - "decimals": 18 - }, - "infoURL": "https://cloudwalk.io", - "shortName": "cloudwalk_testnet", - "chainId": 2008, - "networkId": 2008, - "explorers": [ - { - "name": "CloudWalk Testnet Explorer", - "url": "https://explorer.testnet.cloudwalk.io", - "standard": "none" - } - ] - }, - { - "name": "CloudWalk Mainnet", - "chain": "CloudWalk Mainnet", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "CloudWalk Native Token", - "symbol": "CWN", - "decimals": 18 - }, - "infoURL": "https://cloudwalk.io", - "shortName": "cloudwalk_mainnet", - "chainId": 2009, - "networkId": 2009, - "explorers": [ - { - "name": "CloudWalk Mainnet Explorer", - "url": "https://explorer.mainnet.cloudwalk.io", - "standard": "none" - } - ] - }, - { - "name": "420coin", - "chain": "420", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "Fourtwenty", - "symbol": "420", - "decimals": 18 - }, - "infoURL": "https://420integrated.com", - "shortName": "420", - "chainId": 2020, - "networkId": 2020 - }, - { - "name": "Edgeware Mainnet", - "chain": "EDG", - "rpc": ["https://mainnet1.edgewa.re"], - "faucets": [], - "nativeCurrency": { - "name": "Edge", - "symbol": "EDG", - "decimals": 18 - }, - "infoURL": "http://edgewa.re", - "shortName": "edg", - "chainId": 2021, - "networkId": 2021 - }, - { - "name": "Beresheet Testnet", - "chain": "EDG", - "rpc": ["https://beresheet1.edgewa.re"], - "faucets": [], - "nativeCurrency": { - "name": "Testnet Edge", - "symbol": "tEDG", - "decimals": 18 - }, - "infoURL": "http://edgewa.re", - "shortName": "edgt", - "chainId": 2022, - "networkId": 2022 - }, - { - "name": "Taycan Testnet", - "chain": "Taycan", - "rpc": ["https://test-taycan.hupayx.io"], - "faucets": ["https://ttaycan-faucet.hupayx.io/"], - "nativeCurrency": { - "name": "test-Shuffle", - "symbol": "tSFL", - "decimals": 18 - }, - "infoURL": "https://hupayx.io", - "shortName": "taycan-testnet", - "chainId": 2023, - "networkId": 2023, - "explorers": [ - { - "name": "Taycan Explorer(Blockscout)", - "url": "https://evmscan-test.hupayx.io", - "standard": "none" - }, - { - "name": "Taycan Cosmos Explorer", - "url": "https://cosmoscan-test.hupayx.io", - "standard": "none" - } - ] - }, - { - "name": "Rangers Protocol Mainnet", - "chain": "Rangers", - "icon": "rangers", - "rpc": ["https://mainnet.rangersprotocol.com/api/jsonrpc"], - "faucets": [], - "nativeCurrency": { - "name": "Rangers Protocol Gas", - "symbol": "RPG", - "decimals": 18 - }, - "infoURL": "https://rangersprotocol.com", - "shortName": "rpg", - "chainId": 2025, - "networkId": 2025, - "slip44": 1008, - "explorers": [ - { - "name": "rangersscan", - "url": "https://scan.rangersprotocol.com", - "standard": "none" - } - ] - }, - { - "name": "Ecoball Mainnet", - "chain": "ECO", - "rpc": ["https://api.ecoball.org/ecoball/"], - "faucets": [], - "nativeCurrency": { - "name": "Ecoball Coin", - "symbol": "ECO", - "decimals": 18 - }, - "infoURL": "https://ecoball.org", - "shortName": "eco", - "chainId": 2100, - "networkId": 2100, - "explorers": [ - { - "name": "Ecoball Explorer", - "url": "https://scan.ecoball.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "Ecoball Testnet Espuma", - "chain": "ECO", - "rpc": ["https://api.ecoball.org/espuma/"], - "faucets": [], - "nativeCurrency": { - "name": "Espuma Coin", - "symbol": "ECO", - "decimals": 18 - }, - "infoURL": "https://ecoball.org", - "shortName": "esp", - "chainId": 2101, - "networkId": 2101, - "explorers": [ - { - "name": "Ecoball Testnet Explorer", - "url": "https://espuma-scan.ecoball.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "Findora Mainnet", - "chain": "Findora", - "rpc": ["https://prod-mainnet.prod.findora.org:8545"], - "faucets": [], - "nativeCurrency": { - "name": "FRA", - "symbol": "FRA", - "decimals": 18 - }, - "infoURL": "https://findora.org/", - "shortName": "fra", - "chainId": 2152, - "networkId": 2152, - "explorers": [ - { - "name": "findorascan", - "url": "https://evm.findorascan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Findora Testnet", - "chain": "Testnet-anvil", - "rpc": ["https://prod-testnet.prod.findora.org:8545/"], - "faucets": [], - "nativeCurrency": { - "name": "FRA", - "symbol": "FRA", - "decimals": 18 - }, - "infoURL": "https://findora.org/", - "shortName": "findora-testnet", - "chainId": 2153, - "networkId": 2153, - "explorers": [ - { - "name": "findorascan", - "url": "https://testnet-anvil.evm.findorascan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Bitcoin EVM", - "chain": "Bitcoin EVM", - "rpc": ["https://connect.bitcoinevm.com", ""], - "faucets": [], - "nativeCurrency": { - "name": "Bitcoin", - "symbol": "eBTC", - "decimals": 18 - }, - "infoURL": "https://bitcoinevm.com", - "shortName": "eBTC", - "chainId": 2203, - "networkId": 2203, - "icon": "ebtc", - "explorers": [ - { - "name": "Explorer", - "url": "https://explorer.bitcoinevm.com", - "icon": "ebtc", - "standard": "none" - } - ] - }, - { - "name": "Evanesco Mainnet", - "chain": "EVA", - "rpc": ["https://seed4.evanesco.org:8546"], - "faucets": [], - "nativeCurrency": { - "name": "EVA", - "symbol": "EVA", - "decimals": 18 - }, - "infoURL": "https://evanesco.org/", - "shortName": "evanesco", - "chainId": 2213, - "networkId": 2213, - "icon": "evanesco", - "explorers": [ - { - "name": "Evanesco Explorer", - "url": "https://explorer.evanesco.org", - "standard": "none" - } - ] - }, - { - "name": "Kava EVM Testnet", - "chain": "KAVA", - "rpc": ["https://evm.testnet.kava.io", "wss://wevm.testnet.kava.io"], - "faucets": ["https://faucet.kava.io"], - "nativeCurrency": { - "name": "TKava", - "symbol": "TKAVA", - "decimals": 18 - }, - "infoURL": "https://www.kava.io", - "shortName": "tkava", - "chainId": 2221, - "networkId": 2221, - "icon": "kava", - "explorers": [ - { - "name": "Kava Testnet Explorer", - "url": "https://explorer.testnet.kava.io", - "standard": "EIP3091", - "icon": "kava" - } - ] - }, - { - "name": "Kava EVM", - "chain": "KAVA", - "rpc": [ - "https://evm.kava.io", - "https://evm2.kava.io", - "wss://wevm.kava.io", - "wss://wevm2.kava.io" - ], - "faucets": [], - "nativeCurrency": { - "name": "Kava", - "symbol": "KAVA", - "decimals": 18 - }, - "infoURL": "https://www.kava.io", - "shortName": "kava", - "chainId": 2222, - "networkId": 2222, - "icon": "kava", - "explorers": [ - { - "name": "Kava EVM Explorer", - "url": "https://explorer.kava.io", - "standard": "EIP3091", - "icon": "kava" - } - ] - }, - { - "name": "VChain Mainnet", - "chain": "VChain", - "rpc": ["https://bc.vcex.xyz"], - "faucets": [], - "nativeCurrency": { - "name": "VNDT", - "symbol": "VNDT", - "decimals": 18 - }, - "infoURL": "https://bo.vcex.xyz/", - "shortName": "VChain", - "chainId": 2223, - "networkId": 2223, - "explorers": [ - { - "name": "VChain Scan", - "url": "https://scan.vcex.xyz", - "standard": "EIP3091" - } - ] - }, - { - "name": "Kortho Mainnet", - "chain": "Kortho Chain", - "rpc": ["https://www.kortho-chain.com"], - "faucets": [], - "nativeCurrency": { - "name": "KorthoChain", - "symbol": "KTO", - "decimals": 11 - }, - "infoURL": "https://www.kortho.io/", - "shortName": "ktoc", - "chainId": 2559, - "networkId": 2559 - }, - { - "name": "TechPay Mainnet", - "chain": "TPC", - "rpc": ["https://api.techpay.io/"], - "faucets": [], - "nativeCurrency": { - "name": "TechPay", - "symbol": "TPC", - "decimals": 18 - }, - "infoURL": "https://techpay.io/", - "shortName": "tpc", - "chainId": 2569, - "networkId": 2569, - "icon": "techpay", - "explorers": [ - { - "name": "tpcscan", - "url": "https://tpcscan.com", - "icon": "techpay", - "standard": "EIP3091" - } - ] - }, - { - "name": "Redlight Chain Mainnet", - "chain": "REDLC", - "rpc": ["https://dataseed2.redlightscan.finance"], - "faucets": [], - "nativeCurrency": { - "name": "Redlight Coin", - "symbol": "REDLC", - "decimals": 18 - }, - "infoURL": "https://redlight.finance/", - "shortName": "REDLC", - "chainId": 2611, - "networkId": 2611, - "explorers": [ - { - "name": "REDLC Explorer", - "url": "https://redlightscan.finance", - "standard": "EIP3091" - } - ] - }, - { - "name": "EZChain C-Chain Mainnet", - "chain": "EZC", - "rpc": ["https://api.ezchain.com/ext/bc/C/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "EZChain", - "symbol": "EZC", - "decimals": 18 - }, - "infoURL": "https://ezchain.com", - "shortName": "EZChain", - "chainId": 2612, - "networkId": 2612, - "icon": "ezchain", - "explorers": [ - { - "name": "ezchain", - "url": "https://cchain-explorer.ezchain.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "EZChain C-Chain Testnet", - "chain": "EZC", - "rpc": ["https://testnet-api.ezchain.com/ext/bc/C/rpc"], - "faucets": ["https://testnet-faucet.ezchain.com"], - "nativeCurrency": { - "name": "EZChain", - "symbol": "EZC", - "decimals": 18 - }, - "infoURL": "https://ezchain.com", - "shortName": "Fuji-EZChain", - "chainId": 2613, - "networkId": 2613, - "icon": "ezchain", - "explorers": [ - { - "name": "ezchain", - "url": "https://testnet-cchain-explorer.ezchain.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "CENNZnet Rata", - "chain": "CENNZnet", - "rpc": ["https://rata.centrality.me/public"], - "faucets": ["https://app-faucet.centrality.me"], - "nativeCurrency": { - "name": "CPAY", - "symbol": "CPAY", - "decimals": 18 - }, - "infoURL": "https://cennz.net", - "shortName": "cennz-r", - "chainId": 3000, - "networkId": 3000, - "icon": "cennz" - }, - { - "name": "CENNZnet Nikau", - "chain": "CENNZnet", - "rpc": ["https://nikau.centrality.me/public"], - "faucets": ["https://app-faucet.centrality.me"], - "nativeCurrency": { - "name": "CPAY", - "symbol": "CPAY", - "decimals": 18 - }, - "infoURL": "https://cennz.net", - "shortName": "cennz-n", - "chainId": 3001, - "networkId": 3001, - "icon": "cennz", - "explorers": [ - { - "name": "UNcover", - "url": "https://www.uncoverexplorer.com/?network=Nikau", - "standard": "none" - } - ] - }, - { - "name": "ZCore Testnet", - "chain": "Beach", - "icon": "zcore", - "rpc": ["https://rpc-testnet.zcore.cash"], - "faucets": ["https://faucet.zcore.cash"], - "nativeCurrency": { - "name": "ZCore", - "symbol": "ZCR", - "decimals": 18 - }, - "infoURL": "https://zcore.cash", - "shortName": "zcrbeach", - "chainId": 3331, - "networkId": 3331 - }, - { - "name": "Web3Q Testnet", - "chain": "Web3Q", - "rpc": ["https://testnet.web3q.io:8545"], - "faucets": [], - "nativeCurrency": { - "name": "Web3Q", - "symbol": "W3Q", - "decimals": 18 - }, - "infoURL": "https://testnet.web3q.io/home.w3q/", - "shortName": "w3q-t", - "chainId": 3333, - "networkId": 3333, - "explorers": [ - { - "name": "w3q-testnet", - "url": "https://explorer.testnet.web3q.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Web3Q Galileo", - "chain": "Web3Q", - "rpc": ["https://galileo.web3q.io:8545"], - "faucets": [], - "nativeCurrency": { - "name": "Web3Q", - "symbol": "W3Q", - "decimals": 18 - }, - "infoURL": "https://galileo.web3q.io/home.w3q/", - "shortName": "w3q-g", - "chainId": 3334, - "networkId": 3334, - "explorers": [ - { - "name": "w3q-galileo", - "url": "https://explorer.galileo.web3q.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Paribu Net Mainnet", - "chain": "PRB", - "rpc": ["https://rpc.paribu.network"], - "faucets": [], - "nativeCurrency": { - "name": "PRB", - "symbol": "PRB", - "decimals": 18 - }, - "infoURL": "https://net.paribu.com", - "shortName": "prb", - "chainId": 3400, - "networkId": 3400, - "icon": "prb", - "explorers": [ - { - "name": "Paribu Net Explorer", - "url": "https://explorer.paribu.network", - "icon": "explorer", - "standard": "EIP3091" - } - ] - }, - { - "name": "Paribu Net Testnet", - "chain": "PRB", - "rpc": ["https://rpc.testnet.paribuscan.com"], - "faucets": ["https://faucet.paribuscan.com"], - "nativeCurrency": { - "name": "PRB", - "symbol": "PRB", - "decimals": 18 - }, - "infoURL": "https://net.paribu.com", - "shortName": "prbtestnet", - "chainId": 3500, - "networkId": 3500, - "icon": "prb", - "explorers": [ - { - "name": "Paribu Net Testnet Explorer", - "url": "https://testnet.paribuscan.com", - "icon": "explorer", - "standard": "EIP3091" - } - ] - }, - { - "name": "JFIN Chain", - "chain": "JFIN", - "rpc": ["https://rpc.jfinchain.com"], - "faucets": [], - "nativeCurrency": { - "name": "JFIN Coin", - "symbol": "jfin", - "decimals": 18 - }, - "infoURL": "https://jfinchain.com", - "shortName": "jfin", - "chainId": 3501, - "networkId": 3501, - "explorers": [ - { - "name": "JFIN Chain Explorer", - "url": "https://exp.jfinchain.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Bittex Mainnet", - "chain": "BTX", - "rpc": ["https://rpc1.bittexscan.info", "https://rpc2.bittexscan.info"], - "faucets": [], - "nativeCurrency": { - "name": "Bittex", - "symbol": "BTX", - "decimals": 18 - }, - "infoURL": "https://bittexscan.com", - "shortName": "btx", - "chainId": 3690, - "networkId": 3690, - "icon": "ethereum", - "explorers": [ - { - "name": "bittexscan", - "url": "https://bittexscan.com", - "icon": "etherscan", - "standard": "EIP3091" - } - ] - }, - { - "name": "Crossbell", - "chain": "Crossbell", - "rpc": ["https://rpc.crossbell.io"], - "faucets": ["https://faucet.crossbell.io"], - "nativeCurrency": { - "name": "Crossbell Token", - "symbol": "CSB", - "decimals": 18 - }, - "infoURL": "https://crossbell.io", - "shortName": "csb", - "chainId": 3737, - "networkId": 3737, - "icon": "crossbell", - "explorers": [ - { - "name": "Crossbell Explorer", - "url": "https://scan.crossbell.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "DYNO Mainnet", - "chain": "DYNO", - "rpc": ["https://api.dynoprotocol.com"], - "faucets": ["https://faucet.dynoscan.io"], - "nativeCurrency": { - "name": "DYNO Token", - "symbol": "DYNO", - "decimals": 18 - }, - "infoURL": "https://dynoprotocol.com", - "shortName": "dyno", - "chainId": 3966, - "networkId": 3966, - "explorers": [ - { - "name": "DYNO Explorer", - "url": "https://dynoscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "DYNO Testnet", - "chain": "DYNO", - "rpc": ["https://tapi.dynoprotocol.com"], - "faucets": ["https://faucet.dynoscan.io"], - "nativeCurrency": { - "name": "DYNO Token", - "symbol": "tDYNO", - "decimals": 18 - }, - "infoURL": "https://dynoprotocol.com", - "shortName": "tdyno", - "chainId": 3967, - "networkId": 3967, - "explorers": [ - { - "name": "DYNO Explorer", - "url": "https://testnet.dynoscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "YuanChain Mainnet", - "chain": "YCC", - "rpc": ["https://mainnet.yuan.org/eth"], - "faucets": [], - "nativeCurrency": { - "name": "YCC", - "symbol": "YCC", - "decimals": 18 - }, - "infoURL": "https://www.yuan.org", - "shortName": "ycc", - "chainId": 3999, - "networkId": 3999, - "icon": "ycc", - "explorers": [ - { - "name": "YuanChain Explorer", - "url": "https://mainnet.yuan.org", - "standard": "none" - } - ] - }, - { - "name": "Fantom Testnet", - "chain": "FTM", - "rpc": ["https://rpc.testnet.fantom.network"], - "faucets": ["https://faucet.fantom.network"], - "nativeCurrency": { - "name": "Fantom", - "symbol": "FTM", - "decimals": 18 - }, - "infoURL": "https://docs.fantom.foundation/quick-start/short-guide#fantom-testnet", - "shortName": "tftm", - "chainId": 4002, - "networkId": 4002, - "icon": "fantom", - "explorers": [ - { - "name": "ftmscan", - "url": "https://testnet.ftmscan.com", - "icon": "ftmscan", - "standard": "EIP3091" - } - ] - }, - { - "name": "Boba Network Bobaopera Testnet", - "chain": "Bobaopera Testnet", - "rpc": [ - "https://testnet.bobaopera.boba.network", - "wss://wss.testnet.bobaopera.boba.network", - "https://replica.testnet.bobaopera.boba.network", - "wss://replica-wss.testnet.bobaopera.boba.network" - ], - "faucets": [], - "nativeCurrency": { - "name": "Boba Token", - "symbol": "BOBA", - "decimals": 18 - }, - "infoURL": "https://boba.network", - "shortName": "BobaoperaTestnet", - "chainId": 4051, - "networkId": 4051, - "explorers": [ - { - "name": "Bobaopera Testnet block explorer", - "url": "https://blockexplorer.testnet.bobaopera.boba.network", - "standard": "none" - } - ] - }, - { - "name": "AIOZ Network Testnet", - "chain": "AIOZ", - "icon": "aioz", - "rpc": ["https://eth-ds.testnet.aioz.network"], - "faucets": [], - "nativeCurrency": { - "name": "testAIOZ", - "symbol": "AIOZ", - "decimals": 18 - }, - "infoURL": "https://aioz.network", - "shortName": "aioz-testnet", - "chainId": 4102, - "networkId": 4102, - "slip44": 60, - "explorers": [ - { - "name": "AIOZ Network Testnet Explorer", - "url": "https://testnet.explorer.aioz.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "PHI Network V1", - "chain": "PHI V1", - "rpc": ["https://rpc1.phi.network", "https://rpc2.phi.network"], - "faucets": [], - "nativeCurrency": { - "name": "PHI", - "symbol": "Φ", - "decimals": 18 - }, - "infoURL": "https://phi.network", - "shortName": "PHIv1", - "chainId": 4181, - "networkId": 4181, - "icon": "phi", - "explorers": [ - { - "name": "PHI Explorer", - "url": "https://explorer.phi.network", - "icon": "phi", - "standard": "none" - } - ] - }, - { - "name": "Boba Network Bobafuji Testnet", - "chain": "Bobafuji Testnet", - "rpc": [ - "https://testnet.avax.boba.network", - "wss://wss.testnet.avax.boba.network", - "https://replica.testnet.avax.boba.network", - "wss://replica-wss.testnet.avax.boba.network" - ], - "faucets": [], - "nativeCurrency": { - "name": "Boba Token", - "symbol": "BOBA", - "decimals": 18 - }, - "infoURL": "https://boba.network", - "shortName": "BobafujiTestnet", - "chainId": 4328, - "networkId": 4328, - "explorers": [ - { - "name": "Bobafuji Testnet block explorer", - "url": "https://blockexplorer.testnet.avax.boba.network", - "standard": "none" - } - ] - }, - { - "name": "IoTeX Network Mainnet", - "chain": "iotex.io", - "rpc": ["https://babel-api.mainnet.iotex.io"], - "faucets": [], - "nativeCurrency": { - "name": "IoTeX", - "symbol": "IOTX", - "decimals": 18 - }, - "infoURL": "https://iotex.io", - "shortName": "iotex-mainnet", - "chainId": 4689, - "networkId": 4689, - "explorers": [ - { - "name": "iotexscan", - "url": "https://iotexscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "IoTeX Network Testnet", - "chain": "iotex.io", - "rpc": ["https://babel-api.testnet.iotex.io"], - "faucets": ["https://faucet.iotex.io/"], - "nativeCurrency": { - "name": "IoTeX", - "symbol": "IOTX", - "decimals": 18 - }, - "infoURL": "https://iotex.io", - "shortName": "iotex-testnet", - "chainId": 4690, - "networkId": 4690, - "explorers": [ - { - "name": "testnet iotexscan", - "url": "https://testnet.iotexscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Venidium Testnet", - "chain": "XVM", - "rpc": ["https://rpc-evm-testnet.venidium.io"], - "faucets": [], - "nativeCurrency": { - "name": "Venidium", - "symbol": "XVM", - "decimals": 18 - }, - "infoURL": "https://venidium.io", - "shortName": "txvm", - "chainId": 4918, - "networkId": 4918, - "explorers": [ - { - "name": "Venidium EVM Testnet Explorer", - "url": "https://evm-testnet.venidiumexplorer.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Venidium Mainnet", - "chain": "XVM", - "icon": "venidium", - "rpc": ["https://rpc.venidium.io"], - "faucets": [], - "nativeCurrency": { - "name": "Venidium", - "symbol": "XVM", - "decimals": 18 - }, - "infoURL": "https://venidium.io", - "shortName": "xvm", - "chainId": 4919, - "networkId": 4919, - "explorers": [ - { - "name": "Venidium Explorer", - "url": "https://evm.venidiumexplorer.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "TLChain Network Mainnet", - "chain": "TLC", - "icon": "tlc", - "rpc": ["https://mainnet-rpc.tlxscan.com/"], - "faucets": [], - "nativeCurrency": { - "name": "TLChain Network", - "symbol": "TLC", - "decimals": 18 - }, - "infoURL": "https://tlchain.network/", - "shortName": "tlc", - "chainId": 5177, - "networkId": 5177, - "explorers": [ - { - "name": "TLChain Explorer", - "url": "https://explorer.tlchain.network", - "standard": "none" - } - ] - }, - { - "name": "EraSwap Mainnet", - "chain": "ESN", - "icon": "eraswap", - "rpc": [ - "https://mainnet.eraswap.network", - "https://rpc-mumbai.mainnet.eraswap.network" - ], - "faucets": [], - "nativeCurrency": { - "name": "EraSwap", - "symbol": "ES", - "decimals": 18 - }, - "infoURL": "https://eraswap.info/", - "shortName": "es", - "chainId": 5197, - "networkId": 5197 - }, - { - "name": "Humanode Mainnet", - "chain": "HMND", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "HMND", - "symbol": "HMND", - "decimals": 18 - }, - "infoURL": "https://humanode.io", - "shortName": "hmnd", - "chainId": 5234, - "networkId": 5234, - "explorers": [] - }, - { - "name": "Uzmi Network Mainnet", - "chain": "UZMI", - "rpc": ["https://network.uzmigames.com.br/"], - "faucets": [], - "nativeCurrency": { - "name": "UZMI", - "symbol": "UZMI", - "decimals": 18 - }, - "infoURL": "https://uzmigames.com.br/", - "shortName": "UZMI", - "chainId": 5315, - "networkId": 5315 - }, - { - "name": "Nahmii Mainnet", - "chain": "Nahmii", - "rpc": ["https://l2.nahmii.io"], - "faucets": [], - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://nahmii.io", - "shortName": "Nahmii", - "chainId": 5551, - "networkId": 5551, - "icon": "nahmii", - "explorers": [ - { - "name": "Nahmii mainnet explorer", - "url": "https://explorer.nahmii.io", - "icon": "nahmii", - "standard": "EIP3091" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-1", - "bridges": [ - { - "url": "https://bridge.nahmii.io" - } - ] - } - }, - { - "name": "Nahmii Testnet", - "chain": "Nahmii", - "rpc": ["https://l2.testnet.nahmii.io"], - "faucets": [], - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://nahmii.io", - "shortName": "NahmiiTestnet", - "chainId": 5553, - "networkId": 5553, - "icon": "nahmii", - "explorers": [ - { - "name": "blockscout", - "url": "https://explorer.testnet.nahmii.io", - "icon": "nahmii", - "standard": "EIP3091" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-3", - "bridges": [ - { - "url": "https://bridge.nahmii.io" - } - ] - } - }, - { - "name": "Syscoin Tanenbaum Testnet", - "chain": "SYS", - "rpc": ["https://rpc.tanenbaum.io", "wss://rpc.tanenbaum.io/wss"], - "faucets": ["https://faucet.tanenbaum.io"], - "nativeCurrency": { - "name": "Testnet Syscoin", - "symbol": "tSYS", - "decimals": 18 - }, - "infoURL": "https://syscoin.org", - "shortName": "tsys", - "chainId": 5700, - "networkId": 5700, - "explorers": [ - { - "name": "Syscoin Testnet Block Explorer", - "url": "https://tanenbaum.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Digest Swarm Chain", - "chain": "DSC", - "icon": "swarmchain", - "rpc": ["https://rpc.digestgroup.ltd"], - "faucets": [], - "nativeCurrency": { - "name": "DigestCoin", - "symbol": "DGCC", - "decimals": 18 - }, - "infoURL": "https://digestgroup.ltd", - "shortName": "dgcc", - "chainId": 5777, - "networkId": 5777, - "explorers": [ - { - "name": "swarmexplorer", - "url": "https://explorer.digestgroup.ltd", - "standard": "EIP3091" - } - ] - }, - { - "name": "Ontology Testnet", - "chain": "Ontology", - "rpc": [ - "http://polaris1.ont.io:20339", - "http://polaris2.ont.io:20339", - "http://polaris3.ont.io:20339", - "http://polaris4.ont.io:20339", - "https://polaris1.ont.io:10339", - "https://polaris2.ont.io:10339", - "https://polaris3.ont.io:10339", - "https://polaris4.ont.io:10339" - ], - "faucets": ["https://developer.ont.io/"], - "nativeCurrency": { - "name": "ONG", - "symbol": "ONG", - "decimals": 18 - }, - "infoURL": "https://ont.io/", - "shortName": "OntologyTestnet", - "chainId": 5851, - "networkId": 5851, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.ont.io/testnet", - "standard": "EIP3091" - } - ] - }, - { - "name": "Wegochain Rubidium Mainnet", - "chain": "RBD", - "rpc": ["https://proxy.wegochain.io", "http://wallet.wegochain.io:7764"], - "faucets": [], - "nativeCurrency": { - "name": "Rubid", - "symbol": "RBD", - "decimals": 18 - }, - "infoURL": "https://www.wegochain.io", - "shortName": "rbd", - "chainId": 5869, - "networkId": 5869, - "explorers": [ - { - "name": "wegoscan2", - "url": "https://scan2.wegochain.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Pixie Chain Mainnet", - "chain": "PixieChain", - "rpc": [ - "https://http-mainnet.chain.pixie.xyz", - "wss://ws-mainnet.chain.pixie.xyz" - ], - "faucets": [], - "nativeCurrency": { - "name": "Pixie Chain Native Token", - "symbol": "PIX", - "decimals": 18 - }, - "infoURL": "https://chain.pixie.xyz", - "shortName": "pixie-chain", - "chainId": 6626, - "networkId": 6626, - "explorers": [ - { - "name": "blockscout", - "url": "https://scan.chain.pixie.xyz", - "standard": "none" - } - ] - }, - { - "name": "Tomb Chain Mainnet", - "chain": "Tomb Chain", - "rpc": ["https://rpc.tombchain.com/"], - "faucets": [], - "nativeCurrency": { - "name": "Tomb", - "symbol": "TOMB", - "decimals": 18 - }, - "infoURL": "https://tombchain.com/", - "shortName": "tombchain", - "chainId": 6969, - "networkId": 6969, - "explorers": [ - { - "name": "tombscout", - "url": "https://tombscout.com", - "standard": "none" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-250", - "bridges": [ - { - "url": "https://beta-bridge.lif3.com/" - } - ] - } - }, - { - "name": "Ella the heart", - "chain": "ella", - "icon": "ella", - "rpc": ["https://rpc.ella.network"], - "faucets": [], - "nativeCurrency": { - "name": "Ella", - "symbol": "ELLA", - "decimals": 18 - }, - "infoURL": "https://ella.network", - "shortName": "ELLA", - "chainId": 7027, - "networkId": 7027, - "explorers": [ - { - "name": "Ella", - "url": "https://ella.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "Shyft Mainnet", - "chain": "SHYFT", - "icon": "shyft", - "rpc": ["https://rpc.shyft.network/"], - "faucets": [], - "nativeCurrency": { - "name": "Shyft", - "symbol": "SHYFT", - "decimals": 18 - }, - "infoURL": "https://shyft.network", - "shortName": "shyft", - "chainId": 7341, - "networkId": 7341, - "slip44": 2147490989, - "explorers": [ - { - "name": "Shyft BX", - "url": "https://bx.shyft.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "Canto", - "chain": "Canto", - "rpc": ["https://canto.evm.chandrastation.com"], - "faucets": [], - "nativeCurrency": { - "name": "Canto", - "symbol": "CANTO", - "decimals": 18 - }, - "infoURL": "https://canto.io", - "shortName": "canto", - "chainId": 7700, - "networkId": 7700, - "explorers": [ - { - "name": "Canto EVM Explorer (Blockscout)", - "url": "https://evm.explorer.canto.io", - "standard": "none" - }, - { - "name": "Canto Cosmos Explorer (BigDipper)", - "url": "https://cosmos.explorer.canto.io", - "standard": "none" - } - ] - }, - { - "name": "Rise of the Warbots Testnet", - "chain": "nmactest", - "rpc": [ - "https://testnet1.riseofthewarbots.com", - "https://testnet2.riseofthewarbots.com", - "https://testnet3.riseofthewarbots.com", - "https://testnet4.riseofthewarbots.com", - "https://testnet5.riseofthewarbots.com" - ], - "faucets": [], - "nativeCurrency": { - "name": "Nano Machines", - "symbol": "NMAC", - "decimals": 18 - }, - "infoURL": "https://riseofthewarbots.com/", - "shortName": "RiseOfTheWarbotsTestnet", - "chainId": 7777, - "networkId": 7777, - "explorers": [ - { - "name": "avascan", - "url": "https://testnet.avascan.info/blockchain/2mZ9doojfwHzXN3VXDQELKnKyZYxv7833U8Yq5eTfFx3hxJtiy", - "standard": "none" - } - ] - }, - { - "name": "Hazlor Testnet", - "chain": "SCAS", - "rpc": [ - "https://hatlas.rpc.hazlor.com:8545", - "wss://hatlas.rpc.hazlor.com:8546" - ], - "faucets": ["https://faucet.hazlor.com"], - "nativeCurrency": { - "name": "Hazlor Test Coin", - "symbol": "TSCAS", - "decimals": 18 - }, - "infoURL": "https://hazlor.com", - "shortName": "tscas", - "chainId": 7878, - "networkId": 7878, - "explorers": [ - { - "name": "Hazlor Testnet Explorer", - "url": "https://explorer.hazlor.com", - "standard": "none" - } - ] - }, - { - "name": "Teleport", - "chain": "Teleport", - "rpc": ["https://evm-rpc.teleport.network"], - "faucets": [], - "nativeCurrency": { - "name": "Tele", - "symbol": "TELE", - "decimals": 18 - }, - "infoURL": "https://teleport.network", - "shortName": "teleport", - "chainId": 8000, - "networkId": 8000, - "icon": "teleport", - "explorers": [ - { - "name": "Teleport EVM Explorer (Blockscout)", - "url": "https://evm-explorer.teleport.network", - "standard": "none", - "icon": "teleport" - }, - { - "name": "Teleport Cosmos Explorer (Big Dipper)", - "url": "https://explorer.teleport.network", - "standard": "none", - "icon": "teleport" - } - ] - }, - { - "name": "Teleport Testnet", - "chain": "Teleport", - "rpc": ["https://evm-rpc.testnet.teleport.network"], - "faucets": ["https://chain-docs.teleport.network/testnet/faucet.html"], - "nativeCurrency": { - "name": "Tele", - "symbol": "TELE", - "decimals": 18 - }, - "infoURL": "https://teleport.network", - "shortName": "teleport-testnet", - "chainId": 8001, - "networkId": 8001, - "icon": "teleport", - "explorers": [ - { - "name": "Teleport EVM Explorer (Blockscout)", - "url": "https://evm-explorer.testnet.teleport.network", - "standard": "none", - "icon": "teleport" - }, - { - "name": "Teleport Cosmos Explorer (Big Dipper)", - "url": "https://explorer.testnet.teleport.network", - "standard": "none", - "icon": "teleport" - } - ] - }, - { - "name": "MDGL Testnet", - "chain": "MDGL", - "rpc": ["https://testnet.mdgl.io"], - "faucets": [], - "nativeCurrency": { - "name": "MDGL Token", - "symbol": "MDGLT", - "decimals": 18 - }, - "infoURL": "https://mdgl.io", - "shortName": "mdgl", - "chainId": 8029, - "networkId": 8029 - }, - { - "name": "Shardeum Liberty 1.3", - "chain": "Shardeum", - "rpc": ["https://liberty10.shardeum.org/"], - "faucets": ["https://faucet.liberty10.shardeum.org"], - "nativeCurrency": { - "name": "Shardeum SHM", - "symbol": "SHM", - "decimals": 18 - }, - "infoURL": "https://docs.shardeum.org/", - "shortName": "ShardeumSHM", - "chainId": 8080, - "networkId": 8080, - "explorers": [ - { - "name": "Sharedum Scan", - "url": "https://explorer.liberty10.shardeum.org", - "standard": "EIP3091" - } - ], - "redFlags": ["reusedChainId"] - }, - { - "name": "Klaytn Mainnet Cypress", - "chain": "KLAY", - "rpc": ["https://public-node-api.klaytnapi.com/v1/cypress"], - "faucets": [], - "nativeCurrency": { - "name": "KLAY", - "symbol": "KLAY", - "decimals": 18 - }, - "infoURL": "https://www.klaytn.com/", - "shortName": "Cypress", - "chainId": 8217, - "networkId": 8217, - "slip44": 8217, - "explorers": [ - { - "name": "Klaytnscope", - "url": "https://scope.klaytn.com", - "standard": "none" - } - ] - }, - { - "name": "KorthoTest", - "chain": "Kortho", - "rpc": ["https://www.krotho-test.net"], - "faucets": [], - "nativeCurrency": { - "name": "Kortho Test", - "symbol": "KTO", - "decimals": 11 - }, - "infoURL": "https://www.kortho.io/", - "shortName": "Kortho", - "chainId": 8285, - "networkId": 8285 - }, - { - "name": "Toki Network", - "chain": "TOKI", - "rpc": ["https://mainnet.buildwithtoki.com/v0/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Toki", - "symbol": "TOKI", - "decimals": 18 - }, - "infoURL": "https://www.buildwithtoki.com", - "shortName": "toki", - "chainId": 8654, - "networkId": 8654, - "icon": "toki", - "explorers": [] - }, - { - "name": "Toki Testnet", - "chain": "TOKI", - "rpc": ["https://testnet.buildwithtoki.com/v0/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Toki", - "symbol": "TOKI", - "decimals": 18 - }, - "infoURL": "https://www.buildwithtoki.com", - "shortName": "toki-testnet", - "chainId": 8655, - "networkId": 8655, - "icon": "toki", - "explorers": [] - }, - { - "name": "TOOL Global Mainnet", - "chain": "OLO", - "rpc": ["https://mainnet-web3.wolot.io"], - "faucets": [], - "nativeCurrency": { - "name": "TOOL Global", - "symbol": "OLO", - "decimals": 18 - }, - "infoURL": "https://ibdt.io", - "shortName": "olo", - "chainId": 8723, - "networkId": 8723, - "slip44": 479, - "explorers": [ - { - "name": "OLO Block Explorer", - "url": "https://www.olo.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "TOOL Global Testnet", - "chain": "OLO", - "rpc": ["https://testnet-web3.wolot.io"], - "faucets": ["https://testnet-explorer.wolot.io"], - "nativeCurrency": { - "name": "TOOL Global", - "symbol": "OLO", - "decimals": 18 - }, - "infoURL": "https://testnet-explorer.wolot.io", - "shortName": "tolo", - "chainId": 8724, - "networkId": 8724, - "slip44": 479 - }, - { - "name": "Ambros Chain Testnet", - "chain": "ambroschain", - "rpc": ["https://api.testnet.ambros.network"], - "faucets": [], - "nativeCurrency": { - "name": "AMBROS", - "symbol": "AMBROS", - "decimals": 18 - }, - "infoURL": "https://test.ambros.network", - "shortName": "ambrostestnet", - "chainId": 8888, - "networkId": 8888, - "explorers": [ - { - "name": "Ambros Chain Explorer", - "url": "https://testnet.ambrosscan.com", - "standard": "none" - } - ] - }, - { - "name": "Mammoth Mainnet", - "title": "Mammoth Chain", - "chain": "MMT", - "rpc": [ - "https://dataseed.mmtscan.io", - "https://dataseed1.mmtscan.io", - "https://dataseed2.mmtscan.io" - ], - "faucets": ["https://faucet.mmtscan.io/"], - "nativeCurrency": { - "name": "Mammoth Token", - "symbol": "MMT", - "decimals": 18 - }, - "infoURL": "https://mmtchain.io/", - "shortName": "mmt", - "chainId": 8898, - "networkId": 8898, - "icon": "mmt", - "explorers": [ - { - "name": "mmtscan", - "url": "https://mmtscan.io", - "standard": "EIP3091", - "icon": "mmt" - } - ] - }, - { - "name": "bloxberg", - "chain": "bloxberg", - "rpc": ["https://core.bloxberg.org"], - "faucets": ["https://faucet.bloxberg.org/"], - "nativeCurrency": { - "name": "BERG", - "symbol": "U+25B3", - "decimals": 18 - }, - "infoURL": "https://bloxberg.org", - "shortName": "berg", - "chainId": 8995, - "networkId": 8995 - }, - { - "name": "Evmos Testnet", - "chain": "Evmos", - "rpc": ["https://eth.bd.evmos.dev:8545"], - "faucets": ["https://faucet.evmos.dev"], - "nativeCurrency": { - "name": "test-Evmos", - "symbol": "tEVMOS", - "decimals": 18 - }, - "infoURL": "https://evmos.org", - "shortName": "evmos-testnet", - "chainId": 9000, - "networkId": 9000, - "icon": "evmos", - "explorers": [ - { - "name": "Evmos EVM Explorer", - "url": "https://evm.evmos.dev", - "standard": "EIP3091", - "icon": "evmos" - }, - { - "name": "Evmos Cosmos Explorer", - "url": "https://explorer.evmos.dev", - "standard": "none", - "icon": "evmos" - } - ] - }, - { - "name": "Evmos", - "chain": "Evmos", - "rpc": ["https://eth.bd.evmos.org:8545"], - "faucets": [], - "nativeCurrency": { - "name": "Evmos", - "symbol": "EVMOS", - "decimals": 18 - }, - "infoURL": "https://evmos.org", - "shortName": "evmos", - "chainId": 9001, - "networkId": 9001, - "icon": "evmos", - "explorers": [ - { - "name": "Evmos EVM Explorer (Blockscout)", - "url": "https://evm.evmos.org", - "standard": "none", - "icon": "evmos" - }, - { - "name": "Evmos Cosmos Explorer (Mintscan)", - "url": "https://www.mintscan.io/evmos", - "standard": "none", - "icon": "evmos" - } - ] - }, - { - "name": "BerylBit Mainnet", - "chain": "BRB", - "rpc": ["https://mainnet.berylbit.io"], - "faucets": ["https://t.me/BerylBit"], - "nativeCurrency": { - "name": "BerylBit Chain Native Token", - "symbol": "BRB", - "decimals": 18 - }, - "infoURL": "https://www.beryl-bit.com", - "shortName": "brb", - "chainId": 9012, - "networkId": 9012, - "icon": "berylbit", - "explorers": [ - { - "name": "berylbit-explorer", - "url": "https://explorer.berylbit.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Genesis Coin", - "chain": "Genesis", - "rpc": ["https://genesis-gn.com", "wss://genesis-gn.com"], - "faucets": [], - "nativeCurrency": { - "name": "GN Coin", - "symbol": "GNC", - "decimals": 18 - }, - "infoURL": "https://genesis-gn.com", - "shortName": "GENEC", - "chainId": 9100, - "networkId": 9100 - }, - { - "name": "Rangers Protocol Testnet Robin", - "chain": "Rangers", - "icon": "rangers", - "rpc": ["https://robin.rangersprotocol.com/api/jsonrpc"], - "faucets": ["https://robin-faucet.rangersprotocol.com"], - "nativeCurrency": { - "name": "Rangers Protocol Gas", - "symbol": "tRPG", - "decimals": 18 - }, - "infoURL": "https://rangersprotocol.com", - "shortName": "trpg", - "chainId": 9527, - "networkId": 9527, - "explorers": [ - { - "name": "rangersscan-robin", - "url": "https://robin-rangersscan.rangersprotocol.com", - "standard": "none" - } - ] - }, - { - "name": "Boba Network BNB Testnet", - "chain": "Boba BNB Testnet", - "rpc": [ - "https://testnet.bnb.boba.network", - "wss://wss.testnet.bnb.boba.network", - "https://replica.testnet.bnb.boba.network", - "wss://replica-wss.testnet.bnb.boba.network" - ], - "faucets": [], - "nativeCurrency": { - "name": "Boba Token", - "symbol": "BOBA", - "decimals": 18 - }, - "infoURL": "https://boba.network", - "shortName": "BobaBNBTestnet", - "chainId": 9728, - "networkId": 9728, - "explorers": [ - { - "name": "Boba BNB Testnet block explorer", - "url": "https://blockexplorer.testnet.bnb.boba.network", - "standard": "none" - } - ] - }, - { - "name": "myOwn Testnet", - "chain": "myOwn", - "rpc": ["https://geth.dev.bccloud.net"], - "faucets": [], - "nativeCurrency": { - "name": "MYN", - "symbol": "MYN", - "decimals": 18 - }, - "infoURL": "https://docs.bccloud.net/", - "shortName": "myn", - "chainId": 9999, - "networkId": 9999 - }, - { - "name": "Smart Bitcoin Cash", - "chain": "smartBCH", - "rpc": [ - "https://smartbch.greyh.at", - "https://rpc-mainnet.smartbch.org", - "https://smartbch.fountainhead.cash/mainnet", - "https://smartbch.devops.cash/mainnet" - ], - "faucets": [], - "nativeCurrency": { - "name": "Bitcoin Cash", - "symbol": "BCH", - "decimals": 18 - }, - "infoURL": "https://smartbch.org/", - "shortName": "smartbch", - "chainId": 10000, - "networkId": 10000 - }, - { - "name": "Smart Bitcoin Cash Testnet", - "chain": "smartBCHTest", - "rpc": [ - "https://rpc-testnet.smartbch.org", - "https://smartbch.devops.cash/testnet" - ], - "faucets": [], - "nativeCurrency": { - "name": "Bitcoin Cash Test Token", - "symbol": "BCHT", - "decimals": 18 - }, - "infoURL": "http://smartbch.org/", - "shortName": "smartbchtest", - "chainId": 10001, - "networkId": 10001 - }, - { - "name": "Gon Chain", - "chain": "GonChain", - "icon": "gonchain", - "rpc": ["https://node1.testnet.gaiaopen.network"], - "faucets": [], - "nativeCurrency": { - "name": "Gon Token", - "symbol": "GT", - "decimals": 18 - }, - "infoURL": "", - "shortName": "gon", - "chainId": 10024, - "networkId": 10024, - "explorers": [ - { - "name": "Gon Explorer", - "url": "https://gonscan.com", - "standard": "none" - } - ] - }, - { - "name": "SJATSH", - "chain": "ETH", - "rpc": ["http://geth.free.idcfengye.com"], - "faucets": [], - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://sjis.me", - "shortName": "SJ", - "chainId": 10086, - "networkId": 10086 - }, - { - "name": "Blockchain Genesis Mainnet", - "chain": "GEN", - "rpc": [ - "https://eu.mainnet.xixoio.com", - "https://us.mainnet.xixoio.com", - "https://asia.mainnet.xixoio.com" - ], - "faucets": [], - "nativeCurrency": { - "name": "GEN", - "symbol": "GEN", - "decimals": 18 - }, - "infoURL": "https://www.xixoio.com/", - "shortName": "GEN", - "chainId": 10101, - "networkId": 10101 - }, - { - "name": "CryptoCoinPay", - "chain": "CCP", - "rpc": [ - "http://node106.cryptocoinpay.info:8545", - "ws://node106.cryptocoinpay.info:8546" - ], - "faucets": [], - "icon": "ccp", - "nativeCurrency": { - "name": "CryptoCoinPay", - "symbol": "CCP", - "decimals": 18 - }, - "infoURL": "https://www.cryptocoinpay.co", - "shortName": "CCP", - "chainId": 10823, - "networkId": 10823, - "explorers": [ - { - "name": "CCP Explorer", - "url": "https://cryptocoinpay.info", - "standard": "EIP3091" - } - ] - }, - { - "name": "Quadrans Blockchain", - "chain": "QDC", - "icon": "quadrans", - "rpc": [ - "https://rpc.quadrans.io", - "https://rpcna.quadrans.io", - "https://rpceu.quadrans.io" - ], - "faucets": [], - "nativeCurrency": { - "name": "Quadrans Coin", - "symbol": "QDC", - "decimals": 18 - }, - "infoURL": "https://quadrans.io", - "shortName": "quadrans", - "chainId": 10946, - "networkId": 10946, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.quadrans.io", - "icon": "quadrans", - "standard": "EIP3091" - } - ] - }, - { - "name": "Quadrans Blockchain Testnet", - "chain": "tQDC", - "icon": "quadrans", - "rpc": ["https://rpctest.quadrans.io", "https://rpctest2.quadrans.io"], - "faucets": ["https://faucetpage.quadrans.io"], - "nativeCurrency": { - "name": "Quadrans Testnet Coin", - "symbol": "tQDC", - "decimals": 18 - }, - "infoURL": "https://quadrans.io", - "shortName": "quadranstestnet", - "chainId": 10947, - "networkId": 10947, - "explorers": [ - { - "name": "explorer", - "url": "https://explorer.testnet.quadrans.io", - "icon": "quadrans", - "standard": "EIP3091" - } - ] - }, - { - "name": "Astra", - "chain": "Astra", - "rpc": ["https://rpc.astranaut.io", "https://rpc1.astranaut.io"], - "faucets": [], - "nativeCurrency": { - "name": "Astra", - "symbol": "ASA", - "decimals": 18 - }, - "infoURL": "https://astranaut.io", - "shortName": "astra", - "chainId": 11110, - "networkId": 11110, - "icon": "astra", - "explorers": [ - { - "name": "Astra EVM Explorer (Blockscout)", - "url": "https://explorer.astranaut.io", - "standard": "none", - "icon": "astra" - }, - { - "name": "Astra PingPub Explorer", - "url": "https://ping.astranaut.io/astra", - "standard": "none", - "icon": "astra" - } - ] - }, - { - "name": "WAGMI", - "chain": "WAGMI", - "icon": "wagmi", - "rpc": ["https://subnets.avax.network/wagmi/wagmi-chain-testnet/rpc"], - "faucets": ["https://faucet.trywagmi.xyz"], - "nativeCurrency": { - "name": "WAGMI", - "symbol": "WGM", - "decimals": 18 - }, - "infoURL": "https://trywagmi.xyz", - "shortName": "WAGMI", - "chainId": 11111, - "networkId": 11111, - "explorers": [ - { - "name": "WAGMI Explorer", - "url": "https://subnets.avax.network/wagmi/wagmi-chain-testnet/explorer", - "standard": "EIP3091" - } - ] - }, - { - "name": "Astra Testnet", - "chain": "Astra", - "rpc": ["https://rpc.astranaut.dev"], - "faucets": ["https://faucet.astranaut.dev"], - "nativeCurrency": { - "name": "test-Astra", - "symbol": "tASA", - "decimals": 18 - }, - "infoURL": "https://astranaut.io", - "shortName": "astra-testnet", - "chainId": 11115, - "networkId": 11115, - "icon": "astra", - "explorers": [ - { - "name": "Astra EVM Explorer", - "url": "https://explorer.astranaut.dev", - "standard": "EIP3091", - "icon": "astra" - }, - { - "name": "Astra PingPub Explorer", - "url": "https://ping.astranaut.dev/astra", - "standard": "none", - "icon": "astra" - } - ] - }, - { - "name": "Shyft Testnet", - "chain": "SHYFTT", - "icon": "shyft", - "rpc": ["https://rpc.testnet.shyft.network/"], - "faucets": [], - "nativeCurrency": { - "name": "Shyft Test Token", - "symbol": "SHYFTT", - "decimals": 18 - }, - "infoURL": "https://shyft.network", - "shortName": "shyftt", - "chainId": 11437, - "networkId": 11437, - "explorers": [ - { - "name": "Shyft Testnet BX", - "url": "https://bx.testnet.shyft.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "SanR Chain", - "chain": "SanRChain", - "rpc": ["https://sanrchain-node.santiment.net"], - "faucets": [], - "nativeCurrency": { - "name": "nSAN", - "symbol": "nSAN", - "decimals": 18 - }, - "infoURL": "https://sanr.app", - "shortName": "SAN", - "chainId": 11888, - "networkId": 11888, - "icon": "sanrchain", - "parent": { - "chain": "eip155-1", - "type": "L2", - "bridges": [ - { - "url": "https://sanr.app" - } - ] - }, - "explorers": [ - { - "name": "SanR Chain Explorer", - "url": "https://sanrchain-explorer.santiment.net", - "standard": "none" - } - ] - }, - { - "name": "Singularity ZERO Testnet", - "chain": "ZERO", - "rpc": ["https://betaenv.singularity.gold:18545"], - "faucets": ["https://nft.singularity.gold"], - "nativeCurrency": { - "name": "ZERO", - "symbol": "tZERO", - "decimals": 18 - }, - "infoURL": "https://www.singularity.gold", - "shortName": "tZERO", - "chainId": 12051, - "networkId": 12051, - "explorers": [ - { - "name": "zeroscan", - "url": "https://betaenv.singularity.gold:18002", - "standard": "EIP3091" - } - ] - }, - { - "name": "Singularity ZERO Mainnet", - "chain": "ZERO", - "rpc": ["https://zerorpc.singularity.gold"], - "faucets": ["https://zeroscan.singularity.gold"], - "nativeCurrency": { - "name": "ZERO", - "symbol": "ZERO", - "decimals": 18 - }, - "infoURL": "https://www.singularity.gold", - "shortName": "ZERO", - "chainId": 12052, - "networkId": 12052, - "slip44": 621, - "explorers": [ - { - "name": "zeroscan", - "url": "https://zeroscan.singularity.gold", - "standard": "EIP3091" - } - ] - }, - { - "name": "Phoenix Mainnet", - "chain": "Phoenix", - "rpc": ["https://rpc.phoenixplorer.com/"], - "faucets": [], - "nativeCurrency": { - "name": "Phoenix", - "symbol": "PHX", - "decimals": 18 - }, - "infoURL": "https://cryptophoenix.org/phoenix", - "shortName": "Phoenix", - "chainId": 13381, - "networkId": 13381, - "icon": "phoenix", - "explorers": [ - { - "name": "phoenixplorer", - "url": "https://phoenixplorer.com", - "icon": "phoenixplorer", - "standard": "EIP3091" - } - ] - }, - { - "name": "Trust EVM Testnet", - "chain": "Trust EVM Testnet", - "rpc": ["https://api.testnet-dev.trust.one"], - "faucets": ["https://faucet.testnet-dev.trust.one/"], - "nativeCurrency": { - "name": "Trust EVM", - "symbol": "EVM", - "decimals": 18 - }, - "infoURL": "https://www.trust.one/", - "shortName": "TrustTestnet", - "chainId": 15555, - "networkId": 15555, - "explorers": [ - { - "name": "Trust EVM Explorer", - "url": "https://trustscan.one", - "standard": "EIP3091" - } - ] - }, - { - "name": "MetaDot Mainnet", - "chain": "MTT", - "rpc": ["https://mainnet.metadot.network"], - "faucets": [], - "nativeCurrency": { - "name": "MetaDot Token", - "symbol": "MTT", - "decimals": 18 - }, - "infoURL": "https://metadot.network", - "shortName": "mtt", - "chainId": 16000, - "networkId": 16000 - }, - { - "name": "MetaDot Testnet", - "chain": "MTTTest", - "rpc": ["https://testnet.metadot.network"], - "faucets": ["https://faucet.metadot.network/"], - "nativeCurrency": { - "name": "MetaDot Token TestNet", - "symbol": "MTTest", - "decimals": 18 - }, - "infoURL": "https://metadot.network", - "shortName": "mtttest", - "chainId": 16001, - "networkId": 16001 - }, - { - "name": "IVAR Chain Testnet", - "chain": "IVAR", - "icon": "ivar", - "rpc": ["https://testnet-rpc.ivarex.com"], - "faucets": ["https://tfaucet.ivarex.com/"], - "nativeCurrency": { - "name": "tIvar", - "symbol": "tIVAR", - "decimals": 18 - }, - "infoURL": "https://ivarex.com", - "shortName": "tivar", - "chainId": 16888, - "networkId": 16888, - "explorers": [ - { - "name": "ivarscan", - "url": "https://testnet.ivarscan.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "BTCIX Network", - "chain": "BTCIX", - "rpc": ["https://seed.btcix.org/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "BTCIX Network", - "symbol": "BTCIX", - "decimals": 18 - }, - "infoURL": "https://bitcolojix.org", - "shortName": "btcix", - "chainId": 19845, - "networkId": 19845, - "explorers": [ - { - "name": "BTCIXScan", - "url": "https://btcixscan.com", - "standard": "none" - } - ] - }, - { - "name": "Callisto Testnet", - "chain": "CLO", - "rpc": ["https://testnet-rpc.callisto.network/"], - "faucets": ["https://faucet.callisto.network/"], - "nativeCurrency": { - "name": "Callisto", - "symbol": "CLO", - "decimals": 18 - }, - "infoURL": "https://callisto.network", - "shortName": "CLOTestnet", - "chainId": 20729, - "networkId": 79 - }, - { - "name": "CENNZnet Azalea", - "chain": "CENNZnet", - "rpc": ["https://cennznet.unfrastructure.io/public"], - "faucets": [], - "nativeCurrency": { - "name": "CPAY", - "symbol": "CPAY", - "decimals": 18 - }, - "infoURL": "https://cennz.net", - "shortName": "cennz-a", - "chainId": 21337, - "networkId": 21337, - "icon": "cennz", - "explorers": [ - { - "name": "UNcover", - "url": "https://uncoverexplorer.com", - "standard": "none" - } - ] - }, - { - "name": "omChain Mainnet", - "chain": "OML", - "icon": "omlira", - "rpc": ["https://seed.omchain.io"], - "faucets": [], - "nativeCurrency": { - "name": "omChain", - "symbol": "OMC", - "decimals": 18 - }, - "infoURL": "https://omchain.io", - "shortName": "omc", - "chainId": 21816, - "networkId": 21816, - "explorers": [ - { - "name": "omChain Explorer", - "url": "https://explorer.omchain.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Taycan", - "chain": "Taycan", - "rpc": ["https://taycan-rpc.hupayx.io:8545"], - "faucets": [], - "nativeCurrency": { - "name": "shuffle", - "symbol": "SFL", - "decimals": 18 - }, - "infoURL": "https://hupayx.io", - "shortName": "SFL", - "chainId": 22023, - "networkId": 22023, - "explorers": [ - { - "name": "Taycan Explorer(Blockscout)", - "url": "https://taycan-evmscan.hupayx.io", - "standard": "none" - }, - { - "name": "Taycan Cosmos Explorer(BigDipper)", - "url": "https://taycan-cosmoscan.hupayx.io", - "standard": "none" - } - ] - }, - { - "name": "Webchain", - "chain": "WEB", - "rpc": ["https://node1.webchain.network"], - "faucets": [], - "nativeCurrency": { - "name": "Webchain Ether", - "symbol": "WEB", - "decimals": 18 - }, - "infoURL": "https://webchain.network", - "shortName": "web", - "chainId": 24484, - "networkId": 37129, - "slip44": 227 - }, - { - "name": "MintMe.com Coin", - "chain": "MINTME", - "rpc": ["https://node1.mintme.com"], - "faucets": [], - "nativeCurrency": { - "name": "MintMe.com Coin", - "symbol": "MINTME", - "decimals": 18 - }, - "infoURL": "https://www.mintme.com", - "shortName": "mintme", - "chainId": 24734, - "networkId": 37480 - }, - { - "name": "OasisChain Mainnet", - "chain": "OasisChain", - "rpc": [ - "https://rpc1.oasischain.io", - "https://rpc2.oasischain.io", - "https://rpc3.oasischain.io" - ], - "faucets": ["http://faucet.oasischain.io"], - "nativeCurrency": { - "name": "OAC", - "symbol": "OAC", - "decimals": 18 - }, - "infoURL": "https://scan.oasischain.io", - "shortName": "OAC", - "chainId": 26863, - "networkId": 26863, - "explorers": [ - { - "name": "OasisChain Explorer", - "url": "https://scan.oasischain.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Piece testnet", - "chain": "PieceNetwork", - "icon": "piecechain", - "rpc": ["https://testnet-rpc0.piecenetwork.com"], - "faucets": ["https://piecenetwork.com/faucet"], - "nativeCurrency": { - "name": "ECE", - "symbol": "ECE", - "decimals": 18 - }, - "infoURL": "https://piecenetwork.com", - "shortName": "Piece", - "chainId": 30067, - "networkId": 30067, - "explorers": [ - { - "name": "Piece Scan", - "url": "https://testnet-scan.piecenetwork.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Ethersocial Network", - "chain": "ESN", - "rpc": ["https://api.esn.gonspool.com"], - "faucets": [], - "nativeCurrency": { - "name": "Ethersocial Network Ether", - "symbol": "ESN", - "decimals": 18 - }, - "infoURL": "https://ethersocial.org", - "shortName": "esn", - "chainId": 31102, - "networkId": 1, - "slip44": 31102 - }, - { - "name": "GoChain Testnet", - "chain": "GO", - "rpc": ["https://testnet-rpc.gochain.io"], - "faucets": [], - "nativeCurrency": { - "name": "GoChain Coin", - "symbol": "GO", - "decimals": 18 - }, - "infoURL": "https://gochain.io", - "shortName": "got", - "chainId": 31337, - "networkId": 31337, - "slip44": 6060, - "explorers": [ - { - "name": "GoChain Testnet Explorer", - "url": "https://testnet-explorer.gochain.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Bitgert Mainnet", - "chain": "Brise", - "rpc": [ - "https://rpc.icecreamswap.com", - "https://mainnet-rpc.brisescan.com", - "https://chainrpc.com", - "https://serverrpc.com" - ], - "faucets": [], - "nativeCurrency": { - "name": "Bitrise Token", - "symbol": "Brise", - "decimals": 18 - }, - "infoURL": "https://bitgert.com/", - "shortName": "Brise", - "chainId": 32520, - "networkId": 32520, - "icon": "brise", - "explorers": [ - { - "name": "Brise Scan", - "url": "https://brisescan.com", - "icon": "brise", - "standard": "EIP3091" - } - ] - }, - { - "name": "Fusion Mainnet", - "chain": "FSN", - "rpc": ["https://mainnet.anyswap.exchange", "https://fsn.dev/api"], - "faucets": [], - "nativeCurrency": { - "name": "Fusion", - "symbol": "FSN", - "decimals": 18 - }, - "infoURL": "https://www.fusion.org/", - "shortName": "fsn", - "chainId": 32659, - "networkId": 32659 - }, - { - "name": "Q Mainnet", - "chain": "Q", - "rpc": ["https://rpc.q.org"], - "faucets": [], - "nativeCurrency": { - "name": "Q token", - "symbol": "Q", - "decimals": 18 - }, - "infoURL": "https://q.org", - "shortName": "q", - "chainId": 35441, - "networkId": 35441, - "icon": "q", - "explorers": [ - { - "name": "Q explorer", - "url": "https://explorer.q.org", - "icon": "q", - "standard": "EIP3091" - } - ] - }, - { - "name": "Q Testnet", - "chain": "Q", - "rpc": ["https://rpc.qtestnet.org"], - "faucets": [], - "nativeCurrency": { - "name": "Q token", - "symbol": "Q", - "decimals": 18 - }, - "infoURL": "https://q.org/", - "shortName": "q-testnet", - "chainId": 35443, - "networkId": 35443, - "icon": "q", - "explorers": [ - { - "name": "Q explorer", - "url": "https://explorer.qtestnet.org", - "icon": "q", - "standard": "EIP3091" - } - ] - }, - { - "name": "Energi Mainnet", - "chain": "NRG", - "rpc": ["https://nodeapi.energi.network"], - "faucets": [], - "nativeCurrency": { - "name": "Energi", - "symbol": "NRG", - "decimals": 18 - }, - "infoURL": "https://www.energi.world/", - "shortName": "nrg", - "chainId": 39797, - "networkId": 39797, - "slip44": 39797 - }, - { - "name": "pegglecoin", - "chain": "42069", - "rpc": [], - "faucets": [], - "nativeCurrency": { - "name": "pegglecoin", - "symbol": "peggle", - "decimals": 18 - }, - "infoURL": "https://teampeggle.com", - "shortName": "PC", - "chainId": 42069, - "networkId": 42069 - }, - { - "name": "Arbitrum One", - "chainId": 42161, - "shortName": "arb1", - "chain": "ETH", - "networkId": 42161, - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "rpc": [ - "https://arbitrum-mainnet.infura.io/v3/${INFURA_API_KEY}", - "https://arb-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}", - "https://arb1.arbitrum.io/rpc" - ], - "faucets": [], - "explorers": [ - { - "name": "Arbiscan", - "url": "https://arbiscan.io", - "standard": "EIP3091" - }, - { - "name": "Arbitrum Explorer", - "url": "https://explorer.arbitrum.io", - "standard": "EIP3091" - } - ], - "infoURL": "https://arbitrum.io", - "parent": { - "type": "L2", - "chain": "eip155-1", - "bridges": [ - { - "url": "https://bridge.arbitrum.io" - } - ] - } - }, - { - "name": "Arbitrum Nova", - "chainId": 42170, - "shortName": "arb-nova", - "chain": "ETH", - "networkId": 42170, - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "rpc": ["https://nova.arbitrum.io/rpc"], - "faucets": [], - "explorers": [ - { - "name": "Arbitrum Nova Chain Explorer", - "url": "https://nova-explorer.arbitrum.io", - "icon": "blockscout", - "standard": "EIP3091" - } - ], - "infoURL": "https://arbitrum.io", - "parent": { - "type": "L2", - "chain": "eip155-1", - "bridges": [ - { - "url": "https://bridge.arbitrum.io" - } - ] - } - }, - { - "name": "Celo Mainnet", - "chainId": 42220, - "shortName": "CELO", - "chain": "CELO", - "networkId": 42220, - "nativeCurrency": { - "name": "CELO", - "symbol": "CELO", - "decimals": 18 - }, - "rpc": ["https://forno.celo.org", "wss://forno.celo.org/ws"], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], - "infoURL": "https://docs.celo.org/", - "explorers": [ - { - "name": "blockscout", - "url": "https://explorer.celo.org", - "standard": "none" - } - ] - }, - { - "name": "Emerald Paratime Testnet", - "chain": "Emerald", - "icon": "oasis", - "rpc": [ - "https://testnet.emerald.oasis.dev/", - "wss://testnet.emerald.oasis.dev/ws" - ], - "faucets": [], - "nativeCurrency": { - "name": "Emerald Rose", - "symbol": "ROSE", - "decimals": 18 - }, - "infoURL": "https://docs.oasis.dev/general/developer-resources/overview", - "shortName": "emerald", - "chainId": 42261, - "networkId": 42261, - "explorers": [ - { - "name": "Emerald Paratime Testnet Explorer", - "url": "https://testnet.explorer.emerald.oasis.dev", - "standard": "EIP3091" - } - ] - }, - { - "name": "Emerald Paratime Mainnet", - "chain": "Emerald", - "icon": "oasis", - "rpc": ["https://emerald.oasis.dev", "wss://emerald.oasis.dev/ws"], - "faucets": [], - "nativeCurrency": { - "name": "Emerald Rose", - "symbol": "ROSE", - "decimals": 18 - }, - "infoURL": "https://docs.oasis.dev/general/developer-resources/overview", - "shortName": "oasis", - "chainId": 42262, - "networkId": 42262, - "explorers": [ - { - "name": "Emerald Paratime Mainnet Explorer", - "url": "https://explorer.emerald.oasis.dev", - "standard": "EIP3091" - } - ] - }, - { - "name": "Athereum", - "chain": "ATH", - "rpc": ["https://ava.network:21015/ext/evm/rpc"], - "faucets": ["http://athfaucet.ava.network//?address=${ADDRESS}"], - "nativeCurrency": { - "name": "Athereum Ether", - "symbol": "ATH", - "decimals": 18 - }, - "infoURL": "https://athereum.ava.network", - "shortName": "avaeth", - "chainId": 43110, - "networkId": 43110 - }, - { - "name": "Avalanche Fuji Testnet", - "chain": "AVAX", - "rpc": ["https://api.avax-test.network/ext/bc/C/rpc"], - "faucets": ["https://faucet.avax-test.network/"], - "nativeCurrency": { - "name": "Avalanche", - "symbol": "AVAX", - "decimals": 18 - }, - "infoURL": "https://cchain.explorer.avax-test.network", - "shortName": "Fuji", - "chainId": 43113, - "networkId": 1, - "explorers": [ - { - "name": "snowtrace", - "url": "https://testnet.snowtrace.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Avalanche C-Chain", - "chain": "AVAX", - "rpc": ["https://api.avax.network/ext/bc/C/rpc"], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], - "nativeCurrency": { - "name": "Avalanche", - "symbol": "AVAX", - "decimals": 18 - }, - "infoURL": "https://www.avax.network/", - "shortName": "avax", - "chainId": 43114, - "networkId": 43114, - "slip44": 9005, - "explorers": [ - { - "name": "snowtrace", - "url": "https://snowtrace.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Celo Alfajores Testnet", - "chainId": 44787, - "shortName": "ALFA", - "chain": "CELO", - "networkId": 44787, - "nativeCurrency": { - "name": "CELO", - "symbol": "CELO", - "decimals": 18 - }, - "rpc": [ - "https://alfajores-forno.celo-testnet.org", - "wss://alfajores-forno.celo-testnet.org/ws" - ], - "faucets": [ - "https://celo.org/developers/faucet", - "https://cauldron.pretoriaresearchlab.io/alfajores-faucet" - ], - "infoURL": "https://docs.celo.org/" - }, - { - "name": "Autobahn Network", - "chain": "TXL", - "rpc": ["https://rpc.autobahn.network"], - "faucets": [], - "nativeCurrency": { - "name": "TXL", - "symbol": "TXL", - "decimals": 18 - }, - "infoURL": "https://autobahn.network", - "shortName": "AutobahnNetwork", - "chainId": 45000, - "networkId": 45000, - "icon": "autobahn", - "explorers": [ - { - "name": "autobahn explorer", - "url": "https://explorer.autobahn.network", - "icon": "autobahn", - "standard": "EIP3091" - } - ] - }, - { - "name": "REI Network", - "chain": "REI", - "rpc": ["https://rpc.rei.network", "wss://rpc.rei.network"], - "faucets": [], - "nativeCurrency": { - "name": "REI", - "symbol": "REI", - "decimals": 18 - }, - "infoURL": "https://rei.network/", - "shortName": "REI", - "chainId": 47805, - "networkId": 47805, - "explorers": [ - { - "name": "rei-scan", - "url": "https://scan.rei.network", - "standard": "none" - } - ] - }, - { - "name": "Energi Testnet", - "chain": "NRG", - "rpc": ["https://nodeapi.test.energi.network"], - "faucets": [], - "nativeCurrency": { - "name": "Energi", - "symbol": "NRG", - "decimals": 18 - }, - "infoURL": "https://www.energi.world/", - "shortName": "tnrg", - "chainId": 49797, - "networkId": 49797, - "slip44": 49797 - }, - { - "name": "GTON Testnet", - "chain": "GTON Testnet", - "rpc": ["https://testnet.gton.network/"], - "faucets": [], - "nativeCurrency": { - "name": "GCD", - "symbol": "GCD", - "decimals": 18 - }, - "infoURL": "https://gton.capital", - "shortName": "tgton", - "chainId": 50021, - "networkId": 50021, - "explorers": [ - { - "name": "GTON Testnet Network Explorer", - "url": "https://explorer.testnet.gton.network", - "standard": "EIP3091" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-3" - } - }, - { - "name": "DFK Chain", - "chain": "DFK", - "icon": "dfk", - "rpc": ["https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "Jewel", - "symbol": "JEWEL", - "decimals": 18 - }, - "infoURL": "https://defikingdoms.com", - "shortName": "DFK", - "chainId": 53935, - "networkId": 53935, - "explorers": [ - { - "name": "ethernal", - "url": "https://explorer.dfkchain.com", - "icon": "ethereum", - "standard": "none" - } - ] - }, - { - "name": "REI Chain Mainnet", - "chain": "REI", - "icon": "reichain", - "rpc": ["https://rei-rpc.moonrhythm.io"], - "faucets": ["http://kururu.finance/faucet?chainId=55555"], - "nativeCurrency": { - "name": "Rei", - "symbol": "REI", - "decimals": 18 - }, - "infoURL": "https://reichain.io", - "shortName": "reichain", - "chainId": 55555, - "networkId": 55555, - "explorers": [ - { - "name": "reiscan", - "url": "https://reiscan.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "REI Chain Testnet", - "chain": "REI", - "icon": "reichain", - "rpc": ["https://rei-testnet-rpc.moonrhythm.io"], - "faucets": ["http://kururu.finance/faucet?chainId=55556"], - "nativeCurrency": { - "name": "tRei", - "symbol": "tREI", - "decimals": 18 - }, - "infoURL": "https://reichain.io", - "shortName": "trei", - "chainId": 55556, - "networkId": 55556, - "explorers": [ - { - "name": "reiscan", - "url": "https://testnet.reiscan.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Thinkium Testnet Chain 0", - "chain": "Thinkium", - "rpc": ["https://test.thinkiumrpc.net/"], - "faucets": ["https://www.thinkiumdev.net/faucet"], - "nativeCurrency": { - "name": "TKM", - "symbol": "TKM", - "decimals": 18 - }, - "infoURL": "https://thinkium.net/", - "shortName": "TKM-test0", - "chainId": 60000, - "networkId": 60000, - "explorers": [ - { - "name": "thinkiumscan", - "url": "https://test0.thinkiumscan.net", - "standard": "EIP3091" - } - ] - }, - { - "name": "Thinkium Testnet Chain 1", - "chain": "Thinkium", - "rpc": ["https://test1.thinkiumrpc.net/"], - "faucets": ["https://www.thinkiumdev.net/faucet"], - "nativeCurrency": { - "name": "TKM", - "symbol": "TKM", - "decimals": 18 - }, - "infoURL": "https://thinkium.net/", - "shortName": "TKM-test1", - "chainId": 60001, - "networkId": 60001, - "explorers": [ - { - "name": "thinkiumscan", - "url": "https://test1.thinkiumscan.net", - "standard": "EIP3091" - } - ] - }, - { - "name": "Thinkium Testnet Chain 2", - "chain": "Thinkium", - "rpc": ["https://test2.thinkiumrpc.net/"], - "faucets": ["https://www.thinkiumdev.net/faucet"], - "nativeCurrency": { - "name": "TKM", - "symbol": "TKM", - "decimals": 18 - }, - "infoURL": "https://thinkium.net/", - "shortName": "TKM-test2", - "chainId": 60002, - "networkId": 60002, - "explorers": [ - { - "name": "thinkiumscan", - "url": "https://test2.thinkiumscan.net", - "standard": "EIP3091" - } - ] - }, - { - "name": "Thinkium Testnet Chain 103", - "chain": "Thinkium", - "rpc": ["https://test103.thinkiumrpc.net/"], - "faucets": ["https://www.thinkiumdev.net/faucet"], - "nativeCurrency": { - "name": "TKM", - "symbol": "TKM", - "decimals": 18 - }, - "infoURL": "https://thinkium.net/", - "shortName": "TKM-test103", - "chainId": 60103, - "networkId": 60103, - "explorers": [ - { - "name": "thinkiumscan", - "url": "https://test103.thinkiumscan.net", - "standard": "EIP3091" - } - ] - }, - { - "name": "Celo Baklava Testnet", - "chainId": 62320, - "shortName": "BKLV", - "chain": "CELO", - "networkId": 62320, - "nativeCurrency": { - "name": "CELO", - "symbol": "CELO", - "decimals": 18 - }, - "rpc": ["https://baklava-forno.celo-testnet.org"], - "faucets": [ - "https://docs.google.com/forms/d/e/1FAIpQLSdfr1BwUTYepVmmvfVUDRCwALejZ-TUva2YujNpvrEmPAX2pg/viewform", - "https://cauldron.pretoriaresearchlab.io/baklava-faucet" - ], - "infoURL": "https://docs.celo.org/" - }, - { - "name": "MultiVAC Mainnet", - "chain": "MultiVAC", - "icon": "multivac", - "rpc": ["https://rpc.mtv.ac", "https://rpc-eu.mtv.ac"], - "faucets": [], - "nativeCurrency": { - "name": "MultiVAC", - "symbol": "MTV", - "decimals": 18 - }, - "infoURL": "https://mtv.ac", - "shortName": "mtv", - "chainId": 62621, - "networkId": 62621, - "explorers": [ - { - "name": "MultiVAC Explorer", - "url": "https://e.mtv.ac", - "standard": "none" - } - ] - }, - { - "name": "eCredits Mainnet", - "chain": "ECS", - "rpc": ["https://rpc.ecredits.com"], - "faucets": [], - "nativeCurrency": { - "name": "eCredits", - "symbol": "ECS", - "decimals": 18 - }, - "infoURL": "https://ecredits.com", - "shortName": "ecs", - "chainId": 63000, - "networkId": 63000, - "icon": "ecredits", - "explorers": [ - { - "name": "eCredits MainNet Explorer", - "url": "https://explorer.ecredits.com", - "icon": "ecredits", - "standard": "EIP3091" - } - ] - }, - { - "name": "eCredits Testnet", - "chain": "ECS", - "rpc": ["https://rpc.tst.ecredits.com"], - "faucets": ["https://faucet.tst.ecredits.com"], - "nativeCurrency": { - "name": "eCredits", - "symbol": "ECS", - "decimals": 18 - }, - "infoURL": "https://ecredits.com", - "shortName": "ecs-testnet", - "chainId": 63001, - "networkId": 63001, - "icon": "ecredits", - "explorers": [ - { - "name": "eCredits TestNet Explorer", - "url": "https://explorer.tst.ecredits.com", - "icon": "ecredits", - "standard": "EIP3091" - } - ] - }, - { - "name": "Condrieu", - "title": "Ethereum Verkle Testnet Condrieu", - "chain": "ETH", - "rpc": ["https://rpc.condrieu.ethdevops.io:8545"], - "faucets": ["https://faucet.condrieu.ethdevops.io"], - "nativeCurrency": { - "name": "Condrieu Testnet Ether", - "symbol": "CTE", - "decimals": 18 - }, - "infoURL": "https://condrieu.ethdevops.io", - "shortName": "cndr", - "chainId": 69420, - "networkId": 69420, - "explorers": [ - { - "name": "Condrieu explorer", - "url": "https://explorer.condrieu.ethdevops.io", - "standard": "none" - } - ] - }, - { - "name": "Thinkium Mainnet Chain 0", - "chain": "Thinkium", - "rpc": ["https://proxy.thinkiumrpc.net/"], - "faucets": [], - "nativeCurrency": { - "name": "TKM", - "symbol": "TKM", - "decimals": 18 - }, - "infoURL": "https://thinkium.net/", - "shortName": "TKM0", - "chainId": 70000, - "networkId": 70000, - "explorers": [ - { - "name": "thinkiumscan", - "url": "https://chain0.thinkiumscan.net", - "standard": "EIP3091" - } - ] - }, - { - "name": "Thinkium Mainnet Chain 1", - "chain": "Thinkium", - "rpc": ["https://proxy1.thinkiumrpc.net/"], - "faucets": [], - "nativeCurrency": { - "name": "TKM", - "symbol": "TKM", - "decimals": 18 - }, - "infoURL": "https://thinkium.net/", - "shortName": "TKM1", - "chainId": 70001, - "networkId": 70001, - "explorers": [ - { - "name": "thinkiumscan", - "url": "https://chain1.thinkiumscan.net", - "standard": "EIP3091" - } - ] - }, - { - "name": "Thinkium Mainnet Chain 2", - "chain": "Thinkium", - "rpc": ["https://proxy2.thinkiumrpc.net/"], - "faucets": [], - "nativeCurrency": { - "name": "TKM", - "symbol": "TKM", - "decimals": 18 - }, - "infoURL": "https://thinkium.net/", - "shortName": "TKM2", - "chainId": 70002, - "networkId": 70002, - "explorers": [ - { - "name": "thinkiumscan", - "url": "https://chain2.thinkiumscan.net", - "standard": "EIP3091" - } - ] - }, - { - "name": "Thinkium Mainnet Chain 103", - "chain": "Thinkium", - "rpc": ["https://proxy103.thinkiumrpc.net/"], - "faucets": [], - "nativeCurrency": { - "name": "TKM", - "symbol": "TKM", - "decimals": 18 - }, - "infoURL": "https://thinkium.net/", - "shortName": "TKM103", - "chainId": 70103, - "networkId": 70103, - "explorers": [ - { - "name": "thinkiumscan", - "url": "https://chain103.thinkiumscan.net", - "standard": "EIP3091" - } - ] - }, - { - "name": "Polyjuice Testnet", - "chain": "CKB", - "icon": "polyjuice", - "rpc": [ - "https://godwoken-testnet-web3-rpc.ckbapp.dev", - "ws://godwoken-testnet-web3-rpc.ckbapp.dev/ws" - ], - "faucets": ["https://faucet.nervos.org/"], - "nativeCurrency": { - "name": "CKB", - "symbol": "CKB", - "decimals": 8 - }, - "infoURL": "https://github.com/nervosnetwork/godwoken", - "shortName": "ckb", - "chainId": 71393, - "networkId": 1 - }, - { - "name": "Godwoken Testnet (V1.1)", - "chain": "GWT", - "rpc": ["https://godwoken-testnet-v1.ckbapp.dev"], - "faucets": ["https://testnet.bridge.godwoken.io"], - "nativeCurrency": { - "name": "pCKB", - "symbol": "pCKB", - "decimals": 18 - }, - "infoURL": "https://www.nervos.org", - "shortName": "gw-testnet-v1", - "chainId": 71401, - "networkId": 71401, - "explorers": [ - { - "name": "GWScout Explorer", - "url": "https://gw-testnet-explorer.nervosdao.community", - "standard": "none" - }, - { - "name": "GWScan Block Explorer", - "url": "https://v1.testnet.gwscan.com", - "standard": "none" - } - ] - }, - { - "name": "Godwoken Mainnet", - "chain": "GWT", - "rpc": ["https://v1.mainnet.godwoken.io/rpc"], - "faucets": [], - "nativeCurrency": { - "name": "pCKB", - "symbol": "pCKB", - "decimals": 18 - }, - "infoURL": "https://www.nervos.org", - "shortName": "gw-mainnet-v1", - "chainId": 71402, - "networkId": 71402, - "explorers": [ - { - "name": "GWScout Explorer", - "url": "https://gw-mainnet-explorer.nervosdao.community", - "standard": "none" - }, - { - "name": "GWScan Block Explorer", - "url": "https://v1.gwscan.com", - "standard": "none" - } - ] - }, - { - "name": "Energy Web Volta Testnet", - "chain": "Volta", - "rpc": [ - "https://volta-rpc.energyweb.org", - "wss://volta-rpc.energyweb.org/ws" - ], - "faucets": ["https://voltafaucet.energyweb.org"], - "nativeCurrency": { - "name": "Volta Token", - "symbol": "VT", - "decimals": 18 - }, - "infoURL": "https://energyweb.org", - "shortName": "vt", - "chainId": 73799, - "networkId": 73799 - }, - { - "name": "Mixin Virtual Machine", - "chain": "MVM", - "rpc": ["https://geth.mvm.dev"], - "faucets": [], - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://mvm.dev", - "shortName": "mvm", - "chainId": 73927, - "networkId": 73927, - "icon": "mvm", - "explorers": [ - { - "name": "mvmscan", - "url": "https://scan.mvm.dev", - "icon": "mvm", - "standard": "EIP3091" - } - ] - }, - { - "name": "ResinCoin Mainnet", - "chain": "RESIN", - "rpc": ["https://mainnet.resincoin.ml"], - "faucets": [], - "nativeCurrency": { - "name": "Ether", - "symbol": "RESIN", - "decimals": 18 - }, - "infoURL": "https://resincoin.ml", - "shortName": "resin", - "chainId": 75000, - "networkId": 75000, - "explorers": [ - { - "name": "ResinScan", - "url": "https://explorer.resincoin.ml", - "standard": "none" - } - ] - }, - { - "name": "Firenze test network", - "chain": "ETH", - "rpc": ["https://ethnode.primusmoney.com/firenze"], - "faucets": [], - "nativeCurrency": { - "name": "Firenze Ether", - "symbol": "FIN", - "decimals": 18 - }, - "infoURL": "https://primusmoney.com", - "shortName": "firenze", - "chainId": 78110, - "networkId": 78110 - }, - { - "name": "Mumbai", - "title": "Polygon Testnet Mumbai", - "chain": "Polygon", - "rpc": [ - "https://matic-mumbai.chainstacklabs.com", - "https://rpc-mumbai.maticvigil.com", - "https://matic-testnet-archive-rpc.bwarelabs.com" - ], - "faucets": ["https://faucet.polygon.technology/"], - "nativeCurrency": { - "name": "MATIC", - "symbol": "MATIC", - "decimals": 18 - }, - "infoURL": "https://polygon.technology/", - "shortName": "maticmum", - "chainId": 80001, - "networkId": 80001, - "explorers": [ - { - "name": "polygonscan", - "url": "https://mumbai.polygonscan.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "IVAR Chain Mainnet", - "chain": "IVAR", - "icon": "ivar", - "rpc": ["https://mainnet-rpc.ivarex.com"], - "faucets": ["https://faucet.ivarex.com/"], - "nativeCurrency": { - "name": "Ivar", - "symbol": "IVAR", - "decimals": 18 - }, - "infoURL": "https://ivarex.com", - "shortName": "ivar", - "chainId": 88888, - "networkId": 88888, - "explorers": [ - { - "name": "ivarscan", - "url": "https://ivarscan.com", - "standard": "EIP3091" - } - ] - }, - { - "name": "Lambda Testnet", - "chain": "Lambda", - "rpc": ["http://18.143.13.243:8545"], - "faucets": ["https://faucet.lambda.top"], - "nativeCurrency": { - "name": "test-Lamb", - "symbol": "LAMB", - "decimals": 18 - }, - "infoURL": "https://lambda.im", - "shortName": "lambda-testnet", - "chainId": 92001, - "networkId": 92001, - "icon": "lambda", - "explorers": [ - { - "name": "Lambda EVM Explorer", - "url": "https://explorer.lambda.top", - "standard": "EIP3091", - "icon": "lambda" - } - ] - }, - { - "name": "UB Smart Chain(testnet)", - "chain": "USC", - "rpc": ["https://testnet.rpc.uschain.network"], - "faucets": [], - "nativeCurrency": { - "name": "UBC", - "symbol": "UBC", - "decimals": 18 - }, - "infoURL": "https://www.ubchain.site", - "shortName": "usctest", - "chainId": 99998, - "networkId": 99998 - }, - { - "name": "UB Smart Chain", - "chain": "USC", - "rpc": ["https://rpc.uschain.network"], - "faucets": [], - "nativeCurrency": { - "name": "UBC", - "symbol": "UBC", - "decimals": 18 - }, - "infoURL": "https://www.ubchain.site/", - "shortName": "usc", - "chainId": 99999, - "networkId": 99999 - }, - { - "name": "QuarkChain Mainnet Root", - "chain": "QuarkChain", - "rpc": ["http://jrpc.mainnet.quarkchain.io:38391"], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-r", - "chainId": 100000, - "networkId": 100000 - }, - { - "name": "QuarkChain Mainnet Shard 0", - "chain": "QuarkChain", - "rpc": [ - "https://mainnet-s0-ethapi.quarkchain.io", - "http://eth-jrpc.mainnet.quarkchain.io:39000" - ], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-s0", - "chainId": 100001, - "networkId": 100001, - "parent": { - "chain": "eip155-100000", - "type": "shard" - }, - "explorers": [ - { - "name": "quarkchain-mainnet", - "url": "https://mainnet.quarkchain.io/0", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Mainnet Shard 1", - "chain": "QuarkChain", - "rpc": [ - "https://mainnet-s1-ethapi.quarkchain.io", - "http://eth-jrpc.mainnet.quarkchain.io:39001" - ], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-s1", - "chainId": 100002, - "networkId": 100002, - "parent": { - "chain": "eip155-100000", - "type": "shard" - }, - "explorers": [ - { - "name": "quarkchain-mainnet", - "url": "https://mainnet.quarkchain.io/1", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Mainnet Shard 2", - "chain": "QuarkChain", - "rpc": [ - "https://mainnet-s2-ethapi.quarkchain.io", - "http://eth-jrpc.mainnet.quarkchain.io:39002" - ], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-s2", - "chainId": 100003, - "networkId": 100003, - "parent": { - "chain": "eip155-100000", - "type": "shard" - }, - "explorers": [ - { - "name": "quarkchain-mainnet", - "url": "https://mainnet.quarkchain.io/2", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Mainnet Shard 3", - "chain": "QuarkChain", - "rpc": [ - "https://mainnet-s3-ethapi.quarkchain.io", - "http://eth-jrpc.mainnet.quarkchain.io:39003" - ], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-s3", - "chainId": 100004, - "networkId": 100004, - "parent": { - "chain": "eip155-100000", - "type": "shard" - }, - "explorers": [ - { - "name": "quarkchain-mainnet", - "url": "https://mainnet.quarkchain.io/3", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Mainnet Shard 4", - "chain": "QuarkChain", - "rpc": [ - "https://mainnet-s4-ethapi.quarkchain.io", - "http://eth-jrpc.mainnet.quarkchain.io:39004" - ], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-s4", - "chainId": 100005, - "networkId": 100005, - "parent": { - "chain": "eip155-100000", - "type": "shard" - }, - "explorers": [ - { - "name": "quarkchain-mainnet", - "url": "https://mainnet.quarkchain.io/4", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Mainnet Shard 5", - "chain": "QuarkChain", - "rpc": [ - "https://mainnet-s5-ethapi.quarkchain.io", - "http://eth-jrpc.mainnet.quarkchain.io:39005" - ], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-s5", - "chainId": 100006, - "networkId": 100006, - "parent": { - "chain": "eip155-100000", - "type": "shard" - }, - "explorers": [ - { - "name": "quarkchain-mainnet", - "url": "https://mainnet.quarkchain.io/5", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Mainnet Shard 6", - "chain": "QuarkChain", - "rpc": [ - "https://mainnet-s6-ethapi.quarkchain.io", - "http://eth-jrpc.mainnet.quarkchain.io:39006" - ], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-s6", - "chainId": 100007, - "networkId": 100007, - "parent": { - "chain": "eip155-100000", - "type": "shard" - }, - "explorers": [ - { - "name": "quarkchain-mainnet", - "url": "https://mainnet.quarkchain.io/6", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Mainnet Shard 7", - "chain": "QuarkChain", - "rpc": [ - "https://mainnet-s7-ethapi.quarkchain.io", - "http://eth-jrpc.mainnet.quarkchain.io:39007" - ], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-s7", - "chainId": 100008, - "networkId": 100008, - "parent": { - "chain": "eip155-100000", - "type": "shard" - }, - "explorers": [ - { - "name": "quarkchain-mainnet", - "url": "https://mainnet.quarkchain.io/7", - "standard": "EIP3091" - } - ] - }, - { - "name": "Chiado Testnet", - "chain": "CHI", - "icon": "gnosis", - "rpc": ["https://rpc-chiado.gnosistestnet.com"], - "faucets": ["https://gnosisfaucet.com"], - "nativeCurrency": { - "name": "Chiado xDAI", - "symbol": "xDAI", - "decimals": 18 - }, - "infoURL": "https://docs.gnosischain.com", - "shortName": "chi", - "chainId": 100100, - "networkId": 100100, - "explorers": [ - { - "name": "blockscout", - "url": "https://blockscout-chiado.gnosistestnet.com", - "icon": "blockscout", - "standard": "EIP3091" - } - ] - }, - { - "name": "Crystaleum", - "chain": "crystal", - "rpc": ["https://evm.cryptocurrencydevs.org", "https://rpc.crystaleum.org"], - "faucets": [], - "nativeCurrency": { - "name": "CRFI", - "symbol": "â—ˆ", - "decimals": 18 - }, - "infoURL": "https://crystaleum.org", - "shortName": "CRFI", - "chainId": 103090, - "networkId": 1, - "icon": "crystal", - "explorers": [ - { - "name": "blockscout", - "url": "https://scan.crystaleum.org", - "icon": "crystal", - "standard": "EIP3091" - } - ] - }, - { - "name": "BROChain Mainnet", - "chain": "BRO", - "rpc": [ - "https://rpc.brochain.org", - "http://rpc.brochain.org", - "https://rpc.brochain.org/mainnet", - "http://rpc.brochain.org/mainnet" - ], - "faucets": [], - "nativeCurrency": { - "name": "Brother", - "symbol": "BRO", - "decimals": 18 - }, - "infoURL": "https://brochain.org", - "shortName": "bro", - "chainId": 108801, - "networkId": 108801, - "explorers": [ - { - "name": "BROChain Explorer", - "url": "https://explorer.brochain.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Devnet Root", - "chain": "QuarkChain", - "rpc": ["http://jrpc.devnet.quarkchain.io:38391"], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-r", - "chainId": 110000, - "networkId": 110000 - }, - { - "name": "QuarkChain Devnet Shard 0", - "chain": "QuarkChain", - "rpc": [ - "https://devnet-s0-ethapi.quarkchain.io", - "http://eth-jrpc.devnet.quarkchain.io:39900" - ], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-s0", - "chainId": 110001, - "networkId": 110001, - "parent": { - "chain": "eip155-110000", - "type": "shard" - }, - "explorers": [ - { - "name": "quarkchain-devnet", - "url": "https://devnet.quarkchain.io/0", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Devnet Shard 1", - "chain": "QuarkChain", - "rpc": [ - "https://devnet-s1-ethapi.quarkchain.io", - "http://eth-jrpc.devnet.quarkchain.io:39901" - ], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-s1", - "chainId": 110002, - "networkId": 110002, - "parent": { - "chain": "eip155-110000", - "type": "shard" - }, - "explorers": [ - { - "name": "quarkchain-devnet", - "url": "https://devnet.quarkchain.io/1", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Devnet Shard 2", - "chain": "QuarkChain", - "rpc": [ - "https://devnet-s2-ethapi.quarkchain.io", - "http://eth-jrpc.devnet.quarkchain.io:39902" - ], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-s2", - "chainId": 110003, - "networkId": 110003, - "parent": { - "chain": "eip155-110000", - "type": "shard" - }, - "explorers": [ - { - "name": "quarkchain-devnet", - "url": "https://devnet.quarkchain.io/2", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Devnet Shard 3", - "chain": "QuarkChain", - "rpc": [ - "https://devnet-s3-ethapi.quarkchain.io", - "http://eth-jrpc.devnet.quarkchain.io:39903" - ], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-s3", - "chainId": 110004, - "networkId": 110004, - "parent": { - "chain": "eip155-110000", - "type": "shard" - }, - "explorers": [ - { - "name": "quarkchain-devnet", - "url": "https://devnet.quarkchain.io/3", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Devnet Shard 4", - "chain": "QuarkChain", - "rpc": [ - "https://devnet-s4-ethapi.quarkchain.io", - "http://eth-jrpc.devnet.quarkchain.io:39904" - ], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-s4", - "chainId": 110005, - "networkId": 110005, - "parent": { - "chain": "eip155-110000", - "type": "shard" - }, - "explorers": [ - { - "name": "quarkchain-devnet", - "url": "https://devnet.quarkchain.io/4", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Devnet Shard 5", - "chain": "QuarkChain", - "rpc": [ - "https://devnet-s5-ethapi.quarkchain.io", - "http://eth-jrpc.devnet.quarkchain.io:39905" - ], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-s5", - "chainId": 110006, - "networkId": 110006, - "parent": { - "chain": "eip155-110000", - "type": "shard" - }, - "explorers": [ - { - "name": "quarkchain-devnet", - "url": "https://devnet.quarkchain.io/5", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Devnet Shard 6", - "chain": "QuarkChain", - "rpc": [ - "https://devnet-s6-ethapi.quarkchain.io", - "http://eth-jrpc.devnet.quarkchain.io:39906" - ], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-s6", - "chainId": 110007, - "networkId": 110007, - "parent": { - "chain": "eip155-110000", - "type": "shard" - }, - "explorers": [ - { - "name": "quarkchain-devnet", - "url": "https://devnet.quarkchain.io/6", - "standard": "EIP3091" - } - ] - }, - { - "name": "QuarkChain Devnet Shard 7", - "chain": "QuarkChain", - "rpc": [ - "https://devnet-s7-ethapi.quarkchain.io", - "http://eth-jrpc.devnet.quarkchain.io:39907" - ], - "faucets": [], - "nativeCurrency": { - "name": "QKC", - "symbol": "QKC", - "decimals": 18 - }, - "infoURL": "https://www.quarkchain.io", - "shortName": "qkc-d-s7", - "chainId": 110008, - "networkId": 110008, - "parent": { - "chain": "eip155-110000", - "type": "shard" - }, - "explorers": [ - { - "name": "quarkchain-devnet", - "url": "https://devnet.quarkchain.io/7", - "standard": "EIP3091" - } - ] - }, - { - "name": "ETND Chain Mainnets", - "chain": "ETND", - "rpc": ["https://rpc.node1.etnd.pro/"], - "faucets": [], - "nativeCurrency": { - "name": "ETND", - "symbol": "ETND", - "decimals": 18 - }, - "infoURL": "https://www.etnd.pro", - "shortName": "ETND", - "chainId": 131419, - "networkId": 131419, - "icon": "ETND", - "explorers": [ - { - "name": "etndscan", - "url": "https://scan.etnd.pro", - "icon": "ETND", - "standard": "none" - } - ] - }, - { - "name": "Milkomeda C1 Testnet", - "chain": "milkTAda", - "icon": "milkomeda", - "rpc": [ - "https://rpc-devnet-cardano-evm.c1.milkomeda.com", - "wss://rpc-devnet-cardano-evm.c1.milkomeda.com" - ], - "faucets": [], - "nativeCurrency": { - "name": "milkTAda", - "symbol": "mTAda", - "decimals": 18 - }, - "infoURL": "https://milkomeda.com", - "shortName": "milkTAda", - "chainId": 200101, - "networkId": 200101, - "explorers": [ - { - "name": "Blockscout", - "url": "https://explorer-devnet-cardano-evm.c1.milkomeda.com", - "standard": "none" - } - ] - }, - { - "name": "Milkomeda A1 Testnet", - "chain": "milkTAlgo", - "icon": "milkomeda", - "rpc": ["https://rpc-devnet-algorand-rollup.a1.milkomeda.com"], - "faucets": [], - "nativeCurrency": { - "name": "milkTAlgo", - "symbol": "mTAlgo", - "decimals": 18 - }, - "infoURL": "https://milkomeda.com", - "shortName": "milkTAlgo", - "chainId": 200202, - "networkId": 200202, - "explorers": [ - { - "name": "Blockscout", - "url": "https://explorer-devnet-algorand-rollup.a1.milkomeda.com", - "standard": "none" - } - ] - }, - { - "name": "Akroma", - "chain": "AKA", - "rpc": ["https://remote.akroma.io"], - "faucets": [], - "nativeCurrency": { - "name": "Akroma Ether", - "symbol": "AKA", - "decimals": 18 - }, - "infoURL": "https://akroma.io", - "shortName": "aka", - "chainId": 200625, - "networkId": 200625, - "slip44": 200625 - }, - { - "name": "Alaya Mainnet", - "chain": "Alaya", - "rpc": [ - "https://openapi.alaya.network/rpc", - "wss://openapi.alaya.network/ws" - ], - "faucets": [], - "nativeCurrency": { - "name": "ATP", - "symbol": "atp", - "decimals": 18 - }, - "infoURL": "https://www.alaya.network/", - "shortName": "alaya", - "chainId": 201018, - "networkId": 1, - "icon": "alaya", - "explorers": [ - { - "name": "alaya explorer", - "url": "https://scan.alaya.network", - "standard": "none" - } - ] - }, - { - "name": "Alaya Dev Testnet", - "chain": "Alaya", - "rpc": [ - "https://devnetopenapi.alaya.network/rpc", - "wss://devnetopenapi.alaya.network/ws" - ], - "faucets": [ - "https://faucet.alaya.network/faucet/?id=f93426c0887f11eb83b900163e06151c" - ], - "nativeCurrency": { - "name": "ATP", - "symbol": "atp", - "decimals": 18 - }, - "infoURL": "https://www.alaya.network/", - "shortName": "alayadev", - "chainId": 201030, - "networkId": 1, - "icon": "alaya", - "explorers": [ - { - "name": "alaya explorer", - "url": "https://devnetscan.alaya.network", - "standard": "none" - } - ] - }, - { - "name": "Jellie", - "title": "Twala Testnet Jellie", - "shortName": "twl-jellie", - "chain": "ETH", - "chainId": 202624, - "networkId": 202624, - "icon": "twala", - "nativeCurrency": { - "name": "Twala Coin", - "symbol": "TWL", - "decimals": 18 - }, - "rpc": ["https://jellie-rpc.twala.io/", "wss://jellie-rpc-wss.twala.io/"], - "faucets": [], - "infoURL": "https://twala.io/", - "explorers": [ - { - "name": "Jellie Blockchain Explorer", - "url": "https://jellie.twala.io", - "standard": "EIP3091", - "icon": "twala" - } - ] - }, - { - "name": "PlatON Mainnet", - "chain": "PlatON", - "rpc": [ - "https://openapi2.platon.network/rpc", - "wss://openapi2.platon.network/ws" - ], - "faucets": [], - "nativeCurrency": { - "name": "LAT", - "symbol": "lat", - "decimals": 18 - }, - "infoURL": "https://www.platon.network", - "shortName": "platon", - "chainId": 210425, - "networkId": 1, - "icon": "platon", - "explorers": [ - { - "name": "PlatON explorer", - "url": "https://scan.platon.network", - "standard": "none" - } - ] - }, - { - "name": "Haymo Testnet", - "chain": "tHYM", - "rpc": ["https://testnet1.haymo.network"], - "faucets": [], - "nativeCurrency": { - "name": "HAYMO", - "symbol": "HYM", - "decimals": 18 - }, - "infoURL": "https://haymoswap.web.app/", - "shortName": "hym", - "chainId": 234666, - "networkId": 234666 - }, - { - "name": "ARTIS sigma1", - "chain": "ARTIS", - "rpc": ["https://rpc.sigma1.artis.network"], - "faucets": [], - "nativeCurrency": { - "name": "ARTIS sigma1 Ether", - "symbol": "ATS", - "decimals": 18 - }, - "infoURL": "https://artis.eco", - "shortName": "ats", - "chainId": 246529, - "networkId": 246529, - "slip44": 246529 - }, - { - "name": "ARTIS Testnet tau1", - "chain": "ARTIS", - "rpc": ["https://rpc.tau1.artis.network"], - "faucets": [], - "nativeCurrency": { - "name": "ARTIS tau1 Ether", - "symbol": "tATS", - "decimals": 18 - }, - "infoURL": "https://artis.network", - "shortName": "atstau", - "chainId": 246785, - "networkId": 246785 - }, - { - "name": "CMP-Mainnet", - "chain": "CMP", - "rpc": [ - "https://mainnet.block.caduceus.foundation", - "wss://mainnet.block.caduceus.foundation" - ], - "faucets": [], - "nativeCurrency": { - "name": "Caduceus Token", - "symbol": "CMP", - "decimals": 18 - }, - "infoURL": "https://caduceus.foundation/", - "shortName": "cmp-mainnet", - "chainId": 256256, - "networkId": 256256, - "explorers": [ - { - "name": "Mainnet Scan", - "url": "https://mainnet.scan.caduceus.foundation", - "standard": "none" - } - ] - }, - { - "name": "Social Smart Chain Mainnet", - "chain": "SoChain", - "rpc": ["https://socialsmartchain.digitalnext.business"], - "faucets": [], - "nativeCurrency": { - "name": "SoChain", - "symbol": "$OC", - "decimals": 18 - }, - "infoURL": "https://digitalnext.business/SocialSmartChain", - "shortName": "SoChain", - "chainId": 281121, - "networkId": 281121, - "explorers": [] - }, - { - "name": "Polis Testnet", - "chain": "Sparta", - "icon": "polis", - "rpc": ["https://sparta-rpc.polis.tech"], - "faucets": ["https://faucet.polis.tech"], - "nativeCurrency": { - "name": "tPolis", - "symbol": "tPOLIS", - "decimals": 18 - }, - "infoURL": "https://polis.tech", - "shortName": "sparta", - "chainId": 333888, - "networkId": 333888 - }, - { - "name": "Polis Mainnet", - "chain": "Olympus", - "icon": "polis", - "rpc": ["https://rpc.polis.tech"], - "faucets": ["https://faucet.polis.tech"], - "nativeCurrency": { - "name": "Polis", - "symbol": "POLIS", - "decimals": 18 - }, - "infoURL": "https://polis.tech", - "shortName": "olympus", - "chainId": 333999, - "networkId": 333999 - }, - { - "name": "Kekchain", - "chain": "kek", - "rpc": ["https://testnet.kekchain.com"], - "faucets": [], - "nativeCurrency": { - "name": "KEK", - "symbol": "KEK", - "decimals": 18 - }, - "infoURL": "https://kekchain.com", - "shortName": "KEK", - "chainId": 420666, - "networkId": 1, - "icon": "kek", - "explorers": [ - { - "name": "blockscout", - "url": "https://testnet-explorer.kekchain.com", - "icon": "kek", - "standard": "EIP3091" - } - ] - }, - { - "name": "Arbitrum Rinkeby", - "title": "Arbitrum Testnet Rinkeby", - "chainId": 421611, - "shortName": "arb-rinkeby", - "chain": "ETH", - "networkId": 421611, - "nativeCurrency": { - "name": "Arbitrum Rinkeby Ether", - "symbol": "ETH", - "decimals": 18 - }, - "rpc": ["https://rinkeby.arbitrum.io/rpc"], - "faucets": ["http://fauceth.komputing.org?chain=421611&address=${ADDRESS}"], - "infoURL": "https://arbitrum.io", - "explorers": [ - { - "name": "arbiscan-testnet", - "url": "https://testnet.arbiscan.io", - "standard": "EIP3091" - }, - { - "name": "arbitrum-rinkeby", - "url": "https://rinkeby-explorer.arbitrum.io", - "standard": "EIP3091" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-4", - "bridges": [ - { - "url": "https://bridge.arbitrum.io" - } - ] - } - }, - { - "name": "Arbitrum Görli", - "title": "Arbitrum Görli Rollup Testnet", - "chainId": 421613, - "shortName": "arb-goerli", - "chain": "ETH", - "networkId": 421613, - "nativeCurrency": { - "name": "Arbitrum Görli Ether", - "symbol": "AGOR", - "decimals": 18 - }, - "rpc": ["https://goerli-rollup.arbitrum.io/rpc/"], - "faucets": [], - "infoURL": "https://arbitrum.io/", - "explorers": [ - { - "name": "Arbitrum Görli Rollup Explorer", - "url": "https://goerli-rollup-explorer.arbitrum.io", - "standard": "EIP3091" - } - ], - "parent": { - "type": "L2", - "chain": "eip155-5", - "bridges": [ - { - "url": "https://bridge.arbitrum.io/" - } - ] - } - }, - { - "name": "Dexalot Testnet", - "chain": "DEXALOT", - "rpc": ["https://subnets.avax.network/dexalot/testnet/rpc"], - "faucets": ["https://sfaucet.dexalot-test.com"], - "nativeCurrency": { - "name": "Dexalot", - "symbol": "ALOT", - "decimals": 18 - }, - "infoURL": "https://dexalot.com", - "shortName": "Dexalot", - "chainId": 432201, - "networkId": 432201, - "explorers": [ - { - "name": "Avalanche Subnet Explorer", - "url": "https://subnets.avax.network/dexalot/testnet/explorer", - "standard": "EIP3091" - } - ] - }, - { - "name": "Weelink Testnet", - "chain": "WLK", - "rpc": ["https://weelinknode1c.gw002.oneitfarm.com"], - "faucets": ["https://faucet.weelink.gw002.oneitfarm.com"], - "nativeCurrency": { - "name": "Weelink Chain Token", - "symbol": "tWLK", - "decimals": 18 - }, - "infoURL": "https://weelink.cloud", - "shortName": "wlkt", - "chainId": 444900, - "networkId": 444900, - "explorers": [ - { - "name": "weelink-testnet", - "url": "https://weelink.cloud/#/blockView/overview", - "standard": "none" - } - ] - }, - { - "name": "OpenChain Mainnet", - "chain": "OpenChain", - "rpc": ["https://baas-rpc.luniverse.io:18545?lChainId=1641349324562974539"], - "faucets": [], - "nativeCurrency": { - "name": "OpenCoin", - "symbol": "OPC", - "decimals": 10 - }, - "infoURL": "https://www.openchain.live", - "shortName": "oc", - "chainId": 474142, - "networkId": 474142, - "explorers": [ - { - "name": "SIDE SCAN", - "url": "https://sidescan.luniverse.io/1641349324562974539", - "standard": "none" - } - ] - }, - { - "name": "CMP-Testnet", - "chain": "CMP", - "rpc": [ - "https://galaxy.block.caduceus.foundation", - "wss://galaxy.block.caduceus.foundation" - ], - "faucets": ["https://dev.caduceus.foundation/testNetwork"], - "nativeCurrency": { - "name": "Caduceus Testnet Token", - "symbol": "CMP", - "decimals": 18 - }, - "infoURL": "https://caduceus.foundation/", - "shortName": "cmp", - "chainId": 512512, - "networkId": 512512, - "explorers": [ - { - "name": "Galaxy Scan", - "url": "https://galaxy.scan.caduceus.foundation", - "standard": "none" - } - ] - }, - { - "name": "ethereum Fair", - "chainId": 513100, - "networkId": 1, - "shortName": "etf", - "chain": "ETF", - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "rpc": ["https://rpc.etherfair.org"], - "faucets": [], - "explorers": [], - "infoURL": "https://etherfair.org" - }, - { - "name": "Vision - Vpioneer Test Chain", - "chain": "Vision-Vpioneer", - "rpc": ["https://vpioneer.infragrid.v.network/ethereum/compatible"], - "faucets": ["https://vpioneerfaucet.visionscan.org"], - "nativeCurrency": { - "name": "VS", - "symbol": "VS", - "decimals": 18 - }, - "infoURL": "https://visionscan.org", - "shortName": "vpioneer", - "chainId": 666666, - "networkId": 666666, - "slip44": 60 - }, - { - "name": "4GoodNetwork", - "chain": "4GN", - "rpc": ["https://chain.deptofgood.com"], - "faucets": [], - "nativeCurrency": { - "name": "APTA", - "symbol": "APTA", - "decimals": 18 - }, - "infoURL": "https://bloqs4good.com", - "shortName": "bloqs4good", - "chainId": 846000, - "networkId": 846000 - }, - { - "name": "Vision - Mainnet", - "chain": "Vision", - "rpc": ["https://infragrid.v.network/ethereum/compatible"], - "faucets": [], - "nativeCurrency": { - "name": "VS", - "symbol": "VS", - "decimals": 18 - }, - "infoURL": "https://www.v.network", - "explorers": [ - { - "name": "Visionscan", - "url": "https://www.visionscan.org", - "standard": "EIP3091" - } - ], - "shortName": "vision", - "chainId": 888888, - "networkId": 888888, - "slip44": 60 - }, - { - "name": "Posichain Mainnet Shard 0", - "chain": "PSC", - "rpc": ["https://api.posichain.org", "https://api.s0.posichain.org"], - "faucets": ["https://faucet.posichain.org/"], - "nativeCurrency": { - "name": "Posichain Native Token", - "symbol": "POSI", - "decimals": 18 - }, - "infoURL": "https://posichain.org", - "shortName": "psc-s0", - "chainId": 900000, - "networkId": 900000, - "icon": "posichain", - "explorers": [ - { - "name": "Posichain Explorer", - "url": "https://explorer.posichain.org", - "icon": "posichain", - "standard": "EIP3091" - } - ] - }, - { - "name": "Posichain Testnet Shard 0", - "chain": "PSC", - "rpc": ["https://api.s0.t.posichain.org"], - "faucets": ["https://faucet.posichain.org/"], - "nativeCurrency": { - "name": "Posichain Native Token", - "symbol": "POSI", - "decimals": 18 - }, - "infoURL": "https://posichain.org", - "shortName": "psc-t-s0", - "chainId": 910000, - "networkId": 910000, - "icon": "posichain", - "explorers": [ - { - "name": "Posichain Explorer Testnet", - "url": "https://explorer-testnet.posichain.org", - "icon": "posichain", - "standard": "EIP3091" - } - ] - }, - { - "name": "Posichain Devnet Shard 0", - "chain": "PSC", - "rpc": ["https://api.s0.d.posichain.org"], - "faucets": ["https://faucet.posichain.org/"], - "nativeCurrency": { - "name": "Posichain Native Token", - "symbol": "POSI", - "decimals": 18 - }, - "infoURL": "https://posichain.org", - "shortName": "psc-d-s0", - "chainId": 920000, - "networkId": 920000, - "icon": "posichain", - "explorers": [ - { - "name": "Posichain Explorer Devnet", - "url": "https://explorer-devnet.posichain.org", - "icon": "posichain", - "standard": "EIP3091" - } - ] - }, - { - "name": "Posichain Devnet Shard 1", - "chain": "PSC", - "rpc": ["https://api.s1.d.posichain.org"], - "faucets": ["https://faucet.posichain.org/"], - "nativeCurrency": { - "name": "Posichain Native Token", - "symbol": "POSI", - "decimals": 18 - }, - "infoURL": "https://posichain.org", - "shortName": "psc-d-s1", - "chainId": 920001, - "networkId": 920001, - "icon": "posichain", - "explorers": [ - { - "name": "Posichain Explorer Devnet", - "url": "https://explorer-devnet.posichain.org", - "icon": "posichain", - "standard": "EIP3091" - } - ] - }, - { - "name": "Eluvio Content Fabric", - "chain": "Eluvio", - "rpc": [ - "https://host-76-74-28-226.contentfabric.io/eth/", - "https://host-76-74-28-232.contentfabric.io/eth/", - "https://host-76-74-29-2.contentfabric.io/eth/", - "https://host-76-74-29-8.contentfabric.io/eth/", - "https://host-76-74-29-34.contentfabric.io/eth/", - "https://host-76-74-29-35.contentfabric.io/eth/", - "https://host-154-14-211-98.contentfabric.io/eth/", - "https://host-154-14-192-66.contentfabric.io/eth/", - "https://host-60-240-133-202.contentfabric.io/eth/", - "https://host-64-235-250-98.contentfabric.io/eth/" - ], - "faucets": [], - "nativeCurrency": { - "name": "ELV", - "symbol": "ELV", - "decimals": 18 - }, - "infoURL": "https://eluv.io", - "shortName": "elv", - "chainId": 955305, - "networkId": 955305, - "slip44": 1011, - "explorers": [ - { - "name": "blockscout", - "url": "https://explorer.eluv.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "Etho Protocol", - "chain": "ETHO", - "rpc": ["https://rpc.ethoprotocol.com"], - "faucets": [], - "nativeCurrency": { - "name": "Etho Protocol", - "symbol": "ETHO", - "decimals": 18 - }, - "infoURL": "https://ethoprotocol.com", - "shortName": "etho", - "chainId": 1313114, - "networkId": 1313114, - "slip44": 1313114, - "explorers": [ - { - "name": "blockscout", - "url": "https://explorer.ethoprotocol.com", - "standard": "none" - } - ] - }, - { - "name": "Xerom", - "chain": "XERO", - "rpc": ["https://rpc.xerom.org"], - "faucets": [], - "nativeCurrency": { - "name": "Xerom Ether", - "symbol": "XERO", - "decimals": 18 - }, - "infoURL": "https://xerom.org", - "shortName": "xero", - "chainId": 1313500, - "networkId": 1313500 - }, - { - "name": "Kintsugi", - "title": "Kintsugi merge testnet", - "chain": "ETH", - "rpc": ["https://rpc.kintsugi.themerge.dev"], - "faucets": [ - "http://fauceth.komputing.org?chain=1337702&address=${ADDRESS}", - "https://faucet.kintsugi.themerge.dev" - ], - "nativeCurrency": { - "name": "kintsugi Ethere", - "symbol": "kiETH", - "decimals": 18 - }, - "infoURL": "https://kintsugi.themerge.dev/", - "shortName": "kintsugi", - "chainId": 1337702, - "networkId": 1337702, - "explorers": [ - { - "name": "kintsugi explorer", - "url": "https://explorer.kintsugi.themerge.dev", - "standard": "EIP3091" - } - ] - }, - { - "name": "Kiln", - "chain": "ETH", - "rpc": ["https://rpc.kiln.themerge.dev"], - "faucets": [ - "https://faucet.kiln.themerge.dev", - "https://kiln-faucet.pk910.de", - "https://kilnfaucet.com" - ], - "nativeCurrency": { - "name": "Testnet ETH", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://kiln.themerge.dev/", - "shortName": "kiln", - "chainId": 1337802, - "networkId": 1337802, - "icon": "ethereum", - "explorers": [ - { - "name": "Kiln Explorer", - "url": "https://explorer.kiln.themerge.dev", - "icon": "ethereum", - "standard": "EIP3091" - } - ] - }, - { - "name": "Plian Mainnet Main", - "chain": "Plian", - "rpc": ["https://mainnet.plian.io/pchain"], - "faucets": [], - "nativeCurrency": { - "name": "Plian Token", - "symbol": "PI", - "decimals": 18 - }, - "infoURL": "https://plian.org/", - "shortName": "plian-mainnet", - "chainId": 2099156, - "networkId": 2099156, - "explorers": [ - { - "name": "piscan", - "url": "https://piscan.plian.org/pchain", - "standard": "EIP3091" - } - ] - }, - { - "name": "PlatON Dev Testnet", - "chain": "PlatON", - "rpc": [ - "https://devnetopenapi2.platon.network/rpc", - "wss://devnetopenapi2.platon.network/ws" - ], - "faucets": [ - "https://faucet.platon.network/faucet/?id=e5d32df10aee11ec911142010a667c03" - ], - "nativeCurrency": { - "name": "LAT", - "symbol": "lat", - "decimals": 18 - }, - "infoURL": "https://www.platon.network", - "shortName": "platondev", - "chainId": 2203181, - "networkId": 1, - "icon": "platon", - "explorers": [ - { - "name": "PlatON explorer", - "url": "https://devnetscan.platon.network", - "standard": "none" - } - ] - }, - { - "name": "PlatON Dev Testnet2", - "chain": "PlatON", - "rpc": [ - "https://devnet2openapi.platon.network/rpc", - "wss://devnet2openapi.platon.network/ws" - ], - "faucets": ["https://devnet2faucet.platon.network/faucet"], - "nativeCurrency": { - "name": "LAT", - "symbol": "lat", - "decimals": 18 - }, - "infoURL": "https://www.platon.network", - "shortName": "platondev2", - "chainId": 2206132, - "networkId": 1, - "icon": "platon", - "explorers": [ - { - "name": "PlatON explorer", - "url": "https://devnet2scan.platon.network", - "standard": "none" - } - ] - }, - { - "name": "Musicoin", - "chain": "MUSIC", - "rpc": ["https://mewapi.musicoin.tw"], - "faucets": [], - "nativeCurrency": { - "name": "Musicoin", - "symbol": "MUSIC", - "decimals": 18 - }, - "infoURL": "https://musicoin.tw", - "shortName": "music", - "chainId": 7762959, - "networkId": 7762959, - "slip44": 184 - }, - { - "name": "Plian Mainnet Subchain 1", - "chain": "Plian", - "rpc": ["https://mainnet.plian.io/child_0"], - "faucets": [], - "nativeCurrency": { - "name": "Plian Token", - "symbol": "PI", - "decimals": 18 - }, - "infoURL": "https://plian.org", - "shortName": "plian-mainnet-l2", - "chainId": 8007736, - "networkId": 8007736, - "explorers": [ - { - "name": "piscan", - "url": "https://piscan.plian.org/child_0", - "standard": "EIP3091" - } - ], - "parent": { - "chain": "eip155-2099156", - "type": "L2" - } - }, - { - "name": "Plian Testnet Subchain 1", - "chain": "Plian", - "rpc": ["https://testnet.plian.io/child_test"], - "faucets": [], - "nativeCurrency": { - "name": "Plian Token", - "symbol": "TPI", - "decimals": 18 - }, - "infoURL": "https://plian.org/", - "shortName": "plian-testnet-l2", - "chainId": 10067275, - "networkId": 10067275, - "explorers": [ - { - "name": "piscan", - "url": "https://testnet.plian.org/child_test", - "standard": "EIP3091" - } - ], - "parent": { - "chain": "eip155-16658437", - "type": "L2" - } - }, - { - "name": "Sepolia", - "title": "Ethereum Testnet Sepolia", - "chain": "ETH", - "rpc": [ - "https://rpc.sepolia.dev", - "https://rpc.sepolia.online", - "https://www.sepoliarpc.space", - "https://rpc.sepolia.org", - "https://rpc-sepolia.rockx.com" - ], - "faucets": [ - "http://fauceth.komputing.org?chain=11155111&address=${ADDRESS}" - ], - "nativeCurrency": { - "name": "Sepolia Ether", - "symbol": "SEP", - "decimals": 18 - }, - "infoURL": "https://sepolia.otterscan.io", - "shortName": "sep", - "chainId": 11155111, - "networkId": 11155111, - "explorers": [ - { - "name": "otterscan-sepolia", - "url": "https://sepolia.otterscan.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "PepChain Churchill", - "chain": "PEP", - "rpc": ["https://churchill-rpc.pepchain.io"], - "faucets": [], - "nativeCurrency": { - "name": "PepChain Churchill Ether", - "symbol": "TPEP", - "decimals": 18 - }, - "infoURL": "https://pepchain.io", - "shortName": "tpep", - "chainId": 13371337, - "networkId": 13371337 - }, - { - "name": "Plian Testnet Main", - "chain": "Plian", - "rpc": ["https://testnet.plian.io/testnet"], - "faucets": [], - "nativeCurrency": { - "name": "Plian Testnet Token", - "symbol": "TPI", - "decimals": 18 - }, - "infoURL": "https://plian.org", - "shortName": "plian-testnet", - "chainId": 16658437, - "networkId": 16658437, - "explorers": [ - { - "name": "piscan", - "url": "https://testnet.plian.org/testnet", - "standard": "EIP3091" - } - ] - }, - { - "name": "IOLite", - "chain": "ILT", - "rpc": ["https://net.iolite.io"], - "faucets": [], - "nativeCurrency": { - "name": "IOLite Ether", - "symbol": "ILT", - "decimals": 18 - }, - "infoURL": "https://iolite.io", - "shortName": "ilt", - "chainId": 18289463, - "networkId": 18289463 - }, - { - "name": "SmartMesh Mainnet", - "chain": "Spectrum", - "rpc": ["https://jsonapi1.smartmesh.cn"], - "faucets": [], - "nativeCurrency": { - "name": "SmartMesh Native Token", - "symbol": "SMT", - "decimals": 18 - }, - "infoURL": "https://smartmesh.io", - "shortName": "spectrum", - "chainId": 20180430, - "networkId": 1, - "explorers": [ - { - "name": "spectrum", - "url": "https://spectrum.pub", - "standard": "none" - } - ] - }, - { - "name": "quarkblockchain", - "chain": "QKI", - "rpc": ["https://hz.rpc.qkiscan.cn", "https://jp.rpc.qkiscan.io"], - "faucets": [], - "nativeCurrency": { - "name": "quarkblockchain Native Token", - "symbol": "QKI", - "decimals": 18 - }, - "infoURL": "https://quarkblockchain.org/", - "shortName": "qki", - "chainId": 20181205, - "networkId": 20181205 - }, - { - "name": "Auxilium Network Mainnet", - "chain": "AUX", - "rpc": ["https://rpc.auxilium.global"], - "faucets": [], - "nativeCurrency": { - "name": "Auxilium coin", - "symbol": "AUX", - "decimals": 18 - }, - "infoURL": "https://auxilium.global", - "shortName": "auxi", - "chainId": 28945486, - "networkId": 28945486, - "slip44": 344 - }, - { - "name": "Joys Digital Mainnet", - "chain": "JOYS", - "rpc": ["https://node.joys.digital"], - "faucets": [], - "nativeCurrency": { - "name": "JOYS", - "symbol": "JOYS", - "decimals": 18 - }, - "infoURL": "https://joys.digital", - "shortName": "JOYS", - "chainId": 35855456, - "networkId": 35855456 - }, - { - "name": "Aquachain", - "chain": "AQUA", - "rpc": ["https://c.onical.org", "https://tx.aquacha.in/api"], - "faucets": ["https://aquacha.in/faucet"], - "nativeCurrency": { - "name": "Aquachain Ether", - "symbol": "AQUA", - "decimals": 18 - }, - "infoURL": "https://aquachain.github.io", - "shortName": "aqua", - "chainId": 61717561, - "networkId": 61717561, - "slip44": 61717561 - }, - { - "name": "Joys Digital TestNet", - "chain": "TOYS", - "rpc": ["https://toys.joys.cash/"], - "faucets": ["https://faucet.joys.digital/"], - "nativeCurrency": { - "name": "TOYS", - "symbol": "TOYS", - "decimals": 18 - }, - "infoURL": "https://joys.digital", - "shortName": "TOYS", - "chainId": 99415706, - "networkId": 99415706 - }, - { - "name": "Gather Mainnet Network", - "chain": "GTH", - "rpc": ["https://mainnet.gather.network"], - "faucets": [], - "nativeCurrency": { - "name": "Gather", - "symbol": "GTH", - "decimals": 18 - }, - "infoURL": "https://gather.network", - "shortName": "GTH", - "chainId": 192837465, - "networkId": 192837465, - "explorers": [ - { - "name": "Blockscout", - "url": "https://explorer.gather.network", - "standard": "none" - } - ] - }, - { - "name": "Neon EVM DevNet", - "chain": "Solana", - "rpc": ["https://devnet.neonevm.org"], - "faucets": ["https://neonfaucet.org"], - "icon": "neon", - "nativeCurrency": { - "name": "Neon", - "symbol": "NEON", - "decimals": 18 - }, - "infoURL": "https://neon-labs.org", - "shortName": "neonevm-devnet", - "chainId": 245022926, - "networkId": 245022926, - "explorers": [ - { - "name": "native", - "url": "https://devnet.explorer.neon-labs.org", - "standard": "EIP3091" - }, - { - "name": "neonscan", - "url": "https://devnet.neonscan.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "Neon EVM MainNet", - "chain": "Solana", - "rpc": ["https://mainnet.neonevm.org"], - "faucets": [], - "icon": "neon", - "nativeCurrency": { - "name": "Neon", - "symbol": "NEON", - "decimals": 18 - }, - "infoURL": "https://neon-labs.org", - "shortName": "neonevm-mainnet", - "chainId": 245022934, - "networkId": 245022934, - "explorers": [ - { - "name": "native", - "url": "https://mainnet.explorer.neon-labs.org", - "standard": "EIP3091" - }, - { - "name": "neonscan", - "url": "https://mainnet.neonscan.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "Neon EVM TestNet", - "chain": "Solana", - "rpc": ["https://testnet.neonevm.org"], - "faucets": [], - "icon": "neon", - "nativeCurrency": { - "name": "Neon", - "symbol": "NEON", - "decimals": 18 - }, - "infoURL": "https://neon-labs.org", - "shortName": "neonevm-testnet", - "chainId": 245022940, - "networkId": 245022940, - "explorers": [ - { - "name": "native", - "url": "https://testnet.explorer.neon-labs.org", - "standard": "EIP3091" - }, - { - "name": "neonscan", - "url": "https://testnet.neonscan.org", - "standard": "EIP3091" - } - ] - }, - { - "name": "OneLedger Mainnet", - "chain": "OLT", - "icon": "oneledger", - "rpc": ["https://mainnet-rpc.oneledger.network"], - "faucets": [], - "nativeCurrency": { - "name": "OLT", - "symbol": "OLT", - "decimals": 18 - }, - "infoURL": "https://oneledger.io", - "shortName": "oneledger", - "chainId": 311752642, - "networkId": 311752642, - "explorers": [ - { - "name": "OneLedger Block Explorer", - "url": "https://mainnet-explorer.oneledger.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "Gather Testnet Network", - "chain": "GTH", - "rpc": ["https://testnet.gather.network"], - "faucets": [], - "nativeCurrency": { - "name": "Gather", - "symbol": "GTH", - "decimals": 18 - }, - "infoURL": "https://gather.network", - "shortName": "tGTH", - "chainId": 356256156, - "networkId": 356256156, - "explorers": [ - { - "name": "Blockscout", - "url": "https://testnet-explorer.gather.network", - "standard": "none" - } - ] - }, - { - "name": "Gather Devnet Network", - "chain": "GTH", - "rpc": ["https://devnet.gather.network"], - "faucets": [], - "nativeCurrency": { - "name": "Gather", - "symbol": "GTH", - "decimals": 18 - }, - "infoURL": "https://gather.network", - "shortName": "dGTH", - "chainId": 486217935, - "networkId": 486217935, - "explorers": [ - { - "name": "Blockscout", - "url": "https://devnet-explorer.gather.network", - "standard": "none" - } - ] - }, - { - "name": "IPOS Network", - "chain": "IPOS", - "rpc": ["https://rpc.iposlab.com", "https://rpc2.iposlab.com"], - "faucets": [], - "nativeCurrency": { - "name": "IPOS Network Ether", - "symbol": "IPOS", - "decimals": 18 - }, - "infoURL": "https://iposlab.com", - "shortName": "ipos", - "chainId": 1122334455, - "networkId": 1122334455 - }, - { - "name": "Aurora Mainnet", - "chain": "NEAR", - "rpc": ["https://mainnet.aurora.dev"], - "faucets": [], - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://aurora.dev", - "shortName": "aurora", - "chainId": 1313161554, - "networkId": 1313161554, - "explorers": [ - { - "name": "aurorascan.dev", - "url": "https://aurorascan.dev", - "standard": "EIP3091" - } - ] - }, - { - "name": "Aurora Testnet", - "chain": "NEAR", - "rpc": ["https://testnet.aurora.dev/"], - "faucets": [], - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://aurora.dev", - "shortName": "aurora-testnet", - "chainId": 1313161555, - "networkId": 1313161555, - "explorers": [ - { - "name": "aurorascan.dev", - "url": "https://testnet.aurorascan.dev", - "standard": "EIP3091" - } - ] - }, - { - "name": "Aurora Betanet", - "chain": "NEAR", - "rpc": ["https://betanet.aurora.dev/"], - "faucets": [], - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "infoURL": "https://aurora.dev", - "shortName": "aurora-betanet", - "chainId": 1313161556, - "networkId": 1313161556 - }, - { - "name": "Harmony Mainnet Shard 0", - "chain": "Harmony", - "rpc": ["https://api.harmony.one", "https://api.s0.t.hmny.io"], - "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], - "nativeCurrency": { - "name": "ONE", - "symbol": "ONE", - "decimals": 18 - }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-s0", - "chainId": 1666600000, - "networkId": 1666600000, - "explorers": [ - { - "name": "Harmony Block Explorer", - "url": "https://explorer.harmony.one", - "standard": "EIP3091" - } - ] - }, - { - "name": "Harmony Mainnet Shard 1", - "chain": "Harmony", - "rpc": ["https://api.s1.t.hmny.io"], - "faucets": [], - "nativeCurrency": { - "name": "ONE", - "symbol": "ONE", - "decimals": 18 - }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-s1", - "chainId": 1666600001, - "networkId": 1666600001 - }, - { - "name": "Harmony Mainnet Shard 2", - "chain": "Harmony", - "rpc": ["https://api.s2.t.hmny.io"], - "faucets": [], - "nativeCurrency": { - "name": "ONE", - "symbol": "ONE", - "decimals": 18 - }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-s2", - "chainId": 1666600002, - "networkId": 1666600002 - }, - { - "name": "Harmony Mainnet Shard 3", - "chain": "Harmony", - "rpc": ["https://api.s3.t.hmny.io"], - "faucets": [], - "nativeCurrency": { - "name": "ONE", - "symbol": "ONE", - "decimals": 18 - }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-s3", - "chainId": 1666600003, - "networkId": 1666600003 - }, - { - "name": "Harmony Testnet Shard 0", - "chain": "Harmony", - "rpc": ["https://api.s0.b.hmny.io"], - "faucets": ["https://faucet.pops.one"], - "nativeCurrency": { - "name": "ONE", - "symbol": "ONE", - "decimals": 18 - }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-b-s0", - "chainId": 1666700000, - "networkId": 1666700000, - "explorers": [ - { - "name": "Harmony Testnet Block Explorer", - "url": "https://explorer.pops.one", - "standard": "EIP3091" - } - ] - }, - { - "name": "Harmony Testnet Shard 1", - "chain": "Harmony", - "rpc": ["https://api.s1.b.hmny.io"], - "faucets": [], - "nativeCurrency": { - "name": "ONE", - "symbol": "ONE", - "decimals": 18 - }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-b-s1", - "chainId": 1666700001, - "networkId": 1666700001 - }, - { - "name": "Harmony Testnet Shard 2", - "chain": "Harmony", - "rpc": ["https://api.s2.b.hmny.io"], - "faucets": [], - "nativeCurrency": { - "name": "ONE", - "symbol": "ONE", - "decimals": 18 - }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-b-s2", - "chainId": 1666700002, - "networkId": 1666700002 - }, - { - "name": "Harmony Testnet Shard 3", - "chain": "Harmony", - "rpc": ["https://api.s3.b.hmny.io"], - "faucets": [], - "nativeCurrency": { - "name": "ONE", - "symbol": "ONE", - "decimals": 18 - }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-b-s3", - "chainId": 1666700003, - "networkId": 1666700003 - }, - { - "name": "Harmony Devnet Shard 0", - "chain": "Harmony", - "rpc": ["https://api.s1.ps.hmny.io", "https://api.s1.ps.hmny.io"], - "faucets": ["http://dev.faucet.easynode.one/"], - "nativeCurrency": { - "name": "ONE", - "symbol": "ONE", - "decimals": 18 - }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-ps-s0", - "chainId": 1666900000, - "networkId": 1666900000, - "explorers": [ - { - "name": "Harmony Block Explorer", - "url": "https://explorer.ps.hmny.io", - "standard": "EIP3091" - } - ] - }, - { - "name": "DataHopper", - "chain": "HOP", - "rpc": ["https://23.92.21.121:8545"], - "faucets": [], - "nativeCurrency": { - "name": "DataHoppers", - "symbol": "HOP", - "decimals": 18 - }, - "infoURL": "https://www.DataHopper.com", - "shortName": "hop", - "chainId": 2021121117, - "networkId": 2021121117 - }, - { - "name": "Pirl", - "chain": "PIRL", - "rpc": ["https://wallrpc.pirl.io"], - "faucets": [], - "nativeCurrency": { - "name": "Pirl Ether", - "symbol": "PIRL", - "decimals": 18 - }, - "infoURL": "https://pirl.io", - "shortName": "pirl", - "chainId": 3125659152, - "networkId": 3125659152, - "slip44": 164 - }, - { - "name": "OneLedger Testnet Frankenstein", - "chain": "OLT", - "icon": "oneledger", - "rpc": ["https://frankenstein-rpc.oneledger.network"], - "faucets": ["https://frankenstein-faucet.oneledger.network"], - "nativeCurrency": { - "name": "OLT", - "symbol": "OLT", - "decimals": 18 - }, - "infoURL": "https://oneledger.io", - "shortName": "frankenstein", - "chainId": 4216137055, - "networkId": 4216137055, - "explorers": [ - { - "name": "OneLedger Block Explorer", - "url": "https://frankenstein-explorer.oneledger.network", - "standard": "EIP3091" - } - ] - }, - { - "name": "Palm Testnet", - "chain": "Palm", - "icon": "palm", - "rpc": ["https://palm-testnet.infura.io/v3/${INFURA_API_KEY}"], - "faucets": [], - "nativeCurrency": { - "name": "PALM", - "symbol": "PALM", - "decimals": 18 - }, - "infoURL": "https://palm.io", - "shortName": "tpalm", - "chainId": 11297108099, - "networkId": 11297108099, - "explorers": [ - { - "name": "Palm Testnet Explorer", - "url": "https://explorer.palm-uat.xyz", - "standard": "EIP3091", - "icon": "palm" - } - ] - }, - { - "name": "Palm", - "chain": "Palm", - "icon": "palm", - "rpc": ["https://palm-mainnet.infura.io/v3/${INFURA_API_KEY}"], - "faucets": [], - "nativeCurrency": { - "name": "PALM", - "symbol": "PALM", - "decimals": 18 - }, - "infoURL": "https://palm.io", - "shortName": "palm", - "chainId": 11297108109, - "networkId": 11297108109, - "explorers": [ - { - "name": "Palm Explorer", - "url": "https://explorer.palm.io", - "standard": "EIP3091", - "icon": "palm" - } - ] - }, - { - "name": "Ntity Mainnet", - "chain": "Ntity", - "rpc": ["https://rpc.ntity.io"], - "faucets": [], - "nativeCurrency": { - "name": "Ntity", - "symbol": "NTT", - "decimals": 18 - }, - "infoURL": "https://ntity.io", - "shortName": "ntt", - "chainId": 197710212030, - "networkId": 197710212030, - "icon": "ntity", - "explorers": [ - { - "name": "Ntity Blockscout", - "url": "https://blockscout.ntity.io", - "icon": "ntity", - "standard": "EIP3091" - } - ] - }, - { - "name": "Haradev Testnet", - "chain": "Ntity", - "rpc": ["https://blockchain.haradev.com"], - "faucets": [], - "nativeCurrency": { - "name": "Ntity Haradev", - "symbol": "NTTH", - "decimals": 18 - }, - "infoURL": "https://ntity.io", - "shortName": "ntt-haradev", - "chainId": 197710212031, - "networkId": 197710212031, - "icon": "ntity", - "explorers": [ - { - "name": "Ntity Haradev Blockscout", - "url": "https://blockscout.haradev.com", - "icon": "ntity", - "standard": "EIP3091" - } - ] - }, - { - "name": "Molereum Network", - "chain": "ETH", - "rpc": ["https://molereum.jdubedition.com"], - "faucets": [], - "nativeCurrency": { - "name": "Molereum Ether", - "symbol": "MOLE", - "decimals": 18 - }, - "infoURL": "https://github.com/Jdubedition/molereum", - "shortName": "mole", - "chainId": 6022140761023, - "networkId": 6022140761023 - }, - { - "name": "Godwoken Testnet (V1)", - "chain": "GWT", - "rpc": ["https://godwoken-testnet-web3-v1-rpc.ckbapp.dev"], - "faucets": ["https://homura.github.io/light-godwoken"], - "nativeCurrency": { - "name": "CKB", - "symbol": "CKB", - "decimals": 8 - }, - "infoURL": "https://www.nervos.org", - "shortName": "gw-testnet-v1-deprecated", - "chainId": 868455272153094, - "networkId": 868455272153094, - "status": "deprecated", - "explorers": [ - { - "name": "GWScan Block Explorer", - "url": "https://v1.aggron.gwscan.com", - "standard": "none" - } - ] - } -] diff --git a/services/core/src/index.ts b/services/core/src/index.ts deleted file mode 100644 index 75ebbdd4d..000000000 --- a/services/core/src/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env node - -export * from "./utils/types"; -export * from "./utils/utils"; -export * from "./utils/logger"; -export * from "./utils/CheckedContract"; -export * from "./services/FileService"; diff --git a/services/core/src/services/FileService.ts b/services/core/src/services/FileService.ts deleted file mode 100644 index 0707b9842..000000000 --- a/services/core/src/services/FileService.ts +++ /dev/null @@ -1,348 +0,0 @@ -import dirTree from "directory-tree"; -import Path from "path"; -import fs from "fs"; -import web3 from "web3"; -import * as bunyan from "bunyan"; -import { - FileObject, - Match, - Status, - Tag, - MatchLevel, - FilesInfo, - MatchQuality, - ContractData, -} from "../utils/types"; -import { checkChainId } from "../utils/utils"; -import { Logger } from "../utils/logger"; - -type PathConfig = { - matchQuality: MatchQuality; - chain: string; - address: string; - fileName?: string; - source?: boolean; -}; - -export interface IFileService { - getTreeByChainAndAddress( - chainId: any, - address: string - ): Promise>; - getByChainAndAddress( - chainId: any, - address: string - ): Promise>; - fetchAllFileUrls(chain: string, address: string): Array; - fetchAllFilePaths(chain: string, address: string): Array; - fetchAllFileContents(chain: string, address: string): Array; - findByAddress(address: string, chain: string): Match[]; - findAllByAddress(address: string, chain: string): Match[]; - save(path: string | PathConfig, file: string): void; - deletePartialIfExists(chain: string, address: string): void; - repositoryPath: string; - getTree( - chainId: any, - address: string, - match: string - ): Promise>; - getContent( - chainId: any, - address: string, - match: string - ): Promise>; - getContracts(chainId: any): Promise; - generateAbsoluteFilePath(pathConfig: PathConfig): string; - generateRelativeFilePath(pathConfig: PathConfig): string; - generateRelativeContractDir(pathConfig: PathConfig): string; -} - -export class FileService implements IFileService { - logger: bunyan; - repositoryPath: string; - - constructor(repositoryPath: string, logger?: bunyan) { - this.repositoryPath = repositoryPath; - this.logger = logger || Logger("FileService"); - } - async getTreeByChainAndAddress( - chainId: any, - address: string - ): Promise { - chainId = checkChainId(chainId); - return this.fetchAllFileUrls(chainId, address); - } - - async getByChainAndAddress( - chainId: any, - address: string - ): Promise { - chainId = checkChainId(chainId); - return this.fetchAllFileContents(chainId, address); - } - - fetchAllFileUrls( - chain: string, - address: string, - match = "full_match" - ): Array { - const files: Array = this.fetchAllFilePaths( - chain, - address, - match - ); - const urls: Array = []; - files.forEach((file) => { - const relativePath = file.path.split("/repository")[1].substr(1); - urls.push(`${process.env.REPOSITORY_SERVER_URL}/${relativePath}`); - }); - return urls; - } - - fetchAllFilePaths( - chain: string, - address: string, - match = "full_match" - ): Array { - const fullPath: string = - this.repositoryPath + - `/contracts/${match}/${chain}/${web3.utils.toChecksumAddress(address)}/`; - const files: Array = []; - dirTree(fullPath, {}, (item) => { - files.push({ name: item.name, path: item.path }); - }); - return files; - } - - fetchAllFileContents( - chain: string, - address: string, - match = "full_match" - ): Array { - const files = this.fetchAllFilePaths(chain, address, match); - for (const file in files) { - const loadedFile = fs.readFileSync(files[file].path); - files[file].content = loadedFile.toString(); - } - - return files; - } - fetchAllContracts = async (chain: String): Promise => { - const fullPath = this.repositoryPath + `/contracts/full_match/${chain}/`; - const partialPath = - this.repositoryPath + `/contracts/partial_match/${chain}/`; - return { - full: fs.existsSync(fullPath) ? fs.readdirSync(fullPath) : [], - partial: fs.existsSync(partialPath) ? fs.readdirSync(partialPath) : [], - }; - }; - - getTree = async ( - chainId: any, - address: string, - match: MatchLevel - ): Promise> => { - chainId = checkChainId(chainId); - const fullMatchesTree = this.fetchAllFileUrls( - chainId, - address, - "full_match" - ); - if (fullMatchesTree.length || match === "full_match") { - return { status: "full", files: fullMatchesTree }; - } - - const files = this.fetchAllFileUrls(chainId, address, "partial_match"); - return { status: "partial", files }; - }; - - getContent = async ( - chainId: any, - address: string, - match: MatchLevel - ): Promise> => { - chainId = checkChainId(chainId); - const fullMatchesFiles = this.fetchAllFileContents( - chainId, - address, - "full_match" - ); - if (fullMatchesFiles.length || match === "full_match") { - return { status: "full", files: fullMatchesFiles }; - } - - const files = this.fetchAllFileContents(chainId, address, "partial_match"); - return { status: "partial", files }; - }; - - getContracts = async (chainId: any): Promise => { - const contracts = await this.fetchAllContracts(chainId); - return contracts; - }; - - // /home/user/sourcify/data/repository/contracts/full_match/5/0x00878Ac0D6B8d981ae72BA7cDC967eA0Fae69df4/sources/filename - public generateAbsoluteFilePath(pathConfig: PathConfig) { - return Path.join( - this.repositoryPath, - this.generateRelativeFilePath(pathConfig) - ); - } - - // contracts/full_match/5/0x00878Ac0D6B8d981ae72BA7cDC967eA0Fae69df4/sources/filename - public generateRelativeFilePath(pathConfig: PathConfig) { - return Path.join( - this.generateRelativeContractDir(pathConfig), - pathConfig.source ? "sources" : "", - pathConfig.fileName || "" - ); - } - - // contracts/full_match/5/0x00878Ac0D6B8d981ae72BA7cDC967eA0Fae69df4 - public generateRelativeContractDir(pathConfig: PathConfig) { - return Path.join( - "contracts", - `${pathConfig.matchQuality}_match`, - pathConfig.chain, - web3.utils.toChecksumAddress(pathConfig.address) - ); - } - - /** - * Checks if path exists and for a particular chain returns the perfect or partial match - * - * @param fullContractPath - * @param partialContractPath - */ - fetchFromStorage( - fullContractPath: string, - partialContractPath: string - ): { time: Date; status: Status } { - if (fs.existsSync(fullContractPath)) { - return { - time: fs.statSync(fullContractPath).birthtime, - status: "perfect", - }; - } - - if (fs.existsSync(partialContractPath)) { - return { - time: fs.statSync(partialContractPath).birthtime, - status: "partial", - }; - } - - throw new Error("path not found"); - } - - /** - * Checks contract existence in repository. - * - * @param address - * @param chain - * @param repository - */ - findByAddress(address: string, chain: string): Match[] { - const contractPath = this.generateAbsoluteFilePath({ - matchQuality: "full", - chain, - address, - fileName: "metadata.json", - }); - - try { - const storageTimestamp = fs.statSync(contractPath).birthtime; - return [ - { - address, - status: "perfect", - storageTimestamp, - }, - ]; - } catch (e) { - throw new Error("Address not found in repository"); - } - } - - /** - * Checks contract existence in repository for full and partial matches. - * - * @param address - * @param chain - * @param repository - */ - findAllByAddress(address: string, chain: string): Match[] { - const fullContractPath = this.generateAbsoluteFilePath({ - matchQuality: "full", - chain, - address, - fileName: "metadata.json", - }); - - const partialContractPath = this.generateAbsoluteFilePath({ - matchQuality: "partial", - chain, - address, - fileName: "metadata.json", - }); - - try { - const storage = this.fetchFromStorage( - fullContractPath, - partialContractPath - ); - return [ - { - address, - status: storage?.status, - storageTimestamp: storage?.time, - }, - ]; - } catch (e) { - throw new Error("Address not found in repository"); - } - } - - /** - * Save file to repository and update the repository tag. The path may include non-existent parent directories. - * - * @param path the path within the repository where the file will be stored - * @param file the content to be stored - */ - save(path: string | PathConfig, file: string) { - const abolsutePath = - typeof path === "string" - ? Path.join(this.repositoryPath, path) - : this.generateAbsoluteFilePath(path); - fs.mkdirSync(Path.dirname(abolsutePath), { recursive: true }); - fs.writeFileSync(abolsutePath, file); - this.updateRepositoryTag(); - } - - deletePartialIfExists(chain: string, address: string) { - const pathConfig: PathConfig = { - matchQuality: "partial", - chain, - address, - fileName: "", - }; - const absolutePath = this.generateAbsoluteFilePath(pathConfig); - - if (fs.existsSync(absolutePath)) { - fs.rmdirSync(absolutePath, { recursive: true }); - } - } - - /** - * Update repository tag - */ - updateRepositoryTag() { - const filePath: string = Path.join(this.repositoryPath, "manifest.json"); - const timestamp = new Date().getTime(); - const repositoryVersion = process.env.REPOSITORY_VERSION || "0.1"; - const tag: Tag = { - timestamp: timestamp, - repositoryVersion: repositoryVersion, - }; - fs.writeFileSync(filePath, JSON.stringify(tag)); - } -} diff --git a/services/core/src/sourcify-chains.ts b/services/core/src/sourcify-chains.ts deleted file mode 100644 index 222f147ca..000000000 --- a/services/core/src/sourcify-chains.ts +++ /dev/null @@ -1,516 +0,0 @@ -import * as dotenv from "dotenv"; -import path from "path"; - -dotenv.config({ - path: path.resolve(__dirname, "..", "..", "..", "environments/.env"), -}); - -const ETHERSCAN_REGEX = /at txn\s+ { - msgLines.push(` ${elem}`); - }); - } else { - msgLines.push(` ${prop}: ${propValue}`); - } - } - } - - if (!isEmpty(this.invalid)) { - msgLines.push(" Error: Invalid sources:"); - } - - for (const invalidSourceName in this.invalid) { - msgLines.push(` ${invalidSourceName}:`); - msgLines.push( - ` expectedHash: ${this.invalid[invalidSourceName].expectedHash}` - ); - msgLines.push( - ` calculatedHash: ${this.invalid[invalidSourceName].calculatedHash}` - ); - } - - const foundSourcesNumber = Object.keys(this.solidity).length; - if (foundSourcesNumber) { - msgLines.push( - ` ${foundSourcesNumber} other source files found successfully.` - ); - } - - if (!this.compilerVersion) { - msgLines.push(" No compiler version provided."); - } - - return msgLines.join("\n"); - } - - /** - * Asynchronously attempts to fetch the missing sources of this contract. An error is thrown in case of a failure. - * - * @param log log object - */ - public static async fetchMissing( - contract: CheckedContract, - log?: InfoErrorLogger - ): Promise { - const retrieved: StringMap = {}; - const missingFiles: string[] = []; - for (const fileName in contract.missing) { - const file = contract.missing[fileName]; - const hash = contract.missing[fileName].keccak256; - - let retrievedContent = null; - - const githubUrl = getGithubUrl(fileName); - if (githubUrl) { - retrievedContent = await performFetch(githubUrl, hash, fileName, log); - } else { - for (const url of file.urls) { - if (url.startsWith(IPFS_PREFIX)) { - const ipfsCode = url.slice(IPFS_PREFIX.length); - const ipfsUrl = IPFS_GATEWAY + ipfsCode; - retrievedContent = await performFetch(ipfsUrl, hash, fileName, log); - if (retrievedContent) { - break; - } - } - } - } - - if (retrievedContent) { - retrieved[fileName] = retrievedContent; - } else { - missingFiles.push(fileName); - break; // makes an early exit - } - } - - for (const fileName in retrieved) { - delete contract.missing[fileName]; - contract.solidity[fileName] = retrieved[fileName]; - } - - if (missingFiles.length) { - log.error({ loc: "[FETCH]", contractName: this.name, missingFiles }); - throw new Error( - `Resource missing; unsuccessful fetching: ${missingFiles.join(", ")}` - ); - } - } - - /** - * Returns a message describing the errors encountered while validating the metadata. - * Does not include a trailing newline. - * - * @returns the validation info message - */ - public getInfo() { - return CheckedContract.isValid(this) - ? this.composeSuccessMessage() - : this.composeErrorMessage(); - } -} - -/** - * Performs fetch and compares with the hash provided. - * - * @param url the url to be used as the file source - * @param hash the hash of the file to be fetched; used for later comparison - * @param fileName the name of the file; used for logging - * @param log whether or not to log - * @returns the fetched file if found; null otherwise - */ -async function performFetch( - url: string, - hash: string, - fileName: string, - log?: InfoErrorLogger -): Promise { - const infoObject = { loc: "[FETCH]", fileName, url, timeout: FETCH_TIMEOUT }; - if (log) log.info(infoObject, "Fetch attempt"); - - const res = await fetch(url, { timeout: FETCH_TIMEOUT }).catch((err) => { - if (log) log.error(infoObject, "Fetching timed out"); - }); - - if (res && res.status === 200) { - const content = await res.text(); - if (Web3.utils.keccak256(content) !== hash) { - if (log) - log.error( - infoObject, - "The calculated and the provided hash don't match." - ); - return null; - } - - if (log) log.info(infoObject, "Fetch successful!"); - return content; - } else { - if (log) log.error(infoObject, "Fetch failed!"); - return null; - } -} - -/** - * Makes a GitHub-compatible url out of the provided url, if possible. - * - * @param url - * @returns a GitHub-compatible url if possible; null otherwise - */ -function getGithubUrl(url: string): string { - if (!url.includes("github.com")) { - return null; - } - return url - .replace("github.com", "raw.githubusercontent.com") - .replace("/blob/", "/"); -} diff --git a/services/core/src/utils/interfaces.ts b/services/core/src/utils/interfaces.ts deleted file mode 100644 index e69de29bb..000000000 diff --git a/services/core/src/utils/logger.ts b/services/core/src/utils/logger.ts deleted file mode 100644 index e2456700c..000000000 --- a/services/core/src/utils/logger.ts +++ /dev/null @@ -1,28 +0,0 @@ -import * as fs from "fs"; -import * as bunyan from "bunyan"; -import path from "path"; - -export const Logger = (name?: string, logDir?: any) => { - const loggerName = name || "Sourcify"; - const logger: bunyan = bunyan.createLogger({ - name: loggerName, - streams: [ - { - stream: process.stdout, - level: "info", - }, - ], - }); - - if (logDir) { - if (!fs.existsSync(logDir)) { - fs.mkdirSync(logDir); - } - logger.addStream({ - path: path.resolve(logDir, loggerName + ".log"), - level: "info", - }); - } - - return logger; -}; diff --git a/services/core/src/utils/types.ts b/services/core/src/utils/types.ts deleted file mode 100644 index d5af0a68e..000000000 --- a/services/core/src/utils/types.ts +++ /dev/null @@ -1,247 +0,0 @@ -import { CheckedContract } from "./CheckedContract"; -import Web3 from "web3"; - -export interface FileObject { - name: string; - path: string; - content?: string; -} - -export declare interface ContractData { - full: string[]; - partial: string[]; -} - -export interface InputData { - chain: string; - addresses: string[]; - contract?: CheckedContract; - bytecode?: string; - creationData?: string; -} - -export interface CompilationSettings { - compilationTarget: any; - outputSelection: any; - optimizer?: { - enabled: boolean; - runs: number; - }; -} - -export interface CompilerInfo { - version: string; -} - -export interface Metadata { - sources: any; - settings: CompilationSettings; - compiler: CompilerInfo; -} - -export declare interface StringMap { - [key: string]: string; -} -export interface InvalidSources { - [key: string]: { - expectedHash: string; - calculatedHash: string; - msg?: string; // Keep msg for compatibilty with legacy UI - }; -} - -export interface MissingSources { - [key: string]: { - keccak256: string; - urls: string[]; - }; -} -export interface PathBuffer { - path?: string; - buffer: Buffer; -} - -export interface PathContent { - path?: string; - content: string; -} - -export interface SourceMap { - [compiledPath: string]: PathContent; -} - -export interface Match { - address: string | null; - status: Status; - storageTimestamp?: Date; - message?: string; - encodedConstructorArgs?: string; - libraryMap?: StringMap; -} - -export type Status = - | "perfect" - | "partial" - | "extra-file-input-bug" - | "error" - | null; - -/** - * A type for specfifying the strictness level of querying (only full or any kind of matches) - */ -export type MatchLevel = "full_match" | "any_match"; - -/** - * A type for specifying the match quality of files. - */ -export type MatchQuality = "full" | "partial"; - -/** - * An array wrapper with info properties. - */ -export type FilesInfo = { status: MatchQuality; files: Array }; - -export interface MonitorConfig { - repository?: string; - testing?: boolean; -} - -export declare interface StringToBooleanMap { - [key: string]: boolean; -} - -export type Tag = { - timestamp: any; - repositoryVersion: string; -}; - -export declare interface ReformattedMetadata { - solcJsonInput: any; - fileName: string; - contractName: string; -} - -type Currency = { - name: string; - symbol: string; - decimals: number; -}; - -export type Chain = { - name: string; - chainId: number; - shortName: string; - network: string; - networkId: number; - nativeCurrency: Currency; - rpc: string[]; - faucets: string[]; - infoURL: string; - contractFetchAddress?: string; - graphQLFetchAddress?: string; - txRegex?: string; - // archiveWeb3?: Web3, - supported?: boolean; - monitored?: boolean; -}; - -export type InfoErrorLogger = { - info: (obj: any, ...params: any[]) => void; - error: (obj: any, ...params: any[]) => void; -}; - -interface File { - keccak256?: string; - urls?: string[]; - content?: string; -} - -interface Sources { - [key: string]: File; -} - -interface YulDetails { - stackAllocation: boolean; - optimizerSteps?: string; -} - -interface Details { - peephole?: boolean; - inliner?: boolean; - jumpdestRemover?: boolean; - orderLiterals?: boolean; - deduplicate?: boolean; - cse?: boolean; - constantOptimizer?: boolean; - yul?: boolean; - yulDetails?: YulDetails; -} - -interface Optimizer { - enabled?: boolean; - runs?: number; - details?: Details; -} - -enum DebugInfo { - default = "default", - strip = "strip", - debug = "debug", - verboseDebug = "verboseDebug", -} - -interface Debug { - revertStrings: DebugInfo; - debugInfo?: string[]; -} - -interface SettingsMetadata { - useLiteralContent?: boolean; - bytecodeHash?: string; -} - -interface MapContractAddress { - [key: string]: string; -} - -interface Libraries { - [key: string]: MapContractAddress; -} - -interface OutputSelection { - [key: string]: any; -} - -interface Contracts { - [key: string]: string[]; -} - -interface ModelChecker { - contracts?: Contracts; - divModNoSlacks?: boolean; - engine?: string; - invariants?: string[]; - showUnproved?: boolean; - solvers?: string[]; - targets?: string[]; - timeout?: number; -} - -interface Settings { - stopAfter?: string; - remappings?: string[]; - optimizer?: Optimizer; - evmVersion?: string; - viaIR?: boolean; - debug?: Debug; - metadata?: SettingsMetadata; - libraries?: Libraries; - outputSelection: OutputSelection; - modelChecker?: ModelChecker; -} - -export interface JsonInput { - language: string; - sources: Sources; - settings?: Settings; -} diff --git a/services/core/src/utils/utils.ts b/services/core/src/utils/utils.ts deleted file mode 100644 index b10b82d83..000000000 --- a/services/core/src/utils/utils.ts +++ /dev/null @@ -1,213 +0,0 @@ -import cbor from "cbor"; -import semver from "semver"; -import * as chainsRaw from "../chains.json"; -import sourcifyChainsRaw from "../sourcify-chains"; -import { StringMap, ReformattedMetadata, Chain } from "./types"; -const chains = chainsRaw as any; -const sourcifyChains = sourcifyChainsRaw as any; - -type ChainMap = { - [chainId: string]: Chain; -}; - -const TEST_CHAINS: Chain[] = [ - { - name: "Localhost", - shortName: "Localhost", - chainId: 0, - faucets: [], - infoURL: null, - nativeCurrency: null, - network: "testnet", - networkId: 0, - rpc: [`http://localhost:8545`], - supported: true, - monitored: true, - }, -]; - -const chainMap: ChainMap = {}; -let chainArray: Chain[] = []; -let supportedChainArray: Chain[] = []; -let monitoredChainArray: Chain[] = []; - -// Add test chains too if testing -if (process.env.TESTING == "true") { - for (const chain of TEST_CHAINS) { - chainMap[chain.chainId.toString()] = chain; - } -} - -// iterate over chainid.network's chains.json file and get the chains included in sourcify. -// Merge the chains.json object with the values from sourcify-chains.ts -for (const i in chains) { - const chain = chains[i]; - const chainId = chain.chainId; - if (chainId in chainMap) { - const err = `Corrupt chains file (chains.json): multiple chains have the same chainId: ${chainId}`; - throw new Error(err); - } - - if (chainId in sourcifyChains) { - const sourcifyData = sourcifyChains[chainId]; - Object.assign(chain, sourcifyData); - chainMap[chainId] = chain; - } -} - -chainArray = getSortedChainsArray(chainMap); -supportedChainArray = chainArray.filter((chain) => chain.supported); -monitoredChainArray = chainArray.filter((chain) => chain.monitored); - -function getPrimarySortKey(chain: any) { - return chain.title || chain.name; -} - -// Gets the chainsMap, sorts the chains, returns Chain array. -export function getSortedChainsArray(chainMap: ChainMap): Chain[] { - const chainsArray = Object.values(chainMap); - // Have Ethereum chains on top. - const ethereumChainIds = [1, 4, 5, 11155111]; - const etherumChains = ethereumChainIds.map((id) => chainMap[id]); - // Others, sorted alphabetically - const otherChains = chainsArray - .filter((chain) => ![1, 4, 5, 11155111].includes(chain.chainId)) - .sort((a, b) => - getPrimarySortKey(a) > getPrimarySortKey(b) - ? 1 - : getPrimarySortKey(b) > getPrimarySortKey(a) - ? -1 - : 0 - ); - - const sortedChains = etherumChains.concat(otherChains); - return sortedChains; -} - -export function getSourcifyChains(): Chain[] { - return chainArray; -} - -export function getSupportedChains(): Chain[] { - return supportedChainArray; -} - -export function getMonitoredChains(): Chain[] { - return monitoredChainArray; -} - -export function getTestChains(): Chain[] { - return TEST_CHAINS; -} - -/** - * Checks whether the provided chain identifier is a legal chainId and is supported. - * Throws if not. - * - * @returns the same provided chainId if valid - * @throws Error if not a valid chainId - * @param chain chain - */ -export function checkChainId(chain: string): string { - if (!(chain in chainMap && chainMap[chain].supported)) { - throw new Error(`Chain ${chain} not supported!`); - } - - return chain; -} - -/** - * Extracts cbor encoded segement from bytecode - * @example - * const bytes = Web3.utils.hexToBytes(evm.deployedBytecode); - * cborDecode(bytes); - * > { ipfs: "QmarHSr9aSNaPSR6G9KFPbuLV9aEqJfTk1y9B8pdwqK4Rq" } - * - * @param {number[]} bytecode - * @return {any} - */ -export function cborDecode(bytecode: number[]): any { - const cborLength: number = - bytecode[bytecode.length - 2] * 0x100 + bytecode[bytecode.length - 1]; - const bytecodeBuffer = Buffer.from( - bytecode.slice(bytecode.length - 2 - cborLength, -2) - ); - return cbor.decodeFirstSync(bytecodeBuffer); -} - -/** - * Checks whether the provided object contains any keys or not. - * @param obj The object whose emptiness is tested. - * @returns true if any keys present; false otherwise - */ -export function isEmpty(obj: object): boolean { - return !Object.keys(obj).length && obj.constructor === Object; -} - -/** - * Formats metadata into an object which can be passed to solc for recompilation - * @param {any} metadata solc metadata object - * @param {string[]} sources solidity sources - * @return {ReformattedMetadata} - */ -export function createJsonInputFromMetadata( - metadata: any, - sources: StringMap, - log?: any -): ReformattedMetadata { - const solcJsonInput: any = {}; - let fileName = ""; - let contractName = ""; - - solcJsonInput.settings = JSON.parse(JSON.stringify(metadata.settings)); - - if ( - !metadata.settings || - !metadata.settings.compilationTarget || - Object.keys(metadata.settings.compilationTarget).length != 1 - ) { - const err = "Invalid compilationTarget"; - if (log) log.error({ loc: "REFORMAT", err }); - throw new Error(err); - } - - for (fileName in metadata.settings.compilationTarget) { - contractName = metadata.settings.compilationTarget[fileName]; - } - - delete solcJsonInput.settings.compilationTarget; - - const versions = ["0.8.2", "0.8.3", "0.8.4"]; - const coercedVersion = semver.coerce(metadata.compiler.version).version; - - const affectedVersions = versions.filter((version) => - semver.eq(version, coercedVersion) - ); - if (affectedVersions.length > 0) { - if (solcJsonInput.settings?.optimizer?.details?.inliner) { - delete solcJsonInput.settings.optimizer.details.inliner; - } - } - - solcJsonInput.sources = {}; - for (const source in sources) { - solcJsonInput.sources[source] = { content: sources[source] }; - } - - solcJsonInput.language = metadata.language; - solcJsonInput.settings.metadata = solcJsonInput.settings.metadata || {}; - solcJsonInput.settings.outputSelection = - solcJsonInput.settings.outputSelection || {}; - solcJsonInput.settings.outputSelection[fileName] = - solcJsonInput.settings.outputSelection[fileName] || {}; - - solcJsonInput.settings.outputSelection[fileName][contractName] = [ - "evm.bytecode.object", - "evm.deployedBytecode.object", - "metadata", - ]; - - solcJsonInput.settings.libraries = { "": metadata.settings.libraries || {} }; - - return { solcJsonInput, fileName, contractName }; -} diff --git a/services/core/tsconfig.json b/services/core/tsconfig.json deleted file mode 100644 index ca61cca4d..000000000 --- a/services/core/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "compilerOptions": { - "allowJs": true, - "target": "es2017", - "sourceMap": true, - "esModuleInterop": true, - "strict": true, - "declaration": true, - "outDir": "build", - "resolveJsonModule": true, - "strictNullChecks": false, - "module": "commonjs" - }, - "include": ["./src"] -} \ No newline at end of file diff --git a/services/ipfs/Dockerfile.ipfs b/services/ipfs/Dockerfile.ipfs index 6945951a3..047e2362b 100644 --- a/services/ipfs/Dockerfile.ipfs +++ b/services/ipfs/Dockerfile.ipfs @@ -1,11 +1,16 @@ FROM ubuntu:20.04 RUN apt-get update && apt-get install -y cron curl -WORKDIR /app -RUN curl https://dist.ipfs.io/go-ipfs/v0.13.0/go-ipfs_v0.13.0_linux-amd64.tar.gz > go-ipfs.tar.gz && tar xvfz go-ipfs.tar.gz && cd go-ipfs && ./install.sh -ADD ./publish.sh ./publish.sh -ADD ./init-config.sh ./init-config.sh -ADD ./entrypoint.sh ./entrypoint.sh -ADD ./cron.job ./cron.job + +RUN mkdir /sourcify +WORKDIR /sourcify + +RUN curl https://dist.ipfs.io/go-ipfs/v0.16.0/go-ipfs_v0.16.0_linux-amd64.tar.gz > go-ipfs.tar.gz && tar xvfz go-ipfs.tar.gz && cd go-ipfs && ./install.sh + +ADD publish.sh ./publish.sh +ADD init-config.sh ./init-config.sh +ADD entrypoint.sh ./entrypoint.sh +ADD cron.job ./cron.job + # Terminate and auto-restart container if ipfs daemon crashes -HEALTHCHECK --interval=2m CMD curl http://localhost:8080 || pkill entrypoint.sh +HEALTHCHECK --interval=2m CMD curl http://localhost:8080 || ipfs shutdown && pkill entrypoint.sh ENTRYPOINT ./entrypoint.sh diff --git a/services/ipfs/README.md b/services/ipfs/README.md new file mode 100644 index 000000000..1f7e29eba --- /dev/null +++ b/services/ipfs/README.md @@ -0,0 +1,12 @@ +When testing use the following docker run command to prevent reimporting the repository each time. Note that the first time is mandatory. + +Setting `--env DEBUG=true` will: + +- prevent adding all the repo to ipfs (using the existing one, set with `-v /path_to_local_ipfs_folder:/root/.ipfs`) +- prevent using the private keys +- prevent running cron +- prevent using remote pinning services + +``` +docker run -it --rm --name sourcify_ipfs --env DEBUG=true -v /path_to_local_sourcify_repo:/repository/ -v /path_to_local_ipfs_folder:/root/.ipfs -p 5001:5001 -p 8080:8080 -p 4001:4001 ipfs_sourcify +``` diff --git a/services/ipfs/cron.job b/services/ipfs/cron.job index c070ef39a..642b22c66 100644 --- a/services/ipfs/cron.job +++ b/services/ipfs/cron.job @@ -1,4 +1,4 @@ SHELL=/bin/bash -0 */6 * * * /app/publish.sh >> /var/log/cron.log 2>&1 +0 */6 * * * /sourcify/publish.sh >> /var/log/cron.log 2>&1 # This extra line makes it a valid cron diff --git a/services/ipfs/entrypoint.sh b/services/ipfs/entrypoint.sh index 47b426d63..ab186be56 100755 --- a/services/ipfs/entrypoint.sh +++ b/services/ipfs/entrypoint.sh @@ -1,41 +1,49 @@ #!/bin/bash -if [ ! -f ~/.ipfs/config ] +if [ ! -f /root/.ipfs/config ] then echo "No config found. Initializing..." bash ./init-config.sh fi -ipfs daemon --enable-pubsub-experiment --enable-namesys-pubsub --enable-gc & + +ipfs daemon --enable-pubsub-experiment --enable-namesys-pubsub & # Wait for the daemon to initialize echo "Sleeping 30 seconds" sleep 30 echo "Sleeped 30 seconds" -# Add the whole repo and publish on start -date -echo "Starting ipfs add" -hash=$(ipfs add -Q -r /root/.ipfs/repository/contracts) -echo "Finished ipfs add! New ipfs hash: $hash" -date - -# Remove the old /contracts in MFS -echo "Removing /contracts from MFS" -ipfs files rm -r /contracts -echo "Removed /contracts from MFS" +if [ -z "$DEBUG" ] +then + date + echo "Starting ipfs add" + hash=$(ipfs add -Q -r /repository/contracts) + echo "Finished ipfs add! New ipfs hash: $hash" + date + + # Remove the old /contracts in MFS + echo "Removing /contracts from MFS" + ipfs files rm -r /contracts + echo "Removed /contracts from MFS" + + # cp the repo under MFS + echo "Copying $hash to MFS at /contracts" + ipfs files cp -p /ipfs/$hash /contracts + echo "Copied $hash to MFS at /contracts" +fi -# cp the repo under MFS -echo "Copying $hash to MFS at /contracts" -ipfs files cp -p /ipfs/$hash /contracts -echo "Copied $hash to MFS at /contracts" -date bash ./publish.sh # Write the TAG var to /etc/environment so that the crontab can pick up the variable echo "TAG=$TAG" > /etc/environment -crontab cron.job -cron -f +if [ -z "$DEBUG" ] +then + crontab cron.job + cron -f +fi + +tail -f /dev/null diff --git a/services/ipfs/init-config.sh b/services/ipfs/init-config.sh index 912074eb3..189f406f5 100644 --- a/services/ipfs/init-config.sh +++ b/services/ipfs/init-config.sh @@ -26,8 +26,11 @@ ipfs config --json Experimental.AcceleratedDHTClient true ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]' ipfs config --json Addresses.API '["/ip4/0.0.0.0/tcp/5001"]' -# Add remote pinning services -ipfs pin remote service add estuary https://api.estuary.tech/pinning $ESTUARY_PINNING_SECRET -ipfs pin remote service add web3.storage https://api.web3.storage/ $WEB3_STORAGE_PINNING_SECRET +if [ -z "$DEBUG" ] +then + # Add remote pinning services + ipfs pin remote service add estuary https://api.estuary.tech/pinning $ESTUARY_PINNING_SECRET + ipfs pin remote service add web3.storage https://api.web3.storage/ $WEB3_STORAGE_PINNING_SECRET -ipfs key import main /app/ipfs-${TAG}.key \ No newline at end of file + ipfs key import main /sourcify/ipfs-${TAG}.key +fi \ No newline at end of file diff --git a/services/ipfs/ipfs-latest.key.gpg b/services/ipfs/ipfs-latest.key.gpg index e84ad5b45..300f589f1 100644 Binary files a/services/ipfs/ipfs-latest.key.gpg and b/services/ipfs/ipfs-latest.key.gpg differ diff --git a/services/ipfs/ipfs-stable.key.gpg b/services/ipfs/ipfs-stable.key.gpg index cb9154dd3..4f765d149 100644 --- a/services/ipfs/ipfs-stable.key.gpg +++ b/services/ipfs/ipfs-stable.key.gpg @@ -1,2 +1 @@ -Œ  œŸõ™£ÆwIëÒ‹_Xßã©ÐbÐ^KSÓ¯ËPúuÌ9?7ž1UXÉݤ?Y¾×3²+¾:‘õ}[QO{é{ùZ° -?Z}Å8½¢KàFîy…›ñµïåsìƒÍêuλä‰gnVŒõ‡:Q’×q¼Sì‡ÛS}Z$V=°f³ šuÎÞðûX \ No newline at end of file diff --git a/services/ipfs/publish.sh b/services/ipfs/publish.sh index 0d169cc5e..0e5004572 100755 --- a/services/ipfs/publish.sh +++ b/services/ipfs/publish.sh @@ -5,32 +5,32 @@ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # Update the contract stats. date echo "Started find in repository for stats" -REPOSITORY_PATH=/root/.ipfs/repository -CHAINS=$(find $REPOSITORY_PATH/contracts/full_match/ -mindepth 1 -maxdepth 1 -type d | rev | cut --delimiter=/ -f1 | rev) +REPOSITORY_PATH="/repository" +CHAINS=$(find $REPOSITORY_PATH/contracts/full_match/ -mindepth 1 -maxdepth 1 -type d | rev | cut -d "/" -f1 | rev) OUTPUT="{ " for chainId in ${CHAINS}; do - OUTPUT+=" \"$chainId\": {" - OUTPUT+=" \"full_match\": $(find $REPOSITORY_PATH/contracts/full_match/$chainId/ -mindepth 1 -maxdepth 1 -type d | wc -l)," - OUTPUT+=" \"partial_match\": $(find $REPOSITORY_PATH/contracts/partial_match/$chainId/ -mindepth 1 -maxdepth 1 -type d | wc -l)" + OUTPUT="$OUTPUT \"$chainId\": {" + OUTPUT="$OUTPUT \"full_match\": $(find $REPOSITORY_PATH/contracts/full_match/$chainId/ -mindepth 1 -maxdepth 1 -type d | wc -l)," + OUTPUT="$OUTPUT \"partial_match\": $(find $REPOSITORY_PATH/contracts/partial_match/$chainId/ -mindepth 1 -maxdepth 1 -type d | wc -l)" - if [[ $chainId == $(echo $CHAINS | rev | cut --delimiter=" " -f1 | rev) ]] + if [[ $chainId == $(echo $CHAINS | rev | cut -d " " -f1 | rev) ]] then - OUTPUT+=" }" + OUTPUT="$OUTPUT }" else - OUTPUT+=" }," + OUTPUT="$OUTPUT }," fi done -OUTPUT+="}" +OUTPUT="$OUTPUT}" echo "Finished find in repo for stats" echo $OUTPUT > $REPOSITORY_PATH/stats.json date # Update the new manifest and stats in MFS. -manifestHash=$(ipfs add -Q /root/.ipfs/repository/manifest.json) -statsHash=$(ipfs add -Q /root/.ipfs/repository/stats.json) +manifestHash=$(ipfs add -Q /repository/manifest.json) +statsHash=$(ipfs add -Q /repository/stats.json) # rm old files from MFS ipfs files rm /manifest.json ipfs files rm /stats.json @@ -48,7 +48,10 @@ echo "Published rootHash $rootHash under ipns key" timestamp=$(date -u +"%Y-%m-%dT%H:%MZ") pinName=sourcify-$TAG-$timestamp -echo "Pinning to remote services" -ipfs pin remote add --service=estuary $rootHash --background --name=$pinName -ipfs pin remote add --service=web3.storage $rootHash --background --name=$pinName -echo "Pinned to remote services (running in background)" \ No newline at end of file +if [ -z "$DEBUG" ] +then + echo "Pinning to remote services" + ipfs pin remote add --service=estuary $rootHash --background --name=$pinName + ipfs pin remote add --service=web3.storage $rootHash --background --name=$pinName + echo "Pinned to remote services (running in background)" +fi \ No newline at end of file diff --git a/services/s3sync/entrypoint.sh b/services/s3sync/entrypoint.sh index b2a95c0e4..e69b29ace 100644 --- a/services/s3sync/entrypoint.sh +++ b/services/s3sync/entrypoint.sh @@ -3,9 +3,11 @@ # Start the run once job. echo "Docker container has been started" -# Setup a cron schedule +# Setup a cron schedule. echo "0 3 * * * AWS_S3_ACCESS_KEY_ID=$AWS_S3_ACCESS_KEY_ID AWS_S3_SECRET_ACCESS_KEY=$AWS_S3_SECRET_ACCESS_KEY CHAINSAFE_S3_ACCESS_KEY_ID=$CHAINSAFE_S3_ACCESS_KEY_ID CHAINSAFE_S3_SECRET_ACCESS_KEY=$CHAINSAFE_S3_SECRET_ACCESS_KEY BUCKET_NAME=$BUCKET_NAME TAG=$TAG /app/login_sync_s3.sh >> /var/log/cron.log 2>&1 # This extra line makes it a valid cron" > scheduler.txt +mkdir /app/logs + crontab scheduler.txt cron -f diff --git a/services/s3sync/login_sync_s3.sh b/services/s3sync/login_sync_s3.sh index 8c4f9e3df..58b0d2071 100755 --- a/services/s3sync/login_sync_s3.sh +++ b/services/s3sync/login_sync_s3.sh @@ -3,18 +3,17 @@ /usr/local/bin/aws --version /usr/local/bin/aws configure set aws_access_key_id $AWS_S3_ACCESS_KEY_ID /usr/local/bin/aws configure set aws_secret_access_key $AWS_S3_SECRET_ACCESS_KEY +/usr/local/bin/aws configure set s3.max_concurrent_requests 10 -date -echo "Syncing AWS at $BUCKET_NAME/$TAG" +echo "$(date) Syncing AWS at $BUCKET_NAME/$TAG" /usr/local/bin/aws s3 sync --quiet /app/repository $BUCKET_NAME/$TAG -echo "Sync AWS complete" -date +echo "$(date) Sync AWS complete" # Sync to Chainsafe Storage S3 -/usr/local/bin/aws configure set aws_access_key_id $CHAINSAFE_S3_ACCESS_KEY_ID -/usr/local/bin/aws configure set aws_secret_access_key $CHAINSAFE_S3_SECRET_ACCESS_KEY -date -echo "Syncing Chainsafe S3 at $BUCKET_NAME" -/usr/local/bin/aws s3 sync --quiet /app/repository $BUCKET_NAME --endpoint-url https://buckets.chainsafe.io -echo "Syncing Chainsafe S3 complete" -date \ No newline at end of file +# /usr/local/bin/aws configure set aws_access_key_id $CHAINSAFE_S3_ACCESS_KEY_ID +# /usr/local/bin/aws configure set aws_secret_access_key $CHAINSAFE_S3_SECRET_ACCESS_KEY +# /usr/local/bin/aws configure set s3.max_concurrent_requests 2 # Chainsafe Storage S3 concurrency is limited + +# echo "$(date) Syncing Chainsafe S3 at $BUCKET_NAME" +# /usr/local/bin/aws s3 sync /app/repository $BUCKET_NAME/$TAG --endpoint-url https://buckets.chainsafe.io > "/app/logs/s3sync-chainsafe-$(date '+%Y-%m-%dZ%H:%M').log" 2>&1 +# echo "$(date) Syncing Chainsafe S3 complete" diff --git a/services/validation/.gitignore b/services/validation/.gitignore deleted file mode 100644 index 8c08c5119..000000000 --- a/services/validation/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -/build diff --git a/services/validation/README.md b/services/validation/README.md deleted file mode 100644 index 63c02b1b6..000000000 --- a/services/validation/README.md +++ /dev/null @@ -1,252 +0,0 @@ -# Sourcify Validation 🧑â€ðŸ’»ðŸ“🔠- -The Sourcify Validation script helps you re-compile and source-verify your Solidity smart contracts. - -If Solidity source files are spread across multiple files, re-compiling them is often complicated. -To help with re-compilation, [the Solidity compiler](https://solidity.readthedocs.io/en/latest/installing-solidity.html) generates a file called "metadata.json" that -contains all settings, filenames and file hashes required to re-compile the contract into the exact same binary. - -Several tools, including [Truffle](https://www.trufflesuite.com/) and [Buidler](https://buidler.dev) store this file with each compilation. - -## Usage as a script - -* `npm install -g @ethereum-sourcify/validation` -* `sourcify-validation my/repository` - -You can specify a sequence of files, directories and even zip files. -The script will scan through all the provided files, searching for metadata and the belonging source files. - -If everything goes well, you can ask it to provide a "standard-json input file" -that you just need to send to the compiler, etherscan, or whatever service you use -for verification. - -Verification is also achievable through the use of [Sourcify](https://sourcify.dev/). All you need to do is upload the files -you had provided to this script. - -## Options -* -j, --prepare-json - * Output only a JSON object to be used as standard-json input to solc. - * The expected argument ought to be of the form path:name - * E.g. `sourcify-validation --prepare-json foo/bar/Contract.sol:ContractName path/to/dir` - * Omitting either the path or the name is tolerated if unambiguous. -* -p, --pretty - * Output the standard json in a pretty format. - * Only available with the --prepare-json option. -* -h, --help - * Output the help message. -* -v, --version - * Output the current version. - -## Example - Piping the standard-json input to the Solidity compiler -Consider the case of a metadata.json file specifying a single source file (1_Storage.sol), both located inside the current directory. - -The file `metadata.json` is the essential part: it contains the compilation parameters. During compilation, you get it using `solc --metadata ...` - -Since Sourcify Validation will only consider the relevant files, you can run the command as: -### Command -* `sourcify-validation .` - -### Output -``` -Storage (browser/1_Storage.sol): - Success! - Compiled with Solidity 0.6.6 - https://solc-bin.ethereum.org/wasm/soljson-v0.6.6+commit.6c089d02.js - https://solc-bin.ethereum.org/linux-amd64/solc-linux-amd64-v0.6.6+commit.6c089d02 - To recompile, use: `sourcify-validation --prepare-json browser/1_Storage.sol:Storage /path/to/dir | solc --standard-json` -``` - -If you don't have the required version of the compiler, run: -* `wget https://solc-bin.ethereum.org/linux-amd64/solc-linux-amd64-v0.6.6+commit.6c089d02 -O solc-0.6.6` - -Then run: -* `sourcify-validation -j browser/1_storage.sol:Storage . | solc-0.6.6 --standard-json` - -If you use `jq`, the output will have a nice format: -* `sourcify-validation -j browser/1_storage.sol:Storage . | solc-0.6.6 --standard-json | jq` - -This yields a JSON output containing the ABI and bytecode of the compiled contract (some values were truncated for readability): -```json -{ - "contracts": { - "browser/1_Storage.sol": { - "Storage": { - "abi": [ - { - "inputs": [], - "name": "retreive", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "num", - "type": "uint256" - } - ], - "name": "store", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6080604052348015610010576000...f6c63430006060033", - "opcodes": "PUSH1 0x80 ... CALLER ", - "sourceMap": "105:...;;" - } - } - } - } - }, - "sources": { - "browser/1_Storage.sol": { - "id": 0 - } - } -} -``` - -## Example - Multiple sources -### Command -`sourcify-validation Escrow.sol Main.sol Owned.sol provableAPI_0.6.sol Savings.sol metadata.json` - -### Output -``` -Savings (browser/Savings.sol): - Success! - Compiled with Solidity 0.6.11 - https://solc-bin.ethereum.org/wasm/soljson-v0.6.11+commit.5ef660b1.js - https://solc-bin.ethereum.org/linux-amd64/solc-linux-amd64-v0.6.11+commit.5ef660b1 - To re-compile use: `sourcify-validation --prepare-json browser/Savings.sol:Savings Escrow.sol Main.sol Owned.sol provableAPI_0.6.sol Savings.sol metadata.json | solc --standard-json` -``` - -## Example - Multiple sources; some are missing -### Command -`sourcify-validation Owned.sol provableAPI_0.6.sol Savings.sol metadata.json` - -### Output -``` -Savings (browser/Savings.sol): - Error: Missing sources: - The following files were not provided (or were altered, so their hash doesn't match the one in the metadata). - Please retrieve the files (potentially via ipfs) and re-run the script. - browser/Escrow.sol: - keccak256: 0x3685704dbcc97358956da378d8250b4e5062a47ee6ed3090f519ebc50a579a11 - bzz-raw://7e46a52b71bebeb845d35d4925fb96a5ef4b9f72f5b95ac407ec833731eafb23 - dweb:/ipfs/QmZ87S4kA9ook24nr8QatoYAaZM12m7DZB6uvM7yMe9SKU - browser/Main.sol: - keccak256: 0xf6727a46bdc24bffc5645254531bb6533da6fcdd5fcf726e81a7cb7def57f0a1 - bzz-raw://5449b75552ec776271eb7802eb61ac0f61759a14f75c42732dabee71621b45d0 - dweb:/ipfs/Qmag6X92SQRL9ZkPTtDpPqrsoCvrNj2K9aSJe9BFb9pUyY - 3 other source files found successfully. -``` - -## Example - Truffle project ([Metacoin example](https://www.trufflesuite.com/docs/truffle/quickstart)) - -### Command -The following commands yield effectively the same output: -1. path to directory containing the project - `sourcify-validation truffle-example/` -2. paths to subdirectories - `sourcify-validation truffle-example/contracts/ truffle-example/build/` -3. path to zipped directory - `sourcify-validation truffle-example.zip` - -### Output -``` -ConvertLib (/home/user/dir/truffle-example/contracts/ConvertLib.sol): - Success! - Compiled with Solidity 0.5.16 - https://solc-bin.ethereum.org/wasm/soljson-v0.5.16+commit.9c3226ce.js - https://solc-bin.ethereum.org/linux-amd64/solc-linux-amd64-v0.5.16+commit.9c3226ce - sourcify-validation --prepare-json /home/user/truffle-example/contracts/ConvertLib.sol:ConvertLib test/files/truffle-example.zip | solc --standard-json - -MetaCoin (/home/user/dir/truffle-example/contracts/MetaCoin.sol): - Success! - Compiled with Solidity 0.5.16 - https://solc-bin.ethereum.org/wasm/soljson-v0.5.16+commit.9c3226ce.js - https://solc-bin.ethereum.org/linux-amd64/solc-linux-amd64-v0.5.16+commit.9c3226ce - sourcify-validation --prepare-json /home/user/truffle-example/contracts/MetaCoin.sol:MetaCoin test/files/truffle-example.zip | solc --standard-json` - -Migrations (/home/user/dir/truffle-example/contracts/Migrations.sol): - Success! - Compiled with Solidity 0.5.16 - https://solc-bin.ethereum.org/wasm/soljson-v0.5.16+commit.9c3226ce.js - https://solc-bin.ethereum.org/linux-amd64/solc-linux-amd64-v0.5.16+commit.9c3226ce - sourcify-validation --prepare-json /home/user/truffle-example/contracts/Migrations.sol:Migrations test/files/truffle-example.zip | solc --standard-json - -``` - -## Usage as a module -* `npm install @ethereum-sourcify/validation` -#### Process paths -```typescript -import { CheckedContract } from '@ethereum-sourcify/core'; -import { ValidationService } from '@ethereum-sourcify/validation'; - -const validationService = new ValidationService(); -const paths = ["path/to/file1", "path/to/file2"]; - -// This is where the validation magic happens. -const checkedContracts = validationService.checkPaths(paths); - -function work(files) { - for (const file in files) { - console.log("\t" + files[file]); - } -} - -checkedContracts.forEach(contract => { - if (CheckedContract.isValid(contract)) { - console.log(`Contract ${contract.name} is valid!`); - } else { - console.log(`Contract ${contract.name} is not valid!`); - - console.log("Found sources:"); - work(contract.solidity); - - console.log("Missing sources:"); - work(contract.missing); - - console.log("Invalid sources:"); - work(contract.invalid); - } -}); - -// To get the same json that solc uses as --standard-json input, use .getStandardJson() -const firstContract = checkedContract[0]; -console.log(firstContract.getStandardJson()); - -``` -#### Process buffers -```typescript -import express from 'express'; -import { ValidationService, PathBuffer } from '@ethereum-sourcify/validation'; - -const app = express(); -const validationService = new ValidationService(); - -app.post("/", (req, res) => { - const uploadedFiles = [].concat(req.files.files); - const files = uploadedFiles.map(f => ({ buffer: f.data })); - const checkedContracts = validationService.checkFiles(files); - const allValid = checkedContracts.every(contract => contract.isValid()); - if (allValid) { - res.send("Ready for verification!"); - } else { - res.status(400).send("Check yoself before you wreck yoself!"); - } -}); -``` \ No newline at end of file diff --git a/services/validation/package-lock.json b/services/validation/package-lock.json deleted file mode 100644 index d2d265752..000000000 --- a/services/validation/package-lock.json +++ /dev/null @@ -1,14363 +0,0 @@ -{ - "name": "@ethereum-sourcify/validation", - "version": "0.2.10", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@ethereum-sourcify/validation", - "version": "0.2.10", - "license": "MIT", - "dependencies": { - "@ethereum-sourcify/core": "*", - "bunyan": "^1.8.15", - "commander": "^6.1.0", - "jszip": "^3.10.1", - "web3": "^1.2.11" - }, - "bin": { - "sourcify-validation": "build/index.js" - }, - "devDependencies": { - "@types/bunyan": "^1.8.6", - "@types/node": "^16.11.36", - "chai": "^4.2.0", - "chai-exec": "^2.1.1", - "mocha": "^8.1.3", - "rimraf": "^3.0.2", - "typescript": "^4.0.2" - } - }, - "../core": { - "name": "@ethereum-sourcify/core", - "version": "0.2.10", - "license": "MIT", - "dependencies": { - "bunyan": "^1.8.15", - "cbor": "^5.1.0", - "directory-tree": "^2.2.4", - "node-fetch": "^2.6.1", - "rimraf": "^3.0.2", - "semver": "^7.3.7", - "web3": "^1.3.0" - }, - "bin": { - "sourcify-core": "build/index.js" - }, - "devDependencies": { - "@types/bunyan": "^1.8.6", - "@types/cbor": "^5.0.1", - "@types/node-fetch": "^2.5.7", - "@types/rimraf": "^3.0.2", - "@types/semver": "^7.3.10", - "typescript": "^4.0.2" - } - }, - "../core/node_modules/@ethereumjs/common": { - "version": "2.6.4", - "license": "MIT", - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" - } - }, - "../core/node_modules/@ethereumjs/tx": { - "version": "3.5.1", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" - } - }, - "../core/node_modules/@ethersproject/abi": { - "version": "5.0.7", - "license": "MIT", - "dependencies": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "../core/node_modules/@ethersproject/abstract-provider": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/abstract-signer": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/address": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/base64": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/bignumber": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "../core/node_modules/@ethersproject/bytes": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/constants": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/hash": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/keccak256": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "../core/node_modules/@ethersproject/logger": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT" - }, - "../core/node_modules/@ethersproject/networks": { - "version": "5.6.2", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/properties": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/rlp": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/signing-key": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "../core/node_modules/@ethersproject/strings": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/transactions": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/web": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "../core/node_modules/@sindresorhus/is": { - "version": "0.14.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/@types/bn.js": { - "version": "4.11.6", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "../core/node_modules/@types/bunyan": { - "version": "1.8.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "../core/node_modules/@types/cbor": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "../core/node_modules/@types/glob": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "../core/node_modules/@types/minimatch": { - "version": "3.0.5", - "dev": true, - "license": "MIT" - }, - "../core/node_modules/@types/node": { - "version": "17.0.34", - "license": "MIT" - }, - "../core/node_modules/@types/node-fetch": { - "version": "2.6.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "../core/node_modules/@types/pbkdf2": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "../core/node_modules/@types/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/glob": "*", - "@types/node": "*" - } - }, - "../core/node_modules/@types/secp256k1": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "../core/node_modules/accepts": { - "version": "1.3.8", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/ajv": { - "version": "6.12.6", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "../core/node_modules/array-flatten": { - "version": "1.1.1", - "license": "MIT" - }, - "../core/node_modules/asn1": { - "version": "0.2.6", - "license": "MIT", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "../core/node_modules/asn1.js": { - "version": "5.4.1", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "../core/node_modules/assert-plus": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "../core/node_modules/async-limiter": { - "version": "1.0.1", - "license": "MIT" - }, - "../core/node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" - }, - "../core/node_modules/available-typed-arrays": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/aws-sign2": { - "version": "0.7.0", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "../core/node_modules/aws4": { - "version": "1.11.0", - "license": "MIT" - }, - "../core/node_modules/balanced-match": { - "version": "1.0.2", - "license": "MIT" - }, - "../core/node_modules/base-x": { - "version": "3.0.9", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "../core/node_modules/base64-js": { - "version": "1.5.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "../core/node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "license": "BSD-3-Clause", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "../core/node_modules/bignumber.js": { - "version": "9.0.2", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "../core/node_modules/blakejs": { - "version": "1.2.1", - "license": "MIT" - }, - "../core/node_modules/bluebird": { - "version": "3.7.2", - "license": "MIT" - }, - "../core/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "../core/node_modules/body-parser": { - "version": "1.20.0", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "../core/node_modules/brace-expansion": { - "version": "1.1.11", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "../core/node_modules/brorand": { - "version": "1.1.0", - "license": "MIT" - }, - "../core/node_modules/browserify-aes": { - "version": "1.2.0", - "license": "MIT", - "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" - } - }, - "../core/node_modules/browserify-cipher": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "../core/node_modules/browserify-des": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "../core/node_modules/browserify-rsa": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "../core/node_modules/browserify-rsa/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "../core/node_modules/browserify-sign": { - "version": "4.2.1", - "license": "ISC", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "../core/node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "../core/node_modules/bs58": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "../core/node_modules/bs58check": { - "version": "2.1.2", - "license": "MIT", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "../core/node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "../core/node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "license": "MIT" - }, - "../core/node_modules/buffer-xor": { - "version": "1.0.3", - "license": "MIT" - }, - "../core/node_modules/bufferutil": { - "version": "4.0.6", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "../core/node_modules/bunyan": { - "version": "1.8.15", - "engines": [ - "node >=0.10.0" - ], - "license": "MIT", - "bin": { - "bunyan": "bin/bunyan" - }, - "optionalDependencies": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "../core/node_modules/bytes": { - "version": "3.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/cacheable-request": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "../core/node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../core/node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../core/node_modules/call-bind": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/caseless": { - "version": "0.12.0", - "license": "Apache-2.0" - }, - "../core/node_modules/cbor": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "../core/node_modules/chownr": { - "version": "1.1.4", - "license": "ISC" - }, - "../core/node_modules/cids": { - "version": "0.7.5", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "../core/node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "../core/node_modules/cipher-base": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "../core/node_modules/class-is": { - "version": "1.1.0", - "license": "MIT" - }, - "../core/node_modules/clone-response": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "../core/node_modules/combined-stream": { - "version": "1.0.8", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/concat-map": { - "version": "0.0.1", - "license": "MIT" - }, - "../core/node_modules/content-disposition": { - "version": "0.5.4", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/content-hash": { - "version": "2.5.2", - "license": "ISC", - "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "../core/node_modules/content-type": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/cookie": { - "version": "0.5.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/cookie-signature": { - "version": "1.0.6", - "license": "MIT" - }, - "../core/node_modules/cookiejar": { - "version": "2.1.3", - "license": "MIT" - }, - "../core/node_modules/core-util-is": { - "version": "1.0.2", - "license": "MIT" - }, - "../core/node_modules/cors": { - "version": "2.8.5", - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "../core/node_modules/crc-32": { - "version": "1.2.2", - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "../core/node_modules/create-ecdh": { - "version": "4.0.4", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "../core/node_modules/create-hash": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "../core/node_modules/create-hmac": { - "version": "1.1.7", - "license": "MIT", - "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" - } - }, - "../core/node_modules/crypto-browserify": { - "version": "3.12.0", - "license": "MIT", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "../core/node_modules/d": { - "version": "1.0.1", - "license": "ISC", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "../core/node_modules/dashdash": { - "version": "1.14.1", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "../core/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "../core/node_modules/decode-uri-component": { - "version": "0.2.0", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "../core/node_modules/decompress-response": { - "version": "3.3.0", - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/defer-to-connect": { - "version": "1.1.3", - "license": "MIT" - }, - "../core/node_modules/define-properties": { - "version": "1.1.4", - "license": "MIT", - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/delayed-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "../core/node_modules/depd": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/des.js": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "../core/node_modules/destroy": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "../core/node_modules/diffie-hellman": { - "version": "5.0.3", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "../core/node_modules/directory-tree": { - "version": "2.3.1", - "license": "MIT", - "engines": { - "node": ">=10.0" - } - }, - "../core/node_modules/dom-walk": { - "version": "0.1.2" - }, - "../core/node_modules/dtrace-provider": { - "version": "0.8.8", - "hasInstallScript": true, - "license": "BSD-2-Clause", - "optional": true, - "dependencies": { - "nan": "^2.14.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "../core/node_modules/duplexer3": { - "version": "0.1.4", - "license": "BSD-3-Clause" - }, - "../core/node_modules/ecc-jsbn": { - "version": "0.1.2", - "license": "MIT", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "../core/node_modules/ee-first": { - "version": "1.1.1", - "license": "MIT" - }, - "../core/node_modules/elliptic": { - "version": "6.5.4", - "license": "MIT", - "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" - } - }, - "../core/node_modules/encodeurl": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/end-of-stream": { - "version": "1.4.4", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "../core/node_modules/es-abstract": { - "version": "1.20.1", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/es-to-primitive": { - "version": "1.2.1", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/es5-ext": { - "version": "0.10.61", - "hasInstallScript": true, - "license": "ISC", - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "../core/node_modules/es6-iterator": { - "version": "2.0.3", - "license": "MIT", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "../core/node_modules/es6-symbol": { - "version": "3.1.3", - "license": "ISC", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "../core/node_modules/escape-html": { - "version": "1.0.3", - "license": "MIT" - }, - "../core/node_modules/etag": { - "version": "1.8.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/eth-ens-namehash": { - "version": "2.0.8", - "license": "ISC", - "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "../core/node_modules/eth-ens-namehash/node_modules/js-sha3": { - "version": "0.5.7", - "license": "MIT" - }, - "../core/node_modules/eth-lib": { - "version": "0.1.29", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "../core/node_modules/ethereum-bloom-filters": { - "version": "1.0.10", - "license": "MIT", - "dependencies": { - "js-sha3": "^0.8.0" - } - }, - "../core/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "license": "MIT", - "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" - } - }, - "../core/node_modules/ethereumjs-util": { - "version": "7.1.4", - "license": "MPL-2.0", - "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" - } - }, - "../core/node_modules/ethereumjs-util/node_modules/@types/bn.js": { - "version": "5.1.0", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "../core/node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "../core/node_modules/ethjs-unit": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "../core/node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "license": "MIT" - }, - "../core/node_modules/eventemitter3": { - "version": "4.0.4", - "license": "MIT" - }, - "../core/node_modules/evp_bytestokey": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "../core/node_modules/express": { - "version": "4.18.1", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "../core/node_modules/ext": { - "version": "1.6.0", - "license": "ISC", - "dependencies": { - "type": "^2.5.0" - } - }, - "../core/node_modules/ext/node_modules/type": { - "version": "2.6.0", - "license": "ISC" - }, - "../core/node_modules/extend": { - "version": "3.0.2", - "license": "MIT" - }, - "../core/node_modules/extsprintf": { - "version": "1.3.0", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" - }, - "../core/node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT" - }, - "../core/node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "license": "MIT" - }, - "../core/node_modules/finalhandler": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/for-each": { - "version": "0.3.3", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "../core/node_modules/forever-agent": { - "version": "0.6.1", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "../core/node_modules/form-data": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "../core/node_modules/forwarded": { - "version": "0.2.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/fresh": { - "version": "0.5.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/fs-extra": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "../core/node_modules/fs-minipass": { - "version": "1.2.7", - "license": "ISC", - "dependencies": { - "minipass": "^2.6.0" - } - }, - "../core/node_modules/fs.realpath": { - "version": "1.0.0", - "license": "ISC" - }, - "../core/node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" - }, - "../core/node_modules/function.prototype.name": { - "version": "1.1.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/functions-have-names": { - "version": "1.2.3", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/get-intrinsic": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/get-stream": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/get-symbol-description": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/getpass": { - "version": "0.1.7", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "../core/node_modules/glob": { - "version": "7.2.3", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../core/node_modules/global": { - "version": "4.4.0", - "license": "MIT", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "../core/node_modules/got": { - "version": "9.6.0", - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "../core/node_modules/graceful-fs": { - "version": "4.2.10", - "license": "ISC" - }, - "../core/node_modules/har-schema": { - "version": "2.0.0", - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/har-validator": { - "version": "5.1.5", - "license": "MIT", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/has": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "../core/node_modules/has-bigints": { - "version": "1.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/has-property-descriptors": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/has-symbol-support-x": { - "version": "1.4.2", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "../core/node_modules/has-symbols": { - "version": "1.0.3", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/has-to-string-tag-x": { - "version": "1.4.1", - "license": "MIT", - "dependencies": { - "has-symbol-support-x": "^1.4.1" - }, - "engines": { - "node": "*" - } - }, - "../core/node_modules/has-tostringtag": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/hash-base": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/hash.js": { - "version": "1.1.7", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "../core/node_modules/hmac-drbg": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "../core/node_modules/http-cache-semantics": { - "version": "4.1.0", - "license": "BSD-2-Clause" - }, - "../core/node_modules/http-errors": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/http-https": { - "version": "1.0.0", - "license": "ISC" - }, - "../core/node_modules/http-signature": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "../core/node_modules/iconv-lite": { - "version": "0.4.24", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/idna-uts46-hx": { - "version": "2.3.1", - "license": "MIT", - "dependencies": { - "punycode": "2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "../core/node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "../core/node_modules/inflight": { - "version": "1.0.6", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "../core/node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "../core/node_modules/internal-slot": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "../core/node_modules/ipaddr.js": { - "version": "1.9.1", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "../core/node_modules/is-arguments": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-bigint": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-boolean-object": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-callable": { - "version": "1.2.4", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-date-object": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-function": { - "version": "1.0.2", - "license": "MIT" - }, - "../core/node_modules/is-generator-function": { - "version": "1.0.10", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-hex-prefixed": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "../core/node_modules/is-negative-zero": { - "version": "2.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-number-object": { - "version": "1.0.7", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-object": { - "version": "1.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-plain-obj": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/is-regex": { - "version": "1.1.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-retry-allowed": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-stream": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/is-string": { - "version": "1.0.7", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-symbol": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-typed-array": { - "version": "1.1.9", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-typedarray": { - "version": "1.0.0", - "license": "MIT" - }, - "../core/node_modules/is-weakref": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/isstream": { - "version": "0.1.2", - "license": "MIT" - }, - "../core/node_modules/isurl": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "../core/node_modules/js-sha3": { - "version": "0.8.0", - "license": "MIT" - }, - "../core/node_modules/jsbn": { - "version": "0.1.1", - "license": "MIT" - }, - "../core/node_modules/json-buffer": { - "version": "3.0.0", - "license": "MIT" - }, - "../core/node_modules/json-schema": { - "version": "0.4.0", - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, - "../core/node_modules/json-schema-traverse": { - "version": "0.4.1", - "license": "MIT" - }, - "../core/node_modules/json-stringify-safe": { - "version": "5.0.1", - "license": "ISC" - }, - "../core/node_modules/jsonfile": { - "version": "4.0.0", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "../core/node_modules/jsprim": { - "version": "1.4.2", - "license": "MIT", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "../core/node_modules/keccak": { - "version": "3.0.2", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "../core/node_modules/keyv": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "../core/node_modules/lowercase-keys": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/md5.js": { - "version": "1.3.5", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "../core/node_modules/media-typer": { - "version": "0.3.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/merge-descriptors": { - "version": "1.0.1", - "license": "MIT" - }, - "../core/node_modules/methods": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/miller-rabin": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "../core/node_modules/mime": { - "version": "1.6.0", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/mime-db": { - "version": "1.52.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/mime-types": { - "version": "2.1.35", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/mimic-response": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/min-document": { - "version": "2.19.0", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "../core/node_modules/minimalistic-assert": { - "version": "1.0.1", - "license": "ISC" - }, - "../core/node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "license": "MIT" - }, - "../core/node_modules/minimatch": { - "version": "3.1.2", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "../core/node_modules/minimist": { - "version": "1.2.6", - "license": "MIT" - }, - "../core/node_modules/minipass": { - "version": "2.9.0", - "license": "ISC", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "../core/node_modules/minizlib": { - "version": "1.3.3", - "license": "MIT", - "dependencies": { - "minipass": "^2.9.0" - } - }, - "../core/node_modules/mkdirp": { - "version": "0.5.6", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "../core/node_modules/mkdirp-promise": { - "version": "5.0.1", - "license": "ISC", - "dependencies": { - "mkdirp": "*" - }, - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/mock-fs": { - "version": "4.14.0", - "license": "MIT" - }, - "../core/node_modules/moment": { - "version": "2.29.3", - "license": "MIT", - "optional": true, - "engines": { - "node": "*" - } - }, - "../core/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "../core/node_modules/multibase": { - "version": "0.6.1", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "../core/node_modules/multicodec": { - "version": "0.5.7", - "license": "MIT", - "dependencies": { - "varint": "^5.0.0" - } - }, - "../core/node_modules/multihashes": { - "version": "0.4.21", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "../core/node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "../core/node_modules/mv": { - "version": "2.1.1", - "license": "MIT", - "optional": true, - "dependencies": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "../core/node_modules/mv/node_modules/glob": { - "version": "6.0.4", - "license": "ISC", - "optional": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "../core/node_modules/mv/node_modules/rimraf": { - "version": "2.4.5", - "license": "ISC", - "optional": true, - "dependencies": { - "glob": "^6.0.1" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "../core/node_modules/nan": { - "version": "2.15.0", - "license": "MIT", - "optional": true - }, - "../core/node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "license": "MIT" - }, - "../core/node_modules/ncp": { - "version": "2.0.0", - "license": "MIT", - "optional": true, - "bin": { - "ncp": "bin/ncp" - } - }, - "../core/node_modules/negotiator": { - "version": "0.6.3", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/next-tick": { - "version": "1.1.0", - "license": "ISC" - }, - "../core/node_modules/node-addon-api": { - "version": "2.0.2", - "license": "MIT" - }, - "../core/node_modules/node-fetch": { - "version": "2.6.7", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "../core/node_modules/node-gyp-build": { - "version": "4.4.0", - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "../core/node_modules/nofilter": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../core/node_modules/normalize-url": { - "version": "4.5.1", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../core/node_modules/number-to-bn": { - "version": "1.7.0", - "license": "MIT", - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "../core/node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "license": "MIT" - }, - "../core/node_modules/oauth-sign": { - "version": "0.9.0", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "../core/node_modules/object-assign": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/object-inspect": { - "version": "1.12.0", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/object-keys": { - "version": "1.1.1", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "../core/node_modules/object.assign": { - "version": "4.1.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/oboe": { - "version": "2.1.5", - "license": "BSD", - "dependencies": { - "http-https": "^1.0.0" - } - }, - "../core/node_modules/on-finished": { - "version": "2.4.1", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/once": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "../core/node_modules/p-cancelable": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/p-finally": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/p-timeout": { - "version": "1.2.1", - "license": "MIT", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/parse-asn1": { - "version": "5.1.6", - "license": "ISC", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "../core/node_modules/parse-headers": { - "version": "2.0.5", - "license": "MIT" - }, - "../core/node_modules/parseurl": { - "version": "1.3.3", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/path-is-absolute": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/path-to-regexp": { - "version": "0.1.7", - "license": "MIT" - }, - "../core/node_modules/pbkdf2": { - "version": "3.1.2", - "license": "MIT", - "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" - } - }, - "../core/node_modules/performance-now": { - "version": "2.1.0", - "license": "MIT" - }, - "../core/node_modules/prepend-http": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/process": { - "version": "0.11.10", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "../core/node_modules/proxy-addr": { - "version": "2.0.7", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "../core/node_modules/psl": { - "version": "1.8.0", - "license": "MIT" - }, - "../core/node_modules/public-encrypt": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "../core/node_modules/pump": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "../core/node_modules/punycode": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/qs": { - "version": "6.10.3", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/query-string": { - "version": "5.1.1", - "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/randombytes": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "../core/node_modules/randomfill": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "../core/node_modules/range-parser": { - "version": "1.2.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/raw-body": { - "version": "2.5.1", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "../core/node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/request": { - "version": "2.88.2", - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "../core/node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "../core/node_modules/request/node_modules/qs": { - "version": "6.5.3", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, - "../core/node_modules/responselike": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "../core/node_modules/rimraf": { - "version": "3.0.2", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../core/node_modules/ripemd160": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "../core/node_modules/rlp": { - "version": "2.2.7", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^5.2.0" - }, - "bin": { - "rlp": "bin/rlp" - } - }, - "../core/node_modules/rlp/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "../core/node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "../core/node_modules/safe-json-stringify": { - "version": "1.2.0", - "license": "MIT", - "optional": true - }, - "../core/node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" - }, - "../core/node_modules/scrypt-js": { - "version": "3.0.1", - "license": "MIT" - }, - "../core/node_modules/secp256k1": { - "version": "4.0.3", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "../core/node_modules/send": { - "version": "0.18.0", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../core/node_modules/send/node_modules/ms": { - "version": "2.1.3", - "license": "MIT" - }, - "../core/node_modules/serve-static": { - "version": "1.15.0", - "license": "MIT", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../core/node_modules/servify": { - "version": "0.1.12", - "license": "MIT", - "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - }, - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/setimmediate": { - "version": "1.0.5", - "license": "MIT" - }, - "../core/node_modules/setprototypeof": { - "version": "1.2.0", - "license": "ISC" - }, - "../core/node_modules/sha.js": { - "version": "2.4.11", - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "../core/node_modules/side-channel": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/simple-concat": { - "version": "1.0.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "../core/node_modules/simple-get": { - "version": "2.8.2", - "license": "MIT", - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "../core/node_modules/sshpk": { - "version": "1.17.0", - "license": "MIT", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/statuses": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/strict-uri-encode": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/string_decoder": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "../core/node_modules/string.prototype.trimend": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/strip-hex-prefix": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "../core/node_modules/swarm-js": { - "version": "0.1.40", - "license": "MIT", - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "../core/node_modules/swarm-js/node_modules/get-stream": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", - "license": "MIT", - "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/swarm-js/node_modules/p-cancelable": { - "version": "0.3.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/swarm-js/node_modules/prepend-http": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/swarm-js/node_modules/url-parse-lax": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/tar": { - "version": "4.4.19", - "license": "ISC", - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "../core/node_modules/timed-out": { - "version": "4.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/to-readable-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/toidentifier": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "../core/node_modules/tough-cookie": { - "version": "2.5.0", - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "../core/node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, - "../core/node_modules/tunnel-agent": { - "version": "0.6.0", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "../core/node_modules/tweetnacl": { - "version": "0.14.5", - "license": "Unlicense" - }, - "../core/node_modules/type": { - "version": "1.2.0", - "license": "ISC" - }, - "../core/node_modules/type-is": { - "version": "1.6.18", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "../core/node_modules/typescript": { - "version": "4.6.4", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "../core/node_modules/ultron": { - "version": "1.1.1", - "license": "MIT" - }, - "../core/node_modules/unbox-primitive": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/universalify": { - "version": "0.1.2", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "../core/node_modules/unpipe": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/uri-js": { - "version": "4.4.1", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "../core/node_modules/url-parse-lax": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/url-set-query": { - "version": "1.0.0", - "license": "MIT" - }, - "../core/node_modules/url-to-options": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "../core/node_modules/utf-8-validate": { - "version": "5.0.9", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "../core/node_modules/utf8": { - "version": "3.0.0", - "license": "MIT" - }, - "../core/node_modules/util": { - "version": "0.12.4", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "../core/node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" - }, - "../core/node_modules/utils-merge": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "../core/node_modules/uuid": { - "version": "3.4.0", - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "../core/node_modules/varint": { - "version": "5.0.2", - "license": "MIT" - }, - "../core/node_modules/vary": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/verror": { - "version": "1.10.0", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "../core/node_modules/web3": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-bzz": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "../core/node_modules/web3-core": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-core-helpers": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-core-method": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-core-promievent": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-core-requestmanager": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-core-subscriptions": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-core/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "../core/node_modules/web3-eth": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-eth-abi": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-eth-accounts": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "../core/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "../core/node_modules/web3-eth-contract": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-eth-ens": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-eth-iban": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-eth-personal": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "../core/node_modules/web3-net": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-providers-http": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-providers-ipc": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-providers-ws": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-shh": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-utils": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "../core/node_modules/websocket": { - "version": "1.0.34", - "license": "Apache-2.0", - "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" - } - }, - "../core/node_modules/whatwg-url": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "../core/node_modules/which-boxed-primitive": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/which-typed-array": { - "version": "1.1.8", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/wrappy": { - "version": "1.0.2", - "license": "ISC" - }, - "../core/node_modules/ws": { - "version": "3.3.3", - "license": "MIT", - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "../core/node_modules/ws/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "../core/node_modules/xhr": { - "version": "2.6.0", - "license": "MIT", - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "../core/node_modules/xhr-request": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "../core/node_modules/xhr-request-promise": { - "version": "0.1.3", - "license": "MIT", - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "../core/node_modules/xhr2-cookies": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "cookiejar": "^2.1.1" - } - }, - "../core/node_modules/xtend": { - "version": "4.0.2", - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "../core/node_modules/yaeti": { - "version": "0.0.6", - "license": "MIT", - "engines": { - "node": ">=0.10.32" - } - }, - "../core/node_modules/yallist": { - "version": "3.1.1", - "license": "ISC" - }, - "node_modules/@ethereum-sourcify/core": { - "resolved": "../core", - "link": true - }, - "node_modules/@ethereumjs/common": { - "version": "2.6.4", - "license": "MIT", - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" - } - }, - "node_modules/@ethereumjs/tx": { - "version": "3.5.1", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" - } - }, - "node_modules/@ethersproject/abi": { - "version": "5.0.7", - "license": "MIT", - "dependencies": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "node_modules/@ethersproject/address": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "node_modules/@ethersproject/base64": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "node_modules/@ethersproject/bignumber": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "node_modules/@ethersproject/bytes": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/constants": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "node_modules/@ethersproject/hash": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "node_modules/@ethersproject/keccak256": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "node_modules/@ethersproject/logger": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT" - }, - "node_modules/@ethersproject/networks": { - "version": "5.6.2", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/properties": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/rlp": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/signing-key": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/strings": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/transactions": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "node_modules/@ethersproject/web": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "node_modules/@jsdevtools/chai-exec": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jsdevtools/ez-spawn": "^3.0.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jsdevtools/ez-spawn": { - "version": "3.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-me-maybe": "^1.0.1", - "cross-spawn": "^7.0.3", - "string-argv": "^0.3.1", - "type-detect": "^4.0.8" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@types/bn.js": { - "version": "4.11.6", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/bunyan": { - "version": "1.8.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "16.11.36", - "license": "MIT" - }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "dev": true, - "license": "ISC" - }, - "node_modules/accepts": { - "version": "1.3.8", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-regex": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/asn1": { - "version": "0.2.6", - "license": "MIT", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "license": "MIT" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "devOptional": true, - "license": "MIT" - }, - "node_modules/base-x": { - "version": "3.0.9", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "license": "BSD-3-Clause", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bignumber.js": { - "version": "9.0.2", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/blakejs": { - "version": "1.2.1", - "license": "MIT" - }, - "node_modules/bluebird": { - "version": "3.7.2", - "license": "MIT" - }, - "node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "1.20.0", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "devOptional": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "dev": true, - "license": "ISC" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "license": "MIT", - "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/browserify-cipher": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-rsa/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "license": "ISC", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "node_modules/bs58": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bs58check": { - "version": "2.1.2", - "license": "MIT", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "license": "MIT" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/bufferutil": { - "version": "4.0.6", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/bunyan": { - "version": "1.8.15", - "engines": [ - "node >=0.10.0" - ], - "license": "MIT", - "bin": { - "bunyan": "bin/bunyan" - }, - "optionalDependencies": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-me-maybe": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/camelcase": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "license": "Apache-2.0" - }, - "node_modules/chai": { - "version": "4.3.6", - "dev": true, - "license": "MIT", - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chai-exec": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jsdevtools/chai-exec": "2.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/check-error": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.1" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "license": "ISC" - }, - "node_modules/cids": { - "version": "0.7.5", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/class-is": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/cliui": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "6.2.1", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "devOptional": true, - "license": "MIT" - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-hash": { - "version": "2.5.2", - "license": "ISC", - "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/cookiejar": { - "version": "2.1.3", - "license": "MIT" - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/cors": { - "version": "2.8.5", - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/crc-32": { - "version": "1.2.2", - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-hash": { - "version": "1.2.0", - "license": "MIT", - "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", - "license": "MIT", - "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/cross-spawn": { - "version": "7.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "license": "MIT", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/d": { - "version": "1.0.1", - "license": "ISC", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/debug": { - "version": "4.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/decamelize": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-eql": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "license": "MIT" - }, - "node_modules/define-properties": { - "version": "1.1.4", - "license": "MIT", - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/diff": { - "version": "5.0.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2" - }, - "node_modules/dtrace-provider": { - "version": "0.8.8", - "hasInstallScript": true, - "license": "BSD-2-Clause", - "optional": true, - "dependencies": { - "nan": "^2.14.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "license": "BSD-3-Clause" - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "license": "MIT", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/elliptic": { - "version": "6.5.4", - "license": "MIT", - "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/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/es-abstract": { - "version": "1.20.1", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.61", - "hasInstallScript": true, - "license": "ISC", - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "license": "MIT", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "license": "ISC", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eth-ens-namehash": { - "version": "2.0.8", - "license": "ISC", - "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "node_modules/eth-ens-namehash/node_modules/js-sha3": { - "version": "0.5.7", - "license": "MIT" - }, - "node_modules/eth-lib": { - "version": "0.1.29", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/ethereum-bloom-filters": { - "version": "1.0.10", - "license": "MIT", - "dependencies": { - "js-sha3": "^0.8.0" - } - }, - "node_modules/ethereum-cryptography": { - "version": "0.1.3", - "license": "MIT", - "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.4", - "license": "MPL-2.0", - "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-util/node_modules/@types/bn.js": { - "version": "5.1.0", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "node_modules/ethjs-unit": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "license": "MIT" - }, - "node_modules/eventemitter3": { - "version": "4.0.4", - "license": "MIT" - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/express": { - "version": "4.18.1", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/ext": { - "version": "1.6.0", - "license": "ISC", - "dependencies": { - "type": "^2.5.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.6.0", - "license": "ISC" - }, - "node_modules/extend": { - "version": "3.0.2", - "license": "MIT" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "license": "MIT" - }, - "node_modules/fill-range": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/find-up": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "license": "ISC", - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.1.6", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global": { - "version": "4.4.0", - "license": "MIT", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/got": { - "version": "9.6.0", - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "license": "ISC" - }, - "node_modules/growl": { - "version": "1.10.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.x" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "license": "MIT", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbol-support-x": { - "version": "1.4.2", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-to-string-tag-x": { - "version": "1.4.1", - "license": "MIT", - "dependencies": { - "has-symbol-support-x": "^1.4.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "license": "MIT", - "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", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/he": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "license": "BSD-2-Clause" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-https": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/http-signature": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/idna-uts46-hx": { - "version": "2.3.1", - "license": "MIT", - "dependencies": { - "punycode": "2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" - }, - "node_modules/inflight": { - "version": "1.0.6", - "devOptional": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.4", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/is-function": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-object": { - "version": "1.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-retry-allowed": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.9", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/isstream": { - "version": "0.1.2", - "license": "MIT" - }, - "node_modules/isurl": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "license": "MIT" - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "license": "MIT" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "license": "MIT" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "license": "ISC" - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "license": "MIT", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - } - }, - "node_modules/jszip/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/jszip/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/jszip/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/keccak": { - "version": "3.0.2", - "hasInstallScript": true, - "license": "MIT", - "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/keyv": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/loupe": { - "version": "2.3.4", - "dev": true, - "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.0" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/methods": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "license": "ISC" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/minimatch": { - "version": "3.0.4", - "devOptional": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "license": "MIT" - }, - "node_modules/minipass": { - "version": "2.9.0", - "license": "ISC", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minizlib": { - "version": "1.3.3", - "license": "MIT", - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mkdirp-promise": { - "version": "5.0.1", - "license": "ISC", - "dependencies": { - "mkdirp": "*" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mocha": { - "version": "8.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.1", - "debug": "4.3.1", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.0.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.20", - "serialize-javascript": "5.0.1", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 10.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mock-fs": { - "version": "4.14.0", - "license": "MIT" - }, - "node_modules/moment": { - "version": "2.29.3", - "license": "MIT", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "license": "MIT" - }, - "node_modules/multibase": { - "version": "0.6.1", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/multicodec": { - "version": "0.5.7", - "license": "MIT", - "dependencies": { - "varint": "^5.0.0" - } - }, - "node_modules/multihashes": { - "version": "0.4.21", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/mv": { - "version": "2.1.1", - "license": "MIT", - "optional": true, - "dependencies": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/mv/node_modules/glob": { - "version": "6.0.4", - "license": "ISC", - "optional": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mv/node_modules/rimraf": { - "version": "2.4.5", - "license": "ISC", - "optional": true, - "dependencies": { - "glob": "^6.0.1" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/nan": { - "version": "2.15.0", - "license": "MIT", - "optional": true - }, - "node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.1.20", - "dev": true, - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/ncp": { - "version": "2.0.0", - "license": "MIT", - "optional": true, - "bin": { - "ncp": "bin/ncp" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/next-tick": { - "version": "1.1.0", - "license": "ISC" - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "license": "MIT" - }, - "node_modules/node-gyp-build": { - "version": "4.4.0", - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/number-to-bn": { - "version": "1.7.0", - "license": "MIT", - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "license": "MIT" - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.0", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/oboe": { - "version": "2.1.5", - "license": "BSD", - "dependencies": { - "http-https": "^1.0.0" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-timeout": { - "version": "1.2.1", - "license": "MIT", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "license": "ISC", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-headers": { - "version": "2.0.5", - "license": "MIT" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "license": "MIT" - }, - "node_modules/pathval": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "license": "MIT", - "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/performance-now": { - "version": "2.1.0", - "license": "MIT" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/process": { - "version": "0.11.10", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/psl": { - "version": "1.8.0", - "license": "MIT" - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.10.3", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/query-string": { - "version": "5.1.1", - "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/request": { - "version": "2.88.2", - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/responselike": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rlp": { - "version": "2.2.7", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^5.2.0" - }, - "bin": { - "rlp": "bin/rlp" - } - }, - "node_modules/rlp/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-json-stringify": { - "version": "1.2.0", - "license": "MIT", - "optional": true - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "license": "MIT" - }, - "node_modules/secp256k1": { - "version": "4.0.3", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/send": { - "version": "0.18.0", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/serialize-javascript": { - "version": "5.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "license": "MIT", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/servify": { - "version": "0.1.12", - "license": "MIT", - "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "license": "MIT" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "license": "ISC" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/simple-get": { - "version": "2.8.2", - "license": "MIT", - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/sshpk": { - "version": "1.17.0", - "license": "MIT", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-argv": { - "version": "0.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-width": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/swarm-js": { - "version": "0.1.40", - "license": "MIT", - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "node_modules/swarm-js/node_modules/get-stream": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", - "license": "MIT", - "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/is-plain-obj": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/swarm-js/node_modules/p-cancelable": { - "version": "0.3.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/prepend-http": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/swarm-js/node_modules/url-parse-lax": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tar": { - "version": "4.4.19", - "license": "ISC", - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/timed-out": { - "version": "4.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "license": "Unlicense" - }, - "node_modules/type": { - "version": "1.2.0", - "license": "ISC" - }, - "node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.6.4", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ultron": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/url-set-query": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/url-to-options": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.9", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/utf8": { - "version": "3.0.0", - "license": "MIT" - }, - "node_modules/util": { - "version": "0.12.4", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/varint": { - "version": "5.0.2", - "license": "MIT" - }, - "node_modules/vary": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/web3": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "node_modules/web3-core": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-helpers": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-method": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-promievent": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-requestmanager": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-subscriptions": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "node_modules/web3-eth": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-abi": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/web3-eth-contract": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-ens": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-iban": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "node_modules/web3-net": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-http": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ipc": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-shh": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-utils": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/websocket": { - "version": "1.0.34", - "license": "Apache-2.0", - "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", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/websocket/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.8", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wide-align": { - "version": "1.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/workerpool": { - "version": "6.1.0", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "license": "ISC" - }, - "node_modules/ws": { - "version": "3.3.3", - "license": "MIT", - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "node_modules/ws/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "node_modules/xhr": { - "version": "2.6.0", - "license": "MIT", - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xhr-request": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "node_modules/xhr-request-promise": { - "version": "0.1.3", - "license": "MIT", - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "node_modules/xhr2-cookies": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "cookiejar": "^2.1.1" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yaeti": { - "version": "0.0.6", - "license": "MIT", - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "license": "ISC" - }, - "node_modules/yargs": { - "version": "16.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@ethereum-sourcify/core": { - "version": "file:../core", - "requires": { - "@types/bunyan": "^1.8.6", - "@types/cbor": "^5.0.1", - "@types/node-fetch": "^2.5.7", - "@types/rimraf": "^3.0.2", - "@types/semver": "^7.3.10", - "bunyan": "^1.8.15", - "cbor": "^5.1.0", - "directory-tree": "^2.2.4", - "node-fetch": "^2.6.1", - "rimraf": "^3.0.2", - "semver": "^7.3.7", - "typescript": "^4.0.2", - "web3": "^1.3.0" - }, - "dependencies": { - "@ethereumjs/common": { - "version": "2.6.4", - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" - } - }, - "@ethereumjs/tx": { - "version": "3.5.1", - "requires": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" - } - }, - "@ethersproject/abi": { - "version": "5.0.7", - "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.6.1", - "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "@ethersproject/address": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "@ethersproject/base64": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.6.1", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "@ethersproject/bytes": { - "version": "5.6.1", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/constants": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "@ethersproject/hash": { - "version": "5.6.0", - "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/keccak256": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/logger": { - "version": "5.6.0" - }, - "@ethersproject/networks": { - "version": "5.6.2", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/properties": { - "version": "5.6.0", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/rlp": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/signing-key": { - "version": "5.6.1", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "@ethersproject/strings": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/transactions": { - "version": "5.6.0", - "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "@ethersproject/web": { - "version": "5.6.0", - "requires": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@sindresorhus/is": { - "version": "0.14.0" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/bn.js": { - "version": "4.11.6", - "requires": { - "@types/node": "*" - } - }, - "@types/bunyan": { - "version": "1.8.8", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/cbor": { - "version": "5.0.1", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/glob": { - "version": "7.2.0", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/minimatch": { - "version": "3.0.5", - "dev": true - }, - "@types/node": { - "version": "17.0.34" - }, - "@types/node-fetch": { - "version": "2.6.1", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "@types/pbkdf2": { - "version": "3.1.0", - "requires": { - "@types/node": "*" - } - }, - "@types/rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "@types/glob": "*", - "@types/node": "*" - } - }, - "@types/secp256k1": { - "version": "4.0.3", - "requires": { - "@types/node": "*" - } - }, - "accepts": { - "version": "1.3.8", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "ajv": { - "version": "6.12.6", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "array-flatten": { - "version": "1.1.1" - }, - "asn1": { - "version": "0.2.6", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0" - }, - "async-limiter": { - "version": "1.0.1" - }, - "asynckit": { - "version": "0.4.0" - }, - "available-typed-arrays": { - "version": "1.0.5" - }, - "aws-sign2": { - "version": "0.7.0" - }, - "aws4": { - "version": "1.11.0" - }, - "balanced-match": { - "version": "1.0.2" - }, - "base-x": { - "version": "3.0.9", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-js": { - "version": "1.5.1" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bignumber.js": { - "version": "9.0.2" - }, - "blakejs": { - "version": "1.2.1" - }, - "bluebird": { - "version": "3.7.2" - }, - "bn.js": { - "version": "4.12.0" - }, - "body-parser": { - "version": "1.20.0", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "brorand": { - "version": "1.1.0" - }, - "browserify-aes": { - "version": "1.2.0", - "requires": { - "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" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "bs58": { - "version": "4.0.1", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "buffer": { - "version": "5.7.1", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-to-arraybuffer": { - "version": "0.0.5" - }, - "buffer-xor": { - "version": "1.0.3" - }, - "bufferutil": { - "version": "4.0.6", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "bunyan": { - "version": "1.8.15", - "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "bytes": { - "version": "3.1.2" - }, - "cacheable-request": { - "version": "6.1.0", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0" - } - } - }, - "call-bind": { - "version": "1.0.2", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caseless": { - "version": "0.12.0" - }, - "cbor": { - "version": "5.2.0", - "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - } - }, - "chownr": { - "version": "1.1.4" - }, - "cids": { - "version": "0.7.5", - "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "dependencies": { - "multicodec": { - "version": "1.0.4", - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - } - } - }, - "cipher-base": { - "version": "1.0.4", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-is": { - "version": "1.1.0" - }, - "clone-response": { - "version": "1.0.2", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "combined-stream": { - "version": "1.0.8", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1" - }, - "content-disposition": { - "version": "0.5.4", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-hash": { - "version": "2.5.2", - "requires": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "content-type": { - "version": "1.0.4" - }, - "cookie": { - "version": "0.5.0" - }, - "cookie-signature": { - "version": "1.0.6" - }, - "cookiejar": { - "version": "2.1.3" - }, - "core-util-is": { - "version": "1.0.2" - }, - "cors": { - "version": "2.8.5", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "crc-32": { - "version": "1.2.2" - }, - "create-ecdh": { - "version": "4.0.4", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "create-hash": { - "version": "1.2.0", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "requires": { - "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" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "d": { - "version": "1.0.1", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "decode-uri-component": { - "version": "0.2.0" - }, - "decompress-response": { - "version": "3.3.0", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "defer-to-connect": { - "version": "1.1.3" - }, - "define-properties": { - "version": "1.1.4", - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0" - }, - "depd": { - "version": "2.0.0" - }, - "des.js": { - "version": "1.0.1", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.2.0" - }, - "diffie-hellman": { - "version": "5.0.3", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "directory-tree": { - "version": "2.3.1" - }, - "dom-walk": { - "version": "0.1.2" - }, - "dtrace-provider": { - "version": "0.8.8", - "optional": true, - "requires": { - "nan": "^2.14.0" - } - }, - "duplexer3": { - "version": "0.1.4" - }, - "ecc-jsbn": { - "version": "0.1.2", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1" - }, - "elliptic": { - "version": "6.5.4", - "requires": { - "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" - } - }, - "encodeurl": { - "version": "1.0.2" - }, - "end-of-stream": { - "version": "1.4.4", - "requires": { - "once": "^1.4.0" - } - }, - "es-abstract": { - "version": "1.20.1", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.61", - "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "escape-html": { - "version": "1.0.3" - }, - "etag": { - "version": "1.8.1" - }, - "eth-ens-namehash": { - "version": "2.0.8", - "requires": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7" - } - } - }, - "eth-lib": { - "version": "0.1.29", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethereum-bloom-filters": { - "version": "1.0.10", - "requires": { - "js-sha3": "^0.8.0" - } - }, - "ethereum-cryptography": { - "version": "0.1.3", - "requires": { - "@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" - } - }, - "ethereumjs-util": { - "version": "7.1.4", - "requires": { - "@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" - }, - "dependencies": { - "@types/bn.js": { - "version": "5.1.0", - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.0" - } - } - }, - "ethjs-unit": { - "version": "0.1.6", - "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6" - } - } - }, - "eventemitter3": { - "version": "4.0.4" - }, - "evp_bytestokey": { - "version": "1.0.3", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "express": { - "version": "4.18.1", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, - "ext": { - "version": "1.6.0", - "requires": { - "type": "^2.5.0" - }, - "dependencies": { - "type": { - "version": "2.6.0" - } - } - }, - "extend": { - "version": "3.0.2" - }, - "extsprintf": { - "version": "1.3.0" - }, - "fast-deep-equal": { - "version": "3.1.3" - }, - "fast-json-stable-stringify": { - "version": "2.1.0" - }, - "finalhandler": { - "version": "1.2.0", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - } - }, - "for-each": { - "version": "0.3.3", - "requires": { - "is-callable": "^1.1.3" - } - }, - "forever-agent": { - "version": "0.6.1" - }, - "form-data": { - "version": "3.0.1", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0" - }, - "fresh": { - "version": "0.5.2" - }, - "fs-extra": { - "version": "4.0.3", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0" - }, - "function-bind": { - "version": "1.1.1" - }, - "function.prototype.name": { - "version": "1.1.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3" - }, - "get-intrinsic": { - "version": "1.1.1", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "4.1.0", - "requires": { - "pump": "^3.0.0" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "getpass": { - "version": "0.1.7", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.2.3", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "global": { - "version": "4.4.0", - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "got": { - "version": "9.6.0", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10" - }, - "har-schema": { - "version": "2.0.0" - }, - "har-validator": { - "version": "5.1.5", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2" - }, - "has-property-descriptors": { - "version": "1.0.0", - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbol-support-x": { - "version": "1.4.2" - }, - "has-symbols": { - "version": "1.0.3" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, - "has-tostringtag": { - "version": "1.0.0", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hash-base": { - "version": "3.1.0", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "http-cache-semantics": { - "version": "4.1.0" - }, - "http-errors": { - "version": "2.0.0", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-https": { - "version": "1.0.0" - }, - "http-signature": { - "version": "1.2.0", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "idna-uts46-hx": { - "version": "2.3.1", - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0" - } - } - }, - "ieee754": { - "version": "1.2.1" - }, - "inflight": { - "version": "1.0.6", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4" - }, - "internal-slot": { - "version": "1.0.3", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "ipaddr.js": { - "version": "1.9.1" - }, - "is-arguments": { - "version": "1.1.1", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-bigint": { - "version": "1.0.4", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.4" - }, - "is-date-object": { - "version": "1.0.5", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-function": { - "version": "1.0.2" - }, - "is-generator-function": { - "version": "1.0.10", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-hex-prefixed": { - "version": "1.0.0" - }, - "is-negative-zero": { - "version": "2.0.2" - }, - "is-number-object": { - "version": "1.0.7", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-object": { - "version": "1.0.2" - }, - "is-plain-obj": { - "version": "1.1.0" - }, - "is-regex": { - "version": "1.1.4", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-retry-allowed": { - "version": "1.2.0" - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "1.1.0" - }, - "is-string": { - "version": "1.0.7", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.9", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0" - }, - "is-weakref": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2" - } - }, - "isstream": { - "version": "0.1.2" - }, - "isurl": { - "version": "1.0.0", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, - "js-sha3": { - "version": "0.8.0" - }, - "jsbn": { - "version": "0.1.1" - }, - "json-buffer": { - "version": "3.0.0" - }, - "json-schema": { - "version": "0.4.0" - }, - "json-schema-traverse": { - "version": "0.4.1" - }, - "json-stringify-safe": { - "version": "5.0.1" - }, - "jsonfile": { - "version": "4.0.0", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.2", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "keccak": { - "version": "3.0.2", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - } - }, - "keyv": { - "version": "3.1.0", - "requires": { - "json-buffer": "3.0.0" - } - }, - "lowercase-keys": { - "version": "1.0.1" - }, - "md5.js": { - "version": "1.3.5", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0" - }, - "merge-descriptors": { - "version": "1.0.1" - }, - "methods": { - "version": "1.1.2" - }, - "miller-rabin": { - "version": "4.0.1", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0" - }, - "mime-db": { - "version": "1.52.0" - }, - "mime-types": { - "version": "2.1.35", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-response": { - "version": "1.0.1" - }, - "min-document": { - "version": "2.19.0", - "requires": { - "dom-walk": "^0.1.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1" - }, - "minimatch": { - "version": "3.1.2", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6" - }, - "minipass": { - "version": "2.9.0", - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "requires": { - "minimist": "^1.2.6" - } - }, - "mkdirp-promise": { - "version": "5.0.1", - "requires": { - "mkdirp": "*" - } - }, - "mock-fs": { - "version": "4.14.0" - }, - "moment": { - "version": "2.29.3", - "optional": true - }, - "ms": { - "version": "2.0.0" - }, - "multibase": { - "version": "0.6.1", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multicodec": { - "version": "0.5.7", - "requires": { - "varint": "^5.0.0" - } - }, - "multihashes": { - "version": "0.4.21", - "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - }, - "dependencies": { - "multibase": { - "version": "0.7.0", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } - }, - "mv": { - "version": "2.1.1", - "optional": true, - "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "optional": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "2.4.5", - "optional": true, - "requires": { - "glob": "^6.0.1" - } - } - } - }, - "nan": { - "version": "2.15.0", - "optional": true - }, - "nano-json-stream-parser": { - "version": "0.1.2" - }, - "ncp": { - "version": "2.0.0", - "optional": true - }, - "negotiator": { - "version": "0.6.3" - }, - "next-tick": { - "version": "1.1.0" - }, - "node-addon-api": { - "version": "2.0.2" - }, - "node-fetch": { - "version": "2.6.7", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-gyp-build": { - "version": "4.4.0" - }, - "nofilter": { - "version": "1.0.4" - }, - "normalize-url": { - "version": "4.5.1" - }, - "number-to-bn": { - "version": "1.7.0", - "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6" - } - } - }, - "oauth-sign": { - "version": "0.9.0" - }, - "object-assign": { - "version": "4.1.1" - }, - "object-inspect": { - "version": "1.12.0" - }, - "object-keys": { - "version": "1.1.1" - }, - "object.assign": { - "version": "4.1.2", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "oboe": { - "version": "2.1.5", - "requires": { - "http-https": "^1.0.0" - } - }, - "on-finished": { - "version": "2.4.1", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "requires": { - "wrappy": "1" - } - }, - "p-cancelable": { - "version": "1.1.0" - }, - "p-finally": { - "version": "1.0.0" - }, - "p-timeout": { - "version": "1.2.1", - "requires": { - "p-finally": "^1.0.0" - } - }, - "parse-asn1": { - "version": "5.1.6", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-headers": { - "version": "2.0.5" - }, - "parseurl": { - "version": "1.3.3" - }, - "path-is-absolute": { - "version": "1.0.1" - }, - "path-to-regexp": { - "version": "0.1.7" - }, - "pbkdf2": { - "version": "3.1.2", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0" - }, - "prepend-http": { - "version": "2.0.0" - }, - "process": { - "version": "0.11.10" - }, - "proxy-addr": { - "version": "2.0.7", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "psl": { - "version": "1.8.0" - }, - "public-encrypt": { - "version": "4.0.3", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1" - }, - "qs": { - "version": "6.10.3", - "requires": { - "side-channel": "^1.0.4" - } - }, - "query-string": { - "version": "5.1.1", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "randombytes": { - "version": "2.1.0", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1" - }, - "raw-body": { - "version": "2.5.1", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "request": { - "version": "2.88.2", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "form-data": { - "version": "2.3.3", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.5.3" - } - } - }, - "responselike": { - "version": "1.0.2", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rlp": { - "version": "2.2.7", - "requires": { - "bn.js": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "safe-buffer": { - "version": "5.2.1" - }, - "safe-json-stringify": { - "version": "1.2.0", - "optional": true - }, - "safer-buffer": { - "version": "2.1.2" - }, - "scrypt-js": { - "version": "3.0.1" - }, - "secp256k1": { - "version": "4.0.3", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "send": { - "version": "0.18.0", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "ms": { - "version": "2.1.3" - } - } - }, - "serve-static": { - "version": "1.15.0", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "servify": { - "version": "0.1.12", - "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - } - }, - "setimmediate": { - "version": "1.0.5" - }, - "setprototypeof": { - "version": "1.2.0" - }, - "sha.js": { - "version": "2.4.11", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "side-channel": { - "version": "1.0.4", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "simple-concat": { - "version": "1.0.1" - }, - "simple-get": { - "version": "2.8.2", - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "sshpk": { - "version": "1.17.0", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "statuses": { - "version": "2.0.1" - }, - "strict-uri-encode": { - "version": "1.1.0" - }, - "string_decoder": { - "version": "1.3.0", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "strip-hex-prefix": { - "version": "1.0.0", - "requires": { - "is-hex-prefixed": "1.0.0" - } - }, - "swarm-js": { - "version": "0.1.40", - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - }, - "dependencies": { - "get-stream": { - "version": "3.0.0" - }, - "got": { - "version": "7.1.0", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - }, - "p-cancelable": { - "version": "0.3.0" - }, - "prepend-http": { - "version": "1.0.4" - }, - "url-parse-lax": { - "version": "1.0.0", - "requires": { - "prepend-http": "^1.0.1" - } - } - } - }, - "tar": { - "version": "4.4.19", - "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - } - }, - "timed-out": { - "version": "4.0.1" - }, - "to-readable-stream": { - "version": "1.0.0" - }, - "toidentifier": { - "version": "1.0.1" - }, - "tough-cookie": { - "version": "2.5.0", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "0.0.3" - }, - "tunnel-agent": { - "version": "0.6.0", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5" - }, - "type": { - "version": "1.2.0" - }, - "type-is": { - "version": "1.6.18", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.6.4", - "dev": true - }, - "ultron": { - "version": "1.1.1" - }, - "unbox-primitive": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "universalify": { - "version": "0.1.2" - }, - "unpipe": { - "version": "1.0.0" - }, - "uri-js": { - "version": "4.4.1", - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse-lax": { - "version": "3.0.0", - "requires": { - "prepend-http": "^2.0.0" - } - }, - "url-set-query": { - "version": "1.0.0" - }, - "url-to-options": { - "version": "1.0.1" - }, - "utf-8-validate": { - "version": "5.0.9", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "utf8": { - "version": "3.0.0" - }, - "util": { - "version": "0.12.4", - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2" - }, - "utils-merge": { - "version": "1.0.1" - }, - "uuid": { - "version": "3.4.0" - }, - "varint": { - "version": "5.0.2" - }, - "vary": { - "version": "1.1.2" - }, - "verror": { - "version": "1.10.0", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "web3": { - "version": "1.7.3", - "requires": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-bzz": { - "version": "1.7.3", - "requires": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-core": { - "version": "1.7.3", - "requires": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-core-helpers": { - "version": "1.7.3", - "requires": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-method": { - "version": "1.7.3", - "requires": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-promievent": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-core-requestmanager": { - "version": "1.7.3", - "requires": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" - } - }, - "web3-core-subscriptions": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" - } - }, - "web3-eth": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-abi": { - "version": "1.7.3", - "requires": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - } - }, - "web3-eth-accounts": { - "version": "1.7.3", - "requires": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "uuid": { - "version": "3.3.2" - } - } - }, - "web3-eth-contract": { - "version": "1.7.3", - "requires": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-ens": { - "version": "1.7.3", - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-iban": { - "version": "1.7.3", - "requires": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" - } - }, - "web3-eth-personal": { - "version": "1.7.3", - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-net": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-providers-http": { - "version": "1.7.3", - "requires": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.7.3", - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" - } - }, - "web3-providers-ws": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" - } - }, - "web3-shh": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" - } - }, - "web3-utils": { - "version": "1.7.3", - "requires": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - }, - "webidl-conversions": { - "version": "3.0.1" - }, - "websocket": { - "version": "1.0.34", - "requires": { - "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" - } - }, - "whatwg-url": { - "version": "5.0.0", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-typed-array": { - "version": "1.1.8", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" - } - }, - "wrappy": { - "version": "1.0.2" - }, - "ws": { - "version": "3.3.3", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2" - } - } - }, - "xhr": { - "version": "2.6.0", - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xhr-request": { - "version": "1.1.0", - "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "xhr-request-promise": { - "version": "0.1.3", - "requires": { - "xhr-request": "^1.1.0" - } - }, - "xhr2-cookies": { - "version": "1.1.0", - "requires": { - "cookiejar": "^2.1.1" - } - }, - "xtend": { - "version": "4.0.2" - }, - "yaeti": { - "version": "0.0.6" - }, - "yallist": { - "version": "3.1.1" - } - } - }, - "@ethereumjs/common": { - "version": "2.6.4", - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" - } - }, - "@ethereumjs/tx": { - "version": "3.5.1", - "requires": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" - } - }, - "@ethersproject/abi": { - "version": "5.0.7", - "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.6.1", - "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "@ethersproject/address": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "@ethersproject/base64": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.6.1", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "@ethersproject/bytes": { - "version": "5.6.1", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/constants": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "@ethersproject/hash": { - "version": "5.6.0", - "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/keccak256": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/logger": { - "version": "5.6.0" - }, - "@ethersproject/networks": { - "version": "5.6.2", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/properties": { - "version": "5.6.0", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/rlp": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/signing-key": { - "version": "5.6.1", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "@ethersproject/strings": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/transactions": { - "version": "5.6.0", - "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "@ethersproject/web": { - "version": "5.6.0", - "requires": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@jsdevtools/chai-exec": { - "version": "2.1.1", - "dev": true, - "requires": { - "@jsdevtools/ez-spawn": "^3.0.3" - } - }, - "@jsdevtools/ez-spawn": { - "version": "3.0.4", - "dev": true, - "requires": { - "call-me-maybe": "^1.0.1", - "cross-spawn": "^7.0.3", - "string-argv": "^0.3.1", - "type-detect": "^4.0.8" - } - }, - "@sindresorhus/is": { - "version": "0.14.0" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/bn.js": { - "version": "4.11.6", - "requires": { - "@types/node": "*" - } - }, - "@types/bunyan": { - "version": "1.8.8", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "16.11.36" - }, - "@types/pbkdf2": { - "version": "3.1.0", - "requires": { - "@types/node": "*" - } - }, - "@types/secp256k1": { - "version": "4.0.3", - "requires": { - "@types/node": "*" - } - }, - "@ungap/promise-all-settled": { - "version": "1.1.2", - "dev": true - }, - "accepts": { - "version": "1.3.8", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "ajv": { - "version": "6.12.6", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { - "version": "4.1.1", - "dev": true - }, - "ansi-regex": { - "version": "3.0.1", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "2.0.1", - "dev": true - }, - "array-flatten": { - "version": "1.1.1" - }, - "asn1": { - "version": "0.2.6", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0" - }, - "assertion-error": { - "version": "1.1.0", - "dev": true - }, - "async-limiter": { - "version": "1.0.1" - }, - "asynckit": { - "version": "0.4.0" - }, - "available-typed-arrays": { - "version": "1.0.5" - }, - "aws-sign2": { - "version": "0.7.0" - }, - "aws4": { - "version": "1.11.0" - }, - "balanced-match": { - "version": "1.0.2", - "devOptional": true - }, - "base-x": { - "version": "3.0.9", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-js": { - "version": "1.5.1" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bignumber.js": { - "version": "9.0.2" - }, - "binary-extensions": { - "version": "2.2.0", - "dev": true - }, - "blakejs": { - "version": "1.2.1" - }, - "bluebird": { - "version": "3.7.2" - }, - "bn.js": { - "version": "4.12.0" - }, - "body-parser": { - "version": "1.20.0", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "devOptional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0" - }, - "browser-stdout": { - "version": "1.3.1", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "requires": { - "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" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "bs58": { - "version": "4.0.1", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "buffer": { - "version": "5.7.1", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-to-arraybuffer": { - "version": "0.0.5" - }, - "buffer-xor": { - "version": "1.0.3" - }, - "bufferutil": { - "version": "4.0.6", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "bunyan": { - "version": "1.8.15", - "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "bytes": { - "version": "3.1.2" - }, - "cacheable-request": { - "version": "6.1.0", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0" - } - } - }, - "call-bind": { - "version": "1.0.2", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "dev": true - }, - "camelcase": { - "version": "6.3.0", - "dev": true - }, - "caseless": { - "version": "0.12.0" - }, - "chai": { - "version": "4.3.6", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - } - }, - "chai-exec": { - "version": "2.1.1", - "dev": true, - "requires": { - "@jsdevtools/chai-exec": "2.1.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "check-error": { - "version": "1.0.2", - "dev": true - }, - "chokidar": { - "version": "3.5.1", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, - "chownr": { - "version": "1.1.4" - }, - "cids": { - "version": "0.7.5", - "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "dependencies": { - "multicodec": { - "version": "1.0.4", - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - } - } - }, - "cipher-base": { - "version": "1.0.4", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-is": { - "version": "1.1.0" - }, - "cliui": { - "version": "7.0.4", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "clone-response": { - "version": "1.0.2", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "6.2.1" - }, - "concat-map": { - "version": "0.0.1", - "devOptional": true - }, - "content-disposition": { - "version": "0.5.4", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-hash": { - "version": "2.5.2", - "requires": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "content-type": { - "version": "1.0.4" - }, - "cookie": { - "version": "0.5.0" - }, - "cookie-signature": { - "version": "1.0.6" - }, - "cookiejar": { - "version": "2.1.3" - }, - "core-util-is": { - "version": "1.0.2" - }, - "cors": { - "version": "2.8.5", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "crc-32": { - "version": "1.2.2" - }, - "create-ecdh": { - "version": "4.0.4", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "create-hash": { - "version": "1.2.0", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "requires": { - "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" - } - }, - "cross-spawn": { - "version": "7.0.3", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "d": { - "version": "1.0.1", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "4.3.1", - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "dev": true - } - } - }, - "decamelize": { - "version": "4.0.0", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0" - }, - "decompress-response": { - "version": "3.3.0", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-eql": { - "version": "3.0.1", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "defer-to-connect": { - "version": "1.1.3" - }, - "define-properties": { - "version": "1.1.4", - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0" - }, - "depd": { - "version": "2.0.0" - }, - "des.js": { - "version": "1.0.1", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.2.0" - }, - "diff": { - "version": "5.0.0", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "dom-walk": { - "version": "0.1.2" - }, - "dtrace-provider": { - "version": "0.8.8", - "optional": true, - "requires": { - "nan": "^2.14.0" - } - }, - "duplexer3": { - "version": "0.1.4" - }, - "ecc-jsbn": { - "version": "0.1.2", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1" - }, - "elliptic": { - "version": "6.5.4", - "requires": { - "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" - } - }, - "emoji-regex": { - "version": "8.0.0", - "dev": true - }, - "encodeurl": { - "version": "1.0.2" - }, - "end-of-stream": { - "version": "1.4.4", - "requires": { - "once": "^1.4.0" - } - }, - "es-abstract": { - "version": "1.20.1", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.61", - "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "escalade": { - "version": "3.1.1", - "dev": true - }, - "escape-html": { - "version": "1.0.3" - }, - "escape-string-regexp": { - "version": "4.0.0", - "dev": true - }, - "etag": { - "version": "1.8.1" - }, - "eth-ens-namehash": { - "version": "2.0.8", - "requires": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7" - } - } - }, - "eth-lib": { - "version": "0.1.29", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethereum-bloom-filters": { - "version": "1.0.10", - "requires": { - "js-sha3": "^0.8.0" - } - }, - "ethereum-cryptography": { - "version": "0.1.3", - "requires": { - "@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" - } - }, - "ethereumjs-util": { - "version": "7.1.4", - "requires": { - "@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" - }, - "dependencies": { - "@types/bn.js": { - "version": "5.1.0", - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.0" - } - } - }, - "ethjs-unit": { - "version": "0.1.6", - "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6" - } - } - }, - "eventemitter3": { - "version": "4.0.4" - }, - "evp_bytestokey": { - "version": "1.0.3", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "express": { - "version": "4.18.1", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } - } - }, - "ext": { - "version": "1.6.0", - "requires": { - "type": "^2.5.0" - }, - "dependencies": { - "type": { - "version": "2.6.0" - } - } - }, - "extend": { - "version": "3.0.2" - }, - "extsprintf": { - "version": "1.3.0" - }, - "fast-deep-equal": { - "version": "3.1.3" - }, - "fast-json-stable-stringify": { - "version": "2.1.0" - }, - "fill-range": { - "version": "7.0.1", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.2.0", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } - } - }, - "find-up": { - "version": "5.0.0", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat": { - "version": "5.0.2", - "dev": true - }, - "for-each": { - "version": "0.3.3", - "requires": { - "is-callable": "^1.1.3" - } - }, - "forever-agent": { - "version": "0.6.1" - }, - "form-data": { - "version": "2.3.3", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0" - }, - "fresh": { - "version": "0.5.2" - }, - "fs-extra": { - "version": "4.0.3", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "dev": true - }, - "function-bind": { - "version": "1.1.1" - }, - "function.prototype.name": { - "version": "1.1.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3" - }, - "get-caller-file": { - "version": "2.0.5", - "dev": true - }, - "get-func-name": { - "version": "2.0.0", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "4.1.0", - "requires": { - "pump": "^3.0.0" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "getpass": { - "version": "0.1.7", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "global": { - "version": "4.4.0", - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "got": { - "version": "9.6.0", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10" - }, - "growl": { - "version": "1.10.5", - "dev": true - }, - "har-schema": { - "version": "2.0.0" - }, - "har-validator": { - "version": "5.1.5", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2" - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbol-support-x": { - "version": "1.4.2" - }, - "has-symbols": { - "version": "1.0.3" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, - "has-tostringtag": { - "version": "1.0.0", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hash-base": { - "version": "3.1.0", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "http-cache-semantics": { - "version": "4.1.0" - }, - "http-errors": { - "version": "2.0.0", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-https": { - "version": "1.0.0" - }, - "http-signature": { - "version": "1.2.0", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "idna-uts46-hx": { - "version": "2.3.1", - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0" - } - } - }, - "ieee754": { - "version": "1.2.1" - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" - }, - "inflight": { - "version": "1.0.6", - "devOptional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4" - }, - "internal-slot": { - "version": "1.0.3", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "ipaddr.js": { - "version": "1.9.1" - }, - "is-arguments": { - "version": "1.1.1", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-bigint": { - "version": "1.0.4", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.4" - }, - "is-date-object": { - "version": "1.0.5", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "dev": true - }, - "is-function": { - "version": "1.0.2" - }, - "is-generator-function": { - "version": "1.0.10", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.3", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hex-prefixed": { - "version": "1.0.0" - }, - "is-negative-zero": { - "version": "2.0.2" - }, - "is-number": { - "version": "7.0.0", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-object": { - "version": "1.0.2" - }, - "is-plain-obj": { - "version": "2.1.0", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-retry-allowed": { - "version": "1.2.0" - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "1.1.0" - }, - "is-string": { - "version": "1.0.7", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.9", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0" - }, - "is-weakref": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "isexe": { - "version": "2.0.0", - "dev": true - }, - "isstream": { - "version": "0.1.2" - }, - "isurl": { - "version": "1.0.0", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, - "js-sha3": { - "version": "0.8.0" - }, - "js-yaml": { - "version": "4.0.0", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsbn": { - "version": "0.1.1" - }, - "json-buffer": { - "version": "3.0.0" - }, - "json-schema": { - "version": "0.4.0" - }, - "json-schema-traverse": { - "version": "0.4.1" - }, - "json-stringify-safe": { - "version": "5.0.1" - }, - "jsonfile": { - "version": "4.0.0", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.2", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "keccak": { - "version": "3.0.2", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - } - }, - "keyv": { - "version": "3.1.0", - "requires": { - "json-buffer": "3.0.0" - } - }, - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "requires": { - "immediate": "~3.0.5" - } - }, - "locate-path": { - "version": "6.0.0", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "log-symbols": { - "version": "4.0.0", - "dev": true, - "requires": { - "chalk": "^4.0.0" - } - }, - "loupe": { - "version": "2.3.4", - "dev": true, - "requires": { - "get-func-name": "^2.0.0" - } - }, - "lowercase-keys": { - "version": "1.0.1" - }, - "md5.js": { - "version": "1.3.5", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0" - }, - "merge-descriptors": { - "version": "1.0.1" - }, - "methods": { - "version": "1.1.2" - }, - "miller-rabin": { - "version": "4.0.1", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0" - }, - "mime-db": { - "version": "1.52.0" - }, - "mime-types": { - "version": "2.1.35", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-response": { - "version": "1.0.1" - }, - "min-document": { - "version": "2.19.0", - "requires": { - "dom-walk": "^0.1.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1" - }, - "minimatch": { - "version": "3.0.4", - "devOptional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6" - }, - "minipass": { - "version": "2.9.0", - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "requires": { - "minimist": "^1.2.6" - } - }, - "mkdirp-promise": { - "version": "5.0.1", - "requires": { - "mkdirp": "*" - } - }, - "mocha": { - "version": "8.4.0", - "dev": true, - "requires": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.1", - "debug": "4.3.1", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.0.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.20", - "serialize-javascript": "5.0.1", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - } - }, - "mock-fs": { - "version": "4.14.0" - }, - "moment": { - "version": "2.29.3", - "optional": true - }, - "ms": { - "version": "2.1.3" - }, - "multibase": { - "version": "0.6.1", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multicodec": { - "version": "0.5.7", - "requires": { - "varint": "^5.0.0" - } - }, - "multihashes": { - "version": "0.4.21", - "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - }, - "dependencies": { - "multibase": { - "version": "0.7.0", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } - }, - "mv": { - "version": "2.1.1", - "optional": true, - "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "optional": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "2.4.5", - "optional": true, - "requires": { - "glob": "^6.0.1" - } - } - } - }, - "nan": { - "version": "2.15.0", - "optional": true - }, - "nano-json-stream-parser": { - "version": "0.1.2" - }, - "nanoid": { - "version": "3.1.20", - "dev": true - }, - "ncp": { - "version": "2.0.0", - "optional": true - }, - "negotiator": { - "version": "0.6.3" - }, - "next-tick": { - "version": "1.1.0" - }, - "node-addon-api": { - "version": "2.0.2" - }, - "node-gyp-build": { - "version": "4.4.0" - }, - "normalize-path": { - "version": "3.0.0", - "dev": true - }, - "normalize-url": { - "version": "4.5.1" - }, - "number-to-bn": { - "version": "1.7.0", - "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6" - } - } - }, - "oauth-sign": { - "version": "0.9.0" - }, - "object-assign": { - "version": "4.1.1" - }, - "object-inspect": { - "version": "1.12.0" - }, - "object-keys": { - "version": "1.1.1" - }, - "object.assign": { - "version": "4.1.2", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "oboe": { - "version": "2.1.5", - "requires": { - "http-https": "^1.0.0" - } - }, - "on-finished": { - "version": "2.4.1", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "requires": { - "wrappy": "1" - } - }, - "p-cancelable": { - "version": "1.1.0" - }, - "p-finally": { - "version": "1.0.0" - }, - "p-limit": { - "version": "3.1.0", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-timeout": { - "version": "1.2.1", - "requires": { - "p-finally": "^1.0.0" - } - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "parse-asn1": { - "version": "5.1.6", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-headers": { - "version": "2.0.5" - }, - "parseurl": { - "version": "1.3.3" - }, - "path-exists": { - "version": "4.0.0", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "devOptional": true - }, - "path-key": { - "version": "3.1.1", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7" - }, - "pathval": { - "version": "1.1.1", - "dev": true - }, - "pbkdf2": { - "version": "3.1.2", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0" - }, - "picomatch": { - "version": "2.3.1", - "dev": true - }, - "prepend-http": { - "version": "2.0.0" - }, - "process": { - "version": "0.11.10" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "proxy-addr": { - "version": "2.0.7", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "psl": { - "version": "1.8.0" - }, - "public-encrypt": { - "version": "4.0.3", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1" - }, - "qs": { - "version": "6.10.3", - "requires": { - "side-channel": "^1.0.4" - } - }, - "query-string": { - "version": "5.1.1", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "randombytes": { - "version": "2.1.0", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1" - }, - "raw-body": { - "version": "2.5.1", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.5.0", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "request": { - "version": "2.88.2", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.3" - } - } - }, - "require-directory": { - "version": "2.1.1", - "dev": true - }, - "responselike": { - "version": "1.0.2", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rlp": { - "version": "2.2.7", - "requires": { - "bn.js": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "safe-buffer": { - "version": "5.2.1" - }, - "safe-json-stringify": { - "version": "1.2.0", - "optional": true - }, - "safer-buffer": { - "version": "2.1.2" - }, - "scrypt-js": { - "version": "3.0.1" - }, - "secp256k1": { - "version": "4.0.3", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "send": { - "version": "0.18.0", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0" - } - } - } - } - }, - "serialize-javascript": { - "version": "5.0.1", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-static": { - "version": "1.15.0", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "servify": { - "version": "0.1.12", - "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - } - }, - "setimmediate": { - "version": "1.0.5" - }, - "setprototypeof": { - "version": "1.2.0" - }, - "sha.js": { - "version": "2.4.11", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "2.0.0", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "simple-concat": { - "version": "1.0.1" - }, - "simple-get": { - "version": "2.8.2", - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "sshpk": { - "version": "1.17.0", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "statuses": { - "version": "2.0.1" - }, - "strict-uri-encode": { - "version": "1.1.0" - }, - "string_decoder": { - "version": "1.3.0", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-argv": { - "version": "0.3.1", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "strip-ansi": { - "version": "4.0.0", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-hex-prefix": { - "version": "1.0.0", - "requires": { - "is-hex-prefixed": "1.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "swarm-js": { - "version": "0.1.40", - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - }, - "dependencies": { - "get-stream": { - "version": "3.0.0" - }, - "got": { - "version": "7.1.0", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0" - }, - "p-cancelable": { - "version": "0.3.0" - }, - "prepend-http": { - "version": "1.0.4" - }, - "url-parse-lax": { - "version": "1.0.0", - "requires": { - "prepend-http": "^1.0.1" - } - } - } - }, - "tar": { - "version": "4.4.19", - "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - } - }, - "timed-out": { - "version": "4.0.1" - }, - "to-readable-stream": { - "version": "1.0.0" - }, - "to-regex-range": { - "version": "5.0.1", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1" - }, - "tough-cookie": { - "version": "2.5.0", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5" - }, - "type": { - "version": "1.2.0" - }, - "type-detect": { - "version": "4.0.8", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.6.4", - "dev": true - }, - "ultron": { - "version": "1.1.1" - }, - "unbox-primitive": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "universalify": { - "version": "0.1.2" - }, - "unpipe": { - "version": "1.0.0" - }, - "uri-js": { - "version": "4.4.1", - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse-lax": { - "version": "3.0.0", - "requires": { - "prepend-http": "^2.0.0" - } - }, - "url-set-query": { - "version": "1.0.0" - }, - "url-to-options": { - "version": "1.0.1" - }, - "utf-8-validate": { - "version": "5.0.9", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "utf8": { - "version": "3.0.0" - }, - "util": { - "version": "0.12.4", - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2" - }, - "utils-merge": { - "version": "1.0.1" - }, - "uuid": { - "version": "3.4.0" - }, - "varint": { - "version": "5.0.2" - }, - "vary": { - "version": "1.1.2" - }, - "verror": { - "version": "1.10.0", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "web3": { - "version": "1.7.3", - "requires": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-bzz": { - "version": "1.7.3", - "requires": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-core": { - "version": "1.7.3", - "requires": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-core-helpers": { - "version": "1.7.3", - "requires": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-method": { - "version": "1.7.3", - "requires": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-promievent": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-core-requestmanager": { - "version": "1.7.3", - "requires": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" - } - }, - "web3-core-subscriptions": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" - } - }, - "web3-eth": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-abi": { - "version": "1.7.3", - "requires": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - } - }, - "web3-eth-accounts": { - "version": "1.7.3", - "requires": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "uuid": { - "version": "3.3.2" - } - } - }, - "web3-eth-contract": { - "version": "1.7.3", - "requires": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-ens": { - "version": "1.7.3", - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-iban": { - "version": "1.7.3", - "requires": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" - } - }, - "web3-eth-personal": { - "version": "1.7.3", - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-net": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-providers-http": { - "version": "1.7.3", - "requires": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.7.3", - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" - } - }, - "web3-providers-ws": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" - } - }, - "web3-shh": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" - } - }, - "web3-utils": { - "version": "1.7.3", - "requires": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - }, - "websocket": { - "version": "1.0.34", - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } - } - }, - "which": { - "version": "2.0.2", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-typed-array": { - "version": "1.1.8", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" - } - }, - "wide-align": { - "version": "1.1.3", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "workerpool": { - "version": "6.1.0", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2" - }, - "ws": { - "version": "3.3.3", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2" - } - } - }, - "xhr": { - "version": "2.6.0", - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xhr-request": { - "version": "1.1.0", - "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "xhr-request-promise": { - "version": "0.1.3", - "requires": { - "xhr-request": "^1.1.0" - } - }, - "xhr2-cookies": { - "version": "1.1.0", - "requires": { - "cookiejar": "^2.1.1" - } - }, - "xtend": { - "version": "4.0.2" - }, - "y18n": { - "version": "5.0.8", - "dev": true - }, - "yaeti": { - "version": "0.0.6" - }, - "yallist": { - "version": "3.1.1" - }, - "yargs": { - "version": "16.2.0", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "yargs-parser": { - "version": "20.2.4", - "dev": true - }, - "yargs-unparser": { - "version": "2.0.0", - "dev": true, - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - } - }, - "yocto-queue": { - "version": "0.1.0", - "dev": true - } - } -} diff --git a/services/validation/package.json b/services/validation/package.json deleted file mode 100644 index 90374cc77..000000000 --- a/services/validation/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "@ethereum-sourcify/validation", - "version": "0.2.10", - "description": "Pre-verification module to check if files are valid and ready to be submitted for verification", - "bin": { - "sourcify-validation": "./build/index.js" - }, - "files": [ - "build" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/ethereum/sourcify.git" - }, - "main": "build/index.js", - "scripts": { - "test": "npm run build && mocha --exit", - "build": "rimraf ./build && tsc", - "start": "npm run build && node build/index.js" - }, - "author": "sourcifyeth", - "license": "MIT", - "devDependencies": { - "@types/bunyan": "^1.8.6", - "@types/node": "^16.11.36", - "chai": "^4.2.0", - "chai-exec": "^2.1.1", - "mocha": "^8.1.3", - "rimraf": "^3.0.2", - "typescript": "^4.0.2" - }, - "dependencies": { - "@ethereum-sourcify/core": "*", - "bunyan": "^1.8.15", - "commander": "^6.1.0", - "jszip": "^3.10.1", - "web3": "^1.2.11" - } -} diff --git a/services/validation/src/ValidationService.ts b/services/validation/src/ValidationService.ts deleted file mode 100644 index 63753b89e..000000000 --- a/services/validation/src/ValidationService.ts +++ /dev/null @@ -1,525 +0,0 @@ -import bunyan from "bunyan"; -import Web3 from "web3"; -import JSZip from "jszip"; -import { - StringMap, - SourceMap, - PathBuffer, - PathContent, - CheckedContract, - InvalidSources, - MissingSources, -} from "@ethereum-sourcify/core"; -import fs from "fs"; -import Path from "path"; -/** - * Regular expression matching metadata nested within another json. - */ -const NESTED_METADATA_REGEX = - /"{\\"compiler\\":{\\"version\\".*?},\\"version\\":1}"/; -const HARDHAT_OUTPUT_FORMAT_REGEX = /"hh-sol-build-info-1"/; - -const CONTENT_VARIATORS = [ - (content: string) => content, - (content: string) => content.replace(/\r?\n/g, "\r\n"), - (content: string) => content.replace(/\r\n/g, "\n"), -]; - -const ENDING_VARIATORS = [ - (content: string) => content, - (content: string) => content.trimEnd(), - (content: string) => content.trimEnd() + "\n", - (content: string) => content.trimEnd() + "\r\n", - (content: string) => content + "\n", - (content: string) => content + "\r\n", -]; - -export interface IValidationService { - /** - * Checks all metadata files found in the provided paths. Paths may include regular files, directoris and zip archives. - * - * @param paths The array of paths to be searched and checked. - * @param ignoring Optional array where all unreadable paths can be stored. - * @returns An array of CheckedContract objects. - * @throws Error if no metadata files are found. - */ - checkPaths(paths: string[], ignoring?: string[]): Promise; - - /** - * Checks the provided files. Works with zips. - * Attempts to find all the resources specified in every metadata file found. - * - * @param files The array or object of buffers to be checked. - * @returns An array of CheckedContract objets. - * @throws Error if no metadata files are found. - */ - checkFiles( - files: PathBuffer[], - unused?: string[] - ): Promise; - useAllSources( - contract: CheckedContract, - files: PathBuffer[] - ): Promise; -} - -export class ValidationService implements IValidationService { - logger: bunyan; - - /** - * @param logger a custom logger that logs all errors; undefined or no logger provided turns the logging off - */ - constructor(logger?: bunyan) { - this.logger = logger; - } - - checkPaths(paths: string[], ignoring?: string[]) { - const files: PathBuffer[] = []; - paths.forEach((path) => { - if (fs.existsSync(path)) { - this.traversePathRecursively(path, (filePath) => { - const fullPath = Path.resolve(filePath); - const file = { buffer: fs.readFileSync(filePath), path: fullPath }; - files.push(file); - }); - } else if (ignoring) { - ignoring.push(path); - } - }); - - return this.checkFiles(files); - } - - // Pass all input source files to the CheckedContract, not just those stated in metadata. - async useAllSources(contract: CheckedContract, files: PathBuffer[]) { - await this.unzipFiles(files); - const parsedFiles = files.map((pathBuffer) => ({ - content: pathBuffer.buffer.toString(), - path: pathBuffer.path, - })); - const { sourceFiles } = this.splitFiles(parsedFiles); - const stringMapSourceFiles = this.pathContentArrayToStringMap(sourceFiles); - // Files at contract.solidity are already hash matched with the sources in metadata. Use them instead of the user input .sol files. - Object.assign(stringMapSourceFiles, contract.solidity); - const contractWithAllSources = new CheckedContract( - contract.metadata, - stringMapSourceFiles, - contract.missing, - contract.invalid - ); - return contractWithAllSources; - } - - async checkFiles(files: PathBuffer[], unused?: string[]) { - await this.unzipFiles(files); - const parsedFiles = files.map((pathBuffer) => ({ - content: pathBuffer.buffer.toString(), - path: pathBuffer.path, - })); - const { metadataFiles, sourceFiles } = this.splitFiles(parsedFiles); - - const checkedContracts: CheckedContract[] = []; - const errorMsgMaterial: string[] = []; - - const byHash = this.storeByHash(sourceFiles); - const usedFiles: string[] = []; - - metadataFiles.forEach((metadata) => { - const { - foundSources, - missingSources, - invalidSources, - metadata2provided, - } = this.rearrangeSources(metadata, byHash); - const currentUsedFiles = Object.values(metadata2provided); - usedFiles.push(...currentUsedFiles); - const checkedContract = new CheckedContract( - metadata, - foundSources, - missingSources, - invalidSources - ); - checkedContracts.push(checkedContract); - if (!CheckedContract.isValid(checkedContract)) { - errorMsgMaterial.push(checkedContract.getInfo()); - } - }); - - if (errorMsgMaterial.length) { - const msg = errorMsgMaterial.join("\n"); - if (this.logger) this.logger.error(msg); - } - - if (unused) { - this.extractUnused(sourceFiles, usedFiles, unused); - } - - return checkedContracts; - } - - /** - * Unzips any zip files found in the provided array of files. Modifies the provided array. - * - * @param files the array containing the files to be checked - */ - private async unzipFiles(files: PathBuffer[]) { - const allUnzipped: PathBuffer[] = []; - for (let i = 0; i < files.length; i++) { - const file = files[i]; - if (this.isZip(file.buffer)) { - const unzipped = await this.unzip(file); - allUnzipped.push(...unzipped); - // Remove the zip file from the array and decrement the index to check the next file. - files.splice(i, 1); - i--; - } - } - // Add unzipped at the end to not check again if the extracted files are zips. - files.push(...allUnzipped); - } - - private isZip(file: Buffer): boolean { - // How is-zip-file checks https://github.com/luthraG/is-zip-file/blob/master/index.js - // Also according to this: https://stackoverflow.com/a/18194946/6528944 - const response = - file[0] === 0x50 && - file[1] === 0x4b && - (file[2] === 0x03 || file[2] === 0x05 || file[2] === 0x07) && - (file[3] === 0x04 || file[3] === 0x06 || file[3] === 0x08); - return response; - } - - /** - * Unzips the provided file buffer to the provided array. - * - * @param zippedFile the buffer containin the zipped file to be unpacked - * @param files the array to be filled with the content of the zip - * @returns the unzipped files as an array - */ - private async unzip(zippedFile: PathBuffer) { - const zip = new JSZip(); - const unzipped: PathBuffer[] = []; - try { - await zip.loadAsync(zippedFile.buffer); - for (const filePath in zip.files) { - const buffer = await zip.files[filePath].async("nodebuffer"); - unzipped.push({ - path: filePath, - buffer, - }); - } - } catch (e: any) { - throw new Error(`Error while unzipping ${zippedFile.path}: ${e.message}`); - } - return unzipped; - } - - /** - * Selects metadata files from an array of files that may include sources, etc - * @param {string[]} files - * @return {string[]} metadata - */ - private splitFiles(files: PathContent[]): { - metadataFiles: any[]; - sourceFiles: PathContent[]; - } { - const metadataFiles = []; - const sourceFiles: PathContent[] = []; - const malformedMetadataFiles = []; - - for (const file of files) { - // If hardhat output file, extract source and metadatas. - if (file.content.match(HARDHAT_OUTPUT_FORMAT_REGEX)) { - const { hardhatMetadataFiles, hardhatSourceFiles } = - this.extractHardhatMetadataAndSources(file); - sourceFiles.push(...hardhatSourceFiles); - metadataFiles.push(...hardhatMetadataFiles); - continue; - } - - let metadata = this.extractMetadataFromString(file.content); - if (!metadata) { - const matchRes = file.content.match(NESTED_METADATA_REGEX); - if (matchRes) { - metadata = this.extractMetadataFromString(matchRes[0]); - } - } - - if (metadata) { - try { - this.assertObjectSize(metadata.settings.compilationTarget, 1); - metadataFiles.push(metadata); - } catch (err) { - malformedMetadataFiles.push(file.path); - } - } else { - sourceFiles.push(file); - } - } - - let msg = ""; - if (malformedMetadataFiles.length) { - const responsibleFiles = malformedMetadataFiles.every(Boolean) - ? malformedMetadataFiles.join(", ") - : `${malformedMetadataFiles.length} metadata files`; - msg = `Couldn't parse metadata files or they are malformed. Can't find settings.compilationTarget or multiple compilationTargets in: ${responsibleFiles}`; - } else if (!metadataFiles.length) { - msg = 'Metadata file not found. Did you include "metadata.json"?'; - } - - if (msg) { - if (this.logger) this.logger.error(msg); - throw new Error(msg); - } - - return { metadataFiles, sourceFiles }; - } - - /** - * Validates metadata content keccak hashes for all files and - * returns mapping of file contents by file name - * @param {any} metadata - * @param {Map} byHash Map from keccak to source - * @return foundSources, missingSources, invalidSources - */ - private rearrangeSources(metadata: any, byHash: Map) { - const foundSources: StringMap = {}; - const missingSources: MissingSources = {}; - const invalidSources: InvalidSources = {}; - const metadata2provided: StringMap = {}; // maps fileName as in metadata to the fileName of the provided file - - for (const sourcePath in metadata.sources) { - const sourceInfoFromMetadata = metadata.sources[sourcePath]; - let file: PathContent = { content: undefined }; - file.content = sourceInfoFromMetadata.content; - const expectedHash: string = sourceInfoFromMetadata.keccak256; - if (file.content) { - // Source content already in metadata - const contentHash = Web3.utils.keccak256(file.content); - if (contentHash != expectedHash) { - invalidSources[sourcePath] = { - expectedHash: expectedHash, - calculatedHash: contentHash, - msg: `The keccak256 given in the metadata and the calculated keccak256 of the source content in metadata don't match`, - }; - continue; - } - } else { - // Get source from input files by hash - const pathContent = byHash.get(expectedHash); - if (pathContent) { - file = pathContent; - metadata2provided[sourcePath] = pathContent.path; - } // else: no file has the hash that was searched for - } - - if (file && file.content) { - foundSources[sourcePath] = file.content; - } else { - missingSources[sourcePath] = { - keccak256: expectedHash, - urls: sourceInfoFromMetadata.urls, - }; - } - } - - return { foundSources, missingSources, invalidSources, metadata2provided }; - } - - /** - * Generates a map of files indexed by the keccak hash of their content. - * - * @param {string[]} files Array containing sources. - * @returns Map object that maps hash to PathContent. - */ - private storeByHash(files: PathContent[]): Map { - const byHash: Map = new Map(); - - for (const pathContent of files) { - for (const variation of this.generateVariations(pathContent)) { - const calculatedHash = Web3.utils.keccak256(variation.content); - byHash.set(calculatedHash, variation); - } - } - - return byHash; - } - - private generateVariations(pathContent: PathContent): PathContent[] { - const variations: string[] = []; - const original = pathContent.content; - for (const contentVariator of CONTENT_VARIATORS) { - const variatedContent = contentVariator(original); - for (const endingVariator of ENDING_VARIATORS) { - const variation = endingVariator(variatedContent); - variations.push(variation); - } - } - - return variations.map((content) => { - return { content, path: pathContent.path }; - }); - } - - private extractUnused( - inputFiles: PathContent[], - usedFiles: string[], - unused: string[] - ): void { - const usedFilesSet = new Set(usedFiles); - const tmpUnused = inputFiles - .map((pc) => pc.path) - .filter((file) => !usedFilesSet.has(file)); - unused.push(...tmpUnused); - } - - private extractMetadataFromString(file: string): any { - try { - let obj = JSON.parse(file); - if (this.isMetadata(obj)) { - return obj; - } - - // if the input string originates from a file where it was double encoded (e.g. truffle) - obj = JSON.parse(obj); - if (this.isMetadata(obj)) { - return obj; - } - } catch (err) { - undefined; - } // Don't throw here as other files can be metadata files. - - return null; - } - - /** - * A method that checks if the provided object was generated as a metadata file of a Solidity contract. - * Current implementation is rather simplistic and may require further engineering. - * - * @param metadata the JSON to be checked - * @returns true if the provided object is a Solidity metadata file; false otherwise - */ - private isMetadata(obj: any): boolean { - return ( - obj?.language === "Solidity" && - !!obj?.settings?.compilationTarget && - !!obj?.version && - !!obj?.output?.abi && - !!obj?.output?.userdoc && - !!obj?.output?.devdoc && - !!obj?.sources - ); - } - - /** - * Applies the provided worker function to the provided path recursively. - * - * @param path the path to be traversed - * @param worker the function to be applied on each file that is not a directory - * @param afterDir the function to be applied on the directory after traversing its children - */ - private traversePathRecursively( - path: string, - worker: (filePath: string) => void, - afterDirectory?: (filePath: string) => void - ) { - if (!fs.existsSync(path)) { - const msg = `Encountered a nonexistent path: ${path}`; - if (this.logger) { - this.logger.error(msg); - } - throw new Error(msg); - } - - const fileStat = fs.lstatSync(path); - if (fileStat.isFile()) { - worker(path); - } else if (fileStat.isDirectory()) { - fs.readdirSync(path).forEach((nestedName) => { - const nestedPath = Path.join(path, nestedName); - this.traversePathRecursively(nestedPath, worker, afterDirectory); - }); - - if (afterDirectory) { - afterDirectory(path); - } - } - } - - /** - * Asserts that the number of keys of the provided object is expectedSize. - * If not, logs an appropriate message (if log function provided) and throws an Error. - * @param object the object to check - * @param expectedSize the size that the object should have - */ - private assertObjectSize(object: any, expectedSize: number) { - let err = ""; - - if (!object) { - err = `Cannot assert for ${object}.`; - } else { - const objectSize = Object.keys(object).length; - if (objectSize !== expectedSize) { - err = `Error in size assertion! Actual size: ${objectSize}. Expected size: ${expectedSize}.`; - } - } - - if (err) { - if (this.logger) { - this.logger.error({ loc: "[VALIDATION:SIZE_ASSERTION]" }, err); - } - throw new Error(err); - } - } - - /** - * Hardhat build output can contain metadata and source files of every contract used in compilation. - * Extracts these files from a given hardhat file following the hardhat output format. - * - * @param hardhatFile - * @returns - {hardhatMetadataFiles, hardhatSourceFiles} - */ - private extractHardhatMetadataAndSources(hardhatFile: PathContent) { - const hardhatMetadataFiles: any[] = []; - const hardhatSourceFiles: PathContent[] = []; - - const hardhatJson = JSON.parse(hardhatFile.content); - - // Extract source files - const hardhatSourceFilesObject = hardhatJson.input.sources; - for (const path in hardhatSourceFilesObject) { - if (hardhatSourceFilesObject[path].content) { - hardhatSourceFiles.push({ - path: path, - content: hardhatSourceFilesObject[path].content, - }); - } - } - - // Extract metadata files - const contractsObject = hardhatJson.output.contracts; - for (const path in contractsObject) { - for (const contractName in contractsObject[path]) { - if (contractsObject[path][contractName].metadata) { - const metadataObj = this.extractMetadataFromString( - contractsObject[path][contractName].metadata - ); - hardhatMetadataFiles.push(metadataObj); - } - } - } - return { hardhatMetadataFiles, hardhatSourceFiles }; - } - - pathContentArrayToStringMap(pathContentArr: PathContent[]) { - const stringMapResult: StringMap = {}; - pathContentArr.forEach((elem, i) => { - if (elem.path) { - stringMapResult[elem.path] = elem.content; - } else { - stringMapResult[`path-${i}`] = elem.content; - } - }); - return stringMapResult; - } -} diff --git a/services/validation/src/index.ts b/services/validation/src/index.ts deleted file mode 100644 index acff79550..000000000 --- a/services/validation/src/index.ts +++ /dev/null @@ -1,165 +0,0 @@ -#!/usr/bin/env node -import program from "commander"; -// eslint-disable-next-line @typescript-eslint/no-var-requires -const { version, bin } = require("../package.json"); -const name = Object.keys(bin)[0]; -import { ValidationService, IValidationService } from "./ValidationService"; -import { CheckedContract } from "@ethereum-sourcify/core"; -export * from "./ValidationService"; - -const NAME_DELIMITER = ":"; -function parseRecompilationTarget(input: string) { - const delimiterIndex = input.indexOf(NAME_DELIMITER); - if (delimiterIndex === -1) { - return input; - } - - return { - path: input.slice(0, delimiterIndex), - name: input.slice(delimiterIndex + 1), - }; -} - -function matches(contract: CheckedContract, recompilationTarget: any): boolean { - if (!recompilationTarget) { - return false; - } - - if (typeof recompilationTarget === "string") { - if ( - recompilationTarget === contract.name || - recompilationTarget === contract.compiledPath - ) { - return true; - } - return false; - } - - const nameMatches = recompilationTarget.name === contract.name; - const pathMatches = recompilationTarget.path === contract.compiledPath; - return nameMatches && pathMatches; -} - -function logOutput( - recompilableContracts: CheckedContract[], - programOptions: any -) { - switch (recompilableContracts.length) { - case 0: { - console.log( - `Could not find the ${OPTION_NAME} target: ${programOptions.prepareJson}` - ); - process.exitCode = 1; - break; - } - case 1: { - const standardJson = recompilableContracts[0].standardJson; - const prettifiedStandardJson = JSON.stringify( - standardJson, - null, - programOptions.pretty ? 2 : undefined - ); - console.log(prettifiedStandardJson); - break; - } - default: { - console.log( - `Ambiguous ${OPTION_NAME} target: ${programOptions.prepareJson}` - ); - console.log(`${recompilableContracts.length} instances encountered.`); - process.exitCode = 1; - break; - } - } -} - -const OPTION_NAME = "prepare-json"; -program - .name(name) - .helpOption("-h, --help", "Output the help message.") - .version(version, "-v, --version", "Output the current version.") - .description( - "A tool that validates smart contracts contained in the provided files, directories and zip archives." - ) - .usage("[options] ...") - .option( - `-j, --${OPTION_NAME} `, - "Output only a JSON object to be used as standard-json input to solc.\n" + - "The expected argument ought to be of the form path:name; ommiting any of the two is tolerated if unambiguous.\n" + - `E.g. \`${name} --${OPTION_NAME} foo/bar/Contract.sol:ContractName path/to/dir path/to/zip\`\n` - ) - .option( - "-p, --pretty", - "Output the standard json in a pretty format.\n" + - `Only available with the --${OPTION_NAME} option\n` - ); - -if (require.main === module) { - (async () => { - program.parse(process.argv); - const fileNames = program.args; // what's left from process.argv - const fileNamesJoint = fileNames.join(" "); - if (!fileNames.length) { - program.help(); - } - - const recompilationTarget = program.prepareJson - ? parseRecompilationTarget(program.prepareJson) - : program.prepareJson; - - const validationService: IValidationService = new ValidationService(); - let checkedContracts: CheckedContract[] = []; - const ignoring: any[] = []; - try { - checkedContracts = await validationService.checkPaths( - fileNames, - ignoring - ); - } catch (err: any) { - console.log(err.message); - process.exitCode = 1; - } - - const recompilableContracts: CheckedContract[] = []; - const contractMessages: string[] = []; - let invalidContracts = 0; - checkedContracts.forEach((contract) => { - if (matches(contract, recompilationTarget)) { - if (CheckedContract.isValid(contract)) { - recompilableContracts.push(contract); - } else { - console.log(contract.getInfo()); - console.log( - `The ${OPTION_NAME} target is not a valid contract! Exiting.` - ); - process.exit(1); - } - } else if (recompilationTarget === undefined) { - let msg = contract.getInfo(); // should be without a trailing newline - if (CheckedContract.isValid(contract)) { - msg += "\n"; - msg += ` To recompile, use: \`${name} --${OPTION_NAME} ${contract.compiledPath}:${contract.name} ${fileNamesJoint}`; - msg += ` | solc --standard-json\``; - } else { - invalidContracts++; - } - contractMessages.push(msg); - } - }); - - if (contractMessages.length) { - console.log(contractMessages.join("\n\n")); - } - - if (recompilationTarget !== undefined) { - logOutput(recompilableContracts, program.opts()); - } else if (ignoring.length) { - console.log("\nFiles ignored due to readability issues:"); - ignoring.forEach((ignored) => console.log(" " + ignored)); - } - - if (invalidContracts > 0) { - process.exitCode = 1; - } - })(); -} diff --git a/services/validation/test/ValidationService.js b/services/validation/test/ValidationService.js deleted file mode 100644 index 044f3b7f5..000000000 --- a/services/validation/test/ValidationService.js +++ /dev/null @@ -1,182 +0,0 @@ -process.env.TESTING = "true"; - -const chai = require("chai"); -const Path = require("path"); -const fs = require("fs"); -const ValidationService = - require("../build/ValidationService").ValidationService; -const { CheckedContract } = require("@ethereum-sourcify/core"); -const validationService = new ValidationService(); - -function objectLength(obj) { - return Object.keys(obj).length; -} - -const EXTENDED_TIME = 15000; // 15 seconds - -describe("ValidationService", function () { - this.timeout(EXTENDED_TIME); - - describe("#checkPaths", function () { - it("should succeed for single source file", async function () { - const ignoring = []; - const paths = [Path.join("test", "files", "single")]; - const checkedContracts = await validationService.checkPaths( - paths, - ignoring - ); - - chai.expect(ignoring).to.be.empty; - expectationsOfSingle(checkedContracts); - }); - - it("should succeed for single source file, everything provided individually", async function () { - const ignoring = []; - const paths = [ - Path.join("test", "files", "single", "1_Storage.sol"), - Path.join("test", "files", "single", "metadata.json"), - ]; - const checkedContracts = await validationService.checkPaths( - paths, - ignoring - ); - - chai.expect(ignoring).to.be.empty; - expectationsOfSingle(checkedContracts); - }); - - function expectationsOfSingle(checkedContracts) { - chai.expect(checkedContracts.length).to.equal(1); - const onlyContract = checkedContracts[0]; - - chai.expect(onlyContract.name).to.equal("Storage"); - chai.expect(onlyContract.compiledPath).to.equal("browser/1_Storage.sol"); - - chai.expect(CheckedContract.isValid(onlyContract)).to.be.true; - chai.expect(objectLength(onlyContract.solidity)).to.equal(1); - chai - .expect(onlyContract.solidity) - .to.have.all.keys("browser/1_Storage.sol"); - chai.expect(onlyContract.missing).to.be.empty; - chai.expect(onlyContract.invalid).to.be.empty; - } - - it("should report for single source file missing", async function () { - const ignoring = []; - const paths = [Path.join("test", "files", "single", "metadata.json")]; - const checkedContracts = await validationService.checkPaths( - paths, - ignoring - ); - - chai.expect(ignoring).to.be.empty; - chai.expect(checkedContracts.length).to.equal(1); - const onlyContract = checkedContracts[0]; - - chai.expect(onlyContract.name).to.equal("Storage"); - chai.expect(onlyContract.compiledPath).to.equal("browser/1_Storage.sol"); - - chai.expect(CheckedContract.isValid(onlyContract)).to.be.false; - chai.expect(onlyContract.solidity).to.be.empty; - chai.expect(objectLength(onlyContract.missing)).to.equal(1); - chai.expect(onlyContract.missing).to.have.key("browser/1_Storage.sol"); - chai.expect(onlyContract.invalid).to.be.empty; - }); - - it("should throw for no metadata found", async function () { - let error; - const paths = [Path.join("test", "files", "single", "1_Storage.sol")]; - try { - await validationService.checkPaths(paths); - } catch (e) { - error = e; - } - chai.expect(error).to.be.an("Error"); - chai - .expect(error.message) - .to.equal('Metadata file not found. Did you include "metadata.json"?'); - }); - - it("should ignore invalid paths", async function () { - const ignoring = []; - const invalidPath = Path.join("test", "files", "foobar.sol"); - const paths = [Path.join("test", "files", "single"), invalidPath]; - const checkedContracts = await validationService.checkPaths( - paths, - ignoring - ); - - chai.expect(ignoring).to.deep.equal([invalidPath]); - expectationsOfSingle(checkedContracts); - }); - - async function checkSingleWithModifiedEnding( - directoryName, - expectedLineEnd, - expectedFileEnd - ) { - const ignoring = []; - const path = Path.join("test", "files", directoryName); - - const filePath = Path.join(path, "1_Storage.sol"); - const content = fs.readFileSync(filePath).toString(); - - const nCount = (content.match(/\n/g) || []).length; - const rnCount = (content.match(/\r\n/g) || []).length; - if (expectedLineEnd === "\n") { - chai.expect(rnCount).to.equal(0); - } else { - chai.expect(nCount).to.equal(rnCount); - } - - const endLength = expectedFileEnd.length; - const fileEnd = content.slice(content.length - endLength); - chai.expect(fileEnd).to.equal(expectedFileEnd); - - const checkedContracts = await validationService.checkPaths( - [path], - ignoring - ); - - chai.expect(ignoring).to.be.empty; - chai.expect(checkedContracts).to.have.a.lengthOf(1); - - const contract = checkedContracts[0]; - chai.expect(contract.name).to.equal("Storage"); - chai.expect(CheckedContract.isValid(contract)).to.be.true; - } - - it("should replace \\r\\n with \\n", function () { - checkSingleWithModifiedEnding("single-replace-with-n", "\r\n", "}"); - }); - - it("should replace \\n with \\r\\n", function () { - checkSingleWithModifiedEnding("single-replace-with-rn", "\n", "}"); - }); - - it("should add a trailing \\r\\n", function () { - checkSingleWithModifiedEnding("single-add-trailing-rn", "\r\n", "}"); - }); - - it("should add a trailing \\n", function () { - checkSingleWithModifiedEnding("single-add-trailing-n", "\n", "}"); - }); - - it("should remove a trailing \\r\\n", function () { - checkSingleWithModifiedEnding( - "single-remove-trailing-rn", - "\r\n", - "\r\n" - ); - }); - - it("should remove a trailing \\n", function () { - checkSingleWithModifiedEnding("single-remove-trailing-n", "\n", "\n"); - }); - - it("should validate a file with two trailing n", function () { - // this fails if not checking the original file - checkSingleWithModifiedEnding("single-keep-original", "\n", "\n\n"); - }); - }); -}); diff --git a/services/validation/test/expected-output/metadata-with-content-altered.txt b/services/validation/test/expected-output/metadata-with-content-altered.txt deleted file mode 100644 index e336a5a34..000000000 --- a/services/validation/test/expected-output/metadata-with-content-altered.txt +++ /dev/null @@ -1,5 +0,0 @@ -Storage (browser/1_Storage.sol): - Error: Invalid sources: - browser/1_Storage.sol: - expectedHash: 0xbedc7086ad8503907209f50bac1e4dc6c2eca2ed41b15d03740fea748ea3f88e - calculatedHash: 0xaedc7086ad8503907209f50bac1e4dc6c2eca2ed41b15d03740fea748ea3f88e diff --git a/services/validation/test/expected-output/metadata-with-content.txt b/services/validation/test/expected-output/metadata-with-content.txt deleted file mode 100644 index 4dd2f2ff7..000000000 --- a/services/validation/test/expected-output/metadata-with-content.txt +++ /dev/null @@ -1,6 +0,0 @@ -Storage (browser/1_Storage.sol): - Success! - Compiled with Solidity 0.6.6 - https://solc-bin.ethereum.org/wasm/soljson-v0.6.6+commit.6c089d02.js - https://solc-bin.ethereum.org/linux-amd64/solc-linux-amd64-v0.6.6+commit.6c089d02 - To recompile, use: `sourcify-validation --prepare-json browser/1_Storage.sol:Storage test/files/metadata-with-content.json | solc --standard-json` diff --git a/services/validation/test/expected-output/multiple-altered.txt b/services/validation/test/expected-output/multiple-altered.txt deleted file mode 100644 index 301871514..000000000 --- a/services/validation/test/expected-output/multiple-altered.txt +++ /dev/null @@ -1,9 +0,0 @@ -Savings (browser/Savings.sol): - Error: Missing sources: - The following files were not provided (or were altered, so their hash doesn't match the one in the metadata). - Please retrieve the files (potentially via ipfs) and re-run the script. - browser/Escrow.sol: - keccak256: 0x3685704dbcc97358956da378d8250b4e5062a47ee6ed3090f519ebc50a579a11 - bzz-raw://7e46a52b71bebeb845d35d4925fb96a5ef4b9f72f5b95ac407ec833731eafb23 - dweb:/ipfs/QmZ87S4kA9ook24nr8QatoYAaZM12m7DZB6uvM7yMe9SKU - 4 other source files found successfully. diff --git a/services/validation/test/expected-output/multiple-correct.txt b/services/validation/test/expected-output/multiple-correct.txt deleted file mode 100644 index 9e07e7f5a..000000000 --- a/services/validation/test/expected-output/multiple-correct.txt +++ /dev/null @@ -1,6 +0,0 @@ -Savings (browser/Savings.sol): - Success! - Compiled with Solidity 0.6.11 - https://solc-bin.ethereum.org/wasm/soljson-v0.6.11+commit.5ef660b1.js - https://solc-bin.ethereum.org/linux-amd64/solc-linux-amd64-v0.6.11+commit.5ef660b1 - To recompile, use: `sourcify-validation --prepare-json browser/Savings.sol:Savings test/files/multiple | solc --standard-json` diff --git a/services/validation/test/expected-output/multiple-missing-source.txt b/services/validation/test/expected-output/multiple-missing-source.txt deleted file mode 100644 index ae07c4921..000000000 --- a/services/validation/test/expected-output/multiple-missing-source.txt +++ /dev/null @@ -1,17 +0,0 @@ -Savings (browser/Savings.sol): - Error: Missing sources: - The following files were not provided (or were altered, so their hash doesn't match the one in the metadata). - Please retrieve the files (potentially via ipfs) and re-run the script. - browser/Owned.sol: - keccak256: 0xfc7e62d306436eb1359b92d30e2c992404480de4708721e059eb60c13f8509f2 - bzz-raw://f8c295b2b453984627a168a4de2bae600df2d77ba7ec4aeb728efe63aab386dd - dweb:/ipfs/QmZAjZb4QpS9DSHAjoMybbVT1kbQ3FLdahwNMyxFLvjpvW - browser/Savings.sol: - keccak256: 0xd6cc43f8b45fff58d3c654a1caa494d8d3ec3e05e0b50f00b94b225df7fa58c0 - bzz-raw://a392131d899e10d2e4c9979a610b6a3596d8760083b1733c96fc530e7caf00f2 - dweb:/ipfs/QmYo9p1cmK5B8YytzxckfgQHbx1tEBtx1rGdy4pPduC33k - browser/provableAPI_0.6.sol: - keccak256: 0x396be6621635e824d3a8798d7133d05420f80d6b6b4c75d7d6ca6d7c70a7d7b8 - bzz-raw://2cc801b85a22395cef8ec208dec5aea3a592a83157d9cb89b73f0324e042e22a - dweb:/ipfs/QmRGfr1axuXfswx89QotL2ZcjBzxrg1R7JMH5QzuUd6KvW - 2 other source files found successfully. diff --git a/services/validation/test/expected-output/multiple-targets.txt b/services/validation/test/expected-output/multiple-targets.txt deleted file mode 100644 index 638eb2717..000000000 --- a/services/validation/test/expected-output/multiple-targets.txt +++ /dev/null @@ -1 +0,0 @@ -Couldn't parse metadata files or they are malformed. Can't find settings.compilationTarget or multiple compilationTargets in: {0}/test/files/metadata-multiple-targets.json diff --git a/services/validation/test/expected-output/nonexistent-path.txt b/services/validation/test/expected-output/nonexistent-path.txt deleted file mode 100644 index 088c3303e..000000000 --- a/services/validation/test/expected-output/nonexistent-path.txt +++ /dev/null @@ -1,11 +0,0 @@ -Storage (browser/1_Storage.sol): - Error: Missing sources: - The following files were not provided (or were altered, so their hash doesn't match the one in the metadata). - Please retrieve the files (potentially via ipfs) and re-run the script. - browser/1_Storage.sol: - keccak256: 0xaedc7086ad8503907209f50bac1e4dc6c2eca2ed41b15d03740fea748ea3f88e - bzz-raw://4bc331951c25951321cb29abbd689eb3af669530222c6bb2d45ff45334ee83a7 - dweb:/ipfs/QmWb1NQ6Pw8ZLMFX8uDjMyftgcEieT9iP2TvWisPhjN3U2 - -Files ignored due to readability issues: - test/files/single/foobar.sol diff --git a/services/validation/test/expected-output/single-altered.txt b/services/validation/test/expected-output/single-altered.txt deleted file mode 100644 index 8d7f5fbfe..000000000 --- a/services/validation/test/expected-output/single-altered.txt +++ /dev/null @@ -1,8 +0,0 @@ -Storage (browser/1_Storage.sol): - Error: Missing sources: - The following files were not provided (or were altered, so their hash doesn't match the one in the metadata). - Please retrieve the files (potentially via ipfs) and re-run the script. - browser/1_Storage.sol: - keccak256: 0xaedc7086ad8503907209f50bac1e4dc6c2eca2ed41b15d03740fea748ea3f88e - bzz-raw://4bc331951c25951321cb29abbd689eb3af669530222c6bb2d45ff45334ee83a7 - dweb:/ipfs/QmWb1NQ6Pw8ZLMFX8uDjMyftgcEieT9iP2TvWisPhjN3U2 diff --git a/services/validation/test/expected-output/single-correct.txt b/services/validation/test/expected-output/single-correct.txt deleted file mode 100644 index 70a822f8f..000000000 --- a/services/validation/test/expected-output/single-correct.txt +++ /dev/null @@ -1,6 +0,0 @@ -Storage (browser/1_Storage.sol): - Success! - Compiled with Solidity 0.6.6 - https://solc-bin.ethereum.org/wasm/soljson-v0.6.6+commit.6c089d02.js - https://solc-bin.ethereum.org/linux-amd64/solc-linux-amd64-v0.6.6+commit.6c089d02 - To recompile, use: `sourcify-validation --prepare-json browser/1_Storage.sol:Storage test/files/single | solc --standard-json` diff --git a/services/validation/test/expected-output/single-missing-metadata.txt b/services/validation/test/expected-output/single-missing-metadata.txt deleted file mode 100644 index 873cb8e6b..000000000 --- a/services/validation/test/expected-output/single-missing-metadata.txt +++ /dev/null @@ -1 +0,0 @@ -Metadata file not found. Did you include "metadata.json"? diff --git a/services/validation/test/expected-output/single-missing-source.txt b/services/validation/test/expected-output/single-missing-source.txt deleted file mode 100644 index 8d7f5fbfe..000000000 --- a/services/validation/test/expected-output/single-missing-source.txt +++ /dev/null @@ -1,8 +0,0 @@ -Storage (browser/1_Storage.sol): - Error: Missing sources: - The following files were not provided (or were altered, so their hash doesn't match the one in the metadata). - Please retrieve the files (potentially via ipfs) and re-run the script. - browser/1_Storage.sol: - keccak256: 0xaedc7086ad8503907209f50bac1e4dc6c2eca2ed41b15d03740fea748ea3f88e - bzz-raw://4bc331951c25951321cb29abbd689eb3af669530222c6bb2d45ff45334ee83a7 - dweb:/ipfs/QmWb1NQ6Pw8ZLMFX8uDjMyftgcEieT9iP2TvWisPhjN3U2 diff --git a/services/validation/test/expected-output/single-no-json.txt b/services/validation/test/expected-output/single-no-json.txt deleted file mode 100644 index eb855a183..000000000 --- a/services/validation/test/expected-output/single-no-json.txt +++ /dev/null @@ -1,9 +0,0 @@ -Storage (browser/1_Storage.sol): - Error: Missing sources: - The following files were not provided (or were altered, so their hash doesn't match the one in the metadata). - Please retrieve the files (potentially via ipfs) and re-run the script. - browser/1_Storage.sol: - keccak256: 0xaedc7086ad8503907209f50bac1e4dc6c2eca2ed41b15d03740fea748ea3f88e - bzz-raw://4bc331951c25951321cb29abbd689eb3af669530222c6bb2d45ff45334ee83a7 - dweb:/ipfs/QmWb1NQ6Pw8ZLMFX8uDjMyftgcEieT9iP2TvWisPhjN3U2 -The prepare-json target is not a valid contract! Exiting. diff --git a/services/validation/test/expected-output/single.json b/services/validation/test/expected-output/single.json deleted file mode 100644 index 18f3868c7..000000000 --- a/services/validation/test/expected-output/single.json +++ /dev/null @@ -1 +0,0 @@ -{"settings":{"evmVersion":"istanbul","libraries":{"":{}},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[],"outputSelection":{"browser/1_Storage.sol":{"Storage":["evm.bytecode.object","evm.deployedBytecode.object","metadata"]}}},"sources":{"browser/1_Storage.sol":{"content":"pragma solidity >=0.4.22 <0.7.0;\n\n/**\n * @title Storage\n * @dev Store & retreive value in a variable\n */\ncontract Storage {\n\n uint256 number;\n\n /**\n * @dev Store value in variable\n * @param num value to store\n */\n function store(uint256 num) public {\n number = num;\n }\n\n /**\n * @dev Return value \n * @return value of 'number'\n */\n function retreive() public view returns (uint256){\n return number;\n }\n}"}},"language":"Solidity"} diff --git a/services/validation/test/expected-output/target-not-found.txt b/services/validation/test/expected-output/target-not-found.txt deleted file mode 100644 index b77e92593..000000000 --- a/services/validation/test/expected-output/target-not-found.txt +++ /dev/null @@ -1 +0,0 @@ -Could not find the prepare-json target: browser/Savings.sol:Savings diff --git a/services/validation/test/expected-output/truffle-example-correct.txt b/services/validation/test/expected-output/truffle-example-correct.txt deleted file mode 100644 index 1838a30a7..000000000 --- a/services/validation/test/expected-output/truffle-example-correct.txt +++ /dev/null @@ -1,20 +0,0 @@ -MetaCoin (/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/MetaCoin.sol): - Success! - Compiled with Solidity 0.5.16 - https://solc-bin.ethereum.org/wasm/soljson-v0.5.16+commit.9c3226ce.js - https://solc-bin.ethereum.org/linux-amd64/solc-linux-amd64-v0.5.16+commit.9c3226ce - To recompile, use: `sourcify-validation --prepare-json /home/fabijan/sourcify/services/validation/test/truffle-example/contracts/MetaCoin.sol:MetaCoin test/files/truffle-example.zip | solc --standard-json` - -Migrations (/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/Migrations.sol): - Success! - Compiled with Solidity 0.5.16 - https://solc-bin.ethereum.org/wasm/soljson-v0.5.16+commit.9c3226ce.js - https://solc-bin.ethereum.org/linux-amd64/solc-linux-amd64-v0.5.16+commit.9c3226ce - To recompile, use: `sourcify-validation --prepare-json /home/fabijan/sourcify/services/validation/test/truffle-example/contracts/Migrations.sol:Migrations test/files/truffle-example.zip | solc --standard-json` - -ConvertLib (/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/ConvertLib.sol): - Success! - Compiled with Solidity 0.5.16 - https://solc-bin.ethereum.org/wasm/soljson-v0.5.16+commit.9c3226ce.js - https://solc-bin.ethereum.org/linux-amd64/solc-linux-amd64-v0.5.16+commit.9c3226ce - To recompile, use: `sourcify-validation --prepare-json /home/fabijan/sourcify/services/validation/test/truffle-example/contracts/ConvertLib.sol:ConvertLib test/files/truffle-example.zip | solc --standard-json` diff --git a/services/validation/test/expected-output/truffle-example-missing-source.txt b/services/validation/test/expected-output/truffle-example-missing-source.txt deleted file mode 100644 index 528e9b28a..000000000 --- a/services/validation/test/expected-output/truffle-example-missing-source.txt +++ /dev/null @@ -1,23 +0,0 @@ -MetaCoin (/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/MetaCoin.sol): - Error: Missing sources: - The following files were not provided (or were altered, so their hash doesn't match the one in the metadata). - Please retrieve the files (potentially via ipfs) and re-run the script. - /home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/MetaCoin.sol: - keccak256: 0x3120b2b343640c8ef461e38ad28e7a85ef99f4fe375376de0c7e2cee56e96e1d - bzz-raw://c4d47ad4bc9eec4ceb27b6055ca4e748d473622a42227fe516b08b7254e3bab3 - dweb:/ipfs/QmcqCW2TvR7FQ271oarfvRi6phLXAPxCjTWXcd7CJu7sdZ - 1 other source files found successfully. - -Migrations (/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/Migrations.sol): - Success! - Compiled with Solidity 0.5.16 - https://solc-bin.ethereum.org/wasm/soljson-v0.5.16+commit.9c3226ce.js - https://solc-bin.ethereum.org/linux-amd64/solc-linux-amd64-v0.5.16+commit.9c3226ce - To recompile, use: `sourcify-validation --prepare-json /home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/Migrations.sol:Migrations test/files/truffle-example-missing-source.zip | solc --standard-json` - -ConvertLib (/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/ConvertLib.sol): - Success! - Compiled with Solidity 0.5.16 - https://solc-bin.ethereum.org/wasm/soljson-v0.5.16+commit.9c3226ce.js - https://solc-bin.ethereum.org/linux-amd64/solc-linux-amd64-v0.5.16+commit.9c3226ce - To recompile, use: `sourcify-validation --prepare-json /home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/ConvertLib.sol:ConvertLib test/files/truffle-example-missing-source.zip | solc --standard-json` diff --git a/services/validation/test/files/truffle-example-missing-source/build/contracts/ConvertLib.json b/services/validation/test/files/truffle-example-missing-source/build/contracts/ConvertLib.json deleted file mode 100644 index 1efd51dce..000000000 --- a/services/validation/test/files/truffle-example-missing-source/build/contracts/ConvertLib.json +++ /dev/null @@ -1,467 +0,0 @@ -{ - "contractName": "ConvertLib", - "abi": [ - { - "constant": true, - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "conversionRate", - "type": "uint256" - } - ], - "name": "convert", - "outputs": [ - { - "internalType": "uint256", - "name": "convertedAmount", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"conversionRate\",\"type\":\"uint256\"}],\"name\":\"convert\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"convertedAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/ConvertLib.sol\":\"ConvertLib\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/ConvertLib.sol\":{\"keccak256\":\"0xa95479aadd1facea97659bb29b825dbe847d6683880f0edc49b2e02517f3f5dd\",\"urls\":[\"bzz-raw://035feb5b82d2e91cb244970d553c5e2099e4df7c9746d9a4f7bad3059ac4cae3\",\"dweb:/ipfs/QmYoYLHaXxjotgxDvEHYGadJyYtEKtETn8FDwFgzyZL62E\"]}},\"version\":1}", - "bytecode": "0x60c3610025600b82828239805160001a60731461001857fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c806396e4ee3d146038575b600080fd5b606b60048036036040811015604c57600080fd5b8101908080359060200190929190803590602001909291905050506081565b6040518082815260200191505060405180910390f35b600081830290509291505056fea265627a7a72315820f79d28cca86eaeb022a92aa2c77cc37af0daffe64f58d5c0231e9c4128f0fe4e64736f6c63430005100032", - "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361060335760003560e01c806396e4ee3d146038575b600080fd5b606b60048036036040811015604c57600080fd5b8101908080359060200190929190803590602001909291905050506081565b6040518082815260200191505060405180910390f35b600081830290509291505056fea265627a7a72315820f79d28cca86eaeb022a92aa2c77cc37af0daffe64f58d5c0231e9c4128f0fe4e64736f6c63430005100032", - "sourceMap": "66:155:0:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "deployedSourceMap": "66:155:0:-;;;;;;;;;;;;;;;;;;;;;;;;87:132;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;87:132:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;158:20;201:14;192:6;:23;185:30;;87:132;;;;:::o", - "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.25 <0.7.0;\n\nlibrary ConvertLib{\n\tfunction convert(uint amount,uint conversionRate) public pure returns (uint convertedAmount)\n\t{\n\t\treturn amount * conversionRate;\n\t}\n}\n", - "sourcePath": "/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/ConvertLib.sol", - "ast": { - "absolutePath": "/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/ConvertLib.sol", - "exportedSymbols": { - "ConvertLib": [ - 16 - ] - }, - "id": 17, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - ">=", - "0.4", - ".25", - "<", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "32:32:0" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 16, - "linearizedBaseContracts": [ - 16 - ], - "name": "ConvertLib", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 14, - "nodeType": "Block", - "src": "181:38:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "192:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11, - "name": "conversionRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "201:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "192:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9, - "id": 13, - "nodeType": "Return", - "src": "185:30:0" - } - ] - }, - "documentation": null, - "id": 15, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "convert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 15, - "src": "104:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "104:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5, - "name": "conversionRate", - "nodeType": "VariableDeclaration", - "scope": 15, - "src": "116:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "116:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "103:33:0" - }, - "returnParameters": { - "id": 9, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8, - "name": "convertedAmount", - "nodeType": "VariableDeclaration", - "scope": 15, - "src": "158:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "158:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "157:22:0" - }, - "scope": 16, - "src": "87:132:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 17, - "src": "66:155:0" - } - ], - "src": "32:190:0" - }, - "legacyAST": { - "absolutePath": "/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/ConvertLib.sol", - "exportedSymbols": { - "ConvertLib": [ - 16 - ] - }, - "id": 17, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - ">=", - "0.4", - ".25", - "<", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "32:32:0" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 16, - "linearizedBaseContracts": [ - 16 - ], - "name": "ConvertLib", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 14, - "nodeType": "Block", - "src": "181:38:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "192:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11, - "name": "conversionRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "201:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "192:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9, - "id": 13, - "nodeType": "Return", - "src": "185:30:0" - } - ] - }, - "documentation": null, - "id": 15, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "convert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 15, - "src": "104:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "104:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5, - "name": "conversionRate", - "nodeType": "VariableDeclaration", - "scope": 15, - "src": "116:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "116:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "103:33:0" - }, - "returnParameters": { - "id": 9, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8, - "name": "convertedAmount", - "nodeType": "VariableDeclaration", - "scope": 15, - "src": "158:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "158:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "157:22:0" - }, - "scope": 16, - "src": "87:132:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 17, - "src": "66:155:0" - } - ], - "src": "32:190:0" - }, - "compiler": { - "name": "solc", - "version": "0.5.16+commit.9c3226ce.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.2.5", - "updatedAt": "2020-10-01T08:58:31.220Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/services/validation/test/files/truffle-example-missing-source/build/contracts/MetaCoin.json b/services/validation/test/files/truffle-example-missing-source/build/contracts/MetaCoin.json deleted file mode 100644 index 2dc84159d..000000000 --- a/services/validation/test/files/truffle-example-missing-source/build/contracts/MetaCoin.json +++ /dev/null @@ -1,2520 +0,0 @@ -{ - "contractName": "MetaCoin", - "abi": [ - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "sendCoin", - "outputs": [ - { - "internalType": "bool", - "name": "sufficient", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "addr", - "type": "address" - } - ], - "name": "getBalanceInEth", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "addr", - "type": "address" - } - ], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getBalanceInEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendCoin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"sufficient\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/MetaCoin.sol\":\"MetaCoin\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/ConvertLib.sol\":{\"keccak256\":\"0xa95479aadd1facea97659bb29b825dbe847d6683880f0edc49b2e02517f3f5dd\",\"urls\":[\"bzz-raw://035feb5b82d2e91cb244970d553c5e2099e4df7c9746d9a4f7bad3059ac4cae3\",\"dweb:/ipfs/QmYoYLHaXxjotgxDvEHYGadJyYtEKtETn8FDwFgzyZL62E\"]},\"/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/MetaCoin.sol\":{\"keccak256\":\"0x3120b2b343640c8ef461e38ad28e7a85ef99f4fe375376de0c7e2cee56e96e1d\",\"urls\":[\"bzz-raw://c4d47ad4bc9eec4ceb27b6055ca4e748d473622a42227fe516b08b7254e3bab3\",\"dweb:/ipfs/QmcqCW2TvR7FQ271oarfvRi6phLXAPxCjTWXcd7CJu7sdZ\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b506127106000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506103d6806100656000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80637bd703e81461004657806390b98a111461009e578063f8b2cb4f14610104575b600080fd5b6100886004803603602081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061015c565b6040518082815260200191505060405180910390f35b6100ea600480360360408110156100b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610200565b604051808215151515815260200191505060405180910390f35b6101466004803603602081101561011a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610359565b6040518082815260200191505060405180910390f35b600073__ConvertLib____________________________6396e4ee3d61018184610359565b60026040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156101be57600080fd5b505af41580156101d2573d6000803e3d6000fd5b505050506040513d60208110156101e857600080fd5b81019080805190602001909291905050509050919050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156102515760009050610353565b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b92915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905091905056fea265627a7a72315820b8e9fd90d9ce356304a910df33c32b1c2417bc10ebe811d3da3a5d4cc1eef3be64736f6c63430005100032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80637bd703e81461004657806390b98a111461009e578063f8b2cb4f14610104575b600080fd5b6100886004803603602081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061015c565b6040518082815260200191505060405180910390f35b6100ea600480360360408110156100b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610200565b604051808215151515815260200191505060405180910390f35b6101466004803603602081101561011a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610359565b6040518082815260200191505060405180910390f35b600073__ConvertLib____________________________6396e4ee3d61018184610359565b60026040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156101be57600080fd5b505af41580156101d2573d6000803e3d6000fd5b505050506040513d60208110156101e857600080fd5b81019080805190602001909291905050509050919050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156102515760009050610353565b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b92915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905091905056fea265627a7a72315820b8e9fd90d9ce356304a910df33c32b1c2417bc10ebe811d3da3a5d4cc1eef3be64736f6c63430005100032", - "sourceMap": "356:674:1:-;;;493:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;493:56:1;540:5;518:8;:19;527:9;518:19;;;;;;;;;;;;;;;:27;;;;356:674;;;;;;", - "deployedSourceMap": "356:674:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;356:674:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;819:117;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;819:117:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;552:264;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;552:264:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;939:89;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;939:89:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;819:117;878:4;894:10;:18;913:16;924:4;913:10;:16::i;:::-;930:1;894:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;894:38:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;894:38:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;894:38:1;;;;;;;;;;;;;;;;887:45;;819:117;;;:::o;552:264::-;616:15;664:6;641:8;:20;650:10;641:20;;;;;;;;;;;;;;;;:29;637:47;;;679:5;672:12;;;;637:47;712:6;688:8;:20;697:10;688:20;;;;;;;;;;;;;;;;:30;;;;;;;;;;;744:6;722:8;:18;731:8;722:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;780:8;759:38;;768:10;759:38;;;790:6;759:38;;;;;;;;;;;;;;;;;;808:4;801:11;;552:264;;;;;:::o;939:89::-;993:4;1010:8;:14;1019:4;1010:14;;;;;;;;;;;;;;;;1003:21;;939:89;;;:::o", - "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.25 <0.7.0;\n\nimport \"./ConvertLib.sol\";\n\n// This is just a simple example of a coin-like contract.\n// It is not standards compatible and cannot be expected to talk to other\n// coin/token contracts. If you want to create a standards-compliant\n// token, see: https://github.com/ConsenSys/Tokens. Cheers!\n\ncontract MetaCoin {\n\tmapping (address => uint) balances;\n\n\tevent Transfer(address indexed _from, address indexed _to, uint256 _value);\n\n\tconstructor() public {\n\t\tbalances[tx.origin] = 10000;\n\t}\n\n\tfunction sendCoin(address receiver, uint amount) public returns(bool sufficient) {\n\t\tif (balances[msg.sender] < amount) return false;\n\t\tbalances[msg.sender] -= amount;\n\t\tbalances[receiver] += amount;\n\t\temit Transfer(msg.sender, receiver, amount);\n\t\treturn true;\n\t}\n\n\tfunction getBalanceInEth(address addr) public view returns(uint){\n\t\treturn ConvertLib.convert(getBalance(addr),2);\n\t}\n\n\tfunction getBalance(address addr) public view returns(uint) {\n\t\treturn balances[addr];\n\t}\n}\n", - "sourcePath": "/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/MetaCoin.sol", - "ast": { - "absolutePath": "/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/MetaCoin.sol", - "exportedSymbols": { - "MetaCoin": [ - 112 - ] - }, - "id": 113, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 18, - "literals": [ - "solidity", - ">=", - "0.4", - ".25", - "<", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "32:32:1" - }, - { - "absolutePath": "/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/ConvertLib.sol", - "file": "./ConvertLib.sol", - "id": 19, - "nodeType": "ImportDirective", - "scope": 113, - "sourceUnit": 17, - "src": "66:26:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 112, - "linearizedBaseContracts": [ - 112 - ], - "name": "MetaCoin", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 23, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "377:34:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 22, - "keyType": { - "id": 20, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "386:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "377:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 21, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "397:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 31, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 30, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 25, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 31, - "src": "430:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 24, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "430:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 27, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 31, - "src": "453:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 26, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "453:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 29, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 31, - "src": "474:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "474:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "429:60:1" - }, - "src": "415:75:1" - }, - { - "body": { - "id": 41, - "nodeType": "Block", - "src": "514:35:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 39, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 34, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "518:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 37, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 35, - "name": "tx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 176, - "src": "527:2:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_transaction", - "typeString": "tx" - } - }, - "id": 36, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "origin", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "527:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "518:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 38, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "540:5:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "src": "518:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 40, - "nodeType": "ExpressionStatement", - "src": "518:27:1" - } - ] - }, - "documentation": null, - "id": 42, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 32, - "nodeType": "ParameterList", - "parameters": [], - "src": "504:2:1" - }, - "returnParameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [], - "src": "514:0:1" - }, - "scope": 112, - "src": "493:56:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 82, - "nodeType": "Block", - "src": "633:183:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 56, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 51, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "641:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 54, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 52, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "650:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 53, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "650:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "641:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 55, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "664:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "641:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 59, - "nodeType": "IfStatement", - "src": "637:47:1", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 57, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "679:5:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 50, - "id": 58, - "nodeType": "Return", - "src": "672:12:1" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 65, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 60, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "688:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 63, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 61, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "697:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 62, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "697:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "688:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 64, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "712:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "688:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 66, - "nodeType": "ExpressionStatement", - "src": "688:30:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 71, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 67, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "722:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 69, - "indexExpression": { - "argumentTypes": null, - "id": 68, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "731:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "722:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 70, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "744:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "722:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 72, - "nodeType": "ExpressionStatement", - "src": "722:28:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 74, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "768:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 75, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "768:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 76, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "780:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 77, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "790:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 73, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "759:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 78, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "759:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 79, - "nodeType": "EmitStatement", - "src": "754:43:1" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 80, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "808:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 50, - "id": 81, - "nodeType": "Return", - "src": "801:11:1" - } - ] - }, - "documentation": null, - "id": 83, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sendCoin", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 47, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 83, - "src": "570:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "570:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 83, - "src": "588:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 45, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "588:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "569:31:1" - }, - "returnParameters": { - "id": 50, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 49, - "name": "sufficient", - "nodeType": "VariableDeclaration", - "scope": 83, - "src": "616:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 48, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "616:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "615:17:1" - }, - "scope": 112, - "src": "552:264:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 98, - "nodeType": "Block", - "src": "883:53:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 93, - "name": "addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "924:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 92, - "name": "getBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111, - "src": "913:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 94, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "913:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "32", - "id": 95, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "930:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - } - ], - "expression": { - "argumentTypes": null, - "id": 90, - "name": "ConvertLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "894:10:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConvertLib_$16_$", - "typeString": "type(library ConvertLib)" - } - }, - "id": 91, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "convert", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "894:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 96, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "894:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 89, - "id": 97, - "nodeType": "Return", - "src": "887:45:1" - } - ] - }, - "documentation": null, - "id": 99, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBalanceInEth", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 86, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 85, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "844:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 84, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "844:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "843:14:1" - }, - "returnParameters": { - "id": 89, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 88, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "878:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 87, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "878:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "877:6:1" - }, - "scope": 112, - "src": "819:117:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 110, - "nodeType": "Block", - "src": "999:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 106, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "1010:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 108, - "indexExpression": { - "argumentTypes": null, - "id": 107, - "name": "addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "1019:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1010:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 105, - "id": 109, - "nodeType": "Return", - "src": "1003:21:1" - } - ] - }, - "documentation": null, - "id": 111, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 101, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 111, - "src": "959:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 100, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "959:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "958:14:1" - }, - "returnParameters": { - "id": 105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 104, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 111, - "src": "993:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 103, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "993:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "992:6:1" - }, - "scope": 112, - "src": "939:89:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 113, - "src": "356:674:1" - } - ], - "src": "32:999:1" - }, - "legacyAST": { - "absolutePath": "/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/MetaCoin.sol", - "exportedSymbols": { - "MetaCoin": [ - 112 - ] - }, - "id": 113, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 18, - "literals": [ - "solidity", - ">=", - "0.4", - ".25", - "<", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "32:32:1" - }, - { - "absolutePath": "/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/ConvertLib.sol", - "file": "./ConvertLib.sol", - "id": 19, - "nodeType": "ImportDirective", - "scope": 113, - "sourceUnit": 17, - "src": "66:26:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 112, - "linearizedBaseContracts": [ - 112 - ], - "name": "MetaCoin", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 23, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "377:34:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 22, - "keyType": { - "id": 20, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "386:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "377:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 21, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "397:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 31, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 30, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 25, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 31, - "src": "430:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 24, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "430:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 27, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 31, - "src": "453:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 26, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "453:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 29, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 31, - "src": "474:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "474:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "429:60:1" - }, - "src": "415:75:1" - }, - { - "body": { - "id": 41, - "nodeType": "Block", - "src": "514:35:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 39, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 34, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "518:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 37, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 35, - "name": "tx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 176, - "src": "527:2:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_transaction", - "typeString": "tx" - } - }, - "id": 36, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "origin", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "527:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "518:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 38, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "540:5:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "src": "518:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 40, - "nodeType": "ExpressionStatement", - "src": "518:27:1" - } - ] - }, - "documentation": null, - "id": 42, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 32, - "nodeType": "ParameterList", - "parameters": [], - "src": "504:2:1" - }, - "returnParameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [], - "src": "514:0:1" - }, - "scope": 112, - "src": "493:56:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 82, - "nodeType": "Block", - "src": "633:183:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 56, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 51, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "641:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 54, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 52, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "650:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 53, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "650:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "641:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 55, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "664:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "641:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 59, - "nodeType": "IfStatement", - "src": "637:47:1", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 57, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "679:5:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 50, - "id": 58, - "nodeType": "Return", - "src": "672:12:1" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 65, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 60, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "688:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 63, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 61, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "697:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 62, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "697:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "688:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 64, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "712:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "688:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 66, - "nodeType": "ExpressionStatement", - "src": "688:30:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 71, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 67, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "722:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 69, - "indexExpression": { - "argumentTypes": null, - "id": 68, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "731:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "722:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 70, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "744:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "722:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 72, - "nodeType": "ExpressionStatement", - "src": "722:28:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 74, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "768:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 75, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "768:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 76, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "780:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 77, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "790:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 73, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "759:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 78, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "759:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 79, - "nodeType": "EmitStatement", - "src": "754:43:1" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 80, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "808:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 50, - "id": 81, - "nodeType": "Return", - "src": "801:11:1" - } - ] - }, - "documentation": null, - "id": 83, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sendCoin", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 47, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 83, - "src": "570:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "570:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 83, - "src": "588:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 45, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "588:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "569:31:1" - }, - "returnParameters": { - "id": 50, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 49, - "name": "sufficient", - "nodeType": "VariableDeclaration", - "scope": 83, - "src": "616:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 48, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "616:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "615:17:1" - }, - "scope": 112, - "src": "552:264:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 98, - "nodeType": "Block", - "src": "883:53:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 93, - "name": "addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "924:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 92, - "name": "getBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111, - "src": "913:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 94, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "913:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "32", - "id": 95, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "930:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - } - ], - "expression": { - "argumentTypes": null, - "id": 90, - "name": "ConvertLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "894:10:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConvertLib_$16_$", - "typeString": "type(library ConvertLib)" - } - }, - "id": 91, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "convert", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "894:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 96, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "894:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 89, - "id": 97, - "nodeType": "Return", - "src": "887:45:1" - } - ] - }, - "documentation": null, - "id": 99, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBalanceInEth", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 86, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 85, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "844:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 84, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "844:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "843:14:1" - }, - "returnParameters": { - "id": 89, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 88, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "878:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 87, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "878:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "877:6:1" - }, - "scope": 112, - "src": "819:117:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 110, - "nodeType": "Block", - "src": "999:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 106, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "1010:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 108, - "indexExpression": { - "argumentTypes": null, - "id": 107, - "name": "addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "1019:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1010:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 105, - "id": 109, - "nodeType": "Return", - "src": "1003:21:1" - } - ] - }, - "documentation": null, - "id": 111, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 101, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 111, - "src": "959:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 100, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "959:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "958:14:1" - }, - "returnParameters": { - "id": 105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 104, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 111, - "src": "993:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 103, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "993:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "992:6:1" - }, - "scope": 112, - "src": "939:89:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 113, - "src": "356:674:1" - } - ], - "src": "32:999:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.16+commit.9c3226ce.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.2.5", - "updatedAt": "2020-10-01T08:58:31.222Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/services/validation/test/files/truffle-example-missing-source/build/contracts/Migrations.json b/services/validation/test/files/truffle-example-missing-source/build/contracts/Migrations.json deleted file mode 100644 index 18ee8eb16..000000000 --- a/services/validation/test/files/truffle-example-missing-source/build/contracts/Migrations.json +++ /dev/null @@ -1,898 +0,0 @@ -{ - "contractName": "Migrations", - "abi": [ - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "constant": true, - "inputs": [], - "name": "last_completed_migration", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "completed", - "type": "uint256" - } - ], - "name": "setCompleted", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/Migrations.sol\":{\"keccak256\":\"0xdafe59a98205ba8889cd295e6e3cee4b741abfc91f43f6bba8bef739b3978392\",\"urls\":[\"bzz-raw://7d56941ef77b8c2e6b952b0e12babf72dfdc75a4064fec423e1f3b1d31f7b672\",\"dweb:/ipfs/QmPHLHa5ApVbJu8LyKF6xmmJVAg53Qac7KVZWRbkrXJVYx\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061019c806100606000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd576146100ae575b600080fd5b61004e6100dc565b6040518082815260200191505060405180910390f35b61006c6100e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100da600480360360208110156100c457600080fd5b8101908080359060200190929190505050610107565b005b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561016457806001819055505b5056fea265627a7a72315820f0a9eca1c42a4adaa328666242ed3ad59117cbec753d402989704016ef71639b64736f6c63430005100032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd576146100ae575b600080fd5b61004e6100dc565b6040518082815260200191505060405180910390f35b61006c6100e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100da600480360360208110156100c457600080fd5b8101908080359060200190929190505050610107565b005b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561016457806001819055505b5056fea265627a7a72315820f0a9eca1c42a4adaa328666242ed3ad59117cbec753d402989704016ef71639b64736f6c63430005100032", - "sourceMap": "66:311:2:-;;;218:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;218:50:2;253:10;245:5;;:18;;;;;;;;;;;;;;;;;;66:311;;;;;;", - "deployedSourceMap": "66:311:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;66:311:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;114:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;90:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;272:103;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;272:103:2;;;;;;;;;;;;;;;;;:::i;:::-;;114:36;;;;:::o;90:20::-;;;;;;;;;;;;;:::o;272:103::-;201:5;;;;;;;;;;;187:19;;:10;:19;;;183:26;;;361:9;334:24;:36;;;;183:26;272:103;:::o", - "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.25 <0.7.0;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n constructor() public {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n}\n", - "sourcePath": "/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/Migrations.sol", - "ast": { - "absolutePath": "/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/Migrations.sol", - "exportedSymbols": { - "Migrations": [ - 149 - ] - }, - "id": 150, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 114, - "literals": [ - "solidity", - ">=", - "0.4", - ".25", - "<", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "32:32:2" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 149, - "linearizedBaseContracts": [ - 149 - ], - "name": "Migrations", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 116, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 149, - "src": "90:20:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "90:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 118, - "name": "last_completed_migration", - "nodeType": "VariableDeclaration", - "scope": 149, - "src": "114:36:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "114:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 126, - "nodeType": "Block", - "src": "177:37:2", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 120, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "187:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "187:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 122, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "201:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "187:19:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 125, - "nodeType": "IfStatement", - "src": "183:26:2", - "trueBody": { - "id": 124, - "nodeType": "PlaceholderStatement", - "src": "208:1:2" - } - } - ] - }, - "documentation": null, - "id": 127, - "name": "restricted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 119, - "nodeType": "ParameterList", - "parameters": [], - "src": "174:2:2" - }, - "src": "155:59:2", - "visibility": "internal" - }, - { - "body": { - "id": 135, - "nodeType": "Block", - "src": "239:29:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 130, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "245:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 131, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "253:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "253:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "245:18:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 134, - "nodeType": "ExpressionStatement", - "src": "245:18:2" - } - ] - }, - "documentation": null, - "id": 136, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 128, - "nodeType": "ParameterList", - "parameters": [], - "src": "229:2:2" - }, - "returnParameters": { - "id": 129, - "nodeType": "ParameterList", - "parameters": [], - "src": "239:0:2" - }, - "scope": 149, - "src": "218:50:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 147, - "nodeType": "Block", - "src": "328:47:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 143, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 118, - "src": "334:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 144, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "361:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "334:36:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 146, - "nodeType": "ExpressionStatement", - "src": "334:36:2" - } - ] - }, - "documentation": null, - "id": 148, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 141, - "modifierName": { - "argumentTypes": null, - "id": 140, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "317:10:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "317:10:2" - } - ], - "name": "setCompleted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 139, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 138, - "name": "completed", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "294:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 137, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "294:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "293:16:2" - }, - "returnParameters": { - "id": 142, - "nodeType": "ParameterList", - "parameters": [], - "src": "328:0:2" - }, - "scope": 149, - "src": "272:103:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 150, - "src": "66:311:2" - } - ], - "src": "32:346:2" - }, - "legacyAST": { - "absolutePath": "/home/fabijan/sourcify/services/validation/test/truffle-example-incorrect/contracts/Migrations.sol", - "exportedSymbols": { - "Migrations": [ - 149 - ] - }, - "id": 150, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 114, - "literals": [ - "solidity", - ">=", - "0.4", - ".25", - "<", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "32:32:2" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 149, - "linearizedBaseContracts": [ - 149 - ], - "name": "Migrations", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 116, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 149, - "src": "90:20:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "90:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 118, - "name": "last_completed_migration", - "nodeType": "VariableDeclaration", - "scope": 149, - "src": "114:36:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "114:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 126, - "nodeType": "Block", - "src": "177:37:2", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 120, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "187:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "187:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 122, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "201:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "187:19:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 125, - "nodeType": "IfStatement", - "src": "183:26:2", - "trueBody": { - "id": 124, - "nodeType": "PlaceholderStatement", - "src": "208:1:2" - } - } - ] - }, - "documentation": null, - "id": 127, - "name": "restricted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 119, - "nodeType": "ParameterList", - "parameters": [], - "src": "174:2:2" - }, - "src": "155:59:2", - "visibility": "internal" - }, - { - "body": { - "id": 135, - "nodeType": "Block", - "src": "239:29:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 130, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "245:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 131, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "253:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "253:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "245:18:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 134, - "nodeType": "ExpressionStatement", - "src": "245:18:2" - } - ] - }, - "documentation": null, - "id": 136, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 128, - "nodeType": "ParameterList", - "parameters": [], - "src": "229:2:2" - }, - "returnParameters": { - "id": 129, - "nodeType": "ParameterList", - "parameters": [], - "src": "239:0:2" - }, - "scope": 149, - "src": "218:50:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 147, - "nodeType": "Block", - "src": "328:47:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 143, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 118, - "src": "334:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 144, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "361:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "334:36:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 146, - "nodeType": "ExpressionStatement", - "src": "334:36:2" - } - ] - }, - "documentation": null, - "id": 148, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 141, - "modifierName": { - "argumentTypes": null, - "id": 140, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "317:10:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "317:10:2" - } - ], - "name": "setCompleted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 139, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 138, - "name": "completed", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "294:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 137, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "294:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "293:16:2" - }, - "returnParameters": { - "id": 142, - "nodeType": "ParameterList", - "parameters": [], - "src": "328:0:2" - }, - "scope": 149, - "src": "272:103:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 150, - "src": "66:311:2" - } - ], - "src": "32:346:2" - }, - "compiler": { - "name": "solc", - "version": "0.5.16+commit.9c3226ce.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.2.5", - "updatedAt": "2020-10-01T08:58:31.224Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/services/validation/test/files/truffle-example/build/contracts/ConvertLib.json b/services/validation/test/files/truffle-example/build/contracts/ConvertLib.json deleted file mode 100644 index 087dae469..000000000 --- a/services/validation/test/files/truffle-example/build/contracts/ConvertLib.json +++ /dev/null @@ -1,467 +0,0 @@ -{ - "contractName": "ConvertLib", - "abi": [ - { - "constant": true, - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "conversionRate", - "type": "uint256" - } - ], - "name": "convert", - "outputs": [ - { - "internalType": "uint256", - "name": "convertedAmount", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"conversionRate\",\"type\":\"uint256\"}],\"name\":\"convert\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"convertedAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/ConvertLib.sol\":\"ConvertLib\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/ConvertLib.sol\":{\"keccak256\":\"0xa95479aadd1facea97659bb29b825dbe847d6683880f0edc49b2e02517f3f5dd\",\"urls\":[\"bzz-raw://035feb5b82d2e91cb244970d553c5e2099e4df7c9746d9a4f7bad3059ac4cae3\",\"dweb:/ipfs/QmYoYLHaXxjotgxDvEHYGadJyYtEKtETn8FDwFgzyZL62E\"]}},\"version\":1}", - "bytecode": "0x60c3610025600b82828239805160001a60731461001857fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c806396e4ee3d146038575b600080fd5b606b60048036036040811015604c57600080fd5b8101908080359060200190929190803590602001909291905050506081565b6040518082815260200191505060405180910390f35b600081830290509291505056fea265627a7a723158204a24be3807853da71eeb2fe9793760f8ee06b3d603c125e95c2fb38cc31ec0b364736f6c63430005100032", - "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361060335760003560e01c806396e4ee3d146038575b600080fd5b606b60048036036040811015604c57600080fd5b8101908080359060200190929190803590602001909291905050506081565b6040518082815260200191505060405180910390f35b600081830290509291505056fea265627a7a723158204a24be3807853da71eeb2fe9793760f8ee06b3d603c125e95c2fb38cc31ec0b364736f6c63430005100032", - "sourceMap": "66:155:0:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "deployedSourceMap": "66:155:0:-;;;;;;;;;;;;;;;;;;;;;;;;87:132;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;87:132:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;158:20;201:14;192:6;:23;185:30;;87:132;;;;:::o", - "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.25 <0.7.0;\n\nlibrary ConvertLib{\n\tfunction convert(uint amount,uint conversionRate) public pure returns (uint convertedAmount)\n\t{\n\t\treturn amount * conversionRate;\n\t}\n}\n", - "sourcePath": "/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/ConvertLib.sol", - "ast": { - "absolutePath": "/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/ConvertLib.sol", - "exportedSymbols": { - "ConvertLib": [ - 16 - ] - }, - "id": 17, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - ">=", - "0.4", - ".25", - "<", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "32:32:0" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 16, - "linearizedBaseContracts": [ - 16 - ], - "name": "ConvertLib", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 14, - "nodeType": "Block", - "src": "181:38:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "192:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11, - "name": "conversionRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "201:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "192:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9, - "id": 13, - "nodeType": "Return", - "src": "185:30:0" - } - ] - }, - "documentation": null, - "id": 15, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "convert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 15, - "src": "104:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "104:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5, - "name": "conversionRate", - "nodeType": "VariableDeclaration", - "scope": 15, - "src": "116:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "116:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "103:33:0" - }, - "returnParameters": { - "id": 9, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8, - "name": "convertedAmount", - "nodeType": "VariableDeclaration", - "scope": 15, - "src": "158:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "158:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "157:22:0" - }, - "scope": 16, - "src": "87:132:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 17, - "src": "66:155:0" - } - ], - "src": "32:190:0" - }, - "legacyAST": { - "absolutePath": "/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/ConvertLib.sol", - "exportedSymbols": { - "ConvertLib": [ - 16 - ] - }, - "id": 17, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - ">=", - "0.4", - ".25", - "<", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "32:32:0" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 16, - "linearizedBaseContracts": [ - 16 - ], - "name": "ConvertLib", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 14, - "nodeType": "Block", - "src": "181:38:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "192:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11, - "name": "conversionRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "201:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "192:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9, - "id": 13, - "nodeType": "Return", - "src": "185:30:0" - } - ] - }, - "documentation": null, - "id": 15, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "convert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 15, - "src": "104:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "104:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5, - "name": "conversionRate", - "nodeType": "VariableDeclaration", - "scope": 15, - "src": "116:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "116:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "103:33:0" - }, - "returnParameters": { - "id": 9, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8, - "name": "convertedAmount", - "nodeType": "VariableDeclaration", - "scope": 15, - "src": "158:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "158:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "157:22:0" - }, - "scope": 16, - "src": "87:132:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 17, - "src": "66:155:0" - } - ], - "src": "32:190:0" - }, - "compiler": { - "name": "solc", - "version": "0.5.16+commit.9c3226ce.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.2.5", - "updatedAt": "2020-09-29T10:56:18.968Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/services/validation/test/files/truffle-example/build/contracts/MetaCoin.json b/services/validation/test/files/truffle-example/build/contracts/MetaCoin.json deleted file mode 100644 index 7939cfd87..000000000 --- a/services/validation/test/files/truffle-example/build/contracts/MetaCoin.json +++ /dev/null @@ -1,2520 +0,0 @@ -{ - "contractName": "MetaCoin", - "abi": [ - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "sendCoin", - "outputs": [ - { - "internalType": "bool", - "name": "sufficient", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "addr", - "type": "address" - } - ], - "name": "getBalanceInEth", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "addr", - "type": "address" - } - ], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getBalanceInEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendCoin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"sufficient\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/MetaCoin.sol\":\"MetaCoin\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/ConvertLib.sol\":{\"keccak256\":\"0xa95479aadd1facea97659bb29b825dbe847d6683880f0edc49b2e02517f3f5dd\",\"urls\":[\"bzz-raw://035feb5b82d2e91cb244970d553c5e2099e4df7c9746d9a4f7bad3059ac4cae3\",\"dweb:/ipfs/QmYoYLHaXxjotgxDvEHYGadJyYtEKtETn8FDwFgzyZL62E\"]},\"/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/MetaCoin.sol\":{\"keccak256\":\"0x3120b2b343640c8ef461e38ad28e7a85ef99f4fe375376de0c7e2cee56e96e1d\",\"urls\":[\"bzz-raw://c4d47ad4bc9eec4ceb27b6055ca4e748d473622a42227fe516b08b7254e3bab3\",\"dweb:/ipfs/QmcqCW2TvR7FQ271oarfvRi6phLXAPxCjTWXcd7CJu7sdZ\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b506127106000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506103d6806100656000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80637bd703e81461004657806390b98a111461009e578063f8b2cb4f14610104575b600080fd5b6100886004803603602081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061015c565b6040518082815260200191505060405180910390f35b6100ea600480360360408110156100b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610200565b604051808215151515815260200191505060405180910390f35b6101466004803603602081101561011a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610359565b6040518082815260200191505060405180910390f35b600073__ConvertLib____________________________6396e4ee3d61018184610359565b60026040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156101be57600080fd5b505af41580156101d2573d6000803e3d6000fd5b505050506040513d60208110156101e857600080fd5b81019080805190602001909291905050509050919050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156102515760009050610353565b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b92915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905091905056fea265627a7a7231582023dc91ba0350ce0dbc992f963ec2ff6d9596fc00f5785f81b47165e393143ea764736f6c63430005100032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80637bd703e81461004657806390b98a111461009e578063f8b2cb4f14610104575b600080fd5b6100886004803603602081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061015c565b6040518082815260200191505060405180910390f35b6100ea600480360360408110156100b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610200565b604051808215151515815260200191505060405180910390f35b6101466004803603602081101561011a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610359565b6040518082815260200191505060405180910390f35b600073__ConvertLib____________________________6396e4ee3d61018184610359565b60026040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156101be57600080fd5b505af41580156101d2573d6000803e3d6000fd5b505050506040513d60208110156101e857600080fd5b81019080805190602001909291905050509050919050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156102515760009050610353565b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b92915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905091905056fea265627a7a7231582023dc91ba0350ce0dbc992f963ec2ff6d9596fc00f5785f81b47165e393143ea764736f6c63430005100032", - "sourceMap": "356:674:1:-;;;493:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;493:56:1;540:5;518:8;:19;527:9;518:19;;;;;;;;;;;;;;;:27;;;;356:674;;;;;;", - "deployedSourceMap": "356:674:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;356:674:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;819:117;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;819:117:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;552:264;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;552:264:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;939:89;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;939:89:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;819:117;878:4;894:10;:18;913:16;924:4;913:10;:16::i;:::-;930:1;894:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;894:38:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;894:38:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;894:38:1;;;;;;;;;;;;;;;;887:45;;819:117;;;:::o;552:264::-;616:15;664:6;641:8;:20;650:10;641:20;;;;;;;;;;;;;;;;:29;637:47;;;679:5;672:12;;;;637:47;712:6;688:8;:20;697:10;688:20;;;;;;;;;;;;;;;;:30;;;;;;;;;;;744:6;722:8;:18;731:8;722:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;780:8;759:38;;768:10;759:38;;;790:6;759:38;;;;;;;;;;;;;;;;;;808:4;801:11;;552:264;;;;;:::o;939:89::-;993:4;1010:8;:14;1019:4;1010:14;;;;;;;;;;;;;;;;1003:21;;939:89;;;:::o", - "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.25 <0.7.0;\n\nimport \"./ConvertLib.sol\";\n\n// This is just a simple example of a coin-like contract.\n// It is not standards compatible and cannot be expected to talk to other\n// coin/token contracts. If you want to create a standards-compliant\n// token, see: https://github.com/ConsenSys/Tokens. Cheers!\n\ncontract MetaCoin {\n\tmapping (address => uint) balances;\n\n\tevent Transfer(address indexed _from, address indexed _to, uint256 _value);\n\n\tconstructor() public {\n\t\tbalances[tx.origin] = 10000;\n\t}\n\n\tfunction sendCoin(address receiver, uint amount) public returns(bool sufficient) {\n\t\tif (balances[msg.sender] < amount) return false;\n\t\tbalances[msg.sender] -= amount;\n\t\tbalances[receiver] += amount;\n\t\temit Transfer(msg.sender, receiver, amount);\n\t\treturn true;\n\t}\n\n\tfunction getBalanceInEth(address addr) public view returns(uint){\n\t\treturn ConvertLib.convert(getBalance(addr),2);\n\t}\n\n\tfunction getBalance(address addr) public view returns(uint) {\n\t\treturn balances[addr];\n\t}\n}\n", - "sourcePath": "/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/MetaCoin.sol", - "ast": { - "absolutePath": "/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/MetaCoin.sol", - "exportedSymbols": { - "MetaCoin": [ - 112 - ] - }, - "id": 113, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 18, - "literals": [ - "solidity", - ">=", - "0.4", - ".25", - "<", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "32:32:1" - }, - { - "absolutePath": "/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/ConvertLib.sol", - "file": "./ConvertLib.sol", - "id": 19, - "nodeType": "ImportDirective", - "scope": 113, - "sourceUnit": 17, - "src": "66:26:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 112, - "linearizedBaseContracts": [ - 112 - ], - "name": "MetaCoin", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 23, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "377:34:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 22, - "keyType": { - "id": 20, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "386:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "377:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 21, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "397:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 31, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 30, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 25, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 31, - "src": "430:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 24, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "430:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 27, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 31, - "src": "453:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 26, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "453:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 29, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 31, - "src": "474:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "474:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "429:60:1" - }, - "src": "415:75:1" - }, - { - "body": { - "id": 41, - "nodeType": "Block", - "src": "514:35:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 39, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 34, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "518:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 37, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 35, - "name": "tx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 176, - "src": "527:2:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_transaction", - "typeString": "tx" - } - }, - "id": 36, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "origin", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "527:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "518:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 38, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "540:5:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "src": "518:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 40, - "nodeType": "ExpressionStatement", - "src": "518:27:1" - } - ] - }, - "documentation": null, - "id": 42, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 32, - "nodeType": "ParameterList", - "parameters": [], - "src": "504:2:1" - }, - "returnParameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [], - "src": "514:0:1" - }, - "scope": 112, - "src": "493:56:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 82, - "nodeType": "Block", - "src": "633:183:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 56, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 51, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "641:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 54, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 52, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "650:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 53, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "650:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "641:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 55, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "664:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "641:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 59, - "nodeType": "IfStatement", - "src": "637:47:1", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 57, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "679:5:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 50, - "id": 58, - "nodeType": "Return", - "src": "672:12:1" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 65, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 60, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "688:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 63, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 61, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "697:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 62, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "697:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "688:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 64, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "712:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "688:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 66, - "nodeType": "ExpressionStatement", - "src": "688:30:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 71, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 67, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "722:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 69, - "indexExpression": { - "argumentTypes": null, - "id": 68, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "731:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "722:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 70, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "744:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "722:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 72, - "nodeType": "ExpressionStatement", - "src": "722:28:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 74, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "768:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 75, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "768:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 76, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "780:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 77, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "790:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 73, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "759:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 78, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "759:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 79, - "nodeType": "EmitStatement", - "src": "754:43:1" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 80, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "808:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 50, - "id": 81, - "nodeType": "Return", - "src": "801:11:1" - } - ] - }, - "documentation": null, - "id": 83, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sendCoin", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 47, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 83, - "src": "570:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "570:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 83, - "src": "588:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 45, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "588:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "569:31:1" - }, - "returnParameters": { - "id": 50, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 49, - "name": "sufficient", - "nodeType": "VariableDeclaration", - "scope": 83, - "src": "616:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 48, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "616:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "615:17:1" - }, - "scope": 112, - "src": "552:264:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 98, - "nodeType": "Block", - "src": "883:53:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 93, - "name": "addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "924:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 92, - "name": "getBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111, - "src": "913:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 94, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "913:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "32", - "id": 95, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "930:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - } - ], - "expression": { - "argumentTypes": null, - "id": 90, - "name": "ConvertLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "894:10:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConvertLib_$16_$", - "typeString": "type(library ConvertLib)" - } - }, - "id": 91, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "convert", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "894:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 96, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "894:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 89, - "id": 97, - "nodeType": "Return", - "src": "887:45:1" - } - ] - }, - "documentation": null, - "id": 99, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBalanceInEth", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 86, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 85, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "844:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 84, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "844:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "843:14:1" - }, - "returnParameters": { - "id": 89, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 88, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "878:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 87, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "878:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "877:6:1" - }, - "scope": 112, - "src": "819:117:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 110, - "nodeType": "Block", - "src": "999:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 106, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "1010:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 108, - "indexExpression": { - "argumentTypes": null, - "id": 107, - "name": "addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "1019:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1010:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 105, - "id": 109, - "nodeType": "Return", - "src": "1003:21:1" - } - ] - }, - "documentation": null, - "id": 111, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 101, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 111, - "src": "959:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 100, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "959:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "958:14:1" - }, - "returnParameters": { - "id": 105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 104, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 111, - "src": "993:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 103, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "993:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "992:6:1" - }, - "scope": 112, - "src": "939:89:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 113, - "src": "356:674:1" - } - ], - "src": "32:999:1" - }, - "legacyAST": { - "absolutePath": "/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/MetaCoin.sol", - "exportedSymbols": { - "MetaCoin": [ - 112 - ] - }, - "id": 113, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 18, - "literals": [ - "solidity", - ">=", - "0.4", - ".25", - "<", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "32:32:1" - }, - { - "absolutePath": "/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/ConvertLib.sol", - "file": "./ConvertLib.sol", - "id": 19, - "nodeType": "ImportDirective", - "scope": 113, - "sourceUnit": 17, - "src": "66:26:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 112, - "linearizedBaseContracts": [ - 112 - ], - "name": "MetaCoin", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 23, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "377:34:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 22, - "keyType": { - "id": 20, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "386:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "377:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 21, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "397:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 31, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 30, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 25, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 31, - "src": "430:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 24, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "430:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 27, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 31, - "src": "453:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 26, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "453:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 29, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 31, - "src": "474:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "474:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "429:60:1" - }, - "src": "415:75:1" - }, - { - "body": { - "id": 41, - "nodeType": "Block", - "src": "514:35:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 39, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 34, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "518:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 37, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 35, - "name": "tx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 176, - "src": "527:2:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_transaction", - "typeString": "tx" - } - }, - "id": 36, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "origin", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "527:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "518:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 38, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "540:5:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "src": "518:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 40, - "nodeType": "ExpressionStatement", - "src": "518:27:1" - } - ] - }, - "documentation": null, - "id": 42, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 32, - "nodeType": "ParameterList", - "parameters": [], - "src": "504:2:1" - }, - "returnParameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [], - "src": "514:0:1" - }, - "scope": 112, - "src": "493:56:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 82, - "nodeType": "Block", - "src": "633:183:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 56, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 51, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "641:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 54, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 52, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "650:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 53, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "650:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "641:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 55, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "664:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "641:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 59, - "nodeType": "IfStatement", - "src": "637:47:1", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 57, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "679:5:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 50, - "id": 58, - "nodeType": "Return", - "src": "672:12:1" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 65, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 60, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "688:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 63, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 61, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "697:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 62, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "697:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "688:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 64, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "712:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "688:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 66, - "nodeType": "ExpressionStatement", - "src": "688:30:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 71, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 67, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "722:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 69, - "indexExpression": { - "argumentTypes": null, - "id": 68, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "731:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "722:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 70, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "744:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "722:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 72, - "nodeType": "ExpressionStatement", - "src": "722:28:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 74, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "768:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 75, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "768:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 76, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "780:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 77, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "790:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 73, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "759:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 78, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "759:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 79, - "nodeType": "EmitStatement", - "src": "754:43:1" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 80, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "808:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 50, - "id": 81, - "nodeType": "Return", - "src": "801:11:1" - } - ] - }, - "documentation": null, - "id": 83, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sendCoin", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 47, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 83, - "src": "570:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "570:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 83, - "src": "588:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 45, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "588:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "569:31:1" - }, - "returnParameters": { - "id": 50, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 49, - "name": "sufficient", - "nodeType": "VariableDeclaration", - "scope": 83, - "src": "616:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 48, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "616:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "615:17:1" - }, - "scope": 112, - "src": "552:264:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 98, - "nodeType": "Block", - "src": "883:53:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 93, - "name": "addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "924:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 92, - "name": "getBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111, - "src": "913:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 94, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "913:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "32", - "id": 95, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "930:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - } - ], - "expression": { - "argumentTypes": null, - "id": 90, - "name": "ConvertLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "894:10:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConvertLib_$16_$", - "typeString": "type(library ConvertLib)" - } - }, - "id": 91, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "convert", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "894:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 96, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "894:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 89, - "id": 97, - "nodeType": "Return", - "src": "887:45:1" - } - ] - }, - "documentation": null, - "id": 99, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBalanceInEth", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 86, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 85, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "844:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 84, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "844:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "843:14:1" - }, - "returnParameters": { - "id": 89, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 88, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "878:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 87, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "878:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "877:6:1" - }, - "scope": 112, - "src": "819:117:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 110, - "nodeType": "Block", - "src": "999:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 106, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "1010:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 108, - "indexExpression": { - "argumentTypes": null, - "id": 107, - "name": "addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "1019:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1010:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 105, - "id": 109, - "nodeType": "Return", - "src": "1003:21:1" - } - ] - }, - "documentation": null, - "id": 111, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 101, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 111, - "src": "959:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 100, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "959:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "958:14:1" - }, - "returnParameters": { - "id": 105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 104, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 111, - "src": "993:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 103, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "993:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "992:6:1" - }, - "scope": 112, - "src": "939:89:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 113, - "src": "356:674:1" - } - ], - "src": "32:999:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.16+commit.9c3226ce.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.2.5", - "updatedAt": "2020-09-29T10:56:18.969Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/services/validation/test/files/truffle-example/build/contracts/Migrations.json b/services/validation/test/files/truffle-example/build/contracts/Migrations.json deleted file mode 100644 index fd21a2235..000000000 --- a/services/validation/test/files/truffle-example/build/contracts/Migrations.json +++ /dev/null @@ -1,898 +0,0 @@ -{ - "contractName": "Migrations", - "abi": [ - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "constant": true, - "inputs": [], - "name": "last_completed_migration", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "completed", - "type": "uint256" - } - ], - "name": "setCompleted", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/Migrations.sol\":{\"keccak256\":\"0xdafe59a98205ba8889cd295e6e3cee4b741abfc91f43f6bba8bef739b3978392\",\"urls\":[\"bzz-raw://7d56941ef77b8c2e6b952b0e12babf72dfdc75a4064fec423e1f3b1d31f7b672\",\"dweb:/ipfs/QmPHLHa5ApVbJu8LyKF6xmmJVAg53Qac7KVZWRbkrXJVYx\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061019c806100606000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd576146100ae575b600080fd5b61004e6100dc565b6040518082815260200191505060405180910390f35b61006c6100e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100da600480360360208110156100c457600080fd5b8101908080359060200190929190505050610107565b005b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561016457806001819055505b5056fea265627a7a723158209aef44864147d47c4115cfaae3db746a29cf8328d12d14f133d751e2848040a264736f6c63430005100032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd576146100ae575b600080fd5b61004e6100dc565b6040518082815260200191505060405180910390f35b61006c6100e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100da600480360360208110156100c457600080fd5b8101908080359060200190929190505050610107565b005b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561016457806001819055505b5056fea265627a7a723158209aef44864147d47c4115cfaae3db746a29cf8328d12d14f133d751e2848040a264736f6c63430005100032", - "sourceMap": "66:311:2:-;;;218:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;218:50:2;253:10;245:5;;:18;;;;;;;;;;;;;;;;;;66:311;;;;;;", - "deployedSourceMap": "66:311:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;66:311:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;114:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;90:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;272:103;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;272:103:2;;;;;;;;;;;;;;;;;:::i;:::-;;114:36;;;;:::o;90:20::-;;;;;;;;;;;;;:::o;272:103::-;201:5;;;;;;;;;;;187:19;;:10;:19;;;183:26;;;361:9;334:24;:36;;;;183:26;272:103;:::o", - "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.25 <0.7.0;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n constructor() public {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n}\n", - "sourcePath": "/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/Migrations.sol", - "ast": { - "absolutePath": "/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/Migrations.sol", - "exportedSymbols": { - "Migrations": [ - 149 - ] - }, - "id": 150, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 114, - "literals": [ - "solidity", - ">=", - "0.4", - ".25", - "<", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "32:32:2" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 149, - "linearizedBaseContracts": [ - 149 - ], - "name": "Migrations", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 116, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 149, - "src": "90:20:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "90:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 118, - "name": "last_completed_migration", - "nodeType": "VariableDeclaration", - "scope": 149, - "src": "114:36:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "114:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 126, - "nodeType": "Block", - "src": "177:37:2", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 120, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "187:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "187:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 122, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "201:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "187:19:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 125, - "nodeType": "IfStatement", - "src": "183:26:2", - "trueBody": { - "id": 124, - "nodeType": "PlaceholderStatement", - "src": "208:1:2" - } - } - ] - }, - "documentation": null, - "id": 127, - "name": "restricted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 119, - "nodeType": "ParameterList", - "parameters": [], - "src": "174:2:2" - }, - "src": "155:59:2", - "visibility": "internal" - }, - { - "body": { - "id": 135, - "nodeType": "Block", - "src": "239:29:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 130, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "245:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 131, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "253:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "253:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "245:18:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 134, - "nodeType": "ExpressionStatement", - "src": "245:18:2" - } - ] - }, - "documentation": null, - "id": 136, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 128, - "nodeType": "ParameterList", - "parameters": [], - "src": "229:2:2" - }, - "returnParameters": { - "id": 129, - "nodeType": "ParameterList", - "parameters": [], - "src": "239:0:2" - }, - "scope": 149, - "src": "218:50:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 147, - "nodeType": "Block", - "src": "328:47:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 143, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 118, - "src": "334:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 144, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "361:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "334:36:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 146, - "nodeType": "ExpressionStatement", - "src": "334:36:2" - } - ] - }, - "documentation": null, - "id": 148, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 141, - "modifierName": { - "argumentTypes": null, - "id": 140, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "317:10:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "317:10:2" - } - ], - "name": "setCompleted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 139, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 138, - "name": "completed", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "294:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 137, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "294:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "293:16:2" - }, - "returnParameters": { - "id": 142, - "nodeType": "ParameterList", - "parameters": [], - "src": "328:0:2" - }, - "scope": 149, - "src": "272:103:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 150, - "src": "66:311:2" - } - ], - "src": "32:346:2" - }, - "legacyAST": { - "absolutePath": "/home/fabijan/sourcify/services/validation/test/truffle-example/contracts/Migrations.sol", - "exportedSymbols": { - "Migrations": [ - 149 - ] - }, - "id": 150, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 114, - "literals": [ - "solidity", - ">=", - "0.4", - ".25", - "<", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "32:32:2" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 149, - "linearizedBaseContracts": [ - 149 - ], - "name": "Migrations", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 116, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 149, - "src": "90:20:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "90:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 118, - "name": "last_completed_migration", - "nodeType": "VariableDeclaration", - "scope": 149, - "src": "114:36:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "114:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 126, - "nodeType": "Block", - "src": "177:37:2", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 120, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "187:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "187:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 122, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "201:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "187:19:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 125, - "nodeType": "IfStatement", - "src": "183:26:2", - "trueBody": { - "id": 124, - "nodeType": "PlaceholderStatement", - "src": "208:1:2" - } - } - ] - }, - "documentation": null, - "id": 127, - "name": "restricted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 119, - "nodeType": "ParameterList", - "parameters": [], - "src": "174:2:2" - }, - "src": "155:59:2", - "visibility": "internal" - }, - { - "body": { - "id": 135, - "nodeType": "Block", - "src": "239:29:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 130, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "245:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 131, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "253:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "253:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "245:18:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 134, - "nodeType": "ExpressionStatement", - "src": "245:18:2" - } - ] - }, - "documentation": null, - "id": 136, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 128, - "nodeType": "ParameterList", - "parameters": [], - "src": "229:2:2" - }, - "returnParameters": { - "id": 129, - "nodeType": "ParameterList", - "parameters": [], - "src": "239:0:2" - }, - "scope": 149, - "src": "218:50:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 147, - "nodeType": "Block", - "src": "328:47:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 143, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 118, - "src": "334:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 144, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "361:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "334:36:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 146, - "nodeType": "ExpressionStatement", - "src": "334:36:2" - } - ] - }, - "documentation": null, - "id": 148, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 141, - "modifierName": { - "argumentTypes": null, - "id": 140, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "317:10:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "317:10:2" - } - ], - "name": "setCompleted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 139, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 138, - "name": "completed", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "294:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 137, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "294:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "293:16:2" - }, - "returnParameters": { - "id": 142, - "nodeType": "ParameterList", - "parameters": [], - "src": "328:0:2" - }, - "scope": 149, - "src": "272:103:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 150, - "src": "66:311:2" - } - ], - "src": "32:346:2" - }, - "compiler": { - "name": "solc", - "version": "0.5.16+commit.9c3226ce.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.2.5", - "updatedAt": "2020-09-29T10:56:18.970Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/services/validation/test/index.js b/services/validation/test/index.js deleted file mode 100644 index e7d2003da..000000000 --- a/services/validation/test/index.js +++ /dev/null @@ -1,170 +0,0 @@ -process.env.TESTING = "true"; -const chai = require("chai"); -const chaiExec = require("@jsdevtools/chai-exec"); -const fs = require("fs"); -const path = require("path"); - -chai.use(chaiExec); -const EXPECTED_OUTPUT_DIR = path.join("test", "expected-output"); -const SCRIPT_PATH = path.join("build", "index.js"); - -String.prototype.format = function () { - a = this; - for (k in arguments) { - a = a.replace("{" + k + "}", arguments[k]); - } - return a; -}; -// show current directory - -function compareExecutionWithFile( - commandArguments, - expectedFileName, - expectedExitCode -) { - const command = `node ${SCRIPT_PATH} ${commandArguments}`; - const myCLI = chaiExec(command); - const expectedFilePath = path.join(EXPECTED_OUTPUT_DIR, expectedFileName); - const expectedOutput = fs - .readFileSync(expectedFilePath) - .toString() - .format(process.cwd()); - chai.expect(myCLI).stdout.to.equal(expectedOutput); - chai.expect(myCLI).exitCode.to.equal(expectedExitCode); -} - -const EXTENDED_TIME = 15000; // 15 seconds - -describe("main", function () { - this.timeout(EXTENDED_TIME); - - it("should succeed for single source file", function () { - const testPath = path.join("test", "files", "single"); - compareExecutionWithFile(testPath, "single-correct.txt", 0); - }); - - it("should fail for single source file missing", function () { - const testPath = path.join("test", "files", "single", "metadata.json"); - compareExecutionWithFile(testPath, "single-missing-source.txt", 1); - }); - - it("should fail for nonexistent path", function () { - const testPaths = [ - path.join("test", "files", "single", "foobar.sol"), - path.join("test", "files", "single", "metadata.json"), - ]; - compareExecutionWithFile(testPaths.join(" "), "nonexistent-path.txt", 1); - }); - - it("should fail for metadata missing", function () { - const testPath = path.join("test", "files", "single", "1_Storage.sol"); - compareExecutionWithFile(testPath, "single-missing-metadata.txt", 1); - }); - - it("should succeed for multiple files", function () { - const testPath = path.join("test", "files", "multiple"); - compareExecutionWithFile(testPath, "multiple-correct.txt", 0); - }); - - it("should fail for multiple files required, some missing", function () { - const testPaths = [ - path.join("test", "files", "multiple", "Main.sol"), - path.join("test", "files", "multiple", "Escrow.sol"), - path.join("test", "files", "multiple", "metadata.json"), - ]; - compareExecutionWithFile( - testPaths.join(" "), - "multiple-missing-source.txt", - 1 - ); - }); - - it("should succeed for zipped truffle project", function () { - const testPath = path.join("test", "files", "truffle-example.zip"); - compareExecutionWithFile(testPath, "truffle-example-correct.txt", 0); - }); - - it("should fail for zipped truffle project with missing sources", function () { - const testPath = path.join( - "test", - "files", - "truffle-example-missing-source.zip" - ); - compareExecutionWithFile(testPath, "truffle-example-missing-source.txt", 1); - }); - - it("should fail for the only source file having wrong hash", function () { - const testPath = path.join("test", "files", "single-altered"); - compareExecutionWithFile(testPath, "single-altered.txt", 1); - }); - - it("should fail for multiple source files, one having wrong hash", function () { - const testPath = path.join("test", "files", "multiple-altered"); - compareExecutionWithFile(testPath, "multiple-altered.txt", 1); - }); - - it("should succeed for a metadata file with content", function () { - const testPath = path.join("test", "files", "metadata-with-content.json"); - compareExecutionWithFile(testPath, "metadata-with-content.txt", 0); - }); - - it("should fail for a metadata file with altered content", function () { - const testPath = path.join( - "test", - "files", - "metadata-with-content-altered.json" - ); - compareExecutionWithFile(testPath, "metadata-with-content-altered.txt", 1); - }); - - it("should render standard-json for single source case (short option name)", function () { - const testPath = path.join("test", "files", "single"); - const options = "-j browser/1_Storage.sol:Storage"; - const commandArguments = `${options} ${testPath}`; - compareExecutionWithFile(commandArguments, "single.json", 0); - }); - - it("should render standard-json for single source case (full option name)", function () { - const testPath = path.join("test", "files", "single"); - const options = "--prepare-json browser/1_Storage.sol:Storage"; - const commandArguments = `${options} ${testPath}`; - compareExecutionWithFile(commandArguments, "single.json", 0); - }); - - it("should render standard-json for single source case when contract path is omitted", function () { - const testPath = path.join("test", "files", "single"); - const options = "-j Storage"; - const commandArguments = `${options} ${testPath}`; - compareExecutionWithFile(commandArguments, "single.json", 0); - }); - - it("should render standard-json for single source case when contract name is omitted", function () { - const testPath = path.join("test", "files", "single"); - const options = "-j browser/1_Storage.sol"; - const commandArguments = `${options} ${testPath}`; - compareExecutionWithFile(commandArguments, "single.json", 0); - }); - - it("should not render standard-json for errors existing in a single source case", function () { - const testPath = path.join("test", "files", "single-altered"); - const options = "-j browser/1_Storage.sol:Storage"; - const commandArguments = `${options} ${testPath}`; - compareExecutionWithFile(commandArguments, "single-no-json.txt", 1); - }); - - it("should not render standard-json for missing target", function () { - const testPath = path.join("test", "files", "single"); - const options = "-j browser/Savings.sol:Savings"; - const commandArguments = `${options} ${testPath}`; - compareExecutionWithFile(commandArguments, "target-not-found.txt", 1); - }); - - it("should fail for multiple compilationTargets", function () { - const testPath = path.join( - "test", - "files", - "metadata-multiple-targets.json" - ); - compareExecutionWithFile(testPath, "multiple-targets.txt", 1); - }); -}); diff --git a/services/validation/tsconfig.json b/services/validation/tsconfig.json deleted file mode 100644 index 661ff7190..000000000 --- a/services/validation/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "compilerOptions": { - "allowJs": true, - "target": "es2017", - "sourceMap": true, - "esModuleInterop": true, - "declaration": true, - "strict": true, - "outDir": "build", - "resolveJsonModule": true, - "strictNullChecks": false, - "module": "commonjs" - }, - "include": ["./src"] -} \ No newline at end of file diff --git a/services/verification/.gitignore b/services/verification/.gitignore deleted file mode 100644 index 609a79c4b..000000000 --- a/services/verification/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -build -test diff --git a/services/verification/README.md b/services/verification/README.md deleted file mode 100644 index 72bf09091..000000000 --- a/services/verification/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# Sourcify Verification 🧑â€ðŸ’»ðŸ“🔠- -The Sourcify Verification module is intended to help you recompile and check if the deployed contract matches your sources. -If you want to validate your sources first and see if they are viable please use `@ethereum-sourcify/validation` module. - -## Overview -This module exports two classes, `VerificationService` and `Injector`. -`Injector` is the brain of this module, it can recompile, verify and store verified contracts in the repository. -If you are building a project that will check sources for some addresses multiple times, use the `VerificationService` class which offers you option to check if contract with the desired address is already verified and stored inside your repository. - -## Usage as a module -* `npm install @ethereum-sourcify/verification` - -### Injector - -`Injector` constructor receives `InjectorConfig`: - -```typescript -interface InjectorConfig { - alchemyPID?: string, // Alchemy project ID - silent?: boolean, - log?: bunyan, // bunyan logger (optional) - offline?: boolean, - repositoryPath?: string, // desired path to save verified contracts (default is "./repository") - fileService?: FileService // fileService from the @ethereum-sourcify/core (optional) -} - -``` - -`Injector` has one public method `inject` that recieves `InputData` object consisting of data to be verified. - -```typescript -interface InputData { - chain: string; // id of the Ethereum network with deployed contract - addresses: string[]; // For now only one address is supported - contracts: CheckedContract[]; // Solidity and metadata files - bytecode?: string; // If you already have bytecode of the deployed contract -} -``` - -Files object in the `InputData` consists of `metadata` and `solidity` properties where `metadata` is `.json` file outputed by the compiler and `solidity` is the entire smart contract in a string format. - -```json -{ - "metadata": { }, - "solidity": { } -} -``` - -#### Usage: - -```typescript -import { Injector } from '@ethereum-sourcify/verification'; - -const injector = await Injector.createAsync(injectorConfig); - -const result = await injector.inject(inputData); - -``` - -Result of this snippet is the object: `{ address: "0x...", status: "perfect"|"partial" }` and source files saved hierarchicaly. -For example full match on the mainnet would be saved inside ./repository/contracts/full_match/1/0x.../ - -### VerificationService - -VerificationService can receive `fileService` from `@ethereum-sourcify/core` module if desired. Otherwise, it creates the default `fileService` which creates the repository in the current working directory. -There are two available methods: `findByAddress` and `inject`. - -`inject` method only wraps `Injector.inject` method and also receives `InputData` as an argument. -`findByAddress` is used to perform "light check" in your repository and look if there are already saved sources for the desired address and chain. - -```typescript -import { VerificationService } from '@ethereum-sourcify/verification'; - -const verificationService = new VerificationService(); - -const result = await verificationService.findByAddress(address, chain, repositoryPath); // Returns the object { address: "0x...", status: "perfect" } if found - -if (!result.length) { - result = await verificationService.inject(inputData); // If the contract is not found in the repository, call injector and verify sources -} - -``` - diff --git a/services/verification/package-lock.json b/services/verification/package-lock.json deleted file mode 100644 index 712fae76c..000000000 --- a/services/verification/package-lock.json +++ /dev/null @@ -1,14375 +0,0 @@ -{ - "name": "@ethereum-sourcify/verification", - "version": "0.2.11", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@ethereum-sourcify/verification", - "version": "0.2.11", - "license": "MIT", - "dependencies": { - "@ethereum-sourcify/core": "*", - "bunyan": "^1.8.15", - "ipfs-http-client": "^56.0.3", - "node-fetch": "^2.6.1", - "promise.any": "^2.0.2", - "semver": "^7.3.6", - "solc": "^0.7.4", - "web3": "^1.3.0" - }, - "bin": { - "sourcify-verification": "build/index.js" - }, - "devDependencies": { - "@types/bunyan": "^1.8.6", - "@types/node-fetch": "^2.5.7", - "@types/promise.any": "^2.0.0", - "@types/semver": "^7.3.9", - "rimraf": "^3.0.2", - "ts-node": "^9.0.0", - "typescript": "^4.0.2" - } - }, - "../core": { - "name": "@ethereum-sourcify/core", - "version": "0.2.10", - "license": "MIT", - "dependencies": { - "bunyan": "^1.8.15", - "cbor": "^5.1.0", - "directory-tree": "^2.2.4", - "node-fetch": "^2.6.1", - "rimraf": "^3.0.2", - "web3": "^1.3.0" - }, - "bin": { - "sourcify-core": "build/index.js" - }, - "devDependencies": { - "@types/bunyan": "^1.8.6", - "@types/cbor": "^5.0.1", - "@types/node-fetch": "^2.5.7", - "@types/rimraf": "^3.0.2", - "typescript": "^4.0.2" - } - }, - "../core/node_modules/@ethereumjs/common": { - "version": "2.6.4", - "license": "MIT", - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" - } - }, - "../core/node_modules/@ethereumjs/tx": { - "version": "3.5.1", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" - } - }, - "../core/node_modules/@ethersproject/abi": { - "version": "5.0.7", - "license": "MIT", - "dependencies": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "../core/node_modules/@ethersproject/abstract-provider": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/abstract-signer": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/address": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/base64": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/bignumber": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "../core/node_modules/@ethersproject/bytes": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/constants": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/hash": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/keccak256": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "../core/node_modules/@ethersproject/logger": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT" - }, - "../core/node_modules/@ethersproject/networks": { - "version": "5.6.2", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/properties": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/rlp": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/signing-key": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "../core/node_modules/@ethersproject/strings": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/transactions": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "../core/node_modules/@ethersproject/web": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "../core/node_modules/@sindresorhus/is": { - "version": "0.14.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/@types/bn.js": { - "version": "4.11.6", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "../core/node_modules/@types/bunyan": { - "version": "1.8.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "../core/node_modules/@types/cbor": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "../core/node_modules/@types/glob": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "../core/node_modules/@types/minimatch": { - "version": "3.0.5", - "dev": true, - "license": "MIT" - }, - "../core/node_modules/@types/node": { - "version": "17.0.34", - "license": "MIT" - }, - "../core/node_modules/@types/node-fetch": { - "version": "2.6.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "../core/node_modules/@types/pbkdf2": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "../core/node_modules/@types/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/glob": "*", - "@types/node": "*" - } - }, - "../core/node_modules/@types/secp256k1": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "../core/node_modules/accepts": { - "version": "1.3.8", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/ajv": { - "version": "6.12.6", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "../core/node_modules/array-flatten": { - "version": "1.1.1", - "license": "MIT" - }, - "../core/node_modules/asn1": { - "version": "0.2.6", - "license": "MIT", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "../core/node_modules/asn1.js": { - "version": "5.4.1", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "../core/node_modules/assert-plus": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "../core/node_modules/async-limiter": { - "version": "1.0.1", - "license": "MIT" - }, - "../core/node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" - }, - "../core/node_modules/available-typed-arrays": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/aws-sign2": { - "version": "0.7.0", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "../core/node_modules/aws4": { - "version": "1.11.0", - "license": "MIT" - }, - "../core/node_modules/balanced-match": { - "version": "1.0.2", - "license": "MIT" - }, - "../core/node_modules/base-x": { - "version": "3.0.9", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "../core/node_modules/base64-js": { - "version": "1.5.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "../core/node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "license": "BSD-3-Clause", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "../core/node_modules/bignumber.js": { - "version": "9.0.2", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "../core/node_modules/blakejs": { - "version": "1.2.1", - "license": "MIT" - }, - "../core/node_modules/bluebird": { - "version": "3.7.2", - "license": "MIT" - }, - "../core/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "../core/node_modules/body-parser": { - "version": "1.20.0", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "../core/node_modules/brace-expansion": { - "version": "1.1.11", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "../core/node_modules/brorand": { - "version": "1.1.0", - "license": "MIT" - }, - "../core/node_modules/browserify-aes": { - "version": "1.2.0", - "license": "MIT", - "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" - } - }, - "../core/node_modules/browserify-cipher": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "../core/node_modules/browserify-des": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "../core/node_modules/browserify-rsa": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "../core/node_modules/browserify-rsa/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "../core/node_modules/browserify-sign": { - "version": "4.2.1", - "license": "ISC", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "../core/node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "../core/node_modules/bs58": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "../core/node_modules/bs58check": { - "version": "2.1.2", - "license": "MIT", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "../core/node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "../core/node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "license": "MIT" - }, - "../core/node_modules/buffer-xor": { - "version": "1.0.3", - "license": "MIT" - }, - "../core/node_modules/bufferutil": { - "version": "4.0.6", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "../core/node_modules/bunyan": { - "version": "1.8.15", - "engines": [ - "node >=0.10.0" - ], - "license": "MIT", - "bin": { - "bunyan": "bin/bunyan" - }, - "optionalDependencies": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "../core/node_modules/bytes": { - "version": "3.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/cacheable-request": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "../core/node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../core/node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../core/node_modules/call-bind": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/caseless": { - "version": "0.12.0", - "license": "Apache-2.0" - }, - "../core/node_modules/cbor": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "../core/node_modules/chownr": { - "version": "1.1.4", - "license": "ISC" - }, - "../core/node_modules/cids": { - "version": "0.7.5", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "../core/node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "../core/node_modules/cipher-base": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "../core/node_modules/class-is": { - "version": "1.1.0", - "license": "MIT" - }, - "../core/node_modules/clone-response": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "../core/node_modules/combined-stream": { - "version": "1.0.8", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/concat-map": { - "version": "0.0.1", - "license": "MIT" - }, - "../core/node_modules/content-disposition": { - "version": "0.5.4", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/content-hash": { - "version": "2.5.2", - "license": "ISC", - "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "../core/node_modules/content-type": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/cookie": { - "version": "0.5.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/cookie-signature": { - "version": "1.0.6", - "license": "MIT" - }, - "../core/node_modules/cookiejar": { - "version": "2.1.3", - "license": "MIT" - }, - "../core/node_modules/core-util-is": { - "version": "1.0.2", - "license": "MIT" - }, - "../core/node_modules/cors": { - "version": "2.8.5", - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "../core/node_modules/crc-32": { - "version": "1.2.2", - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "../core/node_modules/create-ecdh": { - "version": "4.0.4", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "../core/node_modules/create-hash": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "../core/node_modules/create-hmac": { - "version": "1.1.7", - "license": "MIT", - "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" - } - }, - "../core/node_modules/crypto-browserify": { - "version": "3.12.0", - "license": "MIT", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "../core/node_modules/d": { - "version": "1.0.1", - "license": "ISC", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "../core/node_modules/dashdash": { - "version": "1.14.1", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "../core/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "../core/node_modules/decode-uri-component": { - "version": "0.2.0", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "../core/node_modules/decompress-response": { - "version": "3.3.0", - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/defer-to-connect": { - "version": "1.1.3", - "license": "MIT" - }, - "../core/node_modules/define-properties": { - "version": "1.1.4", - "license": "MIT", - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/delayed-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "../core/node_modules/depd": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/des.js": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "../core/node_modules/destroy": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "../core/node_modules/diffie-hellman": { - "version": "5.0.3", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "../core/node_modules/directory-tree": { - "version": "2.3.1", - "license": "MIT", - "engines": { - "node": ">=10.0" - } - }, - "../core/node_modules/dom-walk": { - "version": "0.1.2" - }, - "../core/node_modules/dtrace-provider": { - "version": "0.8.8", - "hasInstallScript": true, - "license": "BSD-2-Clause", - "optional": true, - "dependencies": { - "nan": "^2.14.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "../core/node_modules/duplexer3": { - "version": "0.1.4", - "license": "BSD-3-Clause" - }, - "../core/node_modules/ecc-jsbn": { - "version": "0.1.2", - "license": "MIT", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "../core/node_modules/ee-first": { - "version": "1.1.1", - "license": "MIT" - }, - "../core/node_modules/elliptic": { - "version": "6.5.4", - "license": "MIT", - "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" - } - }, - "../core/node_modules/encodeurl": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/end-of-stream": { - "version": "1.4.4", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "../core/node_modules/es-abstract": { - "version": "1.20.1", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/es-to-primitive": { - "version": "1.2.1", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/es5-ext": { - "version": "0.10.61", - "hasInstallScript": true, - "license": "ISC", - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "../core/node_modules/es6-iterator": { - "version": "2.0.3", - "license": "MIT", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "../core/node_modules/es6-symbol": { - "version": "3.1.3", - "license": "ISC", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "../core/node_modules/escape-html": { - "version": "1.0.3", - "license": "MIT" - }, - "../core/node_modules/etag": { - "version": "1.8.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/eth-ens-namehash": { - "version": "2.0.8", - "license": "ISC", - "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "../core/node_modules/eth-ens-namehash/node_modules/js-sha3": { - "version": "0.5.7", - "license": "MIT" - }, - "../core/node_modules/eth-lib": { - "version": "0.1.29", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "../core/node_modules/ethereum-bloom-filters": { - "version": "1.0.10", - "license": "MIT", - "dependencies": { - "js-sha3": "^0.8.0" - } - }, - "../core/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "license": "MIT", - "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" - } - }, - "../core/node_modules/ethereumjs-util": { - "version": "7.1.4", - "license": "MPL-2.0", - "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" - } - }, - "../core/node_modules/ethereumjs-util/node_modules/@types/bn.js": { - "version": "5.1.0", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "../core/node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "../core/node_modules/ethjs-unit": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "../core/node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "license": "MIT" - }, - "../core/node_modules/eventemitter3": { - "version": "4.0.4", - "license": "MIT" - }, - "../core/node_modules/evp_bytestokey": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "../core/node_modules/express": { - "version": "4.18.1", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "../core/node_modules/ext": { - "version": "1.6.0", - "license": "ISC", - "dependencies": { - "type": "^2.5.0" - } - }, - "../core/node_modules/ext/node_modules/type": { - "version": "2.6.0", - "license": "ISC" - }, - "../core/node_modules/extend": { - "version": "3.0.2", - "license": "MIT" - }, - "../core/node_modules/extsprintf": { - "version": "1.3.0", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" - }, - "../core/node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT" - }, - "../core/node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "license": "MIT" - }, - "../core/node_modules/finalhandler": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/for-each": { - "version": "0.3.3", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "../core/node_modules/forever-agent": { - "version": "0.6.1", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "../core/node_modules/form-data": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "../core/node_modules/forwarded": { - "version": "0.2.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/fresh": { - "version": "0.5.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/fs-extra": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "../core/node_modules/fs-minipass": { - "version": "1.2.7", - "license": "ISC", - "dependencies": { - "minipass": "^2.6.0" - } - }, - "../core/node_modules/fs.realpath": { - "version": "1.0.0", - "license": "ISC" - }, - "../core/node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" - }, - "../core/node_modules/function.prototype.name": { - "version": "1.1.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/functions-have-names": { - "version": "1.2.3", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/get-intrinsic": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/get-stream": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/get-symbol-description": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/getpass": { - "version": "0.1.7", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "../core/node_modules/glob": { - "version": "7.2.3", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../core/node_modules/global": { - "version": "4.4.0", - "license": "MIT", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "../core/node_modules/got": { - "version": "9.6.0", - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "../core/node_modules/graceful-fs": { - "version": "4.2.10", - "license": "ISC" - }, - "../core/node_modules/har-schema": { - "version": "2.0.0", - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/har-validator": { - "version": "5.1.5", - "license": "MIT", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/has": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "../core/node_modules/has-bigints": { - "version": "1.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/has-property-descriptors": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/has-symbol-support-x": { - "version": "1.4.2", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "../core/node_modules/has-symbols": { - "version": "1.0.3", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/has-to-string-tag-x": { - "version": "1.4.1", - "license": "MIT", - "dependencies": { - "has-symbol-support-x": "^1.4.1" - }, - "engines": { - "node": "*" - } - }, - "../core/node_modules/has-tostringtag": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/hash-base": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/hash.js": { - "version": "1.1.7", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "../core/node_modules/hmac-drbg": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "../core/node_modules/http-cache-semantics": { - "version": "4.1.0", - "license": "BSD-2-Clause" - }, - "../core/node_modules/http-errors": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/http-https": { - "version": "1.0.0", - "license": "ISC" - }, - "../core/node_modules/http-signature": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "../core/node_modules/iconv-lite": { - "version": "0.4.24", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/idna-uts46-hx": { - "version": "2.3.1", - "license": "MIT", - "dependencies": { - "punycode": "2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "../core/node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "../core/node_modules/inflight": { - "version": "1.0.6", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "../core/node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "../core/node_modules/internal-slot": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "../core/node_modules/ipaddr.js": { - "version": "1.9.1", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "../core/node_modules/is-arguments": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-bigint": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-boolean-object": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-callable": { - "version": "1.2.4", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-date-object": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-function": { - "version": "1.0.2", - "license": "MIT" - }, - "../core/node_modules/is-generator-function": { - "version": "1.0.10", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-hex-prefixed": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "../core/node_modules/is-negative-zero": { - "version": "2.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-number-object": { - "version": "1.0.7", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-object": { - "version": "1.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-plain-obj": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/is-regex": { - "version": "1.1.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-retry-allowed": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-stream": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/is-string": { - "version": "1.0.7", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-symbol": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-typed-array": { - "version": "1.1.9", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/is-typedarray": { - "version": "1.0.0", - "license": "MIT" - }, - "../core/node_modules/is-weakref": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/isstream": { - "version": "0.1.2", - "license": "MIT" - }, - "../core/node_modules/isurl": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "../core/node_modules/js-sha3": { - "version": "0.8.0", - "license": "MIT" - }, - "../core/node_modules/jsbn": { - "version": "0.1.1", - "license": "MIT" - }, - "../core/node_modules/json-buffer": { - "version": "3.0.0", - "license": "MIT" - }, - "../core/node_modules/json-schema": { - "version": "0.4.0", - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, - "../core/node_modules/json-schema-traverse": { - "version": "0.4.1", - "license": "MIT" - }, - "../core/node_modules/json-stringify-safe": { - "version": "5.0.1", - "license": "ISC" - }, - "../core/node_modules/jsonfile": { - "version": "4.0.0", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "../core/node_modules/jsprim": { - "version": "1.4.2", - "license": "MIT", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "../core/node_modules/keccak": { - "version": "3.0.2", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "../core/node_modules/keyv": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "../core/node_modules/lowercase-keys": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/md5.js": { - "version": "1.3.5", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "../core/node_modules/media-typer": { - "version": "0.3.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/merge-descriptors": { - "version": "1.0.1", - "license": "MIT" - }, - "../core/node_modules/methods": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/miller-rabin": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "../core/node_modules/mime": { - "version": "1.6.0", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/mime-db": { - "version": "1.52.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/mime-types": { - "version": "2.1.35", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/mimic-response": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/min-document": { - "version": "2.19.0", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "../core/node_modules/minimalistic-assert": { - "version": "1.0.1", - "license": "ISC" - }, - "../core/node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "license": "MIT" - }, - "../core/node_modules/minimatch": { - "version": "3.1.2", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "../core/node_modules/minimist": { - "version": "1.2.6", - "license": "MIT" - }, - "../core/node_modules/minipass": { - "version": "2.9.0", - "license": "ISC", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "../core/node_modules/minizlib": { - "version": "1.3.3", - "license": "MIT", - "dependencies": { - "minipass": "^2.9.0" - } - }, - "../core/node_modules/mkdirp": { - "version": "0.5.6", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "../core/node_modules/mkdirp-promise": { - "version": "5.0.1", - "license": "ISC", - "dependencies": { - "mkdirp": "*" - }, - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/mock-fs": { - "version": "4.14.0", - "license": "MIT" - }, - "../core/node_modules/moment": { - "version": "2.29.3", - "license": "MIT", - "optional": true, - "engines": { - "node": "*" - } - }, - "../core/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "../core/node_modules/multibase": { - "version": "0.6.1", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "../core/node_modules/multicodec": { - "version": "0.5.7", - "license": "MIT", - "dependencies": { - "varint": "^5.0.0" - } - }, - "../core/node_modules/multihashes": { - "version": "0.4.21", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "../core/node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "../core/node_modules/mv": { - "version": "2.1.1", - "license": "MIT", - "optional": true, - "dependencies": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "../core/node_modules/mv/node_modules/glob": { - "version": "6.0.4", - "license": "ISC", - "optional": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "../core/node_modules/mv/node_modules/rimraf": { - "version": "2.4.5", - "license": "ISC", - "optional": true, - "dependencies": { - "glob": "^6.0.1" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "../core/node_modules/nan": { - "version": "2.15.0", - "license": "MIT", - "optional": true - }, - "../core/node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "license": "MIT" - }, - "../core/node_modules/ncp": { - "version": "2.0.0", - "license": "MIT", - "optional": true, - "bin": { - "ncp": "bin/ncp" - } - }, - "../core/node_modules/negotiator": { - "version": "0.6.3", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/next-tick": { - "version": "1.1.0", - "license": "ISC" - }, - "../core/node_modules/node-addon-api": { - "version": "2.0.2", - "license": "MIT" - }, - "../core/node_modules/node-fetch": { - "version": "2.6.7", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "../core/node_modules/node-gyp-build": { - "version": "4.4.0", - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "../core/node_modules/nofilter": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../core/node_modules/normalize-url": { - "version": "4.5.1", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../core/node_modules/number-to-bn": { - "version": "1.7.0", - "license": "MIT", - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "../core/node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "license": "MIT" - }, - "../core/node_modules/oauth-sign": { - "version": "0.9.0", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "../core/node_modules/object-assign": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/object-inspect": { - "version": "1.12.0", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/object-keys": { - "version": "1.1.1", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "../core/node_modules/object.assign": { - "version": "4.1.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/oboe": { - "version": "2.1.5", - "license": "BSD", - "dependencies": { - "http-https": "^1.0.0" - } - }, - "../core/node_modules/on-finished": { - "version": "2.4.1", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/once": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "../core/node_modules/p-cancelable": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/p-finally": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/p-timeout": { - "version": "1.2.1", - "license": "MIT", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/parse-asn1": { - "version": "5.1.6", - "license": "ISC", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "../core/node_modules/parse-headers": { - "version": "2.0.5", - "license": "MIT" - }, - "../core/node_modules/parseurl": { - "version": "1.3.3", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/path-is-absolute": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/path-to-regexp": { - "version": "0.1.7", - "license": "MIT" - }, - "../core/node_modules/pbkdf2": { - "version": "3.1.2", - "license": "MIT", - "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" - } - }, - "../core/node_modules/performance-now": { - "version": "2.1.0", - "license": "MIT" - }, - "../core/node_modules/prepend-http": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/process": { - "version": "0.11.10", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "../core/node_modules/proxy-addr": { - "version": "2.0.7", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "../core/node_modules/psl": { - "version": "1.8.0", - "license": "MIT" - }, - "../core/node_modules/public-encrypt": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "../core/node_modules/pump": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "../core/node_modules/punycode": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/qs": { - "version": "6.10.3", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/query-string": { - "version": "5.1.1", - "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/randombytes": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "../core/node_modules/randomfill": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "../core/node_modules/range-parser": { - "version": "1.2.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/raw-body": { - "version": "2.5.1", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "../core/node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/request": { - "version": "2.88.2", - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "../core/node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "../core/node_modules/request/node_modules/qs": { - "version": "6.5.3", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, - "../core/node_modules/responselike": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "../core/node_modules/rimraf": { - "version": "3.0.2", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../core/node_modules/ripemd160": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "../core/node_modules/rlp": { - "version": "2.2.7", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^5.2.0" - }, - "bin": { - "rlp": "bin/rlp" - } - }, - "../core/node_modules/rlp/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "../core/node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "../core/node_modules/safe-json-stringify": { - "version": "1.2.0", - "license": "MIT", - "optional": true - }, - "../core/node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" - }, - "../core/node_modules/scrypt-js": { - "version": "3.0.1", - "license": "MIT" - }, - "../core/node_modules/secp256k1": { - "version": "4.0.3", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "../core/node_modules/send": { - "version": "0.18.0", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../core/node_modules/send/node_modules/ms": { - "version": "2.1.3", - "license": "MIT" - }, - "../core/node_modules/serve-static": { - "version": "1.15.0", - "license": "MIT", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../core/node_modules/servify": { - "version": "0.1.12", - "license": "MIT", - "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - }, - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/setimmediate": { - "version": "1.0.5", - "license": "MIT" - }, - "../core/node_modules/setprototypeof": { - "version": "1.2.0", - "license": "ISC" - }, - "../core/node_modules/sha.js": { - "version": "2.4.11", - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "../core/node_modules/side-channel": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/simple-concat": { - "version": "1.0.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "../core/node_modules/simple-get": { - "version": "2.8.2", - "license": "MIT", - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "../core/node_modules/sshpk": { - "version": "1.17.0", - "license": "MIT", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/statuses": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/strict-uri-encode": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/string_decoder": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "../core/node_modules/string.prototype.trimend": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/strip-hex-prefix": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "../core/node_modules/swarm-js": { - "version": "0.1.40", - "license": "MIT", - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "../core/node_modules/swarm-js/node_modules/get-stream": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", - "license": "MIT", - "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/swarm-js/node_modules/p-cancelable": { - "version": "0.3.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/swarm-js/node_modules/prepend-http": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/swarm-js/node_modules/url-parse-lax": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/tar": { - "version": "4.4.19", - "license": "ISC", - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "../core/node_modules/timed-out": { - "version": "4.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../core/node_modules/to-readable-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../core/node_modules/toidentifier": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "../core/node_modules/tough-cookie": { - "version": "2.5.0", - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "../core/node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, - "../core/node_modules/tunnel-agent": { - "version": "0.6.0", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "../core/node_modules/tweetnacl": { - "version": "0.14.5", - "license": "Unlicense" - }, - "../core/node_modules/type": { - "version": "1.2.0", - "license": "ISC" - }, - "../core/node_modules/type-is": { - "version": "1.6.18", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../core/node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "../core/node_modules/typescript": { - "version": "4.6.4", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "../core/node_modules/ultron": { - "version": "1.1.1", - "license": "MIT" - }, - "../core/node_modules/unbox-primitive": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/universalify": { - "version": "0.1.2", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "../core/node_modules/unpipe": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/uri-js": { - "version": "4.4.1", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "../core/node_modules/url-parse-lax": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "../core/node_modules/url-set-query": { - "version": "1.0.0", - "license": "MIT" - }, - "../core/node_modules/url-to-options": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "../core/node_modules/utf-8-validate": { - "version": "5.0.9", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "../core/node_modules/utf8": { - "version": "3.0.0", - "license": "MIT" - }, - "../core/node_modules/util": { - "version": "0.12.4", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "../core/node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" - }, - "../core/node_modules/utils-merge": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "../core/node_modules/uuid": { - "version": "3.4.0", - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "../core/node_modules/varint": { - "version": "5.0.2", - "license": "MIT" - }, - "../core/node_modules/vary": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../core/node_modules/verror": { - "version": "1.10.0", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "../core/node_modules/web3": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-bzz": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "../core/node_modules/web3-core": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-core-helpers": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-core-method": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-core-promievent": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-core-requestmanager": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-core-subscriptions": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-core/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "../core/node_modules/web3-eth": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-eth-abi": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-eth-accounts": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "../core/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "../core/node_modules/web3-eth-contract": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-eth-ens": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-eth-iban": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-eth-personal": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "../core/node_modules/web3-net": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-providers-http": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-providers-ipc": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-providers-ws": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-shh": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/web3-utils": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../core/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "../core/node_modules/websocket": { - "version": "1.0.34", - "license": "Apache-2.0", - "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" - } - }, - "../core/node_modules/whatwg-url": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "../core/node_modules/which-boxed-primitive": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/which-typed-array": { - "version": "1.1.8", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../core/node_modules/wrappy": { - "version": "1.0.2", - "license": "ISC" - }, - "../core/node_modules/ws": { - "version": "3.3.3", - "license": "MIT", - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "../core/node_modules/ws/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "../core/node_modules/xhr": { - "version": "2.6.0", - "license": "MIT", - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "../core/node_modules/xhr-request": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "../core/node_modules/xhr-request-promise": { - "version": "0.1.3", - "license": "MIT", - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "../core/node_modules/xhr2-cookies": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "cookiejar": "^2.1.1" - } - }, - "../core/node_modules/xtend": { - "version": "4.0.2", - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "../core/node_modules/yaeti": { - "version": "0.0.6", - "license": "MIT", - "engines": { - "node": ">=0.10.32" - } - }, - "../core/node_modules/yallist": { - "version": "3.1.1", - "license": "ISC" - }, - "node_modules/@ethereum-sourcify/core": { - "resolved": "../core", - "link": true - }, - "node_modules/@ethereumjs/common": { - "version": "2.6.4", - "license": "MIT", - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" - } - }, - "node_modules/@ethereumjs/tx": { - "version": "3.5.1", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" - } - }, - "node_modules/@ethersproject/abi": { - "version": "5.0.7", - "license": "MIT", - "dependencies": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "node_modules/@ethersproject/address": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "node_modules/@ethersproject/base64": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "node_modules/@ethersproject/bignumber": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "node_modules/@ethersproject/bytes": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/constants": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "node_modules/@ethersproject/hash": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "node_modules/@ethersproject/keccak256": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "node_modules/@ethersproject/logger": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT" - }, - "node_modules/@ethersproject/networks": { - "version": "5.6.2", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/properties": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/rlp": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/signing-key": { - "version": "5.6.1", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/strings": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/transactions": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "node_modules/@ethersproject/web": { - "version": "5.6.0", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "node_modules/@ipld/dag-cbor": { - "version": "7.0.1", - "license": "(Apache-2.0 AND MIT)", - "dependencies": { - "cborg": "^1.6.0", - "multiformats": "^9.5.4" - } - }, - "node_modules/@ipld/dag-json": { - "version": "8.0.9", - "license": "(Apache-2.0 AND MIT)", - "dependencies": { - "cborg": "^1.5.4", - "multiformats": "^9.5.4" - } - }, - "node_modules/@ipld/dag-pb": { - "version": "2.1.16", - "license": "(Apache-2.0 AND MIT)", - "dependencies": { - "multiformats": "^9.5.4" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "license": "BSD-3-Clause" - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@types/bn.js": { - "version": "4.11.6", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/bunyan": { - "version": "1.8.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/long": { - "version": "4.0.2", - "license": "MIT" - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "17.0.34", - "license": "MIT" - }, - "node_modules/@types/node-fetch": { - "version": "2.6.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/promise.any": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/semver": { - "version": "7.3.9", - "dev": true, - "license": "MIT" - }, - "node_modules/accepts": { - "version": "1.3.8", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/any-signal": { - "version": "3.0.1", - "license": "MIT" - }, - "node_modules/arg": { - "version": "4.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/array.prototype.map": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/asn1": { - "version": "0.2.6", - "license": "MIT", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "license": "MIT" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/base-x": { - "version": "3.0.9", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "license": "BSD-3-Clause", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bignumber.js": { - "version": "9.0.2", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/blakejs": { - "version": "1.2.1", - "license": "MIT" - }, - "node_modules/blob-to-it": { - "version": "1.0.4", - "license": "ISC", - "dependencies": { - "browser-readablestream-to-it": "^1.0.3" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "license": "MIT" - }, - "node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "1.20.0", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/browser-readablestream-to-it": { - "version": "1.0.3", - "license": "ISC" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "license": "MIT", - "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/browserify-cipher": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-rsa/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "license": "ISC", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "node_modules/bs58": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bs58check": { - "version": "2.1.2", - "license": "MIT", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "license": "MIT" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/bufferutil": { - "version": "4.0.6", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/bunyan": { - "version": "1.8.15", - "engines": [ - "node >=0.10.0" - ], - "license": "MIT", - "bin": { - "bunyan": "bin/bunyan" - }, - "optionalDependencies": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "license": "Apache-2.0" - }, - "node_modules/cborg": { - "version": "1.9.2", - "license": "Apache-2.0", - "bin": { - "cborg": "cli.js" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "license": "ISC" - }, - "node_modules/cids": { - "version": "0.7.5", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/cids/node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "node_modules/cids/node_modules/varint": { - "version": "5.0.2", - "license": "MIT" - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/class-is": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/clone-response": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/command-exists": { - "version": "1.2.9", - "license": "MIT" - }, - "node_modules/commander": { - "version": "3.0.2", - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "license": "MIT" - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-hash": { - "version": "2.5.2", - "license": "ISC", - "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/cookiejar": { - "version": "2.1.3", - "license": "MIT" - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/cors": { - "version": "2.8.5", - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/crc-32": { - "version": "1.2.2", - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-hash": { - "version": "1.2.0", - "license": "MIT", - "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", - "license": "MIT", - "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/create-require": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "license": "MIT", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/d": { - "version": "1.0.1", - "license": "ISC", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/dag-jose": { - "version": "1.0.0", - "license": "(Apache-2.0 OR MIT)", - "dependencies": { - "@ipld/dag-cbor": "^6.0.3", - "multiformats": "^9.0.2" - } - }, - "node_modules/dag-jose/node_modules/@ipld/dag-cbor": { - "version": "6.0.15", - "license": "(Apache-2.0 AND MIT)", - "dependencies": { - "cborg": "^1.5.4", - "multiformats": "^9.5.4" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "license": "MIT" - }, - "node_modules/define-properties": { - "version": "1.1.4", - "license": "MIT", - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/dns-over-http-resolver": { - "version": "1.2.3", - "license": "MIT", - "dependencies": { - "debug": "^4.3.1", - "native-fetch": "^3.0.0", - "receptacle": "^1.3.2" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2" - }, - "node_modules/dtrace-provider": { - "version": "0.8.8", - "hasInstallScript": true, - "license": "BSD-2-Clause", - "optional": true, - "dependencies": { - "nan": "^2.14.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "license": "BSD-3-Clause" - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "license": "MIT", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/electron-fetch": { - "version": "1.7.4", - "license": "MIT", - "dependencies": { - "encoding": "^0.1.13" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/elliptic": { - "version": "6.5.4", - "license": "MIT", - "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/encodeurl": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "license": "MIT", - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/err-code": { - "version": "3.0.1", - "license": "MIT" - }, - "node_modules/es-abstract": { - "version": "1.20.1", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-aggregate-error": { - "version": "1.0.8", - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "function-bind": "^1.1.1", - "functions-have-names": "^1.2.3", - "get-intrinsic": "^1.1.1", - "globalthis": "^1.0.2", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/es-get-iterator": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.61", - "hasInstallScript": true, - "license": "ISC", - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "license": "MIT", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "license": "ISC", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/etag": { - "version": "1.8.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eth-ens-namehash": { - "version": "2.0.8", - "license": "ISC", - "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "node_modules/eth-ens-namehash/node_modules/js-sha3": { - "version": "0.5.7", - "license": "MIT" - }, - "node_modules/eth-lib": { - "version": "0.1.29", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/ethereum-bloom-filters": { - "version": "1.0.10", - "license": "MIT", - "dependencies": { - "js-sha3": "^0.8.0" - } - }, - "node_modules/ethereum-cryptography": { - "version": "0.1.3", - "license": "MIT", - "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.4", - "license": "MPL-2.0", - "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-util/node_modules/@types/bn.js": { - "version": "5.1.0", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "node_modules/ethjs-unit": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "license": "MIT" - }, - "node_modules/eventemitter3": { - "version": "4.0.4", - "license": "MIT" - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/express": { - "version": "4.18.1", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/ext": { - "version": "1.6.0", - "license": "ISC", - "dependencies": { - "type": "^2.5.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.6.0", - "license": "ISC" - }, - "node_modules/extend": { - "version": "3.0.2", - "license": "MIT" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT" - }, - "node_modules/fast-fifo": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "license": "MIT" - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/follow-redirects": { - "version": "1.15.0", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "0.30.0", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/fs-extra/node_modules/rimraf": { - "version": "2.7.1", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "license": "ISC", - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-iterator": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/get-stream": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/global": { - "version": "4.4.0", - "license": "MIT", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "9.6.0", - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "license": "ISC" - }, - "node_modules/har-schema": { - "version": "2.0.0", - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "license": "MIT", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbol-support-x": { - "version": "1.4.2", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-to-string-tag-x": { - "version": "1.4.1", - "license": "MIT", - "dependencies": { - "has-symbol-support-x": "^1.4.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "license": "MIT", - "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", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "license": "BSD-2-Clause" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-https": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/http-signature": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/idna-uts46-hx": { - "version": "2.3.1", - "license": "MIT", - "dependencies": { - "punycode": "2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/inflight": { - "version": "1.0.6", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "node_modules/interface-datastore": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "interface-store": "^2.0.1", - "nanoid": "^3.0.2", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/interface-store": { - "version": "2.0.2", - "license": "(Apache-2.0 OR MIT)" - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ip-regex": { - "version": "4.3.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ipfs-core-types": { - "version": "0.10.3", - "license": "(Apache-2.0 OR MIT)", - "dependencies": { - "@ipld/dag-pb": "^2.1.3", - "interface-datastore": "^6.0.2", - "ipfs-unixfs": "^6.0.3", - "multiaddr": "^10.0.0", - "multiformats": "^9.5.1" - } - }, - "node_modules/ipfs-core-utils": { - "version": "0.14.3", - "license": "MIT", - "dependencies": { - "any-signal": "^3.0.0", - "blob-to-it": "^1.0.1", - "browser-readablestream-to-it": "^1.0.1", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "ipfs-core-types": "^0.10.3", - "ipfs-unixfs": "^6.0.3", - "ipfs-utils": "^9.0.6", - "it-all": "^1.0.4", - "it-map": "^1.0.4", - "it-peekable": "^1.0.2", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiaddr-to-uri": "^8.0.0", - "multiformats": "^9.5.1", - "nanoid": "^3.1.23", - "parse-duration": "^1.0.0", - "timeout-abort-controller": "^3.0.0", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/ipfs-http-client": { - "version": "56.0.3", - "license": "(Apache-2.0 OR MIT)", - "dependencies": { - "@ipld/dag-cbor": "^7.0.0", - "@ipld/dag-json": "^8.0.1", - "@ipld/dag-pb": "^2.1.3", - "any-signal": "^3.0.0", - "dag-jose": "^1.0.0", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "ipfs-core-types": "^0.10.3", - "ipfs-core-utils": "^0.14.3", - "ipfs-utils": "^9.0.6", - "it-first": "^1.0.6", - "it-last": "^1.0.4", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiformats": "^9.5.1", - "parse-duration": "^1.0.0", - "stream-to-it": "^0.2.2", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=15.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ipfs-unixfs": { - "version": "6.0.7", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "err-code": "^3.0.1", - "protobufjs": "^6.10.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/ipfs-utils": { - "version": "9.0.6", - "license": "MIT", - "dependencies": { - "any-signal": "^3.0.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^3.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.1.5", - "it-glob": "^1.0.1", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "nanoid": "^3.1.20", - "native-fetch": "^3.0.0", - "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "react-native-fetch-api": "^2.0.0", - "stream-to-it": "^0.2.2" - } - }, - "node_modules/ipfs-utils/node_modules/node-fetch": { - "name": "@achingbrain/node-fetch", - "version": "2.6.7", - "license": "MIT", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.4", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-electron": { - "version": "2.2.1", - "license": "MIT" - }, - "node_modules/is-function": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/is-ip": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "ip-regex": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-map": { - "version": "2.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-object": { - "version": "1.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-retry-allowed": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-set": { - "version": "2.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.9", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "license": "MIT" - }, - "node_modules/iso-url": { - "version": "1.2.1", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "license": "MIT" - }, - "node_modules/isurl": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/it-all": { - "version": "1.0.6", - "license": "ISC" - }, - "node_modules/it-first": { - "version": "1.0.7", - "license": "ISC" - }, - "node_modules/it-glob": { - "version": "1.0.2", - "license": "ISC", - "dependencies": { - "@types/minimatch": "^3.0.4", - "minimatch": "^3.0.4" - } - }, - "node_modules/it-last": { - "version": "1.0.6", - "license": "ISC" - }, - "node_modules/it-map": { - "version": "1.0.6", - "license": "ISC" - }, - "node_modules/it-peekable": { - "version": "1.0.3", - "license": "ISC" - }, - "node_modules/it-to-stream": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "buffer": "^6.0.3", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "node_modules/iterate-iterator": { - "version": "1.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/iterate-value": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "es-get-iterator": "^1.0.2", - "iterate-iterator": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "license": "MIT" - }, - "node_modules/jsbn": { - "version": "0.1.1", - "license": "MIT" - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "license": "MIT" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "license": "MIT" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "license": "ISC" - }, - "node_modules/jsonfile": { - "version": "2.4.0", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "license": "MIT", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/keccak": { - "version": "3.0.2", - "hasInstallScript": true, - "license": "MIT", - "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/keyv": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/klaw": { - "version": "1.3.1", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/long": { - "version": "4.0.0", - "license": "Apache-2.0" - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "dev": true, - "license": "ISC" - }, - "node_modules/md5.js": { - "version": "1.3.5", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/merge-options": { - "version": "3.0.4", - "license": "MIT", - "dependencies": { - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "license": "ISC" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "license": "MIT" - }, - "node_modules/minipass": { - "version": "2.9.0", - "license": "ISC", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minipass/node_modules/yallist": { - "version": "3.1.1", - "license": "ISC" - }, - "node_modules/minizlib": { - "version": "1.3.3", - "license": "MIT", - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mkdirp-promise": { - "version": "5.0.1", - "license": "ISC", - "dependencies": { - "mkdirp": "*" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mock-fs": { - "version": "4.14.0", - "license": "MIT" - }, - "node_modules/moment": { - "version": "2.29.3", - "license": "MIT", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/multiaddr": { - "version": "10.0.1", - "license": "MIT", - "dependencies": { - "dns-over-http-resolver": "^1.2.3", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - } - }, - "node_modules/multiaddr-to-uri": { - "version": "8.0.0", - "license": "MIT", - "dependencies": { - "multiaddr": "^10.0.0" - } - }, - "node_modules/multibase": { - "version": "0.6.1", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/multibase/node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/multicodec": { - "version": "0.5.7", - "license": "MIT", - "dependencies": { - "varint": "^5.0.0" - } - }, - "node_modules/multicodec/node_modules/varint": { - "version": "5.0.2", - "license": "MIT" - }, - "node_modules/multiformats": { - "version": "9.6.5", - "license": "(Apache-2.0 AND MIT)" - }, - "node_modules/multihashes": { - "version": "0.4.21", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "node_modules/multihashes/node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/multihashes/node_modules/varint": { - "version": "5.0.2", - "license": "MIT" - }, - "node_modules/mv": { - "version": "2.1.1", - "license": "MIT", - "optional": true, - "dependencies": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/mv/node_modules/glob": { - "version": "6.0.4", - "license": "ISC", - "optional": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mv/node_modules/rimraf": { - "version": "2.4.5", - "license": "ISC", - "optional": true, - "dependencies": { - "glob": "^6.0.1" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/nan": { - "version": "2.15.0", - "license": "MIT", - "optional": true - }, - "node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.4", - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/native-fetch": { - "version": "3.0.0", - "license": "MIT", - "peerDependencies": { - "node-fetch": "*" - } - }, - "node_modules/ncp": { - "version": "2.0.0", - "license": "MIT", - "optional": true, - "bin": { - "ncp": "bin/ncp" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/next-tick": { - "version": "1.1.0", - "license": "ISC" - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "license": "MIT" - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-gyp-build": { - "version": "4.4.0", - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/number-to-bn": { - "version": "1.7.0", - "license": "MIT", - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "license": "MIT" - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.0", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/oboe": { - "version": "2.1.5", - "license": "BSD", - "dependencies": { - "http-https": "^1.0.0" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-defer": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-fifo": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "fast-fifo": "^1.0.0", - "p-defer": "^3.0.0" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-timeout": { - "version": "1.2.1", - "license": "MIT", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "license": "ISC", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-duration": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/parse-headers": { - "version": "2.0.5", - "license": "MIT" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "license": "MIT" - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "license": "MIT", - "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/performance-now": { - "version": "2.1.0", - "license": "MIT" - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/process": { - "version": "0.11.10", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/promise.any": { - "version": "2.0.4", - "license": "MIT", - "dependencies": { - "array.prototype.map": "^1.0.4", - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-aggregate-error": "^1.0.7", - "get-intrinsic": "^1.1.1", - "iterate-value": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/protobufjs": { - "version": "6.11.2", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "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/proxy-addr": { - "version": "2.0.7", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/psl": { - "version": "1.8.0", - "license": "MIT" - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.10.3", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/query-string": { - "version": "5.1.1", - "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-native-fetch-api": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "p-defer": "^3.0.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "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", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/request": { - "version": "2.88.2", - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/responselike": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/retimer": { - "version": "3.0.0", - "license": "MIT" - }, - "node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rlp": { - "version": "2.2.7", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^5.2.0" - }, - "bin": { - "rlp": "bin/rlp" - } - }, - "node_modules/rlp/node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-json-stringify": { - "version": "1.2.0", - "license": "MIT", - "optional": true - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "license": "MIT" - }, - "node_modules/secp256k1": { - "version": "4.0.3", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.18.0", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "license": "MIT" - }, - "node_modules/serve-static": { - "version": "1.15.0", - "license": "MIT", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/servify": { - "version": "0.1.12", - "license": "MIT", - "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "license": "MIT" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "license": "ISC" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/simple-get": { - "version": "2.8.2", - "license": "MIT", - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/solc": { - "version": "0.7.6", - "license": "MIT", - "dependencies": { - "command-exists": "^1.2.8", - "commander": "3.0.2", - "follow-redirects": "^1.12.1", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "bin": { - "solcjs": "solcjs" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/solc/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sshpk": { - "version": "1.17.0", - "license": "MIT", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stream-to-it": { - "version": "0.2.4", - "license": "MIT", - "dependencies": { - "get-iterator": "^1.0.2" - } - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/swarm-js": { - "version": "0.1.40", - "license": "MIT", - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "node_modules/swarm-js/node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/swarm-js/node_modules/fs-extra": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/swarm-js/node_modules/get-stream": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", - "license": "MIT", - "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/is-plain-obj": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/swarm-js/node_modules/jsonfile": { - "version": "4.0.0", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/swarm-js/node_modules/p-cancelable": { - "version": "0.3.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/prepend-http": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/swarm-js/node_modules/url-parse-lax": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tar": { - "version": "4.4.19", - "license": "ISC", - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "3.1.1", - "license": "ISC" - }, - "node_modules/timed-out": { - "version": "4.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/timeout-abort-controller": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "retimer": "^3.0.0" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, - "node_modules/ts-node": { - "version": "9.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "typescript": ">=2.7" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "license": "Unlicense" - }, - "node_modules/type": { - "version": "1.2.0", - "license": "ISC" - }, - "node_modules/type-is": { - "version": "1.6.18", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.6.4", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uint8arrays": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/ultron": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/url-set-query": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/url-to-options": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.9", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/utf8": { - "version": "3.0.0", - "license": "MIT" - }, - "node_modules/util": { - "version": "0.12.4", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/varint": { - "version": "6.0.0", - "license": "MIT" - }, - "node_modules/vary": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/web3": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "node_modules/web3-core": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-helpers": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-method": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-promievent": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-requestmanager": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-subscriptions": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "node_modules/web3-eth": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-abi": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/web3-eth-contract": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-ens": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-iban": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.20.52", - "license": "MIT" - }, - "node_modules/web3-net": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-http": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ipc": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-shh": { - "version": "1.7.3", - "hasInstallScript": true, - "license": "LGPL-3.0", - "dependencies": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-utils": { - "version": "1.7.3", - "license": "LGPL-3.0", - "dependencies": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/websocket": { - "version": "1.0.34", - "license": "Apache-2.0", - "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", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/websocket/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.8", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "license": "ISC" - }, - "node_modules/ws": { - "version": "3.3.3", - "license": "MIT", - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "node_modules/ws/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "node_modules/xhr": { - "version": "2.6.0", - "license": "MIT", - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xhr-request": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "node_modules/xhr-request-promise": { - "version": "0.1.3", - "license": "MIT", - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "node_modules/xhr2-cookies": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "cookiejar": "^2.1.1" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yaeti": { - "version": "0.0.6", - "license": "MIT", - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/yn": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - } - }, - "dependencies": { - "@ethereum-sourcify/core": { - "version": "file:../core", - "requires": { - "@types/bunyan": "^1.8.6", - "@types/cbor": "^5.0.1", - "@types/node-fetch": "^2.5.7", - "@types/rimraf": "^3.0.2", - "bunyan": "^1.8.15", - "cbor": "^5.1.0", - "directory-tree": "^2.2.4", - "node-fetch": "^2.6.1", - "rimraf": "^3.0.2", - "typescript": "^4.0.2", - "web3": "^1.3.0" - }, - "dependencies": { - "@ethereumjs/common": { - "version": "2.6.4", - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" - } - }, - "@ethereumjs/tx": { - "version": "3.5.1", - "requires": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" - } - }, - "@ethersproject/abi": { - "version": "5.0.7", - "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.6.1", - "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "@ethersproject/address": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "@ethersproject/base64": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.6.1", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "@ethersproject/bytes": { - "version": "5.6.1", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/constants": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "@ethersproject/hash": { - "version": "5.6.0", - "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/keccak256": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/logger": { - "version": "5.6.0" - }, - "@ethersproject/networks": { - "version": "5.6.2", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/properties": { - "version": "5.6.0", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/rlp": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/signing-key": { - "version": "5.6.1", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "@ethersproject/strings": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/transactions": { - "version": "5.6.0", - "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "@ethersproject/web": { - "version": "5.6.0", - "requires": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@sindresorhus/is": { - "version": "0.14.0" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/bn.js": { - "version": "4.11.6", - "requires": { - "@types/node": "*" - } - }, - "@types/bunyan": { - "version": "1.8.8", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/cbor": { - "version": "5.0.1", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/glob": { - "version": "7.2.0", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/minimatch": { - "version": "3.0.5", - "dev": true - }, - "@types/node": { - "version": "17.0.34" - }, - "@types/node-fetch": { - "version": "2.6.1", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "@types/pbkdf2": { - "version": "3.1.0", - "requires": { - "@types/node": "*" - } - }, - "@types/rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "@types/glob": "*", - "@types/node": "*" - } - }, - "@types/secp256k1": { - "version": "4.0.3", - "requires": { - "@types/node": "*" - } - }, - "accepts": { - "version": "1.3.8", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "ajv": { - "version": "6.12.6", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "array-flatten": { - "version": "1.1.1" - }, - "asn1": { - "version": "0.2.6", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0" - }, - "async-limiter": { - "version": "1.0.1" - }, - "asynckit": { - "version": "0.4.0" - }, - "available-typed-arrays": { - "version": "1.0.5" - }, - "aws-sign2": { - "version": "0.7.0" - }, - "aws4": { - "version": "1.11.0" - }, - "balanced-match": { - "version": "1.0.2" - }, - "base-x": { - "version": "3.0.9", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-js": { - "version": "1.5.1" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bignumber.js": { - "version": "9.0.2" - }, - "blakejs": { - "version": "1.2.1" - }, - "bluebird": { - "version": "3.7.2" - }, - "bn.js": { - "version": "4.12.0" - }, - "body-parser": { - "version": "1.20.0", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "brorand": { - "version": "1.1.0" - }, - "browserify-aes": { - "version": "1.2.0", - "requires": { - "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" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "bs58": { - "version": "4.0.1", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "buffer": { - "version": "5.7.1", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-to-arraybuffer": { - "version": "0.0.5" - }, - "buffer-xor": { - "version": "1.0.3" - }, - "bufferutil": { - "version": "4.0.6", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "bunyan": { - "version": "1.8.15", - "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "bytes": { - "version": "3.1.2" - }, - "cacheable-request": { - "version": "6.1.0", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0" - } - } - }, - "call-bind": { - "version": "1.0.2", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caseless": { - "version": "0.12.0" - }, - "cbor": { - "version": "5.2.0", - "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - } - }, - "chownr": { - "version": "1.1.4" - }, - "cids": { - "version": "0.7.5", - "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "dependencies": { - "multicodec": { - "version": "1.0.4", - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - } - } - }, - "cipher-base": { - "version": "1.0.4", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-is": { - "version": "1.1.0" - }, - "clone-response": { - "version": "1.0.2", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "combined-stream": { - "version": "1.0.8", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1" - }, - "content-disposition": { - "version": "0.5.4", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-hash": { - "version": "2.5.2", - "requires": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "content-type": { - "version": "1.0.4" - }, - "cookie": { - "version": "0.5.0" - }, - "cookie-signature": { - "version": "1.0.6" - }, - "cookiejar": { - "version": "2.1.3" - }, - "core-util-is": { - "version": "1.0.2" - }, - "cors": { - "version": "2.8.5", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "crc-32": { - "version": "1.2.2" - }, - "create-ecdh": { - "version": "4.0.4", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "create-hash": { - "version": "1.2.0", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "requires": { - "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" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "d": { - "version": "1.0.1", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "decode-uri-component": { - "version": "0.2.0" - }, - "decompress-response": { - "version": "3.3.0", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "defer-to-connect": { - "version": "1.1.3" - }, - "define-properties": { - "version": "1.1.4", - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0" - }, - "depd": { - "version": "2.0.0" - }, - "des.js": { - "version": "1.0.1", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.2.0" - }, - "diffie-hellman": { - "version": "5.0.3", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "directory-tree": { - "version": "2.3.1" - }, - "dom-walk": { - "version": "0.1.2" - }, - "dtrace-provider": { - "version": "0.8.8", - "optional": true, - "requires": { - "nan": "^2.14.0" - } - }, - "duplexer3": { - "version": "0.1.4" - }, - "ecc-jsbn": { - "version": "0.1.2", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1" - }, - "elliptic": { - "version": "6.5.4", - "requires": { - "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" - } - }, - "encodeurl": { - "version": "1.0.2" - }, - "end-of-stream": { - "version": "1.4.4", - "requires": { - "once": "^1.4.0" - } - }, - "es-abstract": { - "version": "1.20.1", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.61", - "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "escape-html": { - "version": "1.0.3" - }, - "etag": { - "version": "1.8.1" - }, - "eth-ens-namehash": { - "version": "2.0.8", - "requires": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7" - } - } - }, - "eth-lib": { - "version": "0.1.29", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethereum-bloom-filters": { - "version": "1.0.10", - "requires": { - "js-sha3": "^0.8.0" - } - }, - "ethereum-cryptography": { - "version": "0.1.3", - "requires": { - "@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" - } - }, - "ethereumjs-util": { - "version": "7.1.4", - "requires": { - "@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" - }, - "dependencies": { - "@types/bn.js": { - "version": "5.1.0", - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.0" - } - } - }, - "ethjs-unit": { - "version": "0.1.6", - "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6" - } - } - }, - "eventemitter3": { - "version": "4.0.4" - }, - "evp_bytestokey": { - "version": "1.0.3", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "express": { - "version": "4.18.1", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, - "ext": { - "version": "1.6.0", - "requires": { - "type": "^2.5.0" - }, - "dependencies": { - "type": { - "version": "2.6.0" - } - } - }, - "extend": { - "version": "3.0.2" - }, - "extsprintf": { - "version": "1.3.0" - }, - "fast-deep-equal": { - "version": "3.1.3" - }, - "fast-json-stable-stringify": { - "version": "2.1.0" - }, - "finalhandler": { - "version": "1.2.0", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - } - }, - "for-each": { - "version": "0.3.3", - "requires": { - "is-callable": "^1.1.3" - } - }, - "forever-agent": { - "version": "0.6.1" - }, - "form-data": { - "version": "3.0.1", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0" - }, - "fresh": { - "version": "0.5.2" - }, - "fs-extra": { - "version": "4.0.3", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0" - }, - "function-bind": { - "version": "1.1.1" - }, - "function.prototype.name": { - "version": "1.1.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3" - }, - "get-intrinsic": { - "version": "1.1.1", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "4.1.0", - "requires": { - "pump": "^3.0.0" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "getpass": { - "version": "0.1.7", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.2.3", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "global": { - "version": "4.4.0", - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "got": { - "version": "9.6.0", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10" - }, - "har-schema": { - "version": "2.0.0" - }, - "har-validator": { - "version": "5.1.5", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2" - }, - "has-property-descriptors": { - "version": "1.0.0", - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbol-support-x": { - "version": "1.4.2" - }, - "has-symbols": { - "version": "1.0.3" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, - "has-tostringtag": { - "version": "1.0.0", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hash-base": { - "version": "3.1.0", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "http-cache-semantics": { - "version": "4.1.0" - }, - "http-errors": { - "version": "2.0.0", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-https": { - "version": "1.0.0" - }, - "http-signature": { - "version": "1.2.0", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "idna-uts46-hx": { - "version": "2.3.1", - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0" - } - } - }, - "ieee754": { - "version": "1.2.1" - }, - "inflight": { - "version": "1.0.6", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4" - }, - "internal-slot": { - "version": "1.0.3", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "ipaddr.js": { - "version": "1.9.1" - }, - "is-arguments": { - "version": "1.1.1", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-bigint": { - "version": "1.0.4", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.4" - }, - "is-date-object": { - "version": "1.0.5", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-function": { - "version": "1.0.2" - }, - "is-generator-function": { - "version": "1.0.10", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-hex-prefixed": { - "version": "1.0.0" - }, - "is-negative-zero": { - "version": "2.0.2" - }, - "is-number-object": { - "version": "1.0.7", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-object": { - "version": "1.0.2" - }, - "is-plain-obj": { - "version": "1.1.0" - }, - "is-regex": { - "version": "1.1.4", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-retry-allowed": { - "version": "1.2.0" - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "1.1.0" - }, - "is-string": { - "version": "1.0.7", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.9", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0" - }, - "is-weakref": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2" - } - }, - "isstream": { - "version": "0.1.2" - }, - "isurl": { - "version": "1.0.0", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, - "js-sha3": { - "version": "0.8.0" - }, - "jsbn": { - "version": "0.1.1" - }, - "json-buffer": { - "version": "3.0.0" - }, - "json-schema": { - "version": "0.4.0" - }, - "json-schema-traverse": { - "version": "0.4.1" - }, - "json-stringify-safe": { - "version": "5.0.1" - }, - "jsonfile": { - "version": "4.0.0", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.2", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "keccak": { - "version": "3.0.2", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - } - }, - "keyv": { - "version": "3.1.0", - "requires": { - "json-buffer": "3.0.0" - } - }, - "lowercase-keys": { - "version": "1.0.1" - }, - "md5.js": { - "version": "1.3.5", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0" - }, - "merge-descriptors": { - "version": "1.0.1" - }, - "methods": { - "version": "1.1.2" - }, - "miller-rabin": { - "version": "4.0.1", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0" - }, - "mime-db": { - "version": "1.52.0" - }, - "mime-types": { - "version": "2.1.35", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-response": { - "version": "1.0.1" - }, - "min-document": { - "version": "2.19.0", - "requires": { - "dom-walk": "^0.1.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1" - }, - "minimatch": { - "version": "3.1.2", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6" - }, - "minipass": { - "version": "2.9.0", - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "requires": { - "minimist": "^1.2.6" - } - }, - "mkdirp-promise": { - "version": "5.0.1", - "requires": { - "mkdirp": "*" - } - }, - "mock-fs": { - "version": "4.14.0" - }, - "moment": { - "version": "2.29.3", - "optional": true - }, - "ms": { - "version": "2.0.0" - }, - "multibase": { - "version": "0.6.1", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multicodec": { - "version": "0.5.7", - "requires": { - "varint": "^5.0.0" - } - }, - "multihashes": { - "version": "0.4.21", - "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - }, - "dependencies": { - "multibase": { - "version": "0.7.0", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } - }, - "mv": { - "version": "2.1.1", - "optional": true, - "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "optional": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "2.4.5", - "optional": true, - "requires": { - "glob": "^6.0.1" - } - } - } - }, - "nan": { - "version": "2.15.0", - "optional": true - }, - "nano-json-stream-parser": { - "version": "0.1.2" - }, - "ncp": { - "version": "2.0.0", - "optional": true - }, - "negotiator": { - "version": "0.6.3" - }, - "next-tick": { - "version": "1.1.0" - }, - "node-addon-api": { - "version": "2.0.2" - }, - "node-fetch": { - "version": "2.6.7", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-gyp-build": { - "version": "4.4.0" - }, - "nofilter": { - "version": "1.0.4" - }, - "normalize-url": { - "version": "4.5.1" - }, - "number-to-bn": { - "version": "1.7.0", - "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6" - } - } - }, - "oauth-sign": { - "version": "0.9.0" - }, - "object-assign": { - "version": "4.1.1" - }, - "object-inspect": { - "version": "1.12.0" - }, - "object-keys": { - "version": "1.1.1" - }, - "object.assign": { - "version": "4.1.2", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "oboe": { - "version": "2.1.5", - "requires": { - "http-https": "^1.0.0" - } - }, - "on-finished": { - "version": "2.4.1", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "requires": { - "wrappy": "1" - } - }, - "p-cancelable": { - "version": "1.1.0" - }, - "p-finally": { - "version": "1.0.0" - }, - "p-timeout": { - "version": "1.2.1", - "requires": { - "p-finally": "^1.0.0" - } - }, - "parse-asn1": { - "version": "5.1.6", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-headers": { - "version": "2.0.5" - }, - "parseurl": { - "version": "1.3.3" - }, - "path-is-absolute": { - "version": "1.0.1" - }, - "path-to-regexp": { - "version": "0.1.7" - }, - "pbkdf2": { - "version": "3.1.2", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0" - }, - "prepend-http": { - "version": "2.0.0" - }, - "process": { - "version": "0.11.10" - }, - "proxy-addr": { - "version": "2.0.7", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "psl": { - "version": "1.8.0" - }, - "public-encrypt": { - "version": "4.0.3", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1" - }, - "qs": { - "version": "6.10.3", - "requires": { - "side-channel": "^1.0.4" - } - }, - "query-string": { - "version": "5.1.1", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "randombytes": { - "version": "2.1.0", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1" - }, - "raw-body": { - "version": "2.5.1", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "request": { - "version": "2.88.2", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "form-data": { - "version": "2.3.3", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.5.3" - } - } - }, - "responselike": { - "version": "1.0.2", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rlp": { - "version": "2.2.7", - "requires": { - "bn.js": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "safe-buffer": { - "version": "5.2.1" - }, - "safe-json-stringify": { - "version": "1.2.0", - "optional": true - }, - "safer-buffer": { - "version": "2.1.2" - }, - "scrypt-js": { - "version": "3.0.1" - }, - "secp256k1": { - "version": "4.0.3", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "send": { - "version": "0.18.0", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "ms": { - "version": "2.1.3" - } - } - }, - "serve-static": { - "version": "1.15.0", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "servify": { - "version": "0.1.12", - "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - } - }, - "setimmediate": { - "version": "1.0.5" - }, - "setprototypeof": { - "version": "1.2.0" - }, - "sha.js": { - "version": "2.4.11", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "side-channel": { - "version": "1.0.4", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "simple-concat": { - "version": "1.0.1" - }, - "simple-get": { - "version": "2.8.2", - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "sshpk": { - "version": "1.17.0", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "statuses": { - "version": "2.0.1" - }, - "strict-uri-encode": { - "version": "1.1.0" - }, - "string_decoder": { - "version": "1.3.0", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "strip-hex-prefix": { - "version": "1.0.0", - "requires": { - "is-hex-prefixed": "1.0.0" - } - }, - "swarm-js": { - "version": "0.1.40", - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - }, - "dependencies": { - "get-stream": { - "version": "3.0.0" - }, - "got": { - "version": "7.1.0", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - }, - "p-cancelable": { - "version": "0.3.0" - }, - "prepend-http": { - "version": "1.0.4" - }, - "url-parse-lax": { - "version": "1.0.0", - "requires": { - "prepend-http": "^1.0.1" - } - } - } - }, - "tar": { - "version": "4.4.19", - "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - } - }, - "timed-out": { - "version": "4.0.1" - }, - "to-readable-stream": { - "version": "1.0.0" - }, - "toidentifier": { - "version": "1.0.1" - }, - "tough-cookie": { - "version": "2.5.0", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "0.0.3" - }, - "tunnel-agent": { - "version": "0.6.0", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5" - }, - "type": { - "version": "1.2.0" - }, - "type-is": { - "version": "1.6.18", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.6.4", - "dev": true - }, - "ultron": { - "version": "1.1.1" - }, - "unbox-primitive": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "universalify": { - "version": "0.1.2" - }, - "unpipe": { - "version": "1.0.0" - }, - "uri-js": { - "version": "4.4.1", - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse-lax": { - "version": "3.0.0", - "requires": { - "prepend-http": "^2.0.0" - } - }, - "url-set-query": { - "version": "1.0.0" - }, - "url-to-options": { - "version": "1.0.1" - }, - "utf-8-validate": { - "version": "5.0.9", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "utf8": { - "version": "3.0.0" - }, - "util": { - "version": "0.12.4", - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2" - }, - "utils-merge": { - "version": "1.0.1" - }, - "uuid": { - "version": "3.4.0" - }, - "varint": { - "version": "5.0.2" - }, - "vary": { - "version": "1.1.2" - }, - "verror": { - "version": "1.10.0", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "web3": { - "version": "1.7.3", - "requires": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-bzz": { - "version": "1.7.3", - "requires": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-core": { - "version": "1.7.3", - "requires": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-core-helpers": { - "version": "1.7.3", - "requires": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-method": { - "version": "1.7.3", - "requires": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-promievent": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-core-requestmanager": { - "version": "1.7.3", - "requires": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" - } - }, - "web3-core-subscriptions": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" - } - }, - "web3-eth": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-abi": { - "version": "1.7.3", - "requires": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - } - }, - "web3-eth-accounts": { - "version": "1.7.3", - "requires": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "uuid": { - "version": "3.3.2" - } - } - }, - "web3-eth-contract": { - "version": "1.7.3", - "requires": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-ens": { - "version": "1.7.3", - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-iban": { - "version": "1.7.3", - "requires": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" - } - }, - "web3-eth-personal": { - "version": "1.7.3", - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-net": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-providers-http": { - "version": "1.7.3", - "requires": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.7.3", - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" - } - }, - "web3-providers-ws": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" - } - }, - "web3-shh": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" - } - }, - "web3-utils": { - "version": "1.7.3", - "requires": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - }, - "webidl-conversions": { - "version": "3.0.1" - }, - "websocket": { - "version": "1.0.34", - "requires": { - "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" - } - }, - "whatwg-url": { - "version": "5.0.0", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-typed-array": { - "version": "1.1.8", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" - } - }, - "wrappy": { - "version": "1.0.2" - }, - "ws": { - "version": "3.3.3", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2" - } - } - }, - "xhr": { - "version": "2.6.0", - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xhr-request": { - "version": "1.1.0", - "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "xhr-request-promise": { - "version": "0.1.3", - "requires": { - "xhr-request": "^1.1.0" - } - }, - "xhr2-cookies": { - "version": "1.1.0", - "requires": { - "cookiejar": "^2.1.1" - } - }, - "xtend": { - "version": "4.0.2" - }, - "yaeti": { - "version": "0.0.6" - }, - "yallist": { - "version": "3.1.1" - } - } - }, - "@ethereumjs/common": { - "version": "2.6.4", - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.4" - } - }, - "@ethereumjs/tx": { - "version": "3.5.1", - "requires": { - "@ethereumjs/common": "^2.6.3", - "ethereumjs-util": "^7.1.4" - } - }, - "@ethersproject/abi": { - "version": "5.0.7", - "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.6.1", - "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "@ethersproject/address": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "@ethersproject/base64": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.6.1", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "@ethersproject/bytes": { - "version": "5.6.1", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/constants": { - "version": "5.6.0", - "requires": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "@ethersproject/hash": { - "version": "5.6.0", - "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/keccak256": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/logger": { - "version": "5.6.0" - }, - "@ethersproject/networks": { - "version": "5.6.2", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/properties": { - "version": "5.6.0", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/rlp": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/signing-key": { - "version": "5.6.1", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "@ethersproject/strings": { - "version": "5.6.0", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/transactions": { - "version": "5.6.0", - "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "@ethersproject/web": { - "version": "5.6.0", - "requires": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ipld/dag-cbor": { - "version": "7.0.1", - "requires": { - "cborg": "^1.6.0", - "multiformats": "^9.5.4" - } - }, - "@ipld/dag-json": { - "version": "8.0.9", - "requires": { - "cborg": "^1.5.4", - "multiformats": "^9.5.4" - } - }, - "@ipld/dag-pb": { - "version": "2.1.16", - "requires": { - "multiformats": "^9.5.4" - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2" - }, - "@protobufjs/base64": { - "version": "1.1.2" - }, - "@protobufjs/codegen": { - "version": "2.0.4" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2" - }, - "@protobufjs/inquire": { - "version": "1.1.0" - }, - "@protobufjs/path": { - "version": "1.1.2" - }, - "@protobufjs/pool": { - "version": "1.1.0" - }, - "@protobufjs/utf8": { - "version": "1.1.0" - }, - "@sindresorhus/is": { - "version": "0.14.0" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/bn.js": { - "version": "4.11.6", - "requires": { - "@types/node": "*" - } - }, - "@types/bunyan": { - "version": "1.8.8", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/long": { - "version": "4.0.2" - }, - "@types/minimatch": { - "version": "3.0.5" - }, - "@types/node": { - "version": "17.0.34" - }, - "@types/node-fetch": { - "version": "2.6.1", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "@types/pbkdf2": { - "version": "3.1.0", - "requires": { - "@types/node": "*" - } - }, - "@types/promise.any": { - "version": "2.0.0", - "dev": true - }, - "@types/secp256k1": { - "version": "4.0.3", - "requires": { - "@types/node": "*" - } - }, - "@types/semver": { - "version": "7.3.9", - "dev": true - }, - "accepts": { - "version": "1.3.8", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "ajv": { - "version": "6.12.6", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "any-signal": { - "version": "3.0.1" - }, - "arg": { - "version": "4.1.3", - "dev": true - }, - "array-flatten": { - "version": "1.1.1" - }, - "array.prototype.map": { - "version": "1.0.4", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - } - }, - "asn1": { - "version": "0.2.6", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0" - }, - "async-limiter": { - "version": "1.0.1" - }, - "asynckit": { - "version": "0.4.0" - }, - "available-typed-arrays": { - "version": "1.0.5" - }, - "aws-sign2": { - "version": "0.7.0" - }, - "aws4": { - "version": "1.11.0" - }, - "balanced-match": { - "version": "1.0.2" - }, - "base-x": { - "version": "3.0.9", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-js": { - "version": "1.5.1" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bignumber.js": { - "version": "9.0.2" - }, - "blakejs": { - "version": "1.2.1" - }, - "blob-to-it": { - "version": "1.0.4", - "requires": { - "browser-readablestream-to-it": "^1.0.3" - } - }, - "bluebird": { - "version": "3.7.2" - }, - "bn.js": { - "version": "4.12.0" - }, - "body-parser": { - "version": "1.20.0", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ms": { - "version": "2.0.0" - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "brorand": { - "version": "1.1.0" - }, - "browser-readablestream-to-it": { - "version": "1.0.3" - }, - "browserify-aes": { - "version": "1.2.0", - "requires": { - "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" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "bs58": { - "version": "4.0.1", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "buffer": { - "version": "6.0.3", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "buffer-from": { - "version": "1.1.2", - "dev": true - }, - "buffer-to-arraybuffer": { - "version": "0.0.5" - }, - "buffer-xor": { - "version": "1.0.3" - }, - "bufferutil": { - "version": "4.0.6", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "bunyan": { - "version": "1.8.15", - "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "bytes": { - "version": "3.1.2" - }, - "cacheable-request": { - "version": "6.1.0", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0" - } - } - }, - "call-bind": { - "version": "1.0.2", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caseless": { - "version": "0.12.0" - }, - "cborg": { - "version": "1.9.2" - }, - "chownr": { - "version": "1.1.4" - }, - "cids": { - "version": "0.7.5", - "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "multicodec": { - "version": "1.0.4", - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "varint": { - "version": "5.0.2" - } - } - }, - "cipher-base": { - "version": "1.0.4", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-is": { - "version": "1.1.0" - }, - "clone-response": { - "version": "1.0.2", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "combined-stream": { - "version": "1.0.8", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "command-exists": { - "version": "1.2.9" - }, - "commander": { - "version": "3.0.2" - }, - "concat-map": { - "version": "0.0.1" - }, - "content-disposition": { - "version": "0.5.4", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-hash": { - "version": "2.5.2", - "requires": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "content-type": { - "version": "1.0.4" - }, - "cookie": { - "version": "0.5.0" - }, - "cookie-signature": { - "version": "1.0.6" - }, - "cookiejar": { - "version": "2.1.3" - }, - "core-util-is": { - "version": "1.0.2" - }, - "cors": { - "version": "2.8.5", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "crc-32": { - "version": "1.2.2" - }, - "create-ecdh": { - "version": "4.0.4", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "create-hash": { - "version": "1.2.0", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "requires": { - "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" - } - }, - "create-require": { - "version": "1.1.1", - "dev": true - }, - "crypto-browserify": { - "version": "3.12.0", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "d": { - "version": "1.0.1", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dag-jose": { - "version": "1.0.0", - "requires": { - "@ipld/dag-cbor": "^6.0.3", - "multiformats": "^9.0.2" - }, - "dependencies": { - "@ipld/dag-cbor": { - "version": "6.0.15", - "requires": { - "cborg": "^1.5.4", - "multiformats": "^9.5.4" - } - } - } - }, - "dashdash": { - "version": "1.14.1", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "4.3.4", - "requires": { - "ms": "2.1.2" - } - }, - "decode-uri-component": { - "version": "0.2.0" - }, - "decompress-response": { - "version": "3.3.0", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "defer-to-connect": { - "version": "1.1.3" - }, - "define-properties": { - "version": "1.1.4", - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0" - }, - "depd": { - "version": "2.0.0" - }, - "des.js": { - "version": "1.0.1", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.2.0" - }, - "diff": { - "version": "4.0.2", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "dns-over-http-resolver": { - "version": "1.2.3", - "requires": { - "debug": "^4.3.1", - "native-fetch": "^3.0.0", - "receptacle": "^1.3.2" - } - }, - "dom-walk": { - "version": "0.1.2" - }, - "dtrace-provider": { - "version": "0.8.8", - "optional": true, - "requires": { - "nan": "^2.14.0" - } - }, - "duplexer3": { - "version": "0.1.4" - }, - "ecc-jsbn": { - "version": "0.1.2", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1" - }, - "electron-fetch": { - "version": "1.7.4", - "requires": { - "encoding": "^0.1.13" - } - }, - "elliptic": { - "version": "6.5.4", - "requires": { - "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" - } - }, - "encodeurl": { - "version": "1.0.2" - }, - "encoding": { - "version": "0.1.13", - "requires": { - "iconv-lite": "^0.6.2" - } - }, - "end-of-stream": { - "version": "1.4.4", - "requires": { - "once": "^1.4.0" - } - }, - "err-code": { - "version": "3.0.1" - }, - "es-abstract": { - "version": "1.20.1", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-aggregate-error": { - "version": "1.0.8", - "requires": { - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "function-bind": "^1.1.1", - "functions-have-names": "^1.2.3", - "get-intrinsic": "^1.1.1", - "globalthis": "^1.0.2", - "has-property-descriptors": "^1.0.0" - } - }, - "es-array-method-boxes-properly": { - "version": "1.0.0" - }, - "es-get-iterator": { - "version": "1.1.2", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.61", - "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "escape-html": { - "version": "1.0.3" - }, - "etag": { - "version": "1.8.1" - }, - "eth-ens-namehash": { - "version": "2.0.8", - "requires": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7" - } - } - }, - "eth-lib": { - "version": "0.1.29", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethereum-bloom-filters": { - "version": "1.0.10", - "requires": { - "js-sha3": "^0.8.0" - } - }, - "ethereum-cryptography": { - "version": "0.1.3", - "requires": { - "@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" - } - }, - "ethereumjs-util": { - "version": "7.1.4", - "requires": { - "@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" - }, - "dependencies": { - "@types/bn.js": { - "version": "5.1.0", - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.0" - } - } - }, - "ethjs-unit": { - "version": "0.1.6", - "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6" - } - } - }, - "eventemitter3": { - "version": "4.0.4" - }, - "evp_bytestokey": { - "version": "1.0.3", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "express": { - "version": "4.18.1", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } - } - }, - "ext": { - "version": "1.6.0", - "requires": { - "type": "^2.5.0" - }, - "dependencies": { - "type": { - "version": "2.6.0" - } - } - }, - "extend": { - "version": "3.0.2" - }, - "extsprintf": { - "version": "1.3.0" - }, - "fast-deep-equal": { - "version": "3.1.3" - }, - "fast-fifo": { - "version": "1.1.0" - }, - "fast-json-stable-stringify": { - "version": "2.1.0" - }, - "finalhandler": { - "version": "1.2.0", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } - } - }, - "follow-redirects": { - "version": "1.15.0" - }, - "for-each": { - "version": "0.3.3", - "requires": { - "is-callable": "^1.1.3" - } - }, - "forever-agent": { - "version": "0.6.1" - }, - "form-data": { - "version": "3.0.1", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0" - }, - "fresh": { - "version": "0.5.2" - }, - "fs-extra": { - "version": "0.30.0", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "fs-minipass": { - "version": "1.2.7", - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0" - }, - "function-bind": { - "version": "1.1.1" - }, - "function.prototype.name": { - "version": "1.1.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3" - }, - "get-intrinsic": { - "version": "1.1.1", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-iterator": { - "version": "1.0.2" - }, - "get-stream": { - "version": "4.1.0", - "requires": { - "pump": "^3.0.0" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "getpass": { - "version": "0.1.7", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.2.3", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "global": { - "version": "4.4.0", - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "globalthis": { - "version": "1.0.3", - "requires": { - "define-properties": "^1.1.3" - } - }, - "got": { - "version": "9.6.0", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10" - }, - "har-schema": { - "version": "2.0.0" - }, - "har-validator": { - "version": "5.1.5", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2" - }, - "has-property-descriptors": { - "version": "1.0.0", - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbol-support-x": { - "version": "1.4.2" - }, - "has-symbols": { - "version": "1.0.3" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, - "has-tostringtag": { - "version": "1.0.0", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hash-base": { - "version": "3.1.0", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "http-cache-semantics": { - "version": "4.1.0" - }, - "http-errors": { - "version": "2.0.0", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-https": { - "version": "1.0.0" - }, - "http-signature": { - "version": "1.2.0", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.6.3", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "idna-uts46-hx": { - "version": "2.3.1", - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0" - } - } - }, - "ieee754": { - "version": "1.2.1" - }, - "inflight": { - "version": "1.0.6", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4" - }, - "interface-datastore": { - "version": "6.1.0", - "requires": { - "interface-store": "^2.0.1", - "nanoid": "^3.0.2", - "uint8arrays": "^3.0.0" - } - }, - "interface-store": { - "version": "2.0.2" - }, - "internal-slot": { - "version": "1.0.3", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "ip-regex": { - "version": "4.3.0" - }, - "ipaddr.js": { - "version": "1.9.1" - }, - "ipfs-core-types": { - "version": "0.10.3", - "requires": { - "@ipld/dag-pb": "^2.1.3", - "interface-datastore": "^6.0.2", - "ipfs-unixfs": "^6.0.3", - "multiaddr": "^10.0.0", - "multiformats": "^9.5.1" - } - }, - "ipfs-core-utils": { - "version": "0.14.3", - "requires": { - "any-signal": "^3.0.0", - "blob-to-it": "^1.0.1", - "browser-readablestream-to-it": "^1.0.1", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "ipfs-core-types": "^0.10.3", - "ipfs-unixfs": "^6.0.3", - "ipfs-utils": "^9.0.6", - "it-all": "^1.0.4", - "it-map": "^1.0.4", - "it-peekable": "^1.0.2", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiaddr-to-uri": "^8.0.0", - "multiformats": "^9.5.1", - "nanoid": "^3.1.23", - "parse-duration": "^1.0.0", - "timeout-abort-controller": "^3.0.0", - "uint8arrays": "^3.0.0" - } - }, - "ipfs-http-client": { - "version": "56.0.3", - "requires": { - "@ipld/dag-cbor": "^7.0.0", - "@ipld/dag-json": "^8.0.1", - "@ipld/dag-pb": "^2.1.3", - "any-signal": "^3.0.0", - "dag-jose": "^1.0.0", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "ipfs-core-types": "^0.10.3", - "ipfs-core-utils": "^0.14.3", - "ipfs-utils": "^9.0.6", - "it-first": "^1.0.6", - "it-last": "^1.0.4", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiformats": "^9.5.1", - "parse-duration": "^1.0.0", - "stream-to-it": "^0.2.2", - "uint8arrays": "^3.0.0" - } - }, - "ipfs-unixfs": { - "version": "6.0.7", - "requires": { - "err-code": "^3.0.1", - "protobufjs": "^6.10.2" - } - }, - "ipfs-utils": { - "version": "9.0.6", - "requires": { - "any-signal": "^3.0.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^3.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.1.5", - "it-glob": "^1.0.1", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "nanoid": "^3.1.20", - "native-fetch": "^3.0.0", - "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "react-native-fetch-api": "^2.0.0", - "stream-to-it": "^0.2.2" - }, - "dependencies": { - "node-fetch": { - "version": "npm:@achingbrain/node-fetch@2.6.7" - } - } - }, - "is-arguments": { - "version": "1.1.1", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-bigint": { - "version": "1.0.4", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.4" - }, - "is-date-object": { - "version": "1.0.5", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-electron": { - "version": "2.2.1" - }, - "is-function": { - "version": "1.0.2" - }, - "is-generator-function": { - "version": "1.0.10", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-hex-prefixed": { - "version": "1.0.0" - }, - "is-ip": { - "version": "3.1.0", - "requires": { - "ip-regex": "^4.0.0" - } - }, - "is-map": { - "version": "2.0.2" - }, - "is-negative-zero": { - "version": "2.0.2" - }, - "is-number-object": { - "version": "1.0.7", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-object": { - "version": "1.0.2" - }, - "is-plain-obj": { - "version": "2.1.0" - }, - "is-regex": { - "version": "1.1.4", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-retry-allowed": { - "version": "1.2.0" - }, - "is-set": { - "version": "2.0.2" - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "1.1.0" - }, - "is-string": { - "version": "1.0.7", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.9", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0" - }, - "is-weakref": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2" - } - }, - "isarray": { - "version": "2.0.5" - }, - "iso-url": { - "version": "1.2.1" - }, - "isstream": { - "version": "0.1.2" - }, - "isurl": { - "version": "1.0.0", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, - "it-all": { - "version": "1.0.6" - }, - "it-first": { - "version": "1.0.7" - }, - "it-glob": { - "version": "1.0.2", - "requires": { - "@types/minimatch": "^3.0.4", - "minimatch": "^3.0.4" - } - }, - "it-last": { - "version": "1.0.6" - }, - "it-map": { - "version": "1.0.6" - }, - "it-peekable": { - "version": "1.0.3" - }, - "it-to-stream": { - "version": "1.0.0", - "requires": { - "buffer": "^6.0.3", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "iterate-iterator": { - "version": "1.0.2" - }, - "iterate-value": { - "version": "1.0.2", - "requires": { - "es-get-iterator": "^1.0.2", - "iterate-iterator": "^1.0.1" - } - }, - "js-sha3": { - "version": "0.8.0" - }, - "jsbn": { - "version": "0.1.1" - }, - "json-buffer": { - "version": "3.0.0" - }, - "json-schema": { - "version": "0.4.0" - }, - "json-schema-traverse": { - "version": "0.4.1" - }, - "json-stringify-safe": { - "version": "5.0.1" - }, - "jsonfile": { - "version": "2.4.0", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.2", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "keccak": { - "version": "3.0.2", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - } - }, - "keyv": { - "version": "3.1.0", - "requires": { - "json-buffer": "3.0.0" - } - }, - "klaw": { - "version": "1.3.1", - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "long": { - "version": "4.0.0" - }, - "lowercase-keys": { - "version": "1.0.1" - }, - "lru-cache": { - "version": "6.0.0", - "requires": { - "yallist": "^4.0.0" - } - }, - "make-error": { - "version": "1.3.6", - "dev": true - }, - "md5.js": { - "version": "1.3.5", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0" - }, - "memorystream": { - "version": "0.3.1" - }, - "merge-descriptors": { - "version": "1.0.1" - }, - "merge-options": { - "version": "3.0.4", - "requires": { - "is-plain-obj": "^2.1.0" - } - }, - "methods": { - "version": "1.1.2" - }, - "miller-rabin": { - "version": "4.0.1", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0" - }, - "mime-db": { - "version": "1.52.0" - }, - "mime-types": { - "version": "2.1.35", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-response": { - "version": "1.0.1" - }, - "min-document": { - "version": "2.19.0", - "requires": { - "dom-walk": "^0.1.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1" - }, - "minimatch": { - "version": "3.1.2", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6" - }, - "minipass": { - "version": "2.9.0", - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - }, - "dependencies": { - "yallist": { - "version": "3.1.1" - } - } - }, - "minizlib": { - "version": "1.3.3", - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "requires": { - "minimist": "^1.2.6" - } - }, - "mkdirp-promise": { - "version": "5.0.1", - "requires": { - "mkdirp": "*" - } - }, - "mock-fs": { - "version": "4.14.0" - }, - "moment": { - "version": "2.29.3", - "optional": true - }, - "ms": { - "version": "2.1.2" - }, - "multiaddr": { - "version": "10.0.1", - "requires": { - "dns-over-http-resolver": "^1.2.3", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - } - }, - "multiaddr-to-uri": { - "version": "8.0.0", - "requires": { - "multiaddr": "^10.0.0" - } - }, - "multibase": { - "version": "0.6.1", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - } - } - }, - "multicodec": { - "version": "0.5.7", - "requires": { - "varint": "^5.0.0" - }, - "dependencies": { - "varint": { - "version": "5.0.2" - } - } - }, - "multiformats": { - "version": "9.6.5" - }, - "multihashes": { - "version": "0.4.21", - "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "multibase": { - "version": "0.7.0", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "varint": { - "version": "5.0.2" - } - } - }, - "mv": { - "version": "2.1.1", - "optional": true, - "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "optional": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "2.4.5", - "optional": true, - "requires": { - "glob": "^6.0.1" - } - } - } - }, - "nan": { - "version": "2.15.0", - "optional": true - }, - "nano-json-stream-parser": { - "version": "0.1.2" - }, - "nanoid": { - "version": "3.3.4" - }, - "native-fetch": { - "version": "3.0.0", - "requires": {} - }, - "ncp": { - "version": "2.0.0", - "optional": true - }, - "negotiator": { - "version": "0.6.3" - }, - "next-tick": { - "version": "1.1.0" - }, - "node-addon-api": { - "version": "2.0.2" - }, - "node-fetch": { - "version": "2.6.7", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-gyp-build": { - "version": "4.4.0" - }, - "normalize-url": { - "version": "4.5.1" - }, - "number-to-bn": { - "version": "1.7.0", - "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6" - } - } - }, - "oauth-sign": { - "version": "0.9.0" - }, - "object-assign": { - "version": "4.1.1" - }, - "object-inspect": { - "version": "1.12.0" - }, - "object-keys": { - "version": "1.1.1" - }, - "object.assign": { - "version": "4.1.2", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "oboe": { - "version": "2.1.5", - "requires": { - "http-https": "^1.0.0" - } - }, - "on-finished": { - "version": "2.4.1", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "requires": { - "wrappy": "1" - } - }, - "os-tmpdir": { - "version": "1.0.2" - }, - "p-cancelable": { - "version": "1.1.0" - }, - "p-defer": { - "version": "3.0.0" - }, - "p-fifo": { - "version": "1.0.0", - "requires": { - "fast-fifo": "^1.0.0", - "p-defer": "^3.0.0" - } - }, - "p-finally": { - "version": "1.0.0" - }, - "p-timeout": { - "version": "1.2.1", - "requires": { - "p-finally": "^1.0.0" - } - }, - "parse-asn1": { - "version": "5.1.6", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-duration": { - "version": "1.0.2" - }, - "parse-headers": { - "version": "2.0.5" - }, - "parseurl": { - "version": "1.3.3" - }, - "path-is-absolute": { - "version": "1.0.1" - }, - "path-to-regexp": { - "version": "0.1.7" - }, - "pbkdf2": { - "version": "3.1.2", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0" - }, - "prepend-http": { - "version": "2.0.0" - }, - "process": { - "version": "0.11.10" - }, - "promise.any": { - "version": "2.0.4", - "requires": { - "array.prototype.map": "^1.0.4", - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-aggregate-error": "^1.0.7", - "get-intrinsic": "^1.1.1", - "iterate-value": "^1.0.2" - } - }, - "protobufjs": { - "version": "6.11.2", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "proxy-addr": { - "version": "2.0.7", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "psl": { - "version": "1.8.0" - }, - "public-encrypt": { - "version": "4.0.3", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1" - }, - "qs": { - "version": "6.10.3", - "requires": { - "side-channel": "^1.0.4" - } - }, - "query-string": { - "version": "5.1.1", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "randombytes": { - "version": "2.1.0", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1" - }, - "raw-body": { - "version": "2.5.1", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "react-native-fetch-api": { - "version": "2.0.0", - "requires": { - "p-defer": "^3.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "receptacle": { - "version": "1.3.2", - "requires": { - "ms": "^2.1.1" - } - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "request": { - "version": "2.88.2", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "form-data": { - "version": "2.3.3", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.5.3" - } - } - }, - "require-from-string": { - "version": "2.0.2" - }, - "responselike": { - "version": "1.0.2", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "retimer": { - "version": "3.0.0" - }, - "rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rlp": { - "version": "2.2.7", - "requires": { - "bn.js": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0" - } - } - }, - "safe-buffer": { - "version": "5.2.1" - }, - "safe-json-stringify": { - "version": "1.2.0", - "optional": true - }, - "safer-buffer": { - "version": "2.1.2" - }, - "scrypt-js": { - "version": "3.0.1" - }, - "secp256k1": { - "version": "4.0.3", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "send": { - "version": "0.18.0", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0" - } - } - }, - "ms": { - "version": "2.1.3" - } - } - }, - "serve-static": { - "version": "1.15.0", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "servify": { - "version": "0.1.12", - "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - } - }, - "setimmediate": { - "version": "1.0.5" - }, - "setprototypeof": { - "version": "1.2.0" - }, - "sha.js": { - "version": "2.4.11", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "side-channel": { - "version": "1.0.4", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "simple-concat": { - "version": "1.0.1" - }, - "simple-get": { - "version": "2.8.2", - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "solc": { - "version": "0.7.6", - "requires": { - "command-exists": "^1.2.8", - "commander": "3.0.2", - "follow-redirects": "^1.12.1", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "dependencies": { - "semver": { - "version": "5.7.1" - } - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "source-map-support": { - "version": "0.5.21", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sshpk": { - "version": "1.17.0", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "statuses": { - "version": "2.0.1" - }, - "stream-to-it": { - "version": "0.2.4", - "requires": { - "get-iterator": "^1.0.2" - } - }, - "strict-uri-encode": { - "version": "1.1.0" - }, - "string_decoder": { - "version": "1.3.0", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "strip-hex-prefix": { - "version": "1.0.0", - "requires": { - "is-hex-prefixed": "1.0.0" - } - }, - "swarm-js": { - "version": "0.1.40", - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "fs-extra": { - "version": "4.0.3", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "get-stream": { - "version": "3.0.0" - }, - "got": { - "version": "7.1.0", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0" - }, - "jsonfile": { - "version": "4.0.0", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "p-cancelable": { - "version": "0.3.0" - }, - "prepend-http": { - "version": "1.0.4" - }, - "url-parse-lax": { - "version": "1.0.0", - "requires": { - "prepend-http": "^1.0.1" - } - } - } - }, - "tar": { - "version": "4.4.19", - "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "dependencies": { - "yallist": { - "version": "3.1.1" - } - } - }, - "timed-out": { - "version": "4.0.1" - }, - "timeout-abort-controller": { - "version": "3.0.0", - "requires": { - "retimer": "^3.0.0" - } - }, - "tmp": { - "version": "0.0.33", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-readable-stream": { - "version": "1.0.0" - }, - "toidentifier": { - "version": "1.0.1" - }, - "tough-cookie": { - "version": "2.5.0", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "0.0.3" - }, - "ts-node": { - "version": "9.1.1", - "dev": true, - "requires": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5" - }, - "type": { - "version": "1.2.0" - }, - "type-is": { - "version": "1.6.18", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.6.4", - "dev": true - }, - "uint8arrays": { - "version": "3.0.0", - "requires": { - "multiformats": "^9.4.2" - } - }, - "ultron": { - "version": "1.1.1" - }, - "unbox-primitive": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "universalify": { - "version": "0.1.2" - }, - "unpipe": { - "version": "1.0.0" - }, - "uri-js": { - "version": "4.4.1", - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse-lax": { - "version": "3.0.0", - "requires": { - "prepend-http": "^2.0.0" - } - }, - "url-set-query": { - "version": "1.0.0" - }, - "url-to-options": { - "version": "1.0.1" - }, - "utf-8-validate": { - "version": "5.0.9", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "utf8": { - "version": "3.0.0" - }, - "util": { - "version": "0.12.4", - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2" - }, - "utils-merge": { - "version": "1.0.1" - }, - "uuid": { - "version": "3.4.0" - }, - "varint": { - "version": "6.0.0" - }, - "vary": { - "version": "1.1.2" - }, - "verror": { - "version": "1.10.0", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "web3": { - "version": "1.7.3", - "requires": { - "web3-bzz": "1.7.3", - "web3-core": "1.7.3", - "web3-eth": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-shh": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-bzz": { - "version": "1.7.3", - "requires": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-core": { - "version": "1.7.3", - "requires": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-requestmanager": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-core-helpers": { - "version": "1.7.3", - "requires": { - "web3-eth-iban": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-method": { - "version": "1.7.3", - "requires": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-core-promievent": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-core-requestmanager": { - "version": "1.7.3", - "requires": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.3", - "web3-providers-http": "1.7.3", - "web3-providers-ipc": "1.7.3", - "web3-providers-ws": "1.7.3" - } - }, - "web3-core-subscriptions": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3" - } - }, - "web3-eth": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-accounts": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-eth-ens": "1.7.3", - "web3-eth-iban": "1.7.3", - "web3-eth-personal": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-abi": { - "version": "1.7.3", - "requires": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - } - }, - "web3-eth-accounts": { - "version": "1.7.3", - "requires": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "uuid": { - "version": "3.3.2" - } - } - }, - "web3-eth-contract": { - "version": "1.7.3", - "requires": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-ens": { - "version": "1.7.3", - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-promievent": "1.7.3", - "web3-eth-abi": "1.7.3", - "web3-eth-contract": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-eth-iban": { - "version": "1.7.3", - "requires": { - "bn.js": "^4.11.9", - "web3-utils": "1.7.3" - } - }, - "web3-eth-personal": { - "version": "1.7.3", - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.7.3", - "web3-core-helpers": "1.7.3", - "web3-core-method": "1.7.3", - "web3-net": "1.7.3", - "web3-utils": "1.7.3" - }, - "dependencies": { - "@types/node": { - "version": "12.20.52" - } - } - }, - "web3-net": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-utils": "1.7.3" - } - }, - "web3-providers-http": { - "version": "1.7.3", - "requires": { - "web3-core-helpers": "1.7.3", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.7.3", - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.3" - } - }, - "web3-providers-ws": { - "version": "1.7.3", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.3", - "websocket": "^1.0.32" - } - }, - "web3-shh": { - "version": "1.7.3", - "requires": { - "web3-core": "1.7.3", - "web3-core-method": "1.7.3", - "web3-core-subscriptions": "1.7.3", - "web3-net": "1.7.3" - } - }, - "web3-utils": { - "version": "1.7.3", - "requires": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - }, - "webidl-conversions": { - "version": "3.0.1" - }, - "websocket": { - "version": "1.0.34", - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } - } - }, - "whatwg-url": { - "version": "5.0.0", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-typed-array": { - "version": "1.1.8", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" - } - }, - "wrappy": { - "version": "1.0.2" - }, - "ws": { - "version": "3.3.3", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2" - } - } - }, - "xhr": { - "version": "2.6.0", - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xhr-request": { - "version": "1.1.0", - "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "xhr-request-promise": { - "version": "0.1.3", - "requires": { - "xhr-request": "^1.1.0" - } - }, - "xhr2-cookies": { - "version": "1.1.0", - "requires": { - "cookiejar": "^2.1.1" - } - }, - "xtend": { - "version": "4.0.2" - }, - "yaeti": { - "version": "0.0.6" - }, - "yallist": { - "version": "4.0.0" - }, - "yn": { - "version": "3.1.1", - "dev": true - } - } -} diff --git a/services/verification/package.json b/services/verification/package.json deleted file mode 100644 index 240dda04c..000000000 --- a/services/verification/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "@ethereum-sourcify/verification", - "version": "0.2.11", - "description": "verification module that returns matches bytecode of the deployed and provided contract", - "bin": { - "sourcify-verification": "./build/index.js" - }, - "files": [ - "build" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/ethereum/sourcify.git" - }, - "main": "build/index.js", - "scripts": { - "test": "echo \"Error: no test specified\"", - "build": "rimraf ./build && tsc", - "start": "npm run build && node build/index.js" - }, - "author": "sourcifyeth", - "license": "MIT", - "devDependencies": { - "@types/bunyan": "^1.8.6", - "@types/node-fetch": "^2.5.7", - "@types/promise.any": "^2.0.0", - "@types/semver": "^7.3.9", - "rimraf": "^3.0.2", - "ts-node": "^9.0.0", - "typescript": "^4.0.2" - }, - "dependencies": { - "@ethereum-sourcify/core": "*", - "bunyan": "^1.8.15", - "ipfs-http-client": "^56.0.3", - "node-fetch": "^2.6.1", - "promise.any": "^2.0.2", - "semver": "^7.3.6", - "solc": "^0.7.4", - "web3": "^1.3.0" - } -} diff --git a/services/verification/src/index.ts b/services/verification/src/index.ts deleted file mode 100644 index 150998b24..000000000 --- a/services/verification/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./services/Injector"; -export * from "./services/VerificationService"; diff --git a/services/verification/src/services/Injector.ts b/services/verification/src/services/Injector.ts deleted file mode 100644 index cdfb46113..000000000 --- a/services/verification/src/services/Injector.ts +++ /dev/null @@ -1,861 +0,0 @@ -import Web3 from "web3"; -import * as bunyan from "bunyan"; -import { - Match, - InputData, - getSupportedChains, - Logger, - IFileService, - FileService, - StringMap, - cborDecode, - CheckedContract, - MatchQuality, - Chain, - Status, - Metadata, -} from "@ethereum-sourcify/core"; -import { - RecompilationResult, - getBytecode, - recompile, - trimAuxdata, - checkEndpoint, - getCreationDataFromArchive, - getCreationDataByScraping, - getCreationDataFromGraphQL, - getCreationDataTelos, - getCreationDataXDC, - getCreationDataMeter, - getCreationDataAvalancheSubnet, -} from "../utils"; -// eslint-disable-next-line @typescript-eslint/no-var-requires -const multihashes: any = require("multihashes"); -import semverSatisfies from "semver/functions/satisfies"; -import { create, IPFSHTTPClient, globSource } from "ipfs-http-client"; -import path from "path"; - -export interface InjectorConfig { - silent?: boolean; - log?: bunyan; - offline?: boolean; - repositoryPath?: string; - fileService?: IFileService; - web3timeout?: number; -} - -class InjectorChain { - web3array: Web3[]; - rpc: string[]; - name: string; - contractFetchAddress: string; - graphQLFetchAddress: string; - txRegex: string; - // archiveWeb3: Web3; - - constructor(chain: Chain) { - this.web3array = []; - this.rpc = chain.rpc; - this.name = chain.name; - this.contractFetchAddress = chain.contractFetchAddress; - this.graphQLFetchAddress = chain.graphQLFetchAddress; - this.txRegex = chain.txRegex; - // this.archiveWeb3 = chain.archiveWeb3; - } -} - -interface InjectorChainMap { - [id: string]: InjectorChain; -} - -class LoggerWrapper { - logger: bunyan; - logId: string; - - constructor(logger: bunyan) { - this.logger = logger; - this.logId = Math.random().toString().slice(2); - } - - info(obj: any, ...params: any[]): void { - return this.logger.info( - Object.assign(obj, { verificationId: this.logId }), - ...params - ); - } - - error(obj: any, ...params: any[]): void { - return this.logger.error( - Object.assign(obj, { verificationId: this.logId }), - ...params - ); - } -} - -export class Injector { - private log: bunyan; - private chains: InjectorChainMap; - private offline: boolean; - public fileService: IFileService; - private web3timeout: number; - repositoryPath: string; - private ipfsClient: IPFSHTTPClient; - - /** - * Constructor - * @param {InjectorConfig = {}} config - */ - private constructor(config: InjectorConfig = {}) { - this.chains = {}; - this.offline = config.offline || false; - this.repositoryPath = config.repositoryPath; - this.log = config.log || Logger("Injector"); - this.web3timeout = config.web3timeout || 3000; - - this.fileService = - config.fileService || new FileService(this.repositoryPath, this.log); - this.ipfsClient = process.env.IPFS_API - ? create({ url: process.env.IPFS_API }) - : undefined; - } - - /** - * Creates an instance of Injector. Waits for chains to initialize. - * Await this method to work with an instance that has all chains initialized. - * @param config - */ - public static async createAsync( - config: InjectorConfig = {} - ): Promise { - const instance = new Injector(config); - if (!instance.offline) { - await instance.initChains(); - } - return instance; - } - - /** - * Creates an instance of Injector. Does not initialize chains. - * @param config - */ - public static createOffline(config: InjectorConfig = {}): Injector { - return new Injector(config); - } - - /** - * Instantiates a web3 provider for all supported Sourcify networks via their given RPCs. - * If environment variable TESTING is set to true, localhost:8545 is also available. - */ - private async initChains() { - const chainsData = getSupportedChains(); - - for (const chain of chainsData) { - this.chains[chain.chainId] = new InjectorChain(chain); - - this.chains[chain.chainId].web3array = chain.rpc - .filter((rpcURL: string) => !!rpcURL) - .map((rpcURL: string) => { - const opts = { timeout: this.web3timeout }; - const web3 = rpcURL.startsWith("http") - ? new Web3(new Web3.providers.HttpProvider(rpcURL, opts)) - : new Web3(new Web3.providers.WebsocketProvider(rpcURL, opts)); - return web3; - }); - } - } - - /** - * Searches a set of addresses for the one whose deployedBytecode - * matches a given bytecode string - * @param {String[]} addresses - * @param {string} deployedBytecode - */ - private async matchBytecodeToAddress( - chain: string, - addresses: string[] = [], - recompiled: RecompilationResult, - metadata: Metadata - ): Promise { - let match: Match = { address: null, status: null }; - const chainName = this.chains[chain].name || "The chain"; - - for (let address of addresses) { - address = Web3.utils.toChecksumAddress(address); - - let deployedBytecode: string | null = null; - this.log.info( - { - loc: "[MATCH]", - chain: chain, - address: address, - }, - `Retrieving contract bytecode address` - ); - try { - deployedBytecode = await getBytecode( - this.chains[chain].web3array, - address - ); - } catch (err: any) { - if (err?.errors?.length > 0) - err.message = err.errors.map( - (e: { message: string }) => e.message || e - ); // Avoid uninformative message "All Promises Rejected" - this.log.error( - { loc: "[MATCH]", address, chain }, - err.message.toString() - ); - throw err; - } - - try { - match = await this.compareBytecodes( - deployedBytecode, - null, - recompiled, - chain, - address - ); - } catch (err: any) { - if (addresses.length === 1) { - err?.message - ? (match.message = err.message) - : (match.message = - "There were problems during contract verification. Please try again in a minute."); - } - } - - if (match.status) { - break; - } else if (addresses.length === 1 && !match.message) { - if (!deployedBytecode) { - match.message = `${chainName} is temporarily unavailable.`; - } else if (deployedBytecode === "0x") { - match.message = `${chainName} does not have a contract deployed at ${address}.`; - } - // Case when extra unused files in compiler input cause different bytecode (https://github.com/ethereum/sourcify/issues/618) - else if ( - semverSatisfies(metadata.compiler.version, "=0.6.12 || =0.7.0") && - metadata.settings.optimizer.enabled - ) { - const deployedMetadataHash = - this.getMetadataPathFromCborEncoded(deployedBytecode); - const recompiledMetadataHash = this.getMetadataPathFromCborEncoded( - recompiled.deployedBytecode - ); - // Metadata hashes match but bytecodes don't match. - if (deployedMetadataHash === recompiledMetadataHash) { - match.status = "extra-file-input-bug"; - match.message = - "It seems your contract has either Solidity v0.6.12 or v0.7.0, and the metadata hashes match but not the bytecodes. You should add all the files input the compiler during compilation and remove all others. See the issue for more information: https://github.com/ethereum/sourcify/issues/618"; - } else { - match.message = "The deployed and recompiled bytecode don't match."; - } - } else { - match.message = "The deployed and recompiled bytecode don't match."; - } - } - } - - return match; - } - - /** - * Returns a string description of how closely two bytecodes match. Bytecodes - * that match in all respects apart from their metadata hashes are 'partial'. - * Bytecodes that don't match are `null`. - * @param {string} deployedBytecode - * @param {string} creationData - * @param {string} compiledRuntimeBytecode - * @param {string} compiledCreationBytecode - * @param {string} chain chainId of the chain where contract is being checked - * @param {string} address contract address - * @return {Match} match description ('perfect'|'partial'|null) and possibly constructor args (ABI-encoded) and library links - */ - private async compareBytecodes( - deployedBytecode: string | null, - creationData: string, - recompiled: RecompilationResult, - chain: string, - address: string - ): Promise { - const match: Match = { - address, - status: null, - encodedConstructorArgs: undefined, - libraryMap: undefined, - }; - - if (deployedBytecode && deployedBytecode.length > 2) { - const { replaced, libraryMap } = this.addLibraryAddresses( - recompiled.deployedBytecode, - deployedBytecode - ); - recompiled.deployedBytecode = replaced; - match.libraryMap = libraryMap; - - if (deployedBytecode === recompiled.deployedBytecode) { - // if the bytecode doesn't contain metadata then "partial" match - if (this.getMetadataPathFromCborEncoded(deployedBytecode) === null) { - match.status = "partial"; - return match; - } - match.status = "perfect"; - return match; - } - - const trimmedDeployedBytecode = trimAuxdata(deployedBytecode); - const trimmedCompiledRuntimeBytecode = trimAuxdata( - recompiled.deployedBytecode - ); - if (trimmedDeployedBytecode === trimmedCompiledRuntimeBytecode) { - match.status = "partial"; - return match; - } - - if ( - trimmedDeployedBytecode.length === trimmedCompiledRuntimeBytecode.length - ) { - creationData = - creationData || (await this.getCreationData(chain, address)); - - const { replaced, libraryMap } = this.addLibraryAddresses( - recompiled.creationBytecode, - creationData - ); - recompiled.creationBytecode = replaced; - match.libraryMap = libraryMap; - - if (creationData) { - if (creationData.startsWith(recompiled.creationBytecode)) { - // The reason why this uses `startsWith` instead of `===` is that - // creationData may contain constructor arguments at the end part. - const encodedConstructorArgs = this.extractEncodedConstructorArgs( - creationData, - recompiled.creationBytecode - ); - match.status = "perfect"; - match.encodedConstructorArgs = encodedConstructorArgs; - return match; - } - - const trimmedCompiledCreationBytecode = trimAuxdata( - recompiled.creationBytecode - ); - - if (creationData.startsWith(trimmedCompiledCreationBytecode)) { - match.status = "partial"; - return match; - } - } - } - } - - return match; - } - - private addLibraryAddresses( - template: string, - real: string - ): { - replaced: string; - libraryMap: StringMap; - } { - const PLACEHOLDER_START = "__$"; - const PLACEHOLDER_LENGTH = 40; - - const libraryMap: StringMap = {}; - - let index = template.indexOf(PLACEHOLDER_START); - for (; index !== -1; index = template.indexOf(PLACEHOLDER_START)) { - const placeholder = template.slice(index, index + PLACEHOLDER_LENGTH); - const address = real.slice(index, index + PLACEHOLDER_LENGTH); - libraryMap[placeholder] = address; - const regexCompatiblePlaceholder = placeholder - .replace("__$", "__\\$") - .replace("$__", "\\$__"); - const regex = RegExp(regexCompatiblePlaceholder, "g"); - template = template.replace(regex, address); - } - - return { - replaced: template, - libraryMap, - }; - } - - /** - * Returns the `creationData` from the transaction that created the contract at the provided chain and address. - * @param chain - * @param contractAddress - * @returns `creationData` if found, `null` otherwise - */ - private async getCreationData( - chain: string, - contractAddress: string - ): Promise { - const loc = "[GET_CREATION_DATA]"; - const txFetchAddress = this.chains[chain]?.contractFetchAddress.replace( - "${ADDRESS}", - contractAddress - ); - const txRegex = this.chains[chain].txRegex; - - if (txFetchAddress && txRegex) { - // fetch from a block explorer and extract by regex - this.log.info( - { loc, chain, contractAddress, fetchAddress: txFetchAddress }, - "Scraping block explorer" - ); - for (const web3 of this.chains[chain].web3array) { - try { - return await getCreationDataByScraping(txFetchAddress, txRegex, web3); - } catch (err: any) { - this.log.error( - { loc, chain, contractAddress, err: err.message }, - "Scraping failed!" - ); - } - } - } - - // Telos - if (txFetchAddress && (chain == "40" || chain == "41")) { - for (const web3 of this.chains[chain].web3array) { - this.log.info( - { loc, chain, contractAddress, fetchAddress: txFetchAddress }, - "Querying Telos API" - ); - try { - return await getCreationDataTelos(txFetchAddress, web3); - } catch (err: any) { - this.log.error( - { loc, chain, contractAddress, err: err.message }, - "Telos API failed!" - ); - } - } - } - if (txFetchAddress && (chain == "50" || chain == "51")) { - for (const web3 of this.chains[chain].web3array) { - this.log.info( - { loc, chain, contractAddress, fetchAddress: txFetchAddress }, - "Querying BlocksScan API" - ); - try { - return await getCreationDataXDC(txFetchAddress, web3); - } catch (err: any) { - this.log.error( - { loc, chain, contractAddress, err: err.message }, - "BlocksScan API failed!" - ); - } - } - } - - // Meter network - if (txFetchAddress && (chain == "83" || chain == "82")) { - for (const web3 of this.chains[chain].web3array) { - this.log.info( - { loc, chain, contractAddress, fetchAddress: txFetchAddress }, - "Querying Meter API" - ); - try { - return await getCreationDataMeter(txFetchAddress, web3); - } catch (err: any) { - this.log.error( - { loc, chain, contractAddress, err: err.message }, - "Meter API failed!" - ); - } - } - } - - // Avalanche Subnets - if (txFetchAddress && ["11111", "335", "53935", "432201"].includes(chain)) { - for (const web3 of this.chains[chain].web3array) { - this.log.info( - { loc, chain, contractAddress, fetchAddress: txFetchAddress }, - "Querying Avalanche Subnet Explorer API" - ); - try { - return await getCreationDataAvalancheSubnet(txFetchAddress, web3); - } catch (err: any) { - this.log.error( - { loc, chain, contractAddress, err: err.message }, - "Avalanche Subnet Explorer API failed!" - ); - } - } - } - - const graphQLFetchAddress = this.chains[chain].graphQLFetchAddress; - if (graphQLFetchAddress) { - // fetch from graphql node - for (const web3 of this.chains[chain].web3array) { - try { - return await getCreationDataFromGraphQL( - graphQLFetchAddress, - contractAddress, - web3 - ); - } catch (err: any) { - this.log.error({ loc, chain, contractAddress, err: err.message }); - } - } - } - - // Commented out for publishing chains in sourcify-chains at /chains endpoint. Also, since all chains with archiveWeb3 (Ethereum networks) already had txRegex and txFetchAddress, this block of code never executes. - // const archiveWeb3 = this.chains[chain].archiveWeb3; - // if (archiveWeb3) { // fetch by binary search on chain history - // this.log.info({ loc, chain, contractAddress }, "Fetching archive data"); - // try { - // return await getCreationDataFromArchive(contractAddress, archiveWeb3); - // } catch(err: any) { - // this.log.error({ loc, chain, contractAddress, err: err.message }, "Archive search failed!"); - // } - // } - - const err = `Cannot fetch creation data via ${txFetchAddress} on chainId ${chain} of contract ${contractAddress}`; - this.log.error({ loc, chain, contractAddress, err }); - throw new Error(err); - } - - private extractEncodedConstructorArgs( - creationData: string, - compiledCreationBytecode: string - ) { - const startIndex = creationData.indexOf(compiledCreationBytecode); - return ( - "0x" + creationData.slice(startIndex + compiledCreationBytecode.length) - ); - } - - /** - * Throws if addresses array contains a null value (express) or is length 0 - * @param {string[] = []} addresses param (submitted to injector) - */ - private validateAddresses(addresses: string[] = []) { - const err = new Error("Missing address for submitted sources/metadata"); - - if (!addresses.length) { - throw err; - } - - for (const address of addresses) { - if (address == null) throw err; - } - } - - /** - * Throws if `chain` is falsy or wrong type - * @param {string} chain param (submitted to injector) - */ - private validateChain(chain: string) { - if (!chain || typeof chain !== "string") { - throw new Error("Missing chain for submitted sources/metadata"); - } - } - - /** - * Used by the front-end. Accepts a set of source files and a metadata string, - * recompiles / validates them and stores them in the repository by chain/address - * and by swarm | ipfs hash. - * @param {string} repository repository root (ex: 'repository') - * @param {string} chain chain name (ex: 'ropsten') - * @param {string} address contract address - * @param {string[]} files - * @return {Promise} address & status of successfully verified contract - */ - public async inject(inputData: InputData): Promise { - const { chain, addresses, contract } = inputData; - this.validateAddresses(addresses); - this.validateChain(chain); - - let match: Match; - const wrappedLogger = new LoggerWrapper(this.log); - - if (!CheckedContract.isValid(contract)) { - await CheckedContract.fetchMissing(contract, wrappedLogger); - } - - const compilationResult = await recompile( - contract.metadata, - contract.solidity, - wrappedLogger - ); - - // When injector is called by monitor, the bytecode has already been - // obtained for address and we only need to compare w/ compilation result. - if (inputData.bytecode) { - if (addresses.length !== 1) { - const err = - "Injector cannot work with multiple addresses if bytecode is provided"; - this.log.error({ loc: "[INJECTOR]", addresses, err }); - throw new Error(err); - } - const address = Web3.utils.toChecksumAddress(addresses[0]); - - match = await this.compareBytecodes( - inputData.bytecode, - inputData.creationData, - compilationResult, - chain, - address - ); - - // For other cases, we need to retrieve the code for specified address - // from the chain. - } else { - match = await this.matchBytecodeToAddress( - chain, - addresses, - compilationResult, - contract.metadata - ); - } - - if ( - match.address && - (match.status === "perfect" || match.status === "partial") - ) { - // Delete the partial matches if we now have a perfect match instead. - if (match.status === "perfect") { - this.fileService.deletePartialIfExists(chain, match.address); - } - const matchQuality = this.statusToMatchQuality(match.status); - this.storeSources(matchQuality, chain, match.address, contract.solidity); - this.storeMetadata(matchQuality, chain, match.address, compilationResult); - - if (match.encodedConstructorArgs && match.encodedConstructorArgs.length) { - this.storeConstructorArgs( - matchQuality, - chain, - match.address, - match.encodedConstructorArgs - ); - } - - if (match.libraryMap && Object.keys(match.libraryMap).length) { - this.storeLibraryMap( - matchQuality, - chain, - match.address, - match.libraryMap - ); - } - - if (this.ipfsClient) { - this.addToIpfsMfs(matchQuality, chain, match.address); - } - } else if (match.status === "extra-file-input-bug") { - return match; - } else { - const message = - match.message || - "Could not match the deployed and recompiled bytecode."; - const err = new Error(`Contract name: ${contract.name}. ${message}`); - - this.log.error({ - loc: "[INJECT]", - chain, - addresses, - err, - }); - - throw new Error(err.message); - } - - return match; - } - - /** - * This method exists because many different people have contributed to this code, which has led to the - * lack of unanimous nomenclature - * @param status - * @returns {MatchQuality} matchQuality - */ - private statusToMatchQuality(status: Status): MatchQuality { - if (status === "perfect") return "full"; - if (status === "partial") return status; - } - - private sanitizePath(originalPath: string): string { - return originalPath - .replace(/[^a-z0-9_./-]/gim, "_") - .replace(/(^|\/)[.]+($|\/)/, "_"); - } - - private getMetadataPathFromCborEncoded( - bytecode: string, - address?: string, - chain?: string - ) { - const bytes = Web3.utils.hexToBytes(bytecode); - const cborData = cborDecode(bytes); - - if (cborData["bzzr0"]) { - return `/swarm/bzzr0/${Web3.utils - .bytesToHex(cborData["bzzr0"]) - .slice(2)}`; - } else if (cborData["bzzr1"]) { - return `/swarm/bzzr1/${Web3.utils - .bytesToHex(cborData["bzzr1"]) - .slice(2)}`; - } else if (cborData["ipfs"]) { - return `/ipfs/${multihashes.toB58String(cborData["ipfs"])}`; - } - - this.log.error({ - loc: "[INJECTOR:GET_METADATA_PATH]", - address, - chain, - err: "No metadata hash in cbor encoded data.", - }); - return null; - } - - /** - * Stores the metadata from compilationResult to the swarm | ipfs subrepo. The exact storage path depends - * on the swarm | ipfs address extracted from compilationResult.deployedByteode. - * - * @param chain used only for logging - * @param address used only for loggin - * @param compilationResult should contain deployedBytecode and metadata - */ - private storeMetadata( - matchQuality: MatchQuality, - chain: string, - address: string, - compilationResult: RecompilationResult - ) { - this.fileService.save( - { - matchQuality, - chain, - address, - fileName: "metadata.json", - }, - compilationResult.metadata - ); - } - - /** - * Writes the verified sources (.sol files) to the repository. - * @param {string} chain chain name (ex: 'ropsten') - * @param {string} address contract address - * @param {StringMap} sources 'rearranged' sources - * @param {MatchQuality} matchQuality - */ - private storeSources( - matchQuality: MatchQuality, - chain: string, - address: string, - sources: StringMap - ) { - for (const sourcePath in sources) { - this.fileService.save( - { - matchQuality, - chain, - address, - source: true, - fileName: this.sanitizePath(sourcePath), - }, - sources[sourcePath] - ); - } - } - - /** - * Writes the constructor arguments to the repository. - * @param matchQuality - * @param chain - * @param address - * @param encodedConstructorArgs - */ - private storeConstructorArgs( - matchQuality: MatchQuality, - chain: string, - address: string, - encodedConstructorArgs: string - ) { - this.fileService.save( - { - matchQuality, - chain, - address, - source: false, - fileName: "constructor-args.txt", - }, - encodedConstructorArgs - ); - } - - /** - * Writes the map of library links (pairs of the format ) to the repository. - * @param matchQuality - * @param chain - * @param address - * @param libraryMap - */ - private storeLibraryMap( - matchQuality: MatchQuality, - chain: string, - address: string, - libraryMap: StringMap - ) { - const indentationSpaces = 2; - this.fileService.save( - { - matchQuality, - chain, - address, - source: false, - fileName: "library-map.json", - }, - JSON.stringify(libraryMap, null, indentationSpaces) - ); - } - - /** - * Adds the verified contract's folder to IPFS via MFS - * - * @param matchQuality - * @param chain - * @param address - */ - private async addToIpfsMfs( - matchQuality: MatchQuality, - chain: string, - address: string - ) { - const contractFolderDir = this.fileService.generateAbsoluteFilePath({ - matchQuality, - chain, - address, - }); - const ipfsMFSDir = - "/" + - this.fileService.generateRelativeContractDir({ - matchQuality, - chain, - address, - }); - const filesAsyncIterable = globSource(contractFolderDir, "**/*"); - for await (const file of filesAsyncIterable) { - if (!file.content) continue; // skip directories - const mfsPath = path.join(ipfsMFSDir, file.path); - await this.ipfsClient.files.mkdir(path.dirname(mfsPath), { - parents: true, - }); - // Readstream to Buffers - const chunks: Buffer[] = []; - for await (const chunk of file.content) { - chunks.push(chunk); - } - const fileBuffer = Buffer.concat(chunks); - await this.ipfsClient.files.write(mfsPath, fileBuffer, { create: true }); - } - } -} diff --git a/services/verification/src/services/VerificationService.ts b/services/verification/src/services/VerificationService.ts deleted file mode 100644 index 660f10656..000000000 --- a/services/verification/src/services/VerificationService.ts +++ /dev/null @@ -1,125 +0,0 @@ -import { - InputData, - Match, - Logger, - IFileService, - Metadata, - JsonInput, -} from "@ethereum-sourcify/core"; -import { Injector } from "./Injector"; -import * as bunyan from "bunyan"; -import { findContractPathFromContractName, useCompiler } from "../utils"; - -export interface IVerificationService { - findByAddress(address: string, chain: string): Match[]; - findAllByAddress(address: string, chain: string): Match[]; - inject(inputData: InputData): Promise; - getMetadataFromJsonInput( - compilerVersion: string, - contractName: string, - compilerJson: any - ): Promise; -} - -export class VerificationService implements IVerificationService { - fileService: IFileService; - logger: bunyan; - private injector: Injector; - - constructor(fileService: IFileService, logger?: bunyan) { - this.fileService = fileService; - this.logger = logger || Logger("VerificationService"); - } - - getMetadataFromJsonInput = async ( - compilerVersion: string, - contractName: string, - compilerJson: JsonInput - ): Promise => { - const output = await useCompiler( - compilerVersion, - compilerJson, - this.logger - ); - const contractPath = findContractPathFromContractName( - output.contracts, - contractName - ); - - if ( - !output.contracts || - !output.contracts[contractPath] || - !output.contracts[contractPath][contractName] || - !output.contracts[contractPath][contractName].metadata - ) { - const errorMessages = output.errors - .filter((e: any) => e.severity === "error") - .map((e: any) => e.formattedMessage) - .join("\n"); - this.logger.error({ - loc: "[VERIFY-WITH-JSON]", - contractPath, - contractName, - compilerVersion, - errorMessages, - }); - throw new Error("Compiler error:\n " + errorMessages); - } - - return JSON.parse( - output.contracts[contractPath][contractName].metadata.trim() - ); - }; - - findByAddress = (address: string, chain: string): Match[] => { - // Try to find by address, return on success. - let matches: Match[] = []; - try { - matches = this.fileService.findByAddress(address, chain); - } catch (err) { - const msg = "Could not find file in repository"; - this.logger.info( - { - loc: "[POST:VERIFICATION_BY_ADDRESS_FAILED]", - address: address, - }, - msg - ); - } - return matches; - }; - - findAllByAddress = (address: string, chain: string): Match[] => { - // Try to find by address, return on success. - let matches: Match[] = []; - try { - matches = this.fileService.findAllByAddress(address, chain); - } catch (err) { - const msg = "Could not find file in repository"; - this.logger.info( - { - loc: "[POST:VERIFICATION_BY_ADDRESS_FAILED]", - address: address, - }, - msg - ); - } - return matches; - }; - - inject = async (inputData: InputData): Promise => { - // Injection - //const injection: Promise; - //const { repository, chain, addresses, files } = inputData; - if (!this.injector) { - this.injector = await Injector.createAsync({ - log: this.logger, - repositoryPath: this.fileService.repositoryPath, - fileService: this.fileService, - web3timeout: parseInt(process.env.WEB3_TIMEOUT), - }); - } - - return this.injector.inject(inputData); - }; -} diff --git a/services/verification/src/utils.ts b/services/verification/src/utils.ts deleted file mode 100644 index 2f0356627..000000000 --- a/services/verification/src/utils.ts +++ /dev/null @@ -1,582 +0,0 @@ -import Web3 from "web3"; -import { HttpProvider } from "web3-core"; -import fetch from "node-fetch"; -import { - StringMap, - createJsonInputFromMetadata, - InfoErrorLogger, -} from "@ethereum-sourcify/core"; -import Path from "path"; -import fs from "fs"; -// eslint-disable-next-line @typescript-eslint/no-var-requires -const solc = require("solc"); -import { spawnSync } from "child_process"; -import { StatusCodes } from "http-status-codes"; -import { ethers } from "ethers"; -import promiseAny = require("promise.any"); // use import require to avoid error from typescript see: https://github.com/es-shims/Promise.allSettled/issues/5#issuecomment-723485612 - -const GITHUB_SOLC_REPO = - "https://github.com/ethereum/solc-bin/raw/gh-pages/linux-amd64/"; - -export interface RecompilationResult { - creationBytecode?: string; - deployedBytecode?: string; - metadata: string; -} - -/** - * Checks if provided endpoint is online - * @param {string} provider personal project ID from infura.io or real Ethereum node endpoint - */ -export async function checkEndpoint(provider: string): Promise { - const web3 = new Web3(provider); - await web3.eth.getNodeInfo().catch(() => { - throw new Error("Check your node"); - }); -} - -/** - * Function to execute promises sequentially and return the first resolved one. Reject if none resolves. - * - * @param promiseArray - */ -async function awaitSequentially(promiseArray: Promise[]) { - let rejectResponse; - for (const p of promiseArray) { - try { - const resolveResponse = await p; - return resolveResponse; - } catch (err) { - rejectResponse = err; - } - } - throw rejectResponse; -} - -const rejectInMs = (ms: number, host: string) => - new Promise((_resolve, reject) => { - setTimeout(() => reject(`RPC ${host} took too long to respond`), ms); - }); - -// Races the web3.eth.getCode call with a timeout promise. Returns a wrapper Promise that rejects if getCode call takes longer than timeout. -function raceWithTimeout(web3: Web3, timeout: number, address: string) { - const provider = web3.currentProvider as HttpProvider; - return Promise.race([ - web3.eth.getCode(address), - rejectInMs(timeout, provider.host), - ]); -} -/** - * Fetches the contract's deployed bytecode from given web3 providers. - * Tries to fetch sequentially if the first RPC is a local eth node. Fetches in parallel otherwise. - * - * @param {Web3[]} web3Array - web3 instances for the chain of the contract - * @param {string} address - contract address - */ -export async function getBytecode( - web3Array: Web3[], - address: string -): Promise { - const RPC_TIMEOUT = 5000; // ms - if (!web3Array.length) return; - address = Web3.utils.toChecksumAddress(address); - - // Check if the first provider is a local node (using NODE_ADDRESS). If so don't waste Alchemy requests by requesting all RPCs in parallel. - // Instead request first the local node and request Alchemy only if it fails. - const firstProvider = web3Array[0].currentProvider as HttpProvider; - if (firstProvider?.host?.includes(process.env.NODE_ADDRESS)) { - let rejectResponse; - for (const web3 of web3Array) { - try { - const bytecode = await raceWithTimeout(web3, RPC_TIMEOUT, address); // await sequentially - return bytecode; - } catch (err) { - rejectResponse = err; - } - } - throw rejectResponse; // None resolved - } else { - // No local node. Request all public RPCs in parallel. - const rpcPromises: Promise[] = web3Array.map((web3) => - raceWithTimeout(web3, RPC_TIMEOUT, address) - ); - // Promise.any for Node v15.0.0< i.e. return the first one that resolves. - return promiseAny(rpcPromises); - } -} - -const RECOMPILATION_ERR_MSG = - "Recompilation error (probably caused by invalid metadata)"; - -/** - * Compiles sources using version and settings specified in metadata - * @param {any} metadata - * @param {string[]} sources solidity files - * @return {Promise} - */ -export async function recompile( - metadata: any, - sources: StringMap, - log: InfoErrorLogger -): Promise { - const { solcJsonInput, fileName, contractName } = createJsonInputFromMetadata( - metadata, - sources, - log - ); - - const loc = "[RECOMPILE]"; - const version = metadata.compiler.version; - - log.info({ loc, fileName, contractName, version }, "Recompiling"); - - const output = await useCompiler(version, solcJsonInput, log); - if ( - !output.contracts || - !output.contracts[fileName] || - !output.contracts[fileName][contractName] || - !output.contracts[fileName][contractName].evm || - !output.contracts[fileName][contractName].evm.bytecode - ) { - const errorMessages = output.errors - .filter((e: any) => e.severity === "error") - .map((e: any) => e.formattedMessage) - .join("\n"); - log.error({ loc, fileName, contractName, version, errorMessages }); - throw new Error("Compiler error:\n " + errorMessages); - // throw new Error(RECOMPILATION_ERR_MSG); - } - - const contract: any = output.contracts[fileName][contractName]; - return { - creationBytecode: `0x${contract.evm.bytecode.object}`, - deployedBytecode: `0x${contract.evm.deployedBytecode.object}`, - metadata: contract.metadata.trim(), - }; -} - -export function findContractPathFromContractName( - contracts: any, - contractName: string -): string | null { - for (const key of Object.keys(contracts)) { - const contractsList = contracts[key]; - if (Object.keys(contractsList).includes(contractName)) { - return key; - } - } - return null; -} - -/** - * Searches for a solc: first for a local executable version, then from GitHub - * and then using the getSolcJs function. - * Once the compiler is retrieved, it is used, and the stringified solc output is returned. - * - * @param version the version of solc to be used for compilation - * @param input a JSON object of the standard-json format compatible with solc - * @param log the logger - * @returns stringified solc output - */ -export async function useCompiler( - version: string, - solcJsonInput: any, - log: InfoErrorLogger -) { - const inputStringified = JSON.stringify(solcJsonInput); - const solcPath = await getSolcExecutable(version, log); - let compiled: string = null; - - if (solcPath) { - const logObject = { loc: "[RECOMPILE]", version, solcPath }; - log.info(logObject, "Compiling with external executable"); - - const shellOutputBuffer = spawnSync(solcPath, ["--standard-json"], { - input: inputStringified, - maxBuffer: 1000 * 1000 * 10, - }); - - // Handle errors. - if (shellOutputBuffer.error) { - const typedError: NodeJS.ErrnoException = shellOutputBuffer.error; - // Handle compilation output size > stdout buffer - if (typedError.code === "ENOBUFS") { - log.error(logObject, shellOutputBuffer.error || RECOMPILATION_ERR_MSG); - throw new Error("Compilation output size too large"); - } - log.error(logObject, shellOutputBuffer.error || RECOMPILATION_ERR_MSG); - throw new Error("Compilation Error"); - } - if (!shellOutputBuffer.stdout) { - log.error(logObject, shellOutputBuffer.error || RECOMPILATION_ERR_MSG); - throw new Error(RECOMPILATION_ERR_MSG); - } - compiled = shellOutputBuffer.stdout.toString(); - } else { - const soljson = await getSolcJs(version, log); - compiled = soljson.compile(inputStringified); - } - - const compiledJSON = JSON.parse(compiled); - const errorMessages = compiledJSON?.errors - ?.filter((e: any) => e.severity === "error") - .map((e: any) => e.formattedMessage) - .join("\n"); - if (errorMessages) { - log.error({ loc: "[RECOMPILE]", version }, errorMessages); - throw new Error("Compiler error:\n " + errorMessages); - } - return compiledJSON; -} - -function validateSolcPath(solcPath: string, log: InfoErrorLogger): boolean { - const spawned = spawnSync(solcPath, ["--version"]); - if (spawned.status === 0) { - return true; - } - - const error = - spawned?.error?.message || - spawned.stderr.toString() || - "Error running solc, are you on the right platoform? (e.g. x64 vs arm)"; - log.error({ loc: "[VALIDATE_SOLC_PATH]", solcPath, error }); - return false; -} - -async function getSolcExecutable( - version: string, - log: InfoErrorLogger -): Promise { - const fileName = `solc-linux-amd64-v${version}`; - const tmpSolcRepo = - process.env.SOLC_REPO_TMP || Path.join("/tmp", "solc-repo"); - - const repoPaths = [tmpSolcRepo, process.env.SOLC_REPO || "solc-repo"]; - for (const repoPath of repoPaths) { - const solcPath = Path.join(repoPath, fileName); - if (fs.existsSync(solcPath) && validateSolcPath(solcPath, log)) { - return solcPath; - } - } - - const tmpSolcPath = Path.join(tmpSolcRepo, fileName); - const success = await fetchSolcFromGitHub( - tmpSolcPath, - version, - fileName, - log - ); - return success ? tmpSolcPath : null; -} - -async function fetchSolcFromGitHub( - solcPath: string, - version: string, - fileName: string, - log: InfoErrorLogger -): Promise { - const githubSolcURI = GITHUB_SOLC_REPO + encodeURIComponent(fileName); - const logObject = { loc: "[RECOMPILE]", version, githubSolcURI }; - log.info(logObject, "Fetching executable solc from GitHub"); - - const res = await fetch(githubSolcURI); - if (res.status === StatusCodes.OK) { - log.info(logObject, "Successfully fetched executable solc from GitHub"); - fs.mkdirSync(Path.dirname(solcPath), { recursive: true }); - const buffer = await res.buffer(); - - try { - fs.unlinkSync(solcPath); - } catch (_e) { - undefined; - } - fs.writeFileSync(solcPath, buffer, { mode: 0o755 }); - if (validateSolcPath(solcPath, log)) { - return true; - } - } else { - log.error(logObject, "Failed fetching executable solc from GitHub"); - } - - return false; -} - -/** - * Removes the appended CBOR encoded auxdata from a bytecode string - * (for partial bytecode match comparisons ) - * @param {string} bytecode - * @return {string} bytecode minus auxdata - */ -export function trimAuxdata(bytecode: string): string { - // Last 4 chars of bytecode specify byte size of metadata component, - const auxdataSize = parseInt(bytecode.slice(-4), 16) * 2 + 4; - // When the length of auxdaha is not appended at the end, it will likely overshoot. There's no auxdata to trim. - if (auxdataSize > bytecode.length) { - return bytecode; - } - return bytecode.slice(0, bytecode.length - auxdataSize); -} - -/** - * Fetches the requested version of the Solidity compiler (soljson). - * First attempts to search locally; if that fails, falls back to downloading it. - * - * @param version the solc version to retrieve: the expected format is - * - * "[v]..+commit." - * - * e.g.: "0.6.6+commit.6c089d02" - * - * defaults to "latest" - * - * @param log a logger to track the course of events - * - * @returns the requested solc instance - */ -export function getSolcJs( - version = "latest", - log: InfoErrorLogger -): Promise { - // /^\d+\.\d+\.\d+\+commit\.[a-f0-9]{8}$/ - version = version.trim(); - if (version !== "latest" && !version.startsWith("v")) { - version = "v" + version; - } - - const soljsonRepo = process.env.SOLJSON_REPO || "soljson-repo"; - const soljsonPath = Path.resolve(soljsonRepo, `soljson-${version}.js`); - log.info( - { loc: "[GET_SOLC]", target: soljsonPath }, - "Searching for js solc locally" - ); - - if (fs.existsSync(soljsonPath)) { - log.info({ loc: "[GET_SOLC]" }, "Found js solc locally"); - return new Promise((resolve) => { - // eslint-disable-next-line @typescript-eslint/no-var-requires - const soljson = solc.setupMethods(require(soljsonPath)); - resolve(soljson); - }); - } - - log.info({ loc: "[GET_SOLC]", version }, "Searching for js solc remotely"); - return new Promise((resolve, reject) => { - solc.loadRemoteVersion(version, (error: Error, soljson: any) => { - if (error) { - log.error( - { loc: "[GET_SOLC]", version }, - "Could not find solc remotely" - ); - reject(error); - } else { - log.info({ loc: "[GET_SOLC]", version }, "Found solc remotely"); - resolve(soljson); - } - }); - }); -} - -async function getCreationBlockNumber( - contractAddress: string, - web3: Web3 -): Promise { - let highestBlock = await web3.eth.getBlockNumber(); - let lowestBlock = 0; - - let contractCode = await web3.eth.getCode(contractAddress, highestBlock); - if (contractCode == "0x") { - throw new Error(`Contract ${contractAddress} does not exist!`); - } - - while (lowestBlock <= highestBlock) { - const searchBlock = Math.floor((lowestBlock + highestBlock) / 2); - contractCode = await web3.eth.getCode(contractAddress, searchBlock); - - if (contractCode != "0x") { - highestBlock = searchBlock; - } else if (contractCode == "0x") { - lowestBlock = searchBlock; - } - - if (highestBlock == lowestBlock + 1) { - return highestBlock; - } - } -} - -/** - * Modified and optimized version of https://www.shawntabrizi.com/ethereum-find-contract-creator/ - * - * @param contractAddress the hexadecimal address of the contract - * @param web3 initialized web3 object for chain requests - * @returns a Promise of the creation data - */ -export async function getCreationDataFromArchive( - contractAddress: string, - web3: Web3 -): Promise { - const creationBlockNumber = await getCreationBlockNumber( - contractAddress, - web3 - ); - const creationBlock = await web3.eth.getBlock(creationBlockNumber, true); - const transactions = creationBlock.transactions; - - for (const i in transactions) { - const transaction = transactions[i]; - - const calculatedContractAddress = - ethers.utils.getContractAddress(transaction); - if (calculatedContractAddress === contractAddress) { - return transaction.input; - } - } - - throw new Error( - `Creation data of contract ${contractAddress} could not be located!` - ); -} - -/** - * Returns the data used for contract creation in the transaction found by the provided regex on the provided page. - * - * @param fetchAddress the URL from which to fetch the page to be scrapd - * @param txRegex regex whose first group matches the transaction hash on the page - * @param web3 initialized web3 object for chain requests - * @returns a promise of the creation data - */ -export async function getCreationDataByScraping( - fetchAddress: string, - txRegex: string, - web3: Web3 -): Promise { - const res = await fetch(fetchAddress); - const buffer = await res.buffer(); - const page = buffer.toString(); - if (res.status === StatusCodes.OK) { - const matched = page.match(txRegex); - if (matched && matched[1]) { - const txHash = matched[1]; - const tx = await web3.eth.getTransaction(txHash); - return tx.input; - } - } - if (page.includes("captcha") || page.includes("CAPTCHA")) { - throw new Error( - "Scraping failed because of CAPTCHA requirement at ${fetchAddress}" - ); - } - throw new Error(`Creation data could not be scraped from ${fetchAddress}`); -} - -export async function getCreationDataTelos( - fetchAddress: string, - web3: Web3 -): Promise { - const res = await fetch(fetchAddress); - if (res.status === StatusCodes.OK) { - const response = await res.json(); - if (response.creation_trx) { - const txHash = response.creation_trx; - const tx = await web3.eth.getTransaction(txHash); - return tx.input; - } - } - - throw new Error(`Creation data could not be scraped from ${fetchAddress}`); -} - -export async function getCreationDataXDC( - fetchAddress: string, - web3: Web3 -): Promise { - const res = await fetch(fetchAddress); - if (res.status === StatusCodes.OK) { - const response = await res.json(); - if (response.fromTxn) { - const txHash = response.fromTxn; - const tx = await web3.eth.getTransaction(txHash); - return tx.input; - } - } - - throw new Error(`Creation data could not be scraped from ${fetchAddress}`); -} - -export async function getCreationDataAvalancheSubnet( - fetchAddress: string, - web3: Web3 -): Promise { - const res = await fetch(fetchAddress); - if (res.status === StatusCodes.OK) { - const response = await res.json(); - if (response.contract?.creator?.tx) { - const txHash = response.contract?.creator?.tx; - const tx = await web3.eth.getTransaction(txHash); - return tx.input; - } - } - - throw new Error(`Creation data could not be fetched from ${fetchAddress}`); -} - -export async function getCreationDataMeter( - fetchAddress: string, - web3: Web3 -): Promise { - const res = await fetch(fetchAddress); - if (res.status === StatusCodes.OK) { - const response = await res.json(); - if (response.account?.creationTxHash) { - const txHash = response.account.creationTxHash; - const tx = await web3.eth.getTransaction(txHash); - return tx.input; - } - } - - throw new Error(`Creation data could not be scraped from ${fetchAddress}`); -} - -export async function getCreationDataFromGraphQL( - fetchAddress: string, - contractAddress: string, - web3: Web3 -): Promise { - const body = JSON.stringify({ - query: ` - query AccountCreationTx { - allAccounts(first:1, filter: { - address:{ - equalTo:"${contractAddress.toLowerCase()}" - }, - creationTx: { - isNull: false - } - }) { - nodes { - creationTx - } - } - }`, - }); - - const rawResponse = await fetch(fetchAddress, { - method: "POST", - headers: { - Accept: "application/json", - "Content-Type": "application/json", - }, - body, - }); - - try { - const resp = await rawResponse.json(); - const txHash = resp.data.allAccounts.nodes[0].creationTx; - const tx = await web3.eth.getTransaction(txHash); - return tx.input; - } catch (err: any) { - throw new Error( - `Creation data could not be fetched from ${fetchAddress}, reason: ${err.message}` - ); - } -} diff --git a/services/verification/tsconfig.json b/services/verification/tsconfig.json deleted file mode 100644 index 27660d294..000000000 --- a/services/verification/tsconfig.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "compilerOptions": { - "allowJs": true, - "target": "es2017", - "sourceMap": true, - "esModuleInterop": true, - "strict": true, - "declaration": true, - "outDir": "build", - "resolveJsonModule": true, - "strictNullChecks": false, - "module": "commonjs", - "types": [ - "node" - ] - }, - "include": ["./src"] -} \ No newline at end of file diff --git a/src/Dockerfile.monitor b/src/Dockerfile.monitor index bd651c744..b5676e837 100644 --- a/src/Dockerfile.monitor +++ b/src/Dockerfile.monitor @@ -1,11 +1,12 @@ FROM node:16 WORKDIR /home/app -COPY services/core ./services/core -COPY services/validation ./services/validation -COPY services/verification ./services/verification +# Install puppeteer dependencies. +RUN apt-get update && apt-get -y install xvfb gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget + +COPY packages ./packages COPY src ./src COPY *.json ./ -RUN npx lerna bootstrap && npx lerna run build +RUN npm install && npx lerna bootstrap --ci && npx lerna run build CMD ["npm", "run", "monitor:start"] diff --git a/src/Dockerfile.server b/src/Dockerfile.server index f6a412381..5e6e0d364 100644 --- a/src/Dockerfile.server +++ b/src/Dockerfile.server @@ -1,11 +1,13 @@ FROM node:16 WORKDIR /home/app -COPY services/core ./services/core -COPY services/validation ./services/validation -COPY services/verification ./services/verification +# Install puppeteer dependencies. +RUN apt-get update && apt-get -y install xvfb gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget + +COPY packages ./packages COPY src ./src COPY *.json ./ -RUN npx lerna bootstrap && npx lerna run build +COPY openapi.yaml ./openapi.yaml +RUN npm install && npx lerna bootstrap --ci && npx lerna run build CMD ["npm", "run", "server:start"] \ No newline at end of file diff --git a/src/chains.json b/src/chains.json new file mode 100644 index 000000000..bc4b4ba62 --- /dev/null +++ b/src/chains.json @@ -0,0 +1,18889 @@ +[ + { + "name": "Ethereum Mainnet", + "chain": "ETH", + "icon": "ethereum", + "rpc": [ + "https://mainnet.infura.io/v3/${INFURA_API_KEY}", + "wss://mainnet.infura.io/ws/v3/${INFURA_API_KEY}", + "https://api.mycryptoapi.com/eth", + "https://cloudflare-eth.com", + "https://ethereum.publicnode.com" + ], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://ethereum.org", + "shortName": "eth", + "chainId": 1, + "networkId": 1, + "slip44": 60, + "ens": { "registry": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" }, + "explorers": [ + { + "name": "etherscan", + "url": "https://etherscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Expanse Network", + "chain": "EXP", + "rpc": ["https://node.expanse.tech"], + "faucets": [], + "nativeCurrency": { + "name": "Expanse Network Ether", + "symbol": "EXP", + "decimals": 18 + }, + "infoURL": "https://expanse.tech", + "shortName": "exp", + "chainId": 2, + "networkId": 1, + "slip44": 40 + }, + { + "name": "Ropsten", + "title": "Ethereum Testnet Ropsten", + "chain": "ETH", + "rpc": [ + "https://ropsten.infura.io/v3/${INFURA_API_KEY}", + "wss://ropsten.infura.io/ws/v3/${INFURA_API_KEY}" + ], + "faucets": [ + "http://fauceth.komputing.org?chain=3&address=${ADDRESS}", + "https://faucet.ropsten.be?${ADDRESS}" + ], + "nativeCurrency": { + "name": "Ropsten Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://github.com/ethereum/ropsten", + "shortName": "rop", + "chainId": 3, + "networkId": 3, + "ens": { "registry": "0x112234455c3a32fd11230c42e7bccd4a84e02010" }, + "explorers": [ + { + "name": "etherscan", + "url": "https://ropsten.etherscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Rinkeby", + "title": "Ethereum Testnet Rinkeby", + "chain": "ETH", + "rpc": [ + "https://rinkeby.infura.io/v3/${INFURA_API_KEY}", + "wss://rinkeby.infura.io/ws/v3/${INFURA_API_KEY}" + ], + "faucets": [ + "http://fauceth.komputing.org?chain=4&address=${ADDRESS}", + "https://faucet.rinkeby.io" + ], + "nativeCurrency": { + "name": "Rinkeby Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://www.rinkeby.io", + "shortName": "rin", + "chainId": 4, + "networkId": 4, + "ens": { "registry": "0xe7410170f87102df0055eb195163a03b7f2bff4a" }, + "explorers": [ + { + "name": "etherscan-rinkeby", + "url": "https://rinkeby.etherscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Goerli", + "title": "Ethereum Testnet Goerli", + "chain": "ETH", + "rpc": [ + "https://goerli.infura.io/v3/${INFURA_API_KEY}", + "wss://goerli.infura.io/v3/${INFURA_API_KEY}", + "https://rpc.goerli.mudit.blog/", + "https://ethereum-goerli.publicnode.com" + ], + "faucets": [ + "http://fauceth.komputing.org?chain=5&address=${ADDRESS}", + "https://goerli-faucet.slock.it?address=${ADDRESS}", + "https://faucet.goerli.mudit.blog" + ], + "nativeCurrency": { + "name": "Goerli Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://goerli.net/#about", + "shortName": "gor", + "chainId": 5, + "networkId": 5, + "ens": { "registry": "0x112234455c3a32fd11230c42e7bccd4a84e02010" }, + "explorers": [ + { + "name": "etherscan-goerli", + "url": "https://goerli.etherscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ethereum Classic Testnet Kotti", + "chain": "ETC", + "rpc": ["https://www.ethercluster.com/kotti"], + "faucets": [], + "nativeCurrency": { + "name": "Kotti Ether", + "symbol": "KOT", + "decimals": 18 + }, + "infoURL": "https://explorer.jade.builders/?network=kotti", + "shortName": "kot", + "chainId": 6, + "networkId": 6 + }, + { + "name": "ThaiChain", + "chain": "TCH", + "rpc": ["https://rpc.dome.cloud", "https://rpc.thaichain.org"], + "faucets": [], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "nativeCurrency": { + "name": "ThaiChain Ether", + "symbol": "TCH", + "decimals": 18 + }, + "infoURL": "https://thaichain.io", + "shortName": "tch", + "chainId": 7, + "networkId": 7, + "explorers": [ + { + "name": "Thaichain Explorer", + "url": "https://exp.thaichain.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ubiq", + "chain": "UBQ", + "rpc": ["https://rpc.octano.dev", "https://pyrus2.ubiqscan.io"], + "faucets": [], + "nativeCurrency": { "name": "Ubiq Ether", "symbol": "UBQ", "decimals": 18 }, + "infoURL": "https://ubiqsmart.com", + "shortName": "ubq", + "chainId": 8, + "networkId": 8, + "slip44": 108, + "explorers": [ + { + "name": "ubiqscan", + "url": "https://ubiqscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ubiq Network Testnet", + "chain": "UBQ", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Ubiq Testnet Ether", + "symbol": "TUBQ", + "decimals": 18 + }, + "infoURL": "https://ethersocial.org", + "shortName": "tubq", + "chainId": 9, + "networkId": 2 + }, + { + "name": "Optimism", + "chain": "ETH", + "rpc": ["https://mainnet.optimism.io/"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://optimism.io", + "shortName": "oeth", + "chainId": 10, + "networkId": 10, + "explorers": [ + { + "name": "etherscan", + "url": "https://optimistic.etherscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Metadium Mainnet", + "chain": "META", + "rpc": ["https://api.metadium.com/prod"], + "faucets": [], + "nativeCurrency": { + "name": "Metadium Mainnet Ether", + "symbol": "META", + "decimals": 18 + }, + "infoURL": "https://metadium.com", + "shortName": "meta", + "chainId": 11, + "networkId": 11, + "slip44": 916 + }, + { + "name": "Metadium Testnet", + "chain": "META", + "rpc": ["https://api.metadium.com/dev"], + "faucets": [], + "nativeCurrency": { + "name": "Metadium Testnet Ether", + "symbol": "KAL", + "decimals": 18 + }, + "infoURL": "https://metadium.com", + "shortName": "kal", + "chainId": 12, + "networkId": 12 + }, + { + "name": "Diode Testnet Staging", + "chain": "DIODE", + "rpc": ["https://staging.diode.io:8443/", "wss://staging.diode.io:8443/ws"], + "faucets": [], + "nativeCurrency": { + "name": "Staging Diodes", + "symbol": "sDIODE", + "decimals": 18 + }, + "infoURL": "https://diode.io/staging", + "shortName": "dstg", + "chainId": 13, + "networkId": 13 + }, + { + "name": "Flare Mainnet", + "chain": "FLR", + "icon": "flare", + "rpc": ["https://flare-api.flare.network/ext/C/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Flare", "symbol": "FLR", "decimals": 18 }, + "infoURL": "https://flare.xyz", + "shortName": "flr", + "chainId": 14, + "networkId": 14, + "explorers": [ + { + "name": "blockscout", + "url": "https://flare-explorer.flare.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Diode Prenet", + "chain": "DIODE", + "rpc": ["https://prenet.diode.io:8443/", "wss://prenet.diode.io:8443/ws"], + "faucets": [], + "nativeCurrency": { "name": "Diodes", "symbol": "DIODE", "decimals": 18 }, + "infoURL": "https://diode.io/prenet", + "shortName": "diode", + "chainId": 15, + "networkId": 15 + }, + { + "name": "Flare Testnet Coston", + "chain": "FLR", + "icon": "coston", + "rpc": ["https://coston-api.flare.network/ext/bc/C/rpc"], + "faucets": [ + "https://faucet.towolabs.com", + "https://fauceth.komputing.org?chain=16&address=${ADDRESS}" + ], + "nativeCurrency": { + "name": "Coston Flare", + "symbol": "CFLR", + "decimals": 18 + }, + "infoURL": "https://flare.xyz", + "shortName": "cflr", + "chainId": 16, + "networkId": 16, + "explorers": [ + { + "name": "blockscout", + "url": "https://coston-explorer.flare.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "ThaiChain 2.0 ThaiFi", + "chain": "TCH", + "rpc": ["https://rpc.thaifi.com"], + "faucets": [], + "nativeCurrency": { + "name": "Thaifi Ether", + "symbol": "TFI", + "decimals": 18 + }, + "infoURL": "https://exp.thaifi.com", + "shortName": "tfi", + "chainId": 17, + "networkId": 17 + }, + { + "name": "ThunderCore Testnet", + "chain": "TST", + "rpc": ["https://testnet-rpc.thundercore.com"], + "faucets": ["https://faucet-testnet.thundercore.com"], + "nativeCurrency": { + "name": "ThunderCore Testnet Token", + "symbol": "TST", + "decimals": 18 + }, + "infoURL": "https://thundercore.com", + "shortName": "TST", + "chainId": 18, + "networkId": 18, + "explorers": [ + { + "name": "thundercore-blockscout-testnet", + "url": "https://explorer-testnet.thundercore.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Songbird Canary-Network", + "chain": "SGB", + "icon": "songbird", + "rpc": [ + "https://songbird-api.flare.network/ext/C/rpc", + "https://sgb.ftso.com.au/ext/bc/C/rpc", + "https://sgb.lightft.so/rpc", + "https://sgb-rpc.ftso.eu" + ], + "faucets": [], + "nativeCurrency": { "name": "Songbird", "symbol": "SGB", "decimals": 18 }, + "infoURL": "https://flare.xyz", + "shortName": "sgb", + "chainId": 19, + "networkId": 19, + "explorers": [ + { + "name": "blockscout", + "url": "https://songbird-explorer.flare.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Elastos Smart Chain", + "chain": "ETH", + "rpc": ["https://api.elastos.io/eth"], + "faucets": ["https://faucet.elastos.org/"], + "nativeCurrency": { "name": "Elastos", "symbol": "ELA", "decimals": 18 }, + "infoURL": "https://www.elastos.org/", + "shortName": "esc", + "chainId": 20, + "networkId": 20, + "explorers": [ + { + "name": "elastos esc explorer", + "url": "https://esc.elastos.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Elastos Smart Chain Testnet", + "chain": "ETH", + "rpc": ["https://api-testnet.elastos.io/eth"], + "faucets": ["https://esc-faucet.elastos.io/"], + "nativeCurrency": { "name": "Elastos", "symbol": "tELA", "decimals": 18 }, + "infoURL": "https://www.elastos.org/", + "shortName": "esct", + "chainId": 21, + "networkId": 21, + "explorers": [ + { + "name": "elastos esc explorer", + "url": "https://esc-testnet.elastos.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "ELA-DID-Sidechain Mainnet", + "chain": "ETH", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Elastos", "symbol": "ELA", "decimals": 18 }, + "infoURL": "https://www.elastos.org/", + "shortName": "eladid", + "chainId": 22, + "networkId": 22 + }, + { + "name": "ELA-DID-Sidechain Testnet", + "chain": "ETH", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Elastos", "symbol": "tELA", "decimals": 18 }, + "infoURL": "https://elaeth.io/", + "shortName": "eladidt", + "chainId": 23, + "networkId": 23 + }, + { + "name": "KardiaChain Mainnet", + "chain": "KAI", + "icon": "kardiachain", + "rpc": ["https://rpc.kardiachain.io"], + "faucets": [], + "nativeCurrency": { + "name": "KardiaChain", + "symbol": "KAI", + "decimals": 18 + }, + "infoURL": "https://kardiachain.io", + "shortName": "kardiachain", + "chainId": 24, + "networkId": 0, + "redFlags": ["reusedChainId"] + }, + { + "name": "Cronos Mainnet Beta", + "chain": "CRO", + "rpc": ["https://evm.cronos.org", "https://cronos-evm.publicnode.com"], + "features": [{ "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "Cronos", "symbol": "CRO", "decimals": 18 }, + "infoURL": "https://cronos.org/", + "shortName": "cro", + "chainId": 25, + "networkId": 25, + "explorers": [ + { + "name": "Cronos Explorer", + "url": "https://cronoscan.com", + "standard": "none" + } + ] + }, + { + "name": "Genesis L1 testnet", + "chain": "genesis", + "rpc": ["https://testrpc.genesisl1.org"], + "faucets": [], + "nativeCurrency": { + "name": "L1 testcoin", + "symbol": "L1test", + "decimals": 18 + }, + "infoURL": "https://www.genesisl1.com", + "shortName": "L1test", + "chainId": 26, + "networkId": 26, + "explorers": [ + { + "name": "Genesis L1 testnet explorer", + "url": "https://testnet.genesisl1.org", + "standard": "none" + } + ] + }, + { + "name": "ShibaChain", + "chain": "SHIB", + "rpc": ["https://rpc.shibchain.org"], + "faucets": [], + "nativeCurrency": { + "name": "SHIBA INU COIN", + "symbol": "SHIB", + "decimals": 18 + }, + "infoURL": "https://shibchain.org", + "shortName": "shib", + "chainId": 27, + "networkId": 27, + "explorers": [ + { + "name": "Shiba Explorer", + "url": "https://exp.shibchain.org", + "standard": "none" + } + ] + }, + { + "name": "Boba Network Rinkeby Testnet", + "chain": "ETH", + "rpc": ["https://rinkeby.boba.network/"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://boba.network", + "shortName": "BobaRinkeby", + "chainId": 28, + "networkId": 28, + "explorers": [ + { + "name": "Blockscout", + "url": "https://blockexplorer.rinkeby.boba.network", + "standard": "none" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-4", + "bridges": [{ "url": "https://gateway.rinkeby.boba.network" }] + } + }, + { + "name": "Genesis L1", + "chain": "genesis", + "rpc": ["https://rpc.genesisl1.org"], + "faucets": [], + "nativeCurrency": { "name": "L1 coin", "symbol": "L1", "decimals": 18 }, + "infoURL": "https://www.genesisl1.com", + "shortName": "L1", + "chainId": 29, + "networkId": 29, + "explorers": [ + { + "name": "Genesis L1 blockchain explorer", + "url": "https://explorer.genesisl1.org", + "standard": "none" + } + ] + }, + { + "name": "RSK Mainnet", + "chain": "RSK", + "rpc": ["https://public-node.rsk.co", "https://mycrypto.rsk.co"], + "faucets": ["https://faucet.rsk.co/"], + "nativeCurrency": { + "name": "Smart Bitcoin", + "symbol": "RBTC", + "decimals": 18 + }, + "infoURL": "https://rsk.co", + "shortName": "rsk", + "chainId": 30, + "networkId": 30, + "slip44": 137, + "explorers": [ + { + "name": "RSK Explorer", + "url": "https://explorer.rsk.co", + "standard": "EIP3091" + } + ] + }, + { + "name": "RSK Testnet", + "chain": "RSK", + "rpc": [ + "https://public-node.testnet.rsk.co", + "https://mycrypto.testnet.rsk.co" + ], + "faucets": ["https://faucet.rsk.co/"], + "nativeCurrency": { + "name": "Testnet Smart Bitcoin", + "symbol": "tRBTC", + "decimals": 18 + }, + "infoURL": "https://rsk.co", + "shortName": "trsk", + "chainId": 31, + "networkId": 31, + "explorers": [ + { + "name": "RSK Testnet Explorer", + "url": "https://explorer.testnet.rsk.co", + "standard": "EIP3091" + } + ] + }, + { + "name": "GoodData Testnet", + "chain": "GooD", + "rpc": ["https://test2.goodata.io"], + "faucets": [], + "nativeCurrency": { + "name": "GoodData Testnet Ether", + "symbol": "GooD", + "decimals": 18 + }, + "infoURL": "https://www.goodata.org", + "shortName": "GooDT", + "chainId": 32, + "networkId": 32 + }, + { + "name": "GoodData Mainnet", + "chain": "GooD", + "rpc": ["https://rpc.goodata.io"], + "faucets": [], + "nativeCurrency": { + "name": "GoodData Mainnet Ether", + "symbol": "GooD", + "decimals": 18 + }, + "infoURL": "https://www.goodata.org", + "shortName": "GooD", + "chainId": 33, + "networkId": 33 + }, + { + "name": "Dithereum Testnet", + "chain": "DTH", + "icon": "dithereum", + "rpc": ["https://node-testnet.dithereum.io"], + "faucets": ["https://faucet.dithereum.org"], + "nativeCurrency": { "name": "Dither", "symbol": "DTH", "decimals": 18 }, + "infoURL": "https://dithereum.org", + "shortName": "dth", + "chainId": 34, + "networkId": 34 + }, + { + "name": "TBWG Chain", + "chain": "TBWG", + "rpc": ["https://rpc.tbwg.io"], + "faucets": [], + "nativeCurrency": { "name": "TBWG Ether", "symbol": "TBG", "decimals": 18 }, + "infoURL": "https://tbwg.io", + "shortName": "tbwg", + "chainId": 35, + "networkId": 35 + }, + { + "name": "Dxchain Mainnet", + "chain": "Dxchain", + "icon": "dx", + "rpc": ["https://mainnet.dxchain.com"], + "faucets": [], + "nativeCurrency": { "name": "Dxchain", "symbol": "DX", "decimals": 18 }, + "infoURL": "https://www.dxchain.com/", + "shortName": "dx", + "chainId": 36, + "networkId": 36, + "explorers": [ + { "name": "dxscan", "url": "https://dxscan.io", "standard": "EIP3091" } + ] + }, + { + "name": "SeedCoin-Network", + "chain": "SeedCoin-Network", + "rpc": ["https://node.seedcoin.network"], + "faucets": [], + "nativeCurrency": { "name": "SeedCoin", "symbol": "SEED", "decimals": 18 }, + "infoURL": "https://www.seedcoin.network/", + "shortName": "SEED", + "icon": "seedcoin", + "chainId": 37, + "networkId": 37 + }, + { + "name": "Valorbit", + "chain": "VAL", + "rpc": ["https://rpc.valorbit.com/v2"], + "faucets": [], + "nativeCurrency": { "name": "Valorbit", "symbol": "VAL", "decimals": 18 }, + "infoURL": "https://valorbit.com", + "shortName": "val", + "chainId": 38, + "networkId": 38, + "slip44": 538 + }, + { + "name": "Unicorn Ultra Testnet", + "chain": "u2u", + "rpc": ["https://rpc-testnet.uniultra.xyz"], + "faucets": ["https://faucet.uniultra.xyz"], + "nativeCurrency": { + "name": "Unicorn Ultra", + "symbol": "U2U", + "decimals": 18 + }, + "infoURL": "https://uniultra.xyz", + "shortName": "u2u", + "chainId": 39, + "networkId": 39, + "icon": "u2u", + "explorers": [ + { + "icon": "u2u", + "name": "U2U Explorer", + "url": "https://testnet.uniultra.xyz", + "standard": "EIP3091" + } + ] + }, + { + "name": "Telos EVM Mainnet", + "chain": "TLOS", + "rpc": ["https://mainnet.telos.net/evm"], + "faucets": [], + "nativeCurrency": { "name": "Telos", "symbol": "TLOS", "decimals": 18 }, + "infoURL": "https://telos.net", + "shortName": "TelosEVM", + "chainId": 40, + "networkId": 40, + "explorers": [ + { + "name": "teloscan", + "url": "https://teloscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Telos EVM Testnet", + "chain": "TLOS", + "rpc": ["https://testnet.telos.net/evm"], + "faucets": ["https://app.telos.net/testnet/developers"], + "nativeCurrency": { "name": "Telos", "symbol": "TLOS", "decimals": 18 }, + "infoURL": "https://telos.net", + "shortName": "TelosEVMTestnet", + "chainId": 41, + "networkId": 41, + "explorers": [ + { + "name": "teloscan", + "url": "https://testnet.teloscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "LUKSO Mainnet", + "chain": "LUKSO", + "icon": "lukso", + "rpc": [ + "https://rpc.mainnet.lukso.network", + "wss://ws-rpc.mainnet.lukso.network" + ], + "faucets": [], + "nativeCurrency": { "name": "LUKSO", "symbol": "LYX", "decimals": 18 }, + "explorers": [ + { + "name": "Blockscout", + "url": "https://explorer.execution.mainnet.lukso.network", + "standard": "EIP3091" + } + ], + "infoURL": "https://lukso.network", + "shortName": "lukso", + "chainId": 42, + "networkId": 42, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "redFlags": ["reusedChainId"] + }, + { + "name": "Darwinia Pangolin Testnet", + "chain": "pangolin", + "rpc": ["https://pangolin-rpc.darwinia.network"], + "faucets": [ + "https://docs.crab.network/dvm/wallets/dvm-metamask#apply-for-the-test-token" + ], + "nativeCurrency": { + "name": "Pangolin Network Native Token", + "symbol": "PRING", + "decimals": 18 + }, + "infoURL": "https://darwinia.network/", + "shortName": "pangolin", + "chainId": 43, + "networkId": 43, + "explorers": [ + { + "name": "subscan", + "url": "https://pangolin.subscan.io", + "standard": "none" + } + ] + }, + { + "name": "Darwinia Crab Network", + "chain": "crab", + "rpc": ["https://crab-rpc.darwinia.network"], + "faucets": [], + "nativeCurrency": { + "name": "Crab Network Native Token", + "symbol": "CRAB", + "decimals": 18 + }, + "infoURL": "https://crab.network/", + "shortName": "crab", + "chainId": 44, + "networkId": 44, + "explorers": [ + { + "name": "subscan", + "url": "https://crab.subscan.io", + "standard": "none" + } + ] + }, + { + "name": "Darwinia Pangoro Testnet", + "chain": "pangoro", + "rpc": ["https://pangoro-rpc.darwinia.network"], + "faucets": [], + "nativeCurrency": { + "name": "Pangoro Network Native Token", + "symbol": "ORING", + "decimals": 18 + }, + "infoURL": "https://darwinia.network/", + "shortName": "pangoro", + "chainId": 45, + "networkId": 45, + "explorers": [ + { + "name": "subscan", + "url": "https://pangoro.subscan.io", + "standard": "none" + } + ] + }, + { + "name": "Darwinia Network", + "chain": "darwinia", + "rpc": ["https://rpc.darwinia.network"], + "faucets": [], + "nativeCurrency": { + "name": "Darwinia Network Native Token", + "symbol": "RING", + "decimals": 18 + }, + "infoURL": "https://darwinia.network/", + "shortName": "darwinia", + "chainId": 46, + "networkId": 46, + "explorers": [ + { + "name": "subscan", + "url": "https://darwinia.subscan.io", + "standard": "none" + } + ] + }, + { + "name": "Acria IntelliChain", + "chain": "AIC", + "rpc": ["https://aic.acria.ai"], + "faucets": [], + "nativeCurrency": { "name": "ACRIA", "symbol": "ACRIA", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://acria.ai", + "shortName": "aic", + "chainId": 47, + "networkId": 47, + "explorers": [ + { + "name": "Acria IntelliChain-Explorer", + "url": "https://explorer.acria.ai", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ennothem Mainnet Proterozoic", + "chain": "ETMP", + "rpc": ["https://rpc.etm.network"], + "faucets": [], + "nativeCurrency": { "name": "Ennothem", "symbol": "ETMP", "decimals": 18 }, + "infoURL": "https://etm.network", + "shortName": "etmp", + "chainId": 48, + "networkId": 48, + "icon": "etmp", + "explorers": [ + { + "name": "etmpscan", + "url": "https://etmscan.network", + "icon": "etmp", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ennothem Testnet Pioneer", + "chain": "ETMP", + "rpc": ["https://rpc.pioneer.etm.network"], + "faucets": [], + "nativeCurrency": { "name": "Ennothem", "symbol": "ETMP", "decimals": 18 }, + "infoURL": "https://etm.network", + "shortName": "etmpTest", + "chainId": 49, + "networkId": 49, + "icon": "etmp", + "explorers": [ + { + "name": "etmp", + "url": "https://pioneer.etmscan.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "XinFin XDC Network", + "chain": "XDC", + "rpc": [ + "https://erpc.xinfin.network", + "https://rpc.xinfin.network", + "https://rpc1.xinfin.network", + "https://rpc-xdc.icecreamswap.com" + ], + "faucets": [], + "nativeCurrency": { "name": "XinFin", "symbol": "XDC", "decimals": 18 }, + "infoURL": "https://xinfin.org", + "shortName": "xdc", + "chainId": 50, + "networkId": 50, + "icon": "xdc", + "explorers": [ + { + "name": "xdcscan", + "url": "https://xdcscan.io", + "icon": "blocksscan", + "standard": "EIP3091" + }, + { + "name": "blocksscan", + "url": "https://xdc.blocksscan.io", + "icon": "blocksscan", + "standard": "EIP3091" + } + ] + }, + { + "name": "XDC Apothem Network", + "chain": "XDC", + "rpc": ["https://rpc.apothem.network", "https://erpc.apothem.network"], + "faucets": ["https://faucet.apothem.network"], + "nativeCurrency": { "name": "XinFin", "symbol": "TXDC", "decimals": 18 }, + "infoURL": "https://xinfin.org", + "shortName": "txdc", + "chainId": 51, + "networkId": 51, + "icon": "xdc", + "explorers": [ + { + "name": "xdcscan", + "url": "https://apothem.xinfinscan.com", + "icon": "blocksscan", + "standard": "EIP3091" + }, + { + "name": "blocksscan", + "url": "https://apothem.blocksscan.io", + "icon": "blocksscan", + "standard": "EIP3091" + } + ] + }, + { + "name": "CoinEx Smart Chain Mainnet", + "chain": "CSC", + "rpc": ["https://rpc.coinex.net"], + "faucets": [], + "nativeCurrency": { + "name": "CoinEx Chain Native Token", + "symbol": "cet", + "decimals": 18 + }, + "infoURL": "https://www.coinex.org/", + "shortName": "cet", + "chainId": 52, + "networkId": 52, + "explorers": [ + { + "name": "coinexscan", + "url": "https://www.coinex.net", + "standard": "none" + } + ] + }, + { + "name": "CoinEx Smart Chain Testnet", + "chain": "CSC", + "rpc": ["https://testnet-rpc.coinex.net/"], + "faucets": [], + "nativeCurrency": { + "name": "CoinEx Chain Test Native Token", + "symbol": "cett", + "decimals": 18 + }, + "infoURL": "https://www.coinex.org/", + "shortName": "tcet", + "chainId": 53, + "networkId": 53, + "explorers": [ + { + "name": "coinexscan", + "url": "https://testnet.coinex.net", + "standard": "none" + } + ] + }, + { + "name": "Openpiece Mainnet", + "chain": "OPENPIECE", + "icon": "openpiece", + "rpc": ["https://mainnet.openpiece.io"], + "faucets": [], + "nativeCurrency": { "name": "Belly", "symbol": "BELLY", "decimals": 18 }, + "infoURL": "https://cryptopiece.online", + "shortName": "OP", + "chainId": 54, + "networkId": 54, + "explorers": [ + { + "name": "Belly Scan", + "url": "https://bellyscan.com", + "standard": "none" + } + ] + }, + { + "name": "Zyx Mainnet", + "chain": "ZYX", + "rpc": [ + "https://rpc-1.zyx.network/", + "https://rpc-2.zyx.network/", + "https://rpc-3.zyx.network/", + "https://rpc-4.zyx.network/", + "https://rpc-5.zyx.network/", + "https://rpc-6.zyx.network/" + ], + "faucets": [], + "nativeCurrency": { "name": "Zyx", "symbol": "ZYX", "decimals": 18 }, + "infoURL": "https://zyx.network/", + "shortName": "ZYX", + "chainId": 55, + "networkId": 55, + "explorers": [ + { "name": "zyxscan", "url": "https://zyxscan.com", "standard": "none" } + ] + }, + { + "name": "Binance Smart Chain Mainnet", + "chain": "BSC", + "rpc": [ + "https://bsc-dataseed1.binance.org", + "https://bsc-dataseed2.binance.org", + "https://bsc-dataseed3.binance.org", + "https://bsc-dataseed4.binance.org", + "https://bsc-dataseed1.defibit.io", + "https://bsc-dataseed2.defibit.io", + "https://bsc-dataseed3.defibit.io", + "https://bsc-dataseed4.defibit.io", + "https://bsc-dataseed1.ninicoin.io", + "https://bsc-dataseed2.ninicoin.io", + "https://bsc-dataseed3.ninicoin.io", + "https://bsc-dataseed4.ninicoin.io", + "https://bsc.publicnode.com", + "wss://bsc-ws-node.nariox.org" + ], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], + "nativeCurrency": { + "name": "Binance Chain Native Token", + "symbol": "BNB", + "decimals": 18 + }, + "infoURL": "https://www.binance.org", + "shortName": "bnb", + "chainId": 56, + "networkId": 56, + "slip44": 714, + "explorers": [ + { "name": "bscscan", "url": "https://bscscan.com", "standard": "EIP3091" } + ] + }, + { + "name": "Syscoin Mainnet", + "chain": "SYS", + "rpc": [ + "https://rpc.syscoin.org", + "https://rpc.ankr.com/syscoin/${ANKR_API_KEY}", + "https://syscoin.public-rpc.com", + "wss://rpc.syscoin.org/wss" + ], + "faucets": ["https://faucet.syscoin.org"], + "nativeCurrency": { "name": "Syscoin", "symbol": "SYS", "decimals": 18 }, + "infoURL": "https://www.syscoin.org", + "shortName": "sys", + "chainId": 57, + "networkId": 57, + "explorers": [ + { + "name": "Syscoin Block Explorer", + "url": "https://explorer.syscoin.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ontology Mainnet", + "chain": "Ontology", + "icon": "ontology", + "rpc": [ + "http://dappnode1.ont.io:20339", + "http://dappnode2.ont.io:20339", + "http://dappnode3.ont.io:20339", + "http://dappnode4.ont.io:20339", + "https://dappnode1.ont.io:10339", + "https://dappnode2.ont.io:10339", + "https://dappnode3.ont.io:10339", + "https://dappnode4.ont.io:10339" + ], + "faucets": [], + "nativeCurrency": { "name": "ONG", "symbol": "ONG", "decimals": 18 }, + "infoURL": "https://ont.io/", + "shortName": "OntologyMainnet", + "chainId": 58, + "networkId": 58, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.ont.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "EOS EVM Legacy", + "chain": "EOS", + "rpc": ["https://api.eosargentina.io"], + "faucets": [], + "nativeCurrency": { "name": "EOS", "symbol": "EOS", "decimals": 18 }, + "infoURL": "https://eosargentina.io", + "shortName": "eos-legacy", + "chainId": 59, + "networkId": 59, + "explorers": [], + "status": "deprecated" + }, + { + "name": "GoChain", + "chain": "GO", + "rpc": ["https://rpc.gochain.io"], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], + "nativeCurrency": { + "name": "GoChain Ether", + "symbol": "GO", + "decimals": 18 + }, + "infoURL": "https://gochain.io", + "shortName": "go", + "chainId": 60, + "networkId": 60, + "slip44": 6060, + "explorers": [ + { + "name": "GoChain Explorer", + "url": "https://explorer.gochain.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ethereum Classic Mainnet", + "chain": "ETC", + "rpc": ["https://www.ethercluster.com/etc"], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/?"], + "nativeCurrency": { + "name": "Ethereum Classic Ether", + "symbol": "ETC", + "decimals": 18 + }, + "infoURL": "https://ethereumclassic.org", + "shortName": "etc", + "chainId": 61, + "networkId": 1, + "slip44": 61, + "explorers": [ + { + "name": "blockscout", + "url": "https://blockscout.com/etc/mainnet", + "standard": "none" + } + ] + }, + { + "name": "Ethereum Classic Testnet Morden", + "chain": "ETC", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Ethereum Classic Testnet Ether", + "symbol": "TETC", + "decimals": 18 + }, + "infoURL": "https://ethereumclassic.org", + "shortName": "tetc", + "chainId": 62, + "networkId": 2 + }, + { + "name": "Ethereum Classic Testnet Mordor", + "chain": "ETC", + "rpc": ["https://www.ethercluster.com/mordor"], + "faucets": [], + "nativeCurrency": { + "name": "Mordor Classic Testnet Ether", + "symbol": "METC", + "decimals": 18 + }, + "infoURL": "https://github.com/eth-classic/mordor/", + "shortName": "metc", + "chainId": 63, + "networkId": 7 + }, + { + "name": "Ellaism", + "chain": "ELLA", + "rpc": ["https://jsonrpc.ellaism.org"], + "faucets": [], + "nativeCurrency": { + "name": "Ellaism Ether", + "symbol": "ELLA", + "decimals": 18 + }, + "infoURL": "https://ellaism.org", + "shortName": "ellaism", + "chainId": 64, + "networkId": 64, + "slip44": 163 + }, + { + "name": "OKExChain Testnet", + "chain": "okexchain", + "rpc": ["https://exchaintestrpc.okex.org"], + "faucets": ["https://www.okex.com/drawdex"], + "nativeCurrency": { + "name": "OKExChain Global Utility Token in testnet", + "symbol": "OKT", + "decimals": 18 + }, + "infoURL": "https://www.okex.com/okexchain", + "shortName": "tokt", + "chainId": 65, + "networkId": 65, + "explorers": [ + { + "name": "OKLink", + "url": "https://www.oklink.com/okexchain-test", + "standard": "EIP3091" + } + ] + }, + { + "name": "OKXChain Mainnet", + "chain": "okxchain", + "rpc": [ + "https://exchainrpc.okex.org", + "https://okc-mainnet.gateway.pokt.network/v1/lb/6275309bea1b320039c893ff" + ], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/?"], + "nativeCurrency": { + "name": "OKXChain Global Utility Token", + "symbol": "OKT", + "decimals": 18 + }, + "infoURL": "https://www.okex.com/okc", + "shortName": "okt", + "chainId": 66, + "networkId": 66, + "explorers": [ + { + "name": "OKLink", + "url": "https://www.oklink.com/en/okc", + "standard": "EIP3091" + } + ] + }, + { + "name": "DBChain Testnet", + "chain": "DBM", + "rpc": ["http://test-rpc.dbmbp.com"], + "faucets": [], + "nativeCurrency": { + "name": "DBChain Testnet", + "symbol": "DBM", + "decimals": 18 + }, + "infoURL": "http://test.dbmbp.com", + "shortName": "dbm", + "chainId": 67, + "networkId": 67 + }, + { + "name": "SoterOne Mainnet", + "chain": "SOTER", + "rpc": ["https://rpc.soter.one"], + "faucets": [], + "nativeCurrency": { + "name": "SoterOne Mainnet Ether", + "symbol": "SOTER", + "decimals": 18 + }, + "infoURL": "https://www.soterone.com", + "shortName": "SO1", + "chainId": 68, + "networkId": 68 + }, + { + "name": "Optimism Kovan", + "title": "Optimism Testnet Kovan", + "chain": "ETH", + "rpc": ["https://kovan.optimism.io/"], + "faucets": ["http://fauceth.komputing.org?chain=69&address=${ADDRESS}"], + "nativeCurrency": { + "name": "Kovan Ether", + "symbol": "ETH", + "decimals": 18 + }, + "explorers": [ + { + "name": "etherscan", + "url": "https://kovan-optimistic.etherscan.io", + "standard": "EIP3091" + } + ], + "infoURL": "https://optimism.io", + "shortName": "okov", + "chainId": 69, + "networkId": 69 + }, + { + "name": "Hoo Smart Chain", + "chain": "HSC", + "rpc": [ + "https://http-mainnet.hoosmartchain.com", + "https://http-mainnet2.hoosmartchain.com", + "wss://ws-mainnet.hoosmartchain.com", + "wss://ws-mainnet2.hoosmartchain.com" + ], + "faucets": [], + "nativeCurrency": { + "name": "Hoo Smart Chain Native Token", + "symbol": "HOO", + "decimals": 18 + }, + "infoURL": "https://www.hoosmartchain.com", + "shortName": "hsc", + "chainId": 70, + "networkId": 70, + "slip44": 1170, + "explorers": [ + { + "name": "hooscan", + "url": "https://www.hooscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Conflux eSpace (Testnet)", + "chain": "Conflux", + "rpc": ["https://evmtestnet.confluxrpc.com"], + "faucets": ["https://faucet.confluxnetwork.org"], + "nativeCurrency": { "name": "CFX", "symbol": "CFX", "decimals": 18 }, + "infoURL": "https://confluxnetwork.org", + "shortName": "cfxtest", + "chainId": 71, + "networkId": 71, + "icon": "conflux", + "explorers": [ + { + "name": "Conflux Scan", + "url": "https://evmtestnet.confluxscan.net", + "standard": "none" + } + ] + }, + { + "name": "DxChain Testnet", + "chain": "DxChain", + "rpc": ["https://testnet-http.dxchain.com"], + "faucets": ["https://faucet.dxscan.io"], + "nativeCurrency": { + "name": "DxChain Testnet", + "symbol": "DX", + "decimals": 18 + }, + "infoURL": "https://testnet.dxscan.io/", + "shortName": "dxc", + "chainId": 72, + "networkId": 72 + }, + { + "name": "FNCY", + "chain": "FNCY", + "rpc": ["https://fncy-seed1.fncy.world"], + "faucets": ["https://faucet-testnet.fncy.world"], + "nativeCurrency": { "name": "FNCY", "symbol": "FNCY", "decimals": 18 }, + "infoURL": "https://fncyscan.fncy.world", + "shortName": "FNCY", + "chainId": 73, + "networkId": 73, + "icon": "fncy", + "explorers": [ + { + "name": "fncy scan", + "url": "https://fncyscan.fncy.world", + "icon": "fncy", + "standard": "EIP3091" + } + ] + }, + { + "name": "IDChain Mainnet", + "chain": "IDChain", + "rpc": ["https://idchain.one/rpc/", "wss://idchain.one/ws/"], + "faucets": [], + "nativeCurrency": { "name": "EIDI", "symbol": "EIDI", "decimals": 18 }, + "infoURL": "https://idchain.one/begin/", + "shortName": "idchain", + "chainId": 74, + "networkId": 74, + "icon": "idchain", + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.idchain.one", + "standard": "EIP3091" + } + ] + }, + { + "name": "Decimal Smart Chain Mainnet", + "chain": "DSC", + "rpc": ["https://node.decimalchain.com/web3"], + "faucets": [], + "nativeCurrency": { "name": "Decimal", "symbol": "DEL", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://decimalchain.com", + "shortName": "DSC", + "chainId": 75, + "networkId": 75, + "icon": "dsc", + "explorers": [ + { + "name": "DSC Explorer Mainnet", + "url": "https://explorer.decimalchain.com", + "icon": "dsc", + "standard": "EIP3091" + } + ] + }, + { + "name": "Mix", + "chain": "MIX", + "rpc": ["https://rpc2.mix-blockchain.org:8647"], + "faucets": [], + "nativeCurrency": { "name": "Mix Ether", "symbol": "MIX", "decimals": 18 }, + "infoURL": "https://mix-blockchain.org", + "shortName": "mix", + "chainId": 76, + "networkId": 76, + "slip44": 76 + }, + { + "name": "POA Network Sokol", + "chain": "POA", + "rpc": [ + "https://sokol.poa.network", + "wss://sokol.poa.network/wss", + "ws://sokol.poa.network:8546" + ], + "faucets": ["https://faucet.poa.network"], + "nativeCurrency": { + "name": "POA Sokol Ether", + "symbol": "SPOA", + "decimals": 18 + }, + "infoURL": "https://poa.network", + "shortName": "spoa", + "chainId": 77, + "networkId": 77, + "explorers": [ + { + "name": "blockscout", + "url": "https://blockscout.com/poa/sokol", + "standard": "none" + } + ] + }, + { + "name": "PrimusChain mainnet", + "chain": "PC", + "rpc": ["https://ethnode.primusmoney.com/mainnet"], + "faucets": [], + "nativeCurrency": { + "name": "Primus Ether", + "symbol": "PETH", + "decimals": 18 + }, + "infoURL": "https://primusmoney.com", + "shortName": "primuschain", + "chainId": 78, + "networkId": 78 + }, + { + "name": "Zenith Mainnet", + "chain": "Zenith", + "rpc": [ + "https://dataserver-us-1.zenithchain.co/", + "https://dataserver-asia-3.zenithchain.co/", + "https://dataserver-asia-4.zenithchain.co/", + "https://dataserver-asia-2.zenithchain.co/", + "https://dataserver-asia-5.zenithchain.co/", + "https://dataserver-asia-6.zenithchain.co/", + "https://dataserver-asia-7.zenithchain.co/" + ], + "faucets": [], + "nativeCurrency": { "name": "ZENITH", "symbol": "ZENITH", "decimals": 18 }, + "infoURL": "https://www.zenithchain.co/", + "chainId": 79, + "networkId": 79, + "shortName": "zenith", + "explorers": [ + { + "name": "zenith scan", + "url": "https://scan.zenithchain.co", + "standard": "EIP3091" + } + ] + }, + { + "name": "GeneChain", + "chain": "GeneChain", + "rpc": ["https://rpc.genechain.io"], + "faucets": [], + "nativeCurrency": { "name": "RNA", "symbol": "RNA", "decimals": 18 }, + "infoURL": "https://scan.genechain.io/", + "shortName": "GeneChain", + "chainId": 80, + "networkId": 80, + "explorers": [ + { + "name": "GeneChain Scan", + "url": "https://scan.genechain.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Zenith Testnet (Vilnius)", + "chain": "Zenith", + "rpc": ["https://vilnius.zenithchain.co/http"], + "faucets": ["https://faucet.zenithchain.co/"], + "nativeCurrency": { "name": "Vilnius", "symbol": "VIL", "decimals": 18 }, + "infoURL": "https://www.zenithchain.co/", + "chainId": 81, + "networkId": 81, + "shortName": "VIL", + "explorers": [ + { + "name": "vilnius scan", + "url": "https://vilnius.scan.zenithchain.co", + "standard": "EIP3091" + } + ] + }, + { + "name": "Meter Mainnet", + "chain": "METER", + "rpc": ["https://rpc.meter.io"], + "faucets": ["https://faucet.meter.io"], + "nativeCurrency": { "name": "Meter", "symbol": "MTR", "decimals": 18 }, + "infoURL": "https://www.meter.io", + "shortName": "Meter", + "chainId": 82, + "networkId": 82, + "explorers": [ + { + "name": "Meter Mainnet Scan", + "url": "https://scan.meter.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Meter Testnet", + "chain": "METER Testnet", + "rpc": ["https://rpctest.meter.io"], + "faucets": ["https://faucet-warringstakes.meter.io"], + "nativeCurrency": { "name": "Meter", "symbol": "MTR", "decimals": 18 }, + "infoURL": "https://www.meter.io", + "shortName": "MeterTest", + "chainId": 83, + "networkId": 83, + "explorers": [ + { + "name": "Meter Testnet Scan", + "url": "https://scan-warringstakes.meter.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Linqto Devnet", + "chain": "LNQ", + "rpc": ["https://linqto-dev.com"], + "faucets": [], + "nativeCurrency": { "name": "XRP", "symbol": "XRP", "decimals": 18 }, + "infoURL": "https://linqto.com", + "shortName": "linqto-devnet", + "chainId": 84, + "networkId": 84, + "explorers": [ + { + "name": "Linqto Devnet Explorer", + "url": "https://explorer.linqto-dev.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "GateChain Testnet", + "chainId": 85, + "shortName": "gttest", + "chain": "GTTEST", + "networkId": 85, + "nativeCurrency": { "name": "GateToken", "symbol": "GT", "decimals": 18 }, + "rpc": ["https://testnet.gatenode.cc"], + "faucets": ["https://www.gatescan.org/testnet/faucet"], + "explorers": [ + { + "name": "GateScan", + "url": "https://www.gatescan.org/testnet", + "standard": "EIP3091" + } + ], + "infoURL": "https://www.gatechain.io" + }, + { + "name": "GateChain Mainnet", + "chainId": 86, + "shortName": "gt", + "chain": "GT", + "networkId": 86, + "nativeCurrency": { "name": "GateToken", "symbol": "GT", "decimals": 18 }, + "rpc": ["https://evm.gatenode.cc"], + "faucets": ["https://www.gatescan.org/faucet"], + "explorers": [ + { + "name": "GateScan", + "url": "https://www.gatescan.org", + "standard": "EIP3091" + } + ], + "infoURL": "https://www.gatechain.io" + }, + { + "name": "Nova Network", + "chain": "NNW", + "icon": "novanetwork", + "rpc": [ + "https://connect.novanetwork.io", + "https://0x57.redjackstudio.com", + "https://rpc.novanetwork.io:9070" + ], + "faucets": [], + "nativeCurrency": { "name": "Supernova", "symbol": "SNT", "decimals": 18 }, + "infoURL": "https://novanetwork.io", + "shortName": "nnw", + "chainId": 87, + "networkId": 87, + "explorers": [ + { + "name": "novanetwork", + "url": "https://explorer.novanetwork.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "TomoChain", + "chain": "TOMO", + "rpc": ["https://rpc.tomochain.com"], + "faucets": [], + "nativeCurrency": { "name": "TomoChain", "symbol": "TOMO", "decimals": 18 }, + "infoURL": "https://tomochain.com", + "shortName": "tomo", + "chainId": 88, + "networkId": 88, + "slip44": 889 + }, + { + "name": "TomoChain Testnet", + "chain": "TOMO", + "rpc": ["https://rpc.testnet.tomochain.com"], + "faucets": [], + "nativeCurrency": { "name": "TomoChain", "symbol": "TOMO", "decimals": 18 }, + "infoURL": "https://tomochain.com", + "shortName": "tomot", + "chainId": 89, + "networkId": 89, + "slip44": 889 + }, + { + "name": "Garizon Stage0", + "chain": "GAR", + "icon": "garizon", + "rpc": ["https://s0.garizon.net/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, + "infoURL": "https://garizon.com", + "shortName": "gar-s0", + "chainId": 90, + "networkId": 90, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.garizon.com", + "icon": "garizon", + "standard": "EIP3091" + } + ] + }, + { + "name": "Garizon Stage1", + "chain": "GAR", + "icon": "garizon", + "rpc": ["https://s1.garizon.net/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, + "infoURL": "https://garizon.com", + "shortName": "gar-s1", + "chainId": 91, + "networkId": 91, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.garizon.com", + "icon": "garizon", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-90", "type": "shard" } + }, + { + "name": "Garizon Stage2", + "chain": "GAR", + "icon": "garizon", + "rpc": ["https://s2.garizon.net/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, + "infoURL": "https://garizon.com", + "shortName": "gar-s2", + "chainId": 92, + "networkId": 92, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.garizon.com", + "icon": "garizon", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-90", "type": "shard" } + }, + { + "name": "Garizon Stage3", + "chain": "GAR", + "icon": "garizon", + "rpc": ["https://s3.garizon.net/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, + "infoURL": "https://garizon.com", + "shortName": "gar-s3", + "chainId": 93, + "networkId": 93, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.garizon.com", + "icon": "garizon", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-90", "type": "shard" } + }, + { + "name": "SwissDLT", + "chain": "SDLT", + "rpc": ["https://rpc.swissdlt.ch"], + "faucets": [], + "nativeCurrency": { "name": "BCTS", "symbol": "BCTS", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://bcts.ch", + "shortName": "sdlt", + "chainId": 94, + "networkId": 94, + "icon": "bcts", + "explorers": [ + { + "name": "SwissDLT Explorer", + "url": "https://explorer.swissdlt.ch", + "icon": "bcts", + "standard": "EIP3091" + } + ] + }, + { + "name": "CamDL Mainnet", + "chain": "CADL", + "rpc": ["https://rpc1.camdl.gov.kh/"], + "faucets": ["https://faucet.camdl.gov.kh/"], + "nativeCurrency": { "name": "CADL", "symbol": "CADL", "decimals": 18 }, + "features": [{ "name": "EIP155" }], + "infoURL": "https://camdl.gov.kh/", + "shortName": "camdl", + "chainId": 95, + "networkId": 95, + "redFlags": ["reusedChainId"], + "icon": "camdl", + "explorers": [ + { + "name": "CamDL Block Explorer", + "url": "https://explorer.camdl.gov.kh", + "standard": "EIP3091" + } + ], + "status": "active" + }, + { + "name": "Bitkub Chain", + "chain": "BKC", + "icon": "bkc", + "rpc": ["https://rpc.bitkubchain.io", "wss://wss.bitkubchain.io"], + "faucets": [], + "nativeCurrency": { + "name": "Bitkub Coin", + "symbol": "KUB", + "decimals": 18 + }, + "infoURL": "https://www.bitkubchain.com/", + "shortName": "bkc", + "chainId": 96, + "networkId": 96, + "explorers": [ + { + "name": "Bitkub Chain Explorer", + "url": "https://bkcscan.com", + "standard": "none", + "icon": "bkc" + } + ], + "redFlags": ["reusedChainId"] + }, + { + "name": "Binance Smart Chain Testnet", + "chain": "BSC", + "rpc": [ + "https://data-seed-prebsc-1-s1.binance.org:8545", + "https://data-seed-prebsc-2-s1.binance.org:8545", + "https://data-seed-prebsc-1-s2.binance.org:8545", + "https://data-seed-prebsc-2-s2.binance.org:8545", + "https://data-seed-prebsc-1-s3.binance.org:8545", + "https://data-seed-prebsc-2-s3.binance.org:8545", + "https://bsc-testnet.publicnode.com" + ], + "faucets": ["https://testnet.binance.org/faucet-smart"], + "nativeCurrency": { + "name": "Binance Chain Native Token", + "symbol": "tBNB", + "decimals": 18 + }, + "infoURL": "https://testnet.binance.org/", + "shortName": "bnbt", + "chainId": 97, + "networkId": 97, + "explorers": [ + { + "name": "bscscan-testnet", + "url": "https://testnet.bscscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Six Protocol", + "chain": "SIXNET", + "icon": "six", + "rpc": ["https://sixnet-rpc-evm.sixprotocol.net"], + "faucets": [], + "nativeCurrency": { + "name": "SIX evm token", + "symbol": "SIX", + "decimals": 18 + }, + "infoURL": "https://six.network/", + "shortName": "six", + "chainId": 98, + "networkId": 98, + "explorers": [ + { + "name": "SIX Scan", + "url": "https://sixscan.io/sixnet", + "standard": "none", + "icon": "six" + } + ] + }, + { + "name": "POA Network Core", + "chain": "POA", + "rpc": ["https://core.poa.network"], + "faucets": [], + "nativeCurrency": { + "name": "POA Network Core Ether", + "symbol": "POA", + "decimals": 18 + }, + "infoURL": "https://poa.network", + "shortName": "poa", + "chainId": 99, + "networkId": 99, + "slip44": 178, + "explorers": [ + { + "name": "blockscout", + "url": "https://blockscout.com/poa/core", + "standard": "none" + } + ] + }, + { + "name": "Gnosis", + "chain": "GNO", + "icon": "gnosis", + "rpc": [ + "https://rpc.gnosischain.com", + "https://rpc.gnosis.gateway.fm", + "https://rpc.ankr.com/gnosis", + "https://gnosischain-rpc.gateway.pokt.network", + "https://gnosis-mainnet.public.blastapi.io", + "https://gnosis.api.onfinality.io/public", + "https://gnosis.blockpi.network/v1/rpc/public", + "https://web3endpoints.com/gnosischain-mainnet", + "wss://rpc.gnosischain.com/wss" + ], + "faucets": [ + "https://gnosisfaucet.com", + "https://stakely.io/faucet/gnosis-chain-xdai", + "https://faucet.prussia.dev/xdai" + ], + "nativeCurrency": { "name": "xDAI", "symbol": "XDAI", "decimals": 18 }, + "infoURL": "https://docs.gnosischain.com", + "shortName": "gno", + "chainId": 100, + "networkId": 100, + "slip44": 700, + "explorers": [ + { + "name": "gnosisscan", + "url": "https://gnosisscan.io", + "standard": "EIP3091" + }, + { + "name": "blockscout", + "url": "https://blockscout.com/xdai/mainnet", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "EtherInc", + "chain": "ETI", + "rpc": ["https://api.einc.io/jsonrpc/mainnet"], + "faucets": [], + "nativeCurrency": { + "name": "EtherInc Ether", + "symbol": "ETI", + "decimals": 18 + }, + "infoURL": "https://einc.io", + "shortName": "eti", + "chainId": 101, + "networkId": 1, + "slip44": 464 + }, + { + "name": "Web3Games Testnet", + "chain": "Web3Games", + "icon": "web3games", + "rpc": [ + "https://testnet-rpc-0.web3games.org/evm", + "https://testnet-rpc-1.web3games.org/evm", + "https://testnet-rpc-2.web3games.org/evm" + ], + "faucets": [], + "nativeCurrency": { "name": "Web3Games", "symbol": "W3G", "decimals": 18 }, + "infoURL": "https://web3games.org/", + "shortName": "tw3g", + "chainId": 102, + "networkId": 102 + }, + { + "name": "Kaiba Lightning Chain Testnet", + "chain": "tKLC", + "rpc": ["https://klc.live/"], + "faucets": [], + "nativeCurrency": { + "name": "Kaiba Testnet Token", + "symbol": "tKAIBA", + "decimals": 18 + }, + "infoURL": "https://kaibadefi.com", + "shortName": "tklc", + "chainId": 104, + "networkId": 104, + "icon": "kaiba", + "explorers": [ + { + "name": "kaibascan", + "url": "https://kaibascan.io", + "icon": "kaibascan", + "standard": "EIP3091" + } + ] + }, + { + "name": "Web3Games Devnet", + "chain": "Web3Games", + "icon": "web3games", + "rpc": ["https://devnet.web3games.org/evm"], + "faucets": [], + "nativeCurrency": { "name": "Web3Games", "symbol": "W3G", "decimals": 18 }, + "infoURL": "https://web3games.org/", + "shortName": "dw3g", + "chainId": 105, + "networkId": 105, + "explorers": [ + { + "name": "Web3Games Explorer", + "url": "https://explorer-devnet.web3games.org", + "standard": "none" + } + ] + }, + { + "name": "Velas EVM Mainnet", + "chain": "Velas", + "icon": "velas", + "rpc": [ + "https://evmexplorer.velas.com/rpc", + "https://explorer.velas.com/rpc" + ], + "faucets": [], + "nativeCurrency": { "name": "Velas", "symbol": "VLX", "decimals": 18 }, + "infoURL": "https://velas.com", + "shortName": "vlx", + "chainId": 106, + "networkId": 106, + "explorers": [ + { + "name": "Velas Explorer", + "url": "https://evmexplorer.velas.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Nebula Testnet", + "chain": "NTN", + "icon": "nebulatestnet", + "rpc": ["https://testnet.rpc.novanetwork.io"], + "faucets": ["https://faucet.novanetwork.io"], + "nativeCurrency": { "name": "Nebula X", "symbol": "NBX", "decimals": 18 }, + "infoURL": "https://novanetwork.io", + "shortName": "ntn", + "chainId": 107, + "networkId": 107, + "explorers": [ + { + "name": "nebulatestnet", + "url": "https://explorer.novanetwork.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "ThunderCore Mainnet", + "chain": "TT", + "rpc": [ + "https://mainnet-rpc.thundercore.com", + "https://mainnet-rpc.thundertoken.net", + "https://mainnet-rpc.thundercore.io" + ], + "faucets": ["https://faucet.thundercore.com"], + "nativeCurrency": { + "name": "ThunderCore Token", + "symbol": "TT", + "decimals": 18 + }, + "infoURL": "https://thundercore.com", + "shortName": "TT", + "chainId": 108, + "networkId": 108, + "slip44": 1001, + "explorers": [ + { + "name": "thundercore-viewblock", + "url": "https://viewblock.io/thundercore", + "standard": "EIP3091" + } + ] + }, + { + "name": "Proton Testnet", + "chain": "XPR", + "rpc": ["https://protontestnet.greymass.com/"], + "faucets": [], + "nativeCurrency": { "name": "Proton", "symbol": "XPR", "decimals": 4 }, + "infoURL": "https://protonchain.com", + "shortName": "xpr", + "chainId": 110, + "networkId": 110 + }, + { + "name": "EtherLite Chain", + "chain": "ETL", + "rpc": ["https://rpc.etherlite.org"], + "faucets": ["https://etherlite.org/faucets"], + "nativeCurrency": { "name": "EtherLite", "symbol": "ETL", "decimals": 18 }, + "infoURL": "https://etherlite.org", + "shortName": "ETL", + "chainId": 111, + "networkId": 111, + "icon": "etherlite" + }, + { + "name": "Coinbit Mainnet", + "chain": "Coinbit", + "rpc": ["https://coinbit-rpc-mainnet.chain.sbcrypto.app"], + "faucets": [], + "nativeCurrency": { "name": "Gas IDR", "symbol": "GIDR", "decimals": 18 }, + "infoURL": "https://crypto.stockbit.com/", + "shortName": "coinbit", + "chainId": 112, + "networkId": 112, + "icon": "coinbit", + "explorers": [ + { + "name": "blockscout", + "url": "https://coinbit-explorer.chain.sbcrypto.app", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "Dehvo", + "chain": "Dehvo", + "rpc": [ + "https://connect.dehvo.com", + "https://rpc.dehvo.com", + "https://rpc1.dehvo.com", + "https://rpc2.dehvo.com" + ], + "faucets": ["https://buy.dehvo.com"], + "nativeCurrency": { "name": "Dehvo", "symbol": "Deh", "decimals": 18 }, + "infoURL": "https://dehvo.com", + "shortName": "deh", + "chainId": 113, + "networkId": 113, + "slip44": 714, + "explorers": [ + { + "name": "Dehvo Explorer", + "url": "https://explorer.dehvo.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Flare Testnet Coston2", + "chain": "FLR", + "icon": "coston2", + "rpc": ["https://coston2-api.flare.network/ext/bc/C/rpc"], + "faucets": ["https://coston2-faucet.towolabs.com"], + "nativeCurrency": { + "name": "Coston2 Flare", + "symbol": "C2FLR", + "decimals": 18 + }, + "infoURL": "https://flare.xyz", + "shortName": "c2flr", + "chainId": 114, + "networkId": 114, + "explorers": [ + { + "name": "blockscout", + "url": "https://coston2-explorer.flare.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "DeBank Testnet", + "chain": "DeBank", + "rpc": [], + "faucets": [], + "icon": "debank", + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://debank.com", + "shortName": "debank-testnet", + "chainId": 115, + "networkId": 115, + "explorers": [] + }, + { + "name": "DeBank Mainnet", + "chain": "DeBank", + "rpc": [], + "faucets": [], + "icon": "debank", + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://debank.com", + "shortName": "debank-mainnet", + "chainId": 116, + "networkId": 116, + "explorers": [] + }, + { + "name": "Uptick Mainnet", + "chain": "Uptick", + "rpc": ["https://json-rpc.uptick.network"], + "faucets": [], + "nativeCurrency": { "name": "Uptick", "symbol": "UPTICK", "decimals": 18 }, + "infoURL": "https://www.uptick.network", + "shortName": "auptick", + "chainId": 117, + "networkId": 117, + "icon": "uptick", + "explorers": [ + { + "name": "Uptick Explorer", + "url": "https://evm-explorer.uptick.network", + "icon": "uptick", + "standard": "none" + } + ] + }, + { + "name": "Arcology Testnet", + "chain": "Arcology", + "icon": "acolicon", + "rpc": ["https://testnet.arcology.network/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "Arcology Coin", + "symbol": "Acol", + "decimals": 18 + }, + "infoURL": "https://arcology.network/", + "shortName": "arcology", + "chainId": 118, + "networkId": 118, + "explorers": [ + { + "name": "arcology", + "url": "https://testnet.arcology.network/explorer", + "standard": "none" + } + ] + }, + { + "name": "ENULS Mainnet", + "chain": "ENULS", + "rpc": ["https://evmapi.nuls.io", "https://evmapi2.nuls.io"], + "faucets": [], + "nativeCurrency": { "name": "NULS", "symbol": "NULS", "decimals": 18 }, + "infoURL": "https://nuls.io", + "shortName": "enuls", + "chainId": 119, + "networkId": 119, + "icon": "enuls", + "explorers": [ + { + "name": "enulsscan", + "url": "https://evmscan.nuls.io", + "icon": "enuls", + "standard": "EIP3091" + } + ] + }, + { + "name": "ENULS Testnet", + "chain": "ENULS", + "rpc": ["https://beta.evmapi.nuls.io", "https://beta.evmapi2.nuls.io"], + "faucets": ["http://faucet.nuls.io"], + "nativeCurrency": { "name": "NULS", "symbol": "NULS", "decimals": 18 }, + "infoURL": "https://nuls.io", + "shortName": "enulst", + "chainId": 120, + "networkId": 120, + "icon": "enuls", + "explorers": [ + { + "name": "enulsscan", + "url": "https://beta.evmscan.nuls.io", + "icon": "enuls", + "standard": "EIP3091" + } + ] + }, + { + "name": "Realchain Mainnet", + "chain": "REAL", + "rpc": [ + "https://rcl-dataseed1.rclsidechain.com", + "https://rcl-dataseed2.rclsidechain.com", + "https://rcl-dataseed3.rclsidechain.com", + "https://rcl-dataseed4.rclsidechain.com", + "wss://rcl-dataseed1.rclsidechain.com/v1/", + "wss://rcl-dataseed2.rclsidechain.com/v1/", + "wss://rcl-dataseed3.rclsidechain.com/v1/", + "wss://rcl-dataseed4.rclsidechain.com/v1/" + ], + "faucets": ["https://faucet.rclsidechain.com"], + "nativeCurrency": { "name": "Realchain", "symbol": "REAL", "decimals": 18 }, + "infoURL": "https://www.rclsidechain.com/", + "shortName": "REAL", + "chainId": 121, + "networkId": 121, + "slip44": 714, + "explorers": [ + { + "name": "realscan", + "url": "https://rclscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Fuse Mainnet", + "chain": "FUSE", + "rpc": ["https://rpc.fuse.io"], + "faucets": [], + "nativeCurrency": { "name": "Fuse", "symbol": "FUSE", "decimals": 18 }, + "infoURL": "https://fuse.io/", + "shortName": "fuse", + "chainId": 122, + "networkId": 122 + }, + { + "name": "Fuse Sparknet", + "chain": "fuse", + "rpc": ["https://rpc.fusespark.io"], + "faucets": ["https://get.fusespark.io"], + "nativeCurrency": { "name": "Spark", "symbol": "SPARK", "decimals": 18 }, + "infoURL": "https://docs.fuse.io/general/fuse-network-blockchain/fuse-testnet", + "shortName": "spark", + "chainId": 123, + "networkId": 123 + }, + { + "name": "Decentralized Web Mainnet", + "shortName": "dwu", + "chain": "DWU", + "chainId": 124, + "networkId": 124, + "rpc": ["https://decentralized-web.tech/dw_rpc.php"], + "faucets": [], + "infoURL": "https://decentralized-web.tech/dw_chain.php", + "nativeCurrency": { + "name": "Decentralized Web Utility", + "symbol": "DWU", + "decimals": 18 + } + }, + { + "name": "OYchain Testnet", + "chain": "OYchain", + "rpc": ["https://rpc.testnet.oychain.io"], + "faucets": ["https://faucet.oychain.io"], + "nativeCurrency": { + "name": "OYchain Token", + "symbol": "OY", + "decimals": 18 + }, + "infoURL": "https://www.oychain.io", + "shortName": "OYchainTestnet", + "chainId": 125, + "networkId": 125, + "slip44": 125, + "explorers": [ + { + "name": "OYchain Testnet Explorer", + "url": "https://explorer.testnet.oychain.io", + "standard": "none" + } + ] + }, + { + "name": "OYchain Mainnet", + "chain": "OYchain", + "icon": "oychain", + "rpc": ["https://rpc.mainnet.oychain.io"], + "faucets": [], + "nativeCurrency": { + "name": "OYchain Token", + "symbol": "OY", + "decimals": 18 + }, + "infoURL": "https://www.oychain.io", + "shortName": "OYchainMainnet", + "chainId": 126, + "networkId": 126, + "slip44": 126, + "explorers": [ + { + "name": "OYchain Mainnet Explorer", + "url": "https://explorer.oychain.io", + "standard": "none" + } + ] + }, + { + "name": "Factory 127 Mainnet", + "chain": "FETH", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Factory 127 Token", + "symbol": "FETH", + "decimals": 18 + }, + "infoURL": "https://www.factory127.com", + "shortName": "feth", + "chainId": 127, + "networkId": 127, + "slip44": 127 + }, + { + "name": "Huobi ECO Chain Mainnet", + "chain": "Heco", + "rpc": [ + "https://http-mainnet.hecochain.com", + "wss://ws-mainnet.hecochain.com" + ], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], + "nativeCurrency": { + "name": "Huobi ECO Chain Native Token", + "symbol": "HT", + "decimals": 18 + }, + "infoURL": "https://www.hecochain.com", + "shortName": "heco", + "chainId": 128, + "networkId": 128, + "slip44": 1010, + "explorers": [ + { + "name": "hecoinfo", + "url": "https://hecoinfo.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "iExec Sidechain", + "chain": "Bellecour", + "icon": "rlc", + "rpc": ["https://bellecour.iex.ec"], + "faucets": [], + "nativeCurrency": { "name": "xRLC", "symbol": "xRLC", "decimals": 18 }, + "infoURL": "https://iex.ec", + "shortName": "rlc", + "chainId": 134, + "networkId": 134, + "explorers": [ + { + "name": "blockscout", + "url": "https://blockscout.bellecour.iex.ec", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "Alyx Chain Testnet", + "chain": "Alyx Chain Testnet", + "rpc": ["https://testnet-rpc.alyxchain.com"], + "faucets": ["https://faucet.alyxchain.com"], + "nativeCurrency": { + "name": "Alyx Testnet Native Token", + "symbol": "ALYX", + "decimals": 18 + }, + "infoURL": "https://www.alyxchain.com", + "shortName": "AlyxTestnet", + "chainId": 135, + "networkId": 135, + "explorers": [ + { + "name": "alyx testnet scan", + "url": "https://testnet.alyxscan.com", + "standard": "EIP3091" + } + ], + "icon": "alyx" + }, + { + "name": "Deamchain Mainnet", + "chain": "Deamchain", + "icon": "deam", + "rpc": ["https://mainnet.deamchain.com"], + "faucets": [], + "nativeCurrency": { + "name": "Deamchain Native Token", + "symbol": "DEAM", + "decimals": 18 + }, + "infoURL": "https://deamchain.com", + "shortName": "deam", + "chainId": 136, + "networkId": 136, + "explorers": [ + { + "name": "Deamchain Block Explorer", + "url": "https://scan.deamchain.com", + "standard": "EIP3091", + "icon": "deam" + } + ] + }, + { + "name": "Polygon Mainnet", + "chain": "Polygon", + "icon": "polygon", + "rpc": [ + "https://polygon-rpc.com/", + "https://rpc-mainnet.matic.network", + "https://matic-mainnet.chainstacklabs.com", + "https://rpc-mainnet.maticvigil.com", + "https://rpc-mainnet.matic.quiknode.pro", + "https://matic-mainnet-full-rpc.bwarelabs.com", + "https://polygon-bor.publicnode.com" + ], + "faucets": [], + "nativeCurrency": { "name": "MATIC", "symbol": "MATIC", "decimals": 18 }, + "infoURL": "https://polygon.technology/", + "shortName": "matic", + "chainId": 137, + "networkId": 137, + "slip44": 966, + "explorers": [ + { + "name": "polygonscan", + "url": "https://polygonscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Defi Oracle Meta Mainnet", + "chain": "dfiometa", + "icon": "defioraclemeta", + "rpc": [ + "https://rpc.public-0138.defi-oracle.io", + "wss://rpc.public-0138.defi-oracle.io" + ], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://defi-oracle.io/", + "shortName": "dfio-meta-main", + "chainId": 138, + "networkId": 1, + "slip44": 60, + "ens": { "registry": "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85" }, + "explorers": [ + { + "name": "Quorum Explorer", + "url": "https://public-0138.defi-oracle.io", + "standard": "none" + } + ] + }, + { + "name": "WoopChain Mainnet", + "chain": "WOOP", + "icon": "woopchain", + "rpc": ["https://rpc.woop.ai/rpc"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "WoopCoin", "symbol": "WOOC", "decimals": 18 }, + "infoURL": "https://wikiwoop.com", + "shortName": "woop", + "chainId": 139, + "networkId": 139, + "explorers": [ + { + "name": "wikiwoop", + "url": "https://explorer.wikiwoop.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Openpiece Testnet", + "chain": "OPENPIECE", + "icon": "openpiece", + "rpc": ["https://testnet.openpiece.io"], + "faucets": [], + "nativeCurrency": { "name": "Belly", "symbol": "BELLY", "decimals": 18 }, + "infoURL": "https://cryptopiece.online", + "shortName": "OPtest", + "chainId": 141, + "networkId": 141, + "explorers": [ + { + "name": "Belly Scan", + "url": "https://testnet.bellyscan.com", + "standard": "none" + } + ] + }, + { + "name": "DAX CHAIN", + "chain": "DAX", + "rpc": ["https://rpc.prodax.io"], + "faucets": [], + "nativeCurrency": { "name": "Prodax", "symbol": "DAX", "decimals": 18 }, + "infoURL": "https://prodax.io/", + "shortName": "dax", + "chainId": 142, + "networkId": 142 + }, + { + "name": "PHI Network v2", + "chain": "PHI", + "rpc": ["https://connect.phi.network"], + "faucets": [], + "nativeCurrency": { "name": "PHI", "symbol": "Φ", "decimals": 18 }, + "infoURL": "https://phi.network", + "shortName": "PHI", + "chainId": 144, + "networkId": 144, + "icon": "phi", + "explorers": [ + { + "name": "Phiscan", + "url": "https://phiscan.com", + "icon": "phi", + "standard": "none" + } + ] + }, + { + "name": "Six Protocol Testnet", + "chain": "FIVENET", + "icon": "six", + "rpc": ["https://rpc-evm.fivenet.sixprotocol.net"], + "faucets": ["https://faucet.sixprotocol.net"], + "nativeCurrency": { + "name": "SIX testnet evm token", + "symbol": "tSIX", + "decimals": 18 + }, + "infoURL": "https://six.network/", + "shortName": "sixt", + "chainId": 150, + "networkId": 150, + "explorers": [ + { + "name": "SIX Scan fivenet", + "url": "https://sixscan.io/fivenet", + "standard": "none", + "icon": "six" + } + ] + }, + { + "name": "Tenet Testnet", + "title": "Tenet Testnet", + "chain": "TENET", + "icon": "tenet", + "rpc": ["https://rpc.testnet.tenet.org"], + "faucets": ["https://faucet.testnet.tenet.org"], + "nativeCurrency": { "name": "TENET", "symbol": "TENET", "decimals": 18 }, + "infoURL": "https://tenet.org/", + "shortName": "tenet-testnet", + "chainId": 155, + "networkId": 155, + "explorers": [ + { + "name": "TenetScan Testnet", + "url": "https://testnet.tenetscan.io", + "icon": "tenet", + "standard": "EIP3091" + } + ] + }, + { + "name": "OEBlock Testnet", + "chain": "OEBt", + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "rpc": ["https://testnet-rpc.oeblock.com"], + "faucets": [], + "nativeCurrency": { "name": "OEBlock", "symbol": "OEB", "decimals": 18 }, + "infoURL": "https://www.oeblock.com/", + "shortName": "obe", + "chainId": 156, + "networkId": 156, + "icon": "oescan", + "explorers": [ + { + "name": "OEScan explorer", + "url": "https://testnet.oescan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Armonia Eva Chain Mainnet", + "chain": "Eva", + "rpc": ["https://evascan.io/api/eth-rpc/"], + "faucets": [], + "nativeCurrency": { + "name": "Armonia Multichain Native Token", + "symbol": "AMAX", + "decimals": 18 + }, + "infoURL": "https://amax.network", + "shortName": "eva", + "chainId": 160, + "networkId": 160, + "status": "incubating" + }, + { + "name": "Armonia Eva Chain Testnet", + "chain": "Wall-e", + "rpc": ["https://testnet.evascan.io/api/eth-rpc/"], + "faucets": [], + "nativeCurrency": { + "name": "Armonia Multichain Native Token", + "symbol": "AMAX", + "decimals": 18 + }, + "infoURL": "https://amax.network", + "shortName": "wall-e", + "chainId": 161, + "networkId": 161, + "explorers": [ + { + "name": "blockscout - evascan", + "url": "https://testnet.evascan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Lightstreams Testnet", + "chain": "PHT", + "rpc": ["https://node.sirius.lightstreams.io"], + "faucets": ["https://discuss.lightstreams.network/t/request-test-tokens"], + "nativeCurrency": { + "name": "Lightstreams PHT", + "symbol": "PHT", + "decimals": 18 + }, + "infoURL": "https://explorer.sirius.lightstreams.io", + "shortName": "tpht", + "chainId": 162, + "networkId": 162 + }, + { + "name": "Lightstreams Mainnet", + "chain": "PHT", + "rpc": ["https://node.mainnet.lightstreams.io"], + "faucets": [], + "nativeCurrency": { + "name": "Lightstreams PHT", + "symbol": "PHT", + "decimals": 18 + }, + "infoURL": "https://explorer.lightstreams.io", + "shortName": "pht", + "chainId": 163, + "networkId": 163 + }, + { + "name": "Omni Testnet 1", + "chain": "Omni", + "rpc": ["https://testnet-1.omni.network"], + "features": [{ "name": "EIP155" }], + "faucets": [], + "nativeCurrency": { "name": "Omni", "symbol": "OMNI", "decimals": 18 }, + "infoURL": "https://docs.omni.network/", + "shortName": "omni_testnet", + "chainId": 165, + "networkId": 165, + "explorers": [ + { + "name": "Omni Explorer", + "url": "https://testnet-1.explorer.omni.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Atoshi Testnet", + "chain": "ATOSHI", + "icon": "atoshi", + "rpc": ["https://node.atoshi.io/"], + "faucets": [], + "nativeCurrency": { "name": "ATOSHI", "symbol": "ATOS", "decimals": 18 }, + "infoURL": "https://atoshi.org", + "shortName": "atoshi", + "chainId": 167, + "networkId": 167, + "explorers": [ + { + "name": "atoshiscan", + "url": "https://scan.atoverse.info", + "standard": "EIP3091" + } + ] + }, + { + "name": "AIOZ Network", + "chain": "AIOZ", + "icon": "aioz", + "rpc": ["https://eth-dataseed.aioz.network"], + "faucets": [], + "nativeCurrency": { "name": "AIOZ", "symbol": "AIOZ", "decimals": 18 }, + "infoURL": "https://aioz.network", + "shortName": "aioz", + "chainId": 168, + "networkId": 168, + "slip44": 60, + "explorers": [ + { + "name": "AIOZ Network Explorer", + "url": "https://explorer.aioz.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "HOO Smart Chain Testnet", + "chain": "ETH", + "rpc": ["https://http-testnet.hoosmartchain.com"], + "faucets": ["https://faucet-testnet.hscscan.com/"], + "nativeCurrency": { "name": "HOO", "symbol": "HOO", "decimals": 18 }, + "infoURL": "https://www.hoosmartchain.com", + "shortName": "hoosmartchain", + "chainId": 170, + "networkId": 170 + }, + { + "name": "Latam-Blockchain Resil Testnet", + "chain": "Resil", + "rpc": [ + "https://rpc.latam-blockchain.com", + "wss://ws.latam-blockchain.com" + ], + "faucets": ["https://faucet.latam-blockchain.com"], + "nativeCurrency": { + "name": "Latam-Blockchain Resil Test Native Token", + "symbol": "usd", + "decimals": 18 + }, + "infoURL": "https://latam-blockchain.com", + "shortName": "resil", + "chainId": 172, + "networkId": 172 + }, + { + "name": "AME Chain Mainnet", + "chain": "AME", + "rpc": ["https://node1.amechain.io/"], + "faucets": [], + "nativeCurrency": { "name": "AME", "symbol": "AME", "decimals": 18 }, + "infoURL": "https://amechain.io/", + "shortName": "ame", + "chainId": 180, + "networkId": 180, + "explorers": [ + { "name": "AME Scan", "url": "https://amescan.io", "standard": "EIP3091" } + ] + }, + { + "name": "Seele Mainnet", + "chain": "Seele", + "rpc": ["https://rpc.seelen.pro/"], + "faucets": [], + "nativeCurrency": { "name": "Seele", "symbol": "Seele", "decimals": 18 }, + "infoURL": "https://seelen.pro/", + "shortName": "Seele", + "chainId": 186, + "networkId": 186, + "explorers": [ + { + "name": "seeleview", + "url": "https://seeleview.net", + "standard": "none" + } + ] + }, + { + "name": "BMC Mainnet", + "chain": "BMC", + "rpc": ["https://mainnet.bmcchain.com/"], + "faucets": [], + "nativeCurrency": { "name": "BTM", "symbol": "BTM", "decimals": 18 }, + "infoURL": "https://bmc.bytom.io/", + "shortName": "BMC", + "chainId": 188, + "networkId": 188, + "explorers": [ + { + "name": "Blockmeta", + "url": "https://bmc.blockmeta.com", + "standard": "none" + } + ] + }, + { + "name": "BMC Testnet", + "chain": "BMC", + "rpc": ["https://testnet.bmcchain.com"], + "faucets": [], + "nativeCurrency": { "name": "BTM", "symbol": "BTM", "decimals": 18 }, + "infoURL": "https://bmc.bytom.io/", + "shortName": "BMCT", + "chainId": 189, + "networkId": 189, + "explorers": [ + { + "name": "Blockmeta", + "url": "https://bmctestnet.blockmeta.com", + "standard": "none" + } + ] + }, + { + "name": "Crypto Emergency", + "chain": "CEM", + "rpc": ["https://cemchain.com"], + "faucets": [], + "nativeCurrency": { + "name": "Crypto Emergency", + "symbol": "CEM", + "decimals": 18 + }, + "infoURL": "https://cemblockchain.com/", + "shortName": "cem", + "chainId": 193, + "networkId": 193, + "explorers": [ + { "name": "cemscan", "url": "https://cemscan.com", "standard": "EIP3091" } + ] + }, + { + "name": "OKBChain Testnet", + "chain": "okbchain", + "rpc": ["https://okbtestrpc.okbchain.org"], + "faucets": ["https://www.oklink.com/okbc-test"], + "nativeCurrency": { + "name": "OKBChain Global Utility Token in testnet", + "symbol": "OKB", + "decimals": 18 + }, + "features": [], + "infoURL": "https://www.okx.com/okbc/docs/dev/quick-start/introduction/introduction-to-okbchain", + "shortName": "tokb", + "chainId": 195, + "networkId": 195, + "explorers": [ + { + "name": "OKLink", + "url": "https://www.oklink.com/okbc-test", + "standard": "EIP3091" + } + ], + "status": "active" + }, + { + "name": "OKBChain Mainnet", + "chain": "okbchain", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "OKBChain Global Utility Token", + "symbol": "OKB", + "decimals": 18 + }, + "features": [], + "infoURL": "https://www.okex.com/okc", + "shortName": "okb", + "chainId": 196, + "networkId": 196, + "explorers": [], + "status": "incubating" + }, + { + "name": "Neutrinos TestNet", + "chain": "NEUTR", + "rpc": ["https://testnet-rpc.neutrinoschain.com"], + "faucets": ["https://neutrinoschain.com/faucet"], + "nativeCurrency": { + "name": "Neutrinos", + "symbol": "NEUTR", + "decimals": 18 + }, + "infoURL": "https://docs.neutrinoschain.com", + "shortName": "NEUTR", + "chainId": 197, + "networkId": 197, + "explorers": [ + { + "name": "blockscout", + "url": "https://testnet.neutrinoschain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "BitTorrent Chain Mainnet", + "chain": "BTTC", + "rpc": ["https://rpc.bittorrentchain.io/"], + "faucets": [], + "nativeCurrency": { "name": "BitTorrent", "symbol": "BTT", "decimals": 18 }, + "infoURL": "https:/bt.io", + "shortName": "BTT", + "chainId": 199, + "networkId": 199, + "explorers": [ + { + "name": "BitTorrent Chain Explorer", + "url": "https://bttcscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Arbitrum on xDai", + "chain": "AOX", + "rpc": ["https://arbitrum.xdaichain.com/"], + "faucets": [], + "nativeCurrency": { "name": "xDAI", "symbol": "xDAI", "decimals": 18 }, + "infoURL": "https://xdaichain.com", + "shortName": "aox", + "chainId": 200, + "networkId": 200, + "explorers": [ + { + "name": "blockscout", + "url": "https://blockscout.com/xdai/arbitrum", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-100", "type": "L2" } + }, + { + "name": "MOAC testnet", + "chain": "MOAC", + "rpc": ["https://gateway.moac.io/testnet"], + "faucets": [], + "nativeCurrency": { "name": "MOAC", "symbol": "mc", "decimals": 18 }, + "infoURL": "https://moac.io", + "shortName": "moactest", + "chainId": 201, + "networkId": 201, + "explorers": [ + { + "name": "moac testnet explorer", + "url": "https://testnet.moac.io", + "standard": "none" + } + ] + }, + { + "name": "Structx Mainnet", + "chain": "utx", + "rpc": ["https://mainnet.structx.io"], + "faucets": [], + "nativeCurrency": { "name": "Notes", "symbol": "utx", "decimals": 18 }, + "infoURL": "https://structx.io", + "shortName": "utx", + "chainId": 208, + "networkId": 208 + }, + { + "name": "Freight Trust Network", + "chain": "EDI", + "rpc": [ + "http://13.57.207.168:3435", + "https://app.freighttrust.net/ftn/${API_KEY}" + ], + "faucets": ["http://faucet.freight.sh"], + "nativeCurrency": { + "name": "Freight Trust Native", + "symbol": "0xF", + "decimals": 18 + }, + "infoURL": "https://freighttrust.com", + "shortName": "EDI", + "chainId": 211, + "networkId": 0 + }, + { + "name": "MAP Makalu", + "title": "MAP Testnet Makalu", + "chain": "MAP", + "rpc": ["https://testnet-rpc.maplabs.io"], + "faucets": ["https://faucet.maplabs.io"], + "nativeCurrency": { "name": "Makalu MAP", "symbol": "MAP", "decimals": 18 }, + "infoURL": "https://maplabs.io", + "shortName": "makalu", + "chainId": 212, + "networkId": 212, + "explorers": [ + { + "name": "mapscan", + "url": "https://testnet.mapscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "SiriusNet V2", + "chain": "SIN2", + "faucets": [], + "rpc": ["https://rpc2.siriusnet.io"], + "icon": "siriusnet", + "nativeCurrency": { "name": "MCD", "symbol": "MCD", "decimals": 18 }, + "infoURL": "https://siriusnet.io", + "shortName": "SIN2", + "chainId": 217, + "networkId": 217, + "explorers": [ + { + "name": "siriusnet explorer", + "url": "https://scan.siriusnet.io", + "standard": "none" + } + ] + }, + { + "name": "SoterOne Mainnet old", + "chain": "SOTER", + "rpc": ["https://rpc.soter.one"], + "faucets": [], + "nativeCurrency": { + "name": "SoterOne Mainnet Ether", + "symbol": "SOTER", + "decimals": 18 + }, + "infoURL": "https://www.soterone.com", + "shortName": "SO1-old", + "chainId": 218, + "networkId": 218, + "status": "deprecated" + }, + { + "name": "Permission", + "chain": "ASK", + "rpc": ["https://blockchain-api-mainnet.permission.io/rpc"], + "faucets": [], + "nativeCurrency": { "name": "ASK", "symbol": "ASK", "decimals": 18 }, + "infoURL": "https://permission.io/", + "shortName": "ASK", + "chainId": 222, + "networkId": 2221, + "slip44": 2221, + "status": "deprecated" + }, + { + "name": "LACHAIN Mainnet", + "chain": "LA", + "icon": "lachain", + "rpc": ["https://rpc-mainnet.lachain.io"], + "faucets": [], + "nativeCurrency": { "name": "LA", "symbol": "LA", "decimals": 18 }, + "infoURL": "https://lachain.io", + "shortName": "LA", + "chainId": 225, + "networkId": 225, + "explorers": [ + { + "name": "blockscout", + "url": "https://scan.lachain.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "LACHAIN Testnet", + "chain": "TLA", + "icon": "lachain", + "rpc": ["https://rpc-testnet.lachain.io"], + "faucets": [], + "nativeCurrency": { "name": "TLA", "symbol": "TLA", "decimals": 18 }, + "infoURL": "https://lachain.io", + "shortName": "TLA", + "chainId": 226, + "networkId": 226, + "explorers": [ + { + "name": "blockscout", + "url": "https://scan-test.lachain.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "SwapDEX", + "chain": "SDX", + "rpc": ["https://rpc.swapdex.network", "wss://ss.swapdex.network"], + "faucets": [], + "nativeCurrency": { "name": "SwapDEX", "symbol": "SDX", "decimals": 18 }, + "infoURL": "https://swapdex.network/", + "shortName": "SDX", + "chainId": 230, + "networkId": 230, + "explorers": [ + { + "name": "SwapDEX", + "url": "https://evm.swapdex.network", + "standard": "none" + } + ] + }, + { + "name": "Deamchain Testnet", + "chain": "Deamchain", + "icon": "deam", + "rpc": ["https://testnet.deamchain.com"], + "faucets": ["https://faucet.deamchain.com"], + "nativeCurrency": { + "name": "Deamchain Native Token", + "symbol": "DEAM", + "decimals": 18 + }, + "infoURL": "https://deamchain.com", + "shortName": "deamtest", + "chainId": 236, + "networkId": 236, + "explorers": [ + { + "name": "Deamchain Testnet Explorer", + "url": "https://testnet-scan.deamchain.com", + "standard": "EIP3091", + "icon": "deam" + } + ] + }, + { + "name": "Energy Web Chain", + "chain": "Energy Web Chain", + "rpc": ["https://rpc.energyweb.org", "wss://rpc.energyweb.org/ws"], + "faucets": [ + "https://faucet.carbonswap.exchange", + "https://free-online-app.com/faucet-for-eth-evm-chains/" + ], + "nativeCurrency": { + "name": "Energy Web Token", + "symbol": "EWT", + "decimals": 18 + }, + "infoURL": "https://energyweb.org", + "shortName": "ewt", + "chainId": 246, + "networkId": 246, + "slip44": 246, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.energyweb.org", + "standard": "none" + } + ] + }, + { + "name": "Oasys Mainnet", + "chain": "Oasys", + "icon": "oasys", + "rpc": ["https://rpc.mainnet.oasys.games"], + "faucets": [], + "nativeCurrency": { "name": "OAS", "symbol": "OAS", "decimals": 18 }, + "infoURL": "https://oasys.games", + "shortName": "OAS", + "chainId": 248, + "networkId": 248, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.oasys.games", + "standard": "EIP3091" + } + ] + }, + { + "name": "Fantom Opera", + "chain": "FTM", + "rpc": ["https://rpc.ftm.tools", "https://fantom.publicnode.com"], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], + "nativeCurrency": { "name": "Fantom", "symbol": "FTM", "decimals": 18 }, + "infoURL": "https://fantom.foundation", + "shortName": "ftm", + "chainId": 250, + "networkId": 250, + "icon": "fantom", + "explorers": [ + { + "name": "ftmscan", + "url": "https://ftmscan.com", + "icon": "ftmscan", + "standard": "EIP3091" + } + ] + }, + { + "name": "Huobi ECO Chain Testnet", + "chain": "Heco", + "rpc": [ + "https://http-testnet.hecochain.com", + "wss://ws-testnet.hecochain.com" + ], + "faucets": ["https://scan-testnet.hecochain.com/faucet"], + "nativeCurrency": { + "name": "Huobi ECO Chain Test Native Token", + "symbol": "htt", + "decimals": 18 + }, + "infoURL": "https://testnet.hecoinfo.com", + "shortName": "hecot", + "chainId": 256, + "networkId": 256 + }, + { + "name": "Setheum", + "chain": "Setheum", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Setheum", "symbol": "SETM", "decimals": 18 }, + "infoURL": "https://setheum.xyz", + "shortName": "setm", + "chainId": 258, + "networkId": 258 + }, + { + "name": "Neonlink Mainnet", + "chain": "Neonlink", + "rpc": ["https://mainnet.neonlink.io"], + "faucets": [], + "nativeCurrency": { + "name": "Neonlink Native Token", + "symbol": "NEON", + "decimals": 18 + }, + "infoURL": "https://neonlink.io", + "shortName": "neon", + "chainId": 259, + "networkId": 259, + "icon": "neonlink", + "explorers": [ + { + "name": "Neon Blockchain Explorer", + "url": "https://scan.neonlink.io", + "standard": "EIP3091", + "icon": "neonlink" + } + ] + }, + { + "name": "SUR Blockchain Network", + "chain": "SUR", + "rpc": ["https://sur.nilin.org"], + "faucets": [], + "nativeCurrency": { "name": "Suren", "symbol": "SRN", "decimals": 18 }, + "infoURL": "https://surnet.org", + "shortName": "SUR", + "chainId": 262, + "networkId": 1, + "icon": "SUR", + "explorers": [ + { + "name": "Surnet Explorer", + "url": "https://explorer.surnet.org", + "icon": "SUR", + "standard": "EIP3091" + } + ] + }, + { + "name": "High Performance Blockchain", + "chain": "HPB", + "rpc": ["https://hpbnode.com", "wss://ws.hpbnode.com"], + "faucets": ["https://myhpbwallet.com/"], + "nativeCurrency": { + "name": "High Performance Blockchain Ether", + "symbol": "HPB", + "decimals": 18 + }, + "infoURL": "https://hpb.io", + "shortName": "hpb", + "chainId": 269, + "networkId": 269, + "slip44": 269, + "explorers": [ + { "name": "hscan", "url": "https://hscan.org", "standard": "EIP3091" } + ] + }, + { + "name": "LaChain", + "chain": "LaChain", + "icon": "LaChain", + "rpc": [ + "https://rpc1.mainnet.lachain.network", + "https://rpc2.mainnet.lachain.network", + "https://lachain.rpc-nodes.cedalio.dev" + ], + "faucets": [], + "nativeCurrency": { "name": "LaCoin", "symbol": "LAC", "decimals": 18 }, + "features": [{ "name": "EIP155" }], + "infoURL": "", + "shortName": "lachain", + "chainId": 274, + "networkId": 274, + "explorers": [ + { + "name": "LaChain Explorer", + "url": "https://explorer.lachain.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "zkSync Era Testnet", + "chain": "ETH", + "rpc": ["https://testnet.era.zksync.dev"], + "faucets": ["https://goerli.portal.zksync.io/faucet"], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://era.zksync.io/docs/", + "shortName": "zksync-goerli", + "chainId": 280, + "networkId": 280, + "icon": "zksync-era", + "explorers": [ + { + "name": "zkSync Era Block Explorer", + "url": "https://goerli.explorer.zksync.io", + "icon": "zksync-era", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://goerli.portal.zksync.io/bridge" }] + } + }, + { + "name": "Boba Network", + "chain": "ETH", + "rpc": ["https://mainnet.boba.network/"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://boba.network", + "shortName": "Boba", + "chainId": 288, + "networkId": 288, + "explorers": [ + { "name": "Bobascan", "url": "https://bobascan.com", "standard": "none" }, + { + "name": "Blockscout", + "url": "https://blockexplorer.boba.network", + "standard": "none" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://gateway.boba.network" }] + } + }, + { + "name": "Hedera Mainnet", + "chain": "Hedera", + "icon": "hedera", + "rpc": ["https://mainnet.hashio.io/api"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "hbar", "symbol": "HBAR", "decimals": 18 }, + "infoURL": "https://hedera.com", + "shortName": "hedera-mainnet", + "chainId": 295, + "networkId": 295, + "slip44": 3030, + "explorers": [ + { + "name": "HashScan", + "url": "https://hashscan.io/mainnet/dashboard", + "standard": "none" + }, + { + "name": "Arkhia Explorer", + "url": "https://explorer.arkhia.io", + "standard": "none" + }, + { + "name": "DragonGlass", + "url": "https://app.dragonglass.me", + "standard": "none" + }, + { + "name": "Hedera Explorer", + "url": "https://hederaexplorer.io", + "standard": "none" + }, + { + "name": "Ledger Works Explore", + "url": "https://explore.lworks.io", + "standard": "none" + } + ] + }, + { + "name": "Hedera Testnet", + "chain": "Hedera", + "icon": "hedera", + "rpc": ["https://testnet.hashio.io/api"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": ["https://portal.hedera.com"], + "nativeCurrency": { "name": "hbar", "symbol": "HBAR", "decimals": 18 }, + "infoURL": "https://hedera.com", + "shortName": "hedera-testnet", + "chainId": 296, + "networkId": 296, + "slip44": 3030, + "explorers": [ + { + "name": "HashScan", + "url": "https://hashscan.io/testnet/dashboard", + "standard": "none" + }, + { + "name": "Arkhia Explorer", + "url": "https://explorer.arkhia.io", + "standard": "none" + }, + { + "name": "DragonGlass", + "url": "https://app.dragonglass.me", + "standard": "none" + }, + { + "name": "Hedera Explorer", + "url": "https://hederaexplorer.io", + "standard": "none" + }, + { + "name": "Ledger Works Explore", + "url": "https://explore.lworks.io", + "standard": "none" + } + ] + }, + { + "name": "Hedera Previewnet", + "chain": "Hedera", + "icon": "hedera", + "rpc": ["https://previewnet.hashio.io/api"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": ["https://portal.hedera.com"], + "nativeCurrency": { "name": "hbar", "symbol": "HBAR", "decimals": 18 }, + "infoURL": "https://hedera.com", + "shortName": "hedera-previewnet", + "chainId": 297, + "networkId": 297, + "slip44": 3030, + "explorers": [ + { + "name": "HashScan", + "url": "https://hashscan.io/previewnet/dashboard", + "standard": "none" + } + ] + }, + { + "name": "Hedera Localnet", + "chain": "Hedera", + "icon": "hedera", + "rpc": [], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "hbar", "symbol": "HBAR", "decimals": 18 }, + "infoURL": "https://hedera.com", + "shortName": "hedera-localnet", + "chainId": 298, + "networkId": 298, + "slip44": 3030, + "explorers": [] + }, + { + "name": "(deprecated) Optimism on GC", + "chain": "OGC", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "xDAI", "symbol": "xDAI", "decimals": 18 }, + "shortName": "ogc", + "chainId": 300, + "networkId": 300, + "infoURL": "https://docs.gnosischain.com", + "explorers": [], + "status": "deprecated" + }, + { + "name": "Bobaopera", + "chain": "Bobaopera", + "rpc": [ + "https://bobaopera.boba.network", + "wss://wss.bobaopera.boba.network", + "https://replica.bobaopera.boba.network", + "wss://replica-wss.bobaopera.boba.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "Bobaopera", + "chainId": 301, + "networkId": 301, + "explorers": [ + { + "name": "Bobaopera block explorer", + "url": "https://blockexplorer.bobaopera.boba.network", + "standard": "none" + } + ] + }, + { + "name": "Neurochain Testnet", + "chain": "NCN", + "rpc": ["https://nc-rpc-test1.neurochain.io"], + "faucets": [], + "nativeCurrency": { + "name": "Neurochain", + "symbol": "tNCN", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://www.neurochain.ai", + "shortName": "ncnt", + "chainId": 303, + "networkId": 303, + "explorers": [ + { + "name": "neuroscan", + "url": "https://testnet.ncnscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Omax Mainnet", + "chain": "OMAX Chain", + "rpc": ["https://mainapi.omaxray.com"], + "faucets": ["https://faucet.omaxray.com/"], + "nativeCurrency": { "name": "OMAX COIN", "symbol": "OMAX", "decimals": 18 }, + "infoURL": "https://www.omaxcoin.com/", + "shortName": "omax", + "chainId": 311, + "networkId": 311, + "icon": "omaxchain", + "explorers": [ + { + "name": "Omax Chain Explorer", + "url": "https://omaxray.com", + "icon": "omaxray", + "standard": "EIP3091" + } + ] + }, + { + "name": "Neurochain Mainnet", + "chain": "NCN", + "rpc": [ + "https://nc-rpc-prd1.neurochain.io", + "https://nc-rpc-prd2.neurochain.io" + ], + "faucets": [], + "nativeCurrency": { "name": "Neurochain", "symbol": "NCN", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://www.neurochain.ai", + "shortName": "ncn", + "chainId": 313, + "networkId": 313, + "explorers": [ + { + "name": "neuroscan", + "url": "https://ncnscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Filecoin - Mainnet", + "chain": "FIL", + "icon": "filecoin", + "rpc": [ + "https://api.node.glif.io/", + "https://rpc.ankr.com/filecoin", + "https://filecoin-mainnet.chainstacklabs.com/rpc/v1" + ], + "faucets": [], + "nativeCurrency": { "name": "filecoin", "symbol": "FIL", "decimals": 18 }, + "infoURL": "https://filecoin.io", + "shortName": "filecoin", + "chainId": 314, + "networkId": 314, + "slip44": 461, + "explorers": [ + { "name": "Filfox", "url": "https://filfox.info/en", "standard": "none" }, + { "name": "Beryx", "url": "https://beryx.zondax.ch", "standard": "none" }, + { + "name": "Glif Explorer", + "url": "https://explorer.glif.io", + "standard": "EIP3091" + }, + { + "name": "Dev.storage", + "url": "https://dev.storage", + "standard": "none" + }, + { "name": "Filscan", "url": "https://filscan.io", "standard": "none" }, + { + "name": "Filscout", + "url": "https://filscout.io/en", + "standard": "none" + } + ] + }, + { + "name": "KCC Mainnet", + "chain": "KCC", + "rpc": [ + "https://rpc-mainnet.kcc.network", + "https://kcc.mytokenpocket.vip", + "https://public-rpc.blockpi.io/http/kcc" + ], + "faucets": [ + "https://faucet.kcc.io/", + "https://free-online-app.com/faucet-for-eth-evm-chains/" + ], + "nativeCurrency": { + "name": "KuCoin Token", + "symbol": "KCS", + "decimals": 18 + }, + "infoURL": "https://kcc.io", + "shortName": "kcs", + "chainId": 321, + "networkId": 321, + "slip44": 641, + "explorers": [ + { + "name": "KCC Explorer", + "url": "https://explorer.kcc.io/en", + "standard": "EIP3091" + } + ] + }, + { + "name": "KCC Testnet", + "chain": "KCC", + "rpc": ["https://rpc-testnet.kcc.network"], + "faucets": ["https://faucet-testnet.kcc.network"], + "nativeCurrency": { + "name": "KuCoin Testnet Token", + "symbol": "tKCS", + "decimals": 18 + }, + "infoURL": "https://scan-testnet.kcc.network", + "shortName": "kcst", + "chainId": 322, + "networkId": 322, + "explorers": [ + { + "name": "kcc-scan-testnet", + "url": "https://scan-testnet.kcc.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "zkSync Era Mainnet", + "chain": "ETH", + "rpc": ["https://mainnet.era.zksync.io"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://zksync.io/", + "shortName": "zksync", + "chainId": 324, + "networkId": 324, + "icon": "zksync-era", + "explorers": [ + { + "name": "zkSync Era Block Explorer", + "url": "https://explorer.zksync.io", + "icon": "zksync-era", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://bridge.zksync.io/" }] + } + }, + { + "name": "Web3Q Mainnet", + "chain": "Web3Q", + "rpc": ["https://mainnet.web3q.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "Web3Q", "symbol": "W3Q", "decimals": 18 }, + "infoURL": "https://web3q.io/home.w3q/", + "shortName": "w3q", + "chainId": 333, + "networkId": 333, + "explorers": [ + { + "name": "w3q-mainnet", + "url": "https://explorer.mainnet.web3q.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "DFK Chain Test", + "chain": "DFK", + "icon": "dfk", + "rpc": ["https://subnets.avax.network/defi-kingdoms/dfk-chain-testnet/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Jewel", "symbol": "JEWEL", "decimals": 18 }, + "infoURL": "https://defikingdoms.com", + "shortName": "DFKTEST", + "chainId": 335, + "networkId": 335, + "explorers": [ + { + "name": "ethernal", + "url": "https://explorer-test.dfkchain.com", + "icon": "ethereum", + "standard": "none" + } + ] + }, + { + "name": "Shiden", + "chain": "SDN", + "rpc": [ + "https://shiden.api.onfinality.io/public", + "https://shiden-rpc.dwellir.com", + "https://shiden.public.blastapi.io", + "wss://shiden.api.onfinality.io/public-ws", + "wss://shiden.public.blastapi.io", + "wss://shiden-rpc.dwellir.com" + ], + "faucets": [], + "nativeCurrency": { "name": "Shiden", "symbol": "SDN", "decimals": 18 }, + "infoURL": "https://shiden.astar.network/", + "shortName": "sdn", + "chainId": 336, + "networkId": 336, + "icon": "shiden", + "explorers": [ + { + "name": "subscan", + "url": "https://shiden.subscan.io", + "standard": "none", + "icon": "subscan" + } + ] + }, + { + "name": "Cronos Testnet", + "chain": "CRO", + "rpc": ["https://evm-t3.cronos.org"], + "faucets": ["https://cronos.org/faucet"], + "nativeCurrency": { + "name": "Cronos Test Coin", + "symbol": "TCRO", + "decimals": 18 + }, + "infoURL": "https://cronos.org", + "shortName": "tcro", + "chainId": 338, + "networkId": 338, + "explorers": [ + { + "name": "Cronos Testnet Explorer", + "url": "https://explorer.cronos.org/testnet", + "standard": "none" + } + ] + }, + { + "name": "Theta Mainnet", + "chain": "Theta", + "rpc": ["https://eth-rpc-api.thetatoken.org/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "Theta Fuel", + "symbol": "TFUEL", + "decimals": 18 + }, + "infoURL": "https://www.thetatoken.org/", + "shortName": "theta-mainnet", + "chainId": 361, + "networkId": 361, + "explorers": [ + { + "name": "Theta Mainnet Explorer", + "url": "https://explorer.thetatoken.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Theta Sapphire Testnet", + "chain": "Theta", + "rpc": ["https://eth-rpc-api-sapphire.thetatoken.org/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "Theta Fuel", + "symbol": "TFUEL", + "decimals": 18 + }, + "infoURL": "https://www.thetatoken.org/", + "shortName": "theta-sapphire", + "chainId": 363, + "networkId": 363, + "explorers": [ + { + "name": "Theta Sapphire Testnet Explorer", + "url": "https://guardian-testnet-sapphire-explorer.thetatoken.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Theta Amber Testnet", + "chain": "Theta", + "rpc": ["https://eth-rpc-api-amber.thetatoken.org/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "Theta Fuel", + "symbol": "TFUEL", + "decimals": 18 + }, + "infoURL": "https://www.thetatoken.org/", + "shortName": "theta-amber", + "chainId": 364, + "networkId": 364, + "explorers": [ + { + "name": "Theta Amber Testnet Explorer", + "url": "https://guardian-testnet-amber-explorer.thetatoken.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Theta Testnet", + "chain": "Theta", + "rpc": ["https://eth-rpc-api-testnet.thetatoken.org/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "Theta Fuel", + "symbol": "TFUEL", + "decimals": 18 + }, + "infoURL": "https://www.thetatoken.org/", + "shortName": "theta-testnet", + "chainId": 365, + "networkId": 365, + "explorers": [ + { + "name": "Theta Testnet Explorer", + "url": "https://testnet-explorer.thetatoken.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "PulseChain", + "shortName": "pls", + "chain": "PLS", + "chainId": 369, + "networkId": 369, + "infoURL": "https://pulsechain.com/", + "rpc": ["https://rpc.pulsechain.com/", "wss://rpc.pulsechain.com/"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "ens": { "registry": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" }, + "status": "incubating", + "nativeCurrency": { "name": "Pulse", "symbol": "PLS", "decimals": 18 } + }, + { + "name": "Consta Testnet", + "chain": "tCNT", + "rpc": ["https://rpc-testnet.theconsta.com"], + "faucets": [], + "nativeCurrency": { "name": "tCNT", "symbol": "tCNT", "decimals": 18 }, + "infoURL": "http://theconsta.com", + "shortName": "tCNT", + "chainId": 371, + "networkId": 371, + "icon": "constachain", + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer-testnet.theconsta.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Lisinski", + "chain": "CRO", + "rpc": ["https://rpc-bitfalls1.lisinski.online"], + "faucets": ["https://pipa.lisinski.online"], + "nativeCurrency": { + "name": "Lisinski Ether", + "symbol": "LISINS", + "decimals": 18 + }, + "infoURL": "https://lisinski.online", + "shortName": "lisinski", + "chainId": 385, + "networkId": 385 + }, + { + "name": "HyperonChain TestNet", + "chain": "HPN", + "icon": "hyperonchain", + "rpc": ["https://testnet-rpc.hyperonchain.com"], + "faucets": ["https://faucet.hyperonchain.com"], + "nativeCurrency": { + "name": "HyperonChain", + "symbol": "HPN", + "decimals": 18 + }, + "infoURL": "https://docs.hyperonchain.com", + "shortName": "hpn", + "chainId": 400, + "networkId": 400, + "explorers": [ + { + "name": "blockscout", + "url": "https://testnet.hyperonchain.com", + "icon": "hyperonchain", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ozone Chain Testnet", + "chain": "OZONE", + "rpc": ["https://node1.testnet.ozonechain.io"], + "faucets": [], + "nativeCurrency": { "name": "OZONE", "symbol": "OZO", "decimals": 18 }, + "infoURL": "https://ozonechain.io", + "shortName": "ozo_tst", + "chainId": 401, + "networkId": 401, + "icon": "ozonechain", + "explorers": [ + { + "name": "OZONE Scan", + "url": "https://testnet.ozonescan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "SX Network Mainnet", + "chain": "SX", + "icon": "SX", + "rpc": ["https://rpc.sx.technology"], + "faucets": [], + "nativeCurrency": { "name": "SX Network", "symbol": "SX", "decimals": 18 }, + "infoURL": "https://www.sx.technology", + "shortName": "SX", + "chainId": 416, + "networkId": 416, + "explorers": [ + { + "name": "SX Network Explorer", + "url": "https://explorer.sx.technology", + "standard": "EIP3091" + } + ] + }, + { + "name": "LaTestnet", + "chain": "LaTestnet", + "icon": "LaChain", + "rpc": [ + "https://rpc.testnet.lachain.network", + "https://lachain-testnet.rpc-nodes.cedalio.dev" + ], + "faucets": ["https://faucet.lachain.network"], + "nativeCurrency": { + "name": "Test LaCoin", + "symbol": "TLA", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }], + "infoURL": "", + "shortName": "latestnet", + "chainId": 418, + "networkId": 418, + "explorers": [ + { + "name": "LaTestnet Explorer", + "url": "https://testexplorer.lachain.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Optimism Goerli Testnet", + "chain": "ETH", + "rpc": ["https://goerli.optimism.io/"], + "faucets": [], + "nativeCurrency": { + "name": "Goerli Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://optimism.io", + "shortName": "ogor", + "chainId": 420, + "networkId": 420 + }, + { + "name": "Zeeth Chain", + "chain": "ZeethChain", + "rpc": ["https://rpc.zeeth.io"], + "faucets": [], + "nativeCurrency": { + "name": "Zeeth Token", + "symbol": "ZTH", + "decimals": 18 + }, + "infoURL": "", + "shortName": "zeeth", + "chainId": 427, + "networkId": 427, + "explorers": [ + { + "name": "Zeeth Explorer", + "url": "https://explorer.zeeth.io", + "standard": "none" + } + ] + }, + { + "name": "Frenchain Testnet", + "chain": "tfren", + "rpc": ["https://rpc-01tn.frenchain.app"], + "faucets": [], + "nativeCurrency": { "name": "tFREN", "symbol": "FtREN", "decimals": 18 }, + "infoURL": "https://frenchain.app", + "shortName": "tFREN", + "chainId": 444, + "networkId": 444, + "icon": "fren", + "explorers": [ + { + "name": "blockscout", + "url": "https://testnet.frenscan.io", + "icon": "fren", + "standard": "EIP3091" + } + ] + }, + { + "name": "ARZIO Chain", + "chain": "ARZIO", + "icon": "arzio", + "rpc": ["https://chain-rpc.arzio.co"], + "faucets": [], + "nativeCurrency": { "name": "ARZIO", "symbol": "AZO", "decimals": 18 }, + "infoURL": "https://chain.arzio.co", + "shortName": "arzio", + "chainId": 456, + "networkId": 456, + "explorers": [ + { + "name": "ARZIO Scan", + "url": "https://scan.arzio.co", + "standard": "EIP3091" + } + ] + }, + { + "name": "Rupaya", + "chain": "RUPX", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Rupaya", "symbol": "RUPX", "decimals": 18 }, + "infoURL": "https://www.rupx.io", + "shortName": "rupx", + "chainId": 499, + "networkId": 499, + "slip44": 499 + }, + { + "name": "Camino C-Chain", + "chain": "CAM", + "rpc": ["https://api.camino.network/ext/bc/C/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Camino", "symbol": "CAM", "decimals": 18 }, + "infoURL": "https://camino.network/", + "shortName": "Camino", + "chainId": 500, + "networkId": 1000, + "icon": "camino", + "explorers": [ + { + "name": "blockexplorer", + "url": "https://suite.camino.network/explorer", + "standard": "none" + } + ] + }, + { + "name": "Columbus Test Network", + "chain": "CAM", + "rpc": ["https://columbus.camino.network/ext/bc/C/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Camino", "symbol": "CAM", "decimals": 18 }, + "infoURL": "https://camino.network/", + "shortName": "Columbus", + "chainId": 501, + "networkId": 1001, + "icon": "camino", + "explorers": [ + { + "name": "blockexplorer", + "url": "https://suite.camino.network/explorer", + "standard": "none" + } + ] + }, + { + "name": "Double-A Chain Mainnet", + "chain": "AAC", + "rpc": ["https://rpc.acuteangle.com"], + "faucets": [], + "nativeCurrency": { + "name": "Acuteangle Native Token", + "symbol": "AAC", + "decimals": 18 + }, + "infoURL": "https://www.acuteangle.com/", + "shortName": "aac", + "chainId": 512, + "networkId": 512, + "slip44": 1512, + "explorers": [ + { + "name": "aacscan", + "url": "https://scan.acuteangle.com", + "standard": "EIP3091" + } + ], + "icon": "aac" + }, + { + "name": "Double-A Chain Testnet", + "chain": "AAC", + "icon": "aac", + "rpc": ["https://rpc-testnet.acuteangle.com"], + "faucets": ["https://scan-testnet.acuteangle.com/faucet"], + "nativeCurrency": { + "name": "Acuteangle Native Token", + "symbol": "AAC", + "decimals": 18 + }, + "infoURL": "https://www.acuteangle.com/", + "shortName": "aact", + "chainId": 513, + "networkId": 513, + "explorers": [ + { + "name": "aacscan-testnet", + "url": "https://scan-testnet.acuteangle.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Gear Zero Network Mainnet", + "chain": "GearZero", + "rpc": ["https://gzn.linksme.info"], + "faucets": [], + "nativeCurrency": { + "name": "Gear Zero Network Native Token", + "symbol": "GZN", + "decimals": 18 + }, + "infoURL": "https://token.gearzero.ca/mainnet", + "shortName": "gz-mainnet", + "chainId": 516, + "networkId": 516, + "slip44": 516, + "explorers": [] + }, + { + "name": "XT Smart Chain Mainnet", + "chain": "XSC", + "icon": "xsc", + "rpc": [ + "https://datarpc1.xsc.pub", + "https://datarpc2.xsc.pub", + "https://datarpc3.xsc.pub" + ], + "faucets": ["https://xsc.pub/faucet"], + "nativeCurrency": { + "name": "XT Smart Chain Native Token", + "symbol": "XT", + "decimals": 18 + }, + "infoURL": "https://xsc.pub/", + "shortName": "xt", + "chainId": 520, + "networkId": 1024, + "explorers": [ + { "name": "xscscan", "url": "https://xscscan.pub", "standard": "EIP3091" } + ] + }, + { + "name": "Firechain Mainnet", + "chain": "FIRE", + "icon": "firechain", + "rpc": ["https://mainnet.rpc1.thefirechain.com"], + "faucets": [], + "nativeCurrency": { "name": "Firechain", "symbol": "FIRE", "decimals": 18 }, + "infoURL": "https://thefirechain.com", + "shortName": "fire", + "chainId": 529, + "networkId": 529, + "explorers": [], + "status": "incubating" + }, + { + "name": "F(x)Core Mainnet Network", + "chain": "Fxcore", + "rpc": ["https://fx-json-web3.functionx.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "Function X", "symbol": "FX", "decimals": 18 }, + "infoURL": "https://functionx.io/", + "shortName": "FxCore", + "chainId": 530, + "networkId": 530, + "icon": "fxcore", + "explorers": [ + { + "name": "FunctionX Explorer", + "url": "https://fx-evm.functionx.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Candle", + "chain": "Candle", + "rpc": ["https://candle-rpc.com/", "https://rpc.cndlchain.com"], + "faucets": [], + "nativeCurrency": { "name": "CANDLE", "symbol": "CNDL", "decimals": 18 }, + "infoURL": "https://candlelabs.org/", + "shortName": "CNDL", + "chainId": 534, + "networkId": 534, + "slip44": 674, + "explorers": [ + { + "name": "candleexplorer", + "url": "https://candleexplorer.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Vela1 Chain Mainnet", + "chain": "VELA1", + "rpc": ["https://rpc.velaverse.io"], + "faucets": [], + "nativeCurrency": { + "name": "CLASS COIN", + "symbol": "CLASS", + "decimals": 18 + }, + "infoURL": "https://velaverse.io", + "shortName": "CLASS", + "chainId": 555, + "networkId": 555, + "explorers": [ + { + "name": "Vela1 Chain Mainnet Explorer", + "url": "https://exp.velaverse.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Tao Network", + "chain": "TAO", + "rpc": [ + "https://rpc.testnet.tao.network", + "http://rpc.testnet.tao.network:8545", + "https://rpc.tao.network", + "wss://rpc.tao.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Tao", "symbol": "TAO", "decimals": 18 }, + "infoURL": "https://tao.network", + "shortName": "tao", + "chainId": 558, + "networkId": 558 + }, + { + "name": "Dogechain Testnet", + "chain": "DC", + "icon": "dogechain", + "rpc": ["https://rpc-testnet.dogechain.dog"], + "faucets": ["https://faucet.dogechain.dog"], + "nativeCurrency": { "name": "Dogecoin", "symbol": "DOGE", "decimals": 18 }, + "infoURL": "https://dogechain.dog", + "shortName": "dct", + "chainId": 568, + "networkId": 568, + "explorers": [ + { + "name": "dogechain testnet explorer", + "url": "https://explorer-testnet.dogechain.dog", + "standard": "EIP3091" + } + ] + }, + { + "name": "Rollux Mainnet", + "chain": "SYS", + "rpc": ["https://rpc.rollux.com", "wss://rpc.rollux.com/wss"], + "faucets": ["https://rollux.id/faucetapp"], + "nativeCurrency": { "name": "Syscoin", "symbol": "SYS", "decimals": 18 }, + "infoURL": "https://rollux.com", + "shortName": "sys-rollux", + "chainId": 570, + "networkId": 570, + "explorers": [ + { + "name": "Rollux Explorer", + "url": "https://explorer.rollux.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Metis Stardust Testnet", + "chain": "ETH", + "rpc": ["https://stardust.metis.io/?owner=588"], + "faucets": [], + "nativeCurrency": { "name": "tMetis", "symbol": "METIS", "decimals": 18 }, + "infoURL": "https://www.metis.io", + "shortName": "metis-stardust", + "chainId": 588, + "networkId": 588, + "explorers": [ + { + "name": "blockscout", + "url": "https://stardust-explorer.metis.io", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-4", + "bridges": [{ "url": "https://bridge.metis.io" }] + }, + "status": "deprecated" + }, + { + "name": "Astar", + "chain": "ASTR", + "rpc": ["https://rpc.astar.network:8545"], + "faucets": [], + "nativeCurrency": { "name": "Astar", "symbol": "ASTR", "decimals": 18 }, + "infoURL": "https://astar.network/", + "shortName": "astr", + "chainId": 592, + "networkId": 592, + "icon": "astar", + "explorers": [ + { + "name": "subscan", + "url": "https://astar.subscan.io", + "standard": "none", + "icon": "subscan" + } + ] + }, + { + "name": "Acala Mandala Testnet", + "chain": "mACA", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Acala Mandala Token", + "symbol": "mACA", + "decimals": 18 + }, + "infoURL": "https://acala.network", + "shortName": "maca", + "chainId": 595, + "networkId": 595 + }, + { + "name": "Karura Network Testnet", + "chain": "KAR", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Karura Token", + "symbol": "KAR", + "decimals": 18 + }, + "infoURL": "https://karura.network", + "shortName": "tkar", + "chainId": 596, + "networkId": 596, + "slip44": 596 + }, + { + "name": "Acala Network Testnet", + "chain": "ACA", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Acala Token", + "symbol": "ACA", + "decimals": 18 + }, + "infoURL": "https://acala.network", + "shortName": "taca", + "chainId": 597, + "networkId": 597, + "slip44": 597 + }, + { + "name": "Metis Goerli Testnet", + "chain": "ETH", + "rpc": ["https://goerli.gateway.metisdevops.link"], + "faucets": ["https://goerli.faucet.metisdevops.link"], + "nativeCurrency": { + "name": "Goerli Metis", + "symbol": "METIS", + "decimals": 18 + }, + "infoURL": "https://www.metis.io", + "shortName": "metis-goerli", + "chainId": 599, + "networkId": 599, + "explorers": [ + { + "name": "blockscout", + "url": "https://goerli.explorer.metisdevops.link", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-4", + "bridges": [{ "url": "https://testnet-bridge.metis.io" }] + } + }, + { + "name": "Meshnyan testnet", + "chain": "MeshTestChain", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Meshnyan Testnet Native Token", + "symbol": "MESHT", + "decimals": 18 + }, + "infoURL": "", + "shortName": "mesh-chain-testnet", + "chainId": 600, + "networkId": 600 + }, + { + "name": "Graphlinq Blockchain Mainnet", + "chain": "GLQ Blockchain", + "rpc": ["https://glq-dataseed.graphlinq.io"], + "faucets": [], + "nativeCurrency": { "name": "GLQ", "symbol": "GLQ", "decimals": 18 }, + "infoURL": "https://graphlinq.io", + "shortName": "glq", + "chainId": 614, + "networkId": 614, + "explorers": [ + { + "name": "GLQ Explorer", + "url": "https://explorer.graphlinq.io", + "standard": "none" + } + ] + }, + { + "name": "SX Network Testnet", + "chain": "SX", + "icon": "SX", + "rpc": ["https://rpc.toronto.sx.technology"], + "faucets": ["https://faucet.toronto.sx.technology"], + "nativeCurrency": { "name": "SX Network", "symbol": "SX", "decimals": 18 }, + "infoURL": "https://www.sx.technology", + "shortName": "SX-Testnet", + "chainId": 647, + "networkId": 647, + "explorers": [ + { + "name": "SX Network Toronto Explorer", + "url": "https://explorer.toronto.sx.technology", + "standard": "EIP3091" + } + ] + }, + { + "name": "Endurance Smart Chain Mainnet", + "chain": "ACE", + "rpc": ["https://rpc-endurance.fusionist.io/"], + "faucets": [], + "nativeCurrency": { + "name": "Endurance Chain Native Token", + "symbol": "ACE", + "decimals": 18 + }, + "infoURL": "https://ace.fusionist.io/", + "shortName": "ace", + "chainId": 648, + "networkId": 648, + "explorers": [ + { + "name": "Endurance Scan", + "url": "https://explorer.endurance.fusionist.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Pixie Chain Testnet", + "chain": "PixieChain", + "rpc": [ + "https://http-testnet.chain.pixie.xyz", + "wss://ws-testnet.chain.pixie.xyz" + ], + "faucets": ["https://chain.pixie.xyz/faucet"], + "nativeCurrency": { + "name": "Pixie Chain Testnet Native Token", + "symbol": "PCTT", + "decimals": 18 + }, + "infoURL": "https://scan-testnet.chain.pixie.xyz", + "shortName": "pixie-chain-testnet", + "chainId": 666, + "networkId": 666 + }, + { + "name": "Karura Network", + "chain": "KAR", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Karura Token", + "symbol": "KAR", + "decimals": 18 + }, + "infoURL": "https://karura.network", + "shortName": "kar", + "chainId": 686, + "networkId": 686, + "slip44": 686 + }, + { + "name": "Star Social Testnet", + "chain": "SNS", + "rpc": ["https://avastar.cc/ext/bc/C/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Social", "symbol": "SNS", "decimals": 18 }, + "infoURL": "https://info.avastar.cc", + "shortName": "SNS", + "chainId": 700, + "networkId": 700, + "explorers": [ + { + "name": "starscan", + "url": "https://avastar.info", + "standard": "EIP3091" + } + ] + }, + { + "name": "BlockChain Station Mainnet", + "chain": "BCS", + "rpc": ["https://rpc-mainnet.bcsdev.io", "wss://rpc-ws-mainnet.bcsdev.io"], + "faucets": [], + "nativeCurrency": { "name": "BCS Token", "symbol": "BCS", "decimals": 18 }, + "infoURL": "https://blockchainstation.io", + "shortName": "bcs", + "chainId": 707, + "networkId": 707, + "explorers": [ + { + "name": "BlockChain Station Explorer", + "url": "https://explorer.bcsdev.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "BlockChain Station Testnet", + "chain": "BCS", + "rpc": ["https://rpc-testnet.bcsdev.io", "wss://rpc-ws-testnet.bcsdev.io"], + "faucets": ["https://faucet.bcsdev.io"], + "nativeCurrency": { + "name": "BCS Testnet Token", + "symbol": "tBCS", + "decimals": 18 + }, + "infoURL": "https://blockchainstation.io", + "shortName": "tbcs", + "chainId": 708, + "networkId": 708, + "explorers": [ + { + "name": "BlockChain Station Explorer", + "url": "https://testnet.bcsdev.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Shibarium Beta", + "chain": "Shibarium", + "icon": "shibarium", + "rpc": ["https://puppynet.shibrpc.com"], + "faucets": [], + "nativeCurrency": { "name": "BONE", "symbol": "BONE", "decimals": 18 }, + "infoURL": "https://beta.shibariumtech.com", + "shortName": "shibarium", + "chainId": 719, + "networkId": 719, + "explorers": [ + { + "name": "shibscan", + "url": "https://puppyscan.shib.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Lycan Chain", + "chain": "LYC", + "rpc": ["https://rpc.lycanchain.com/"], + "faucets": [], + "nativeCurrency": { "name": "Lycan", "symbol": "LYC", "decimals": 18 }, + "infoURL": "https://lycanchain.com", + "shortName": "LYC", + "chainId": 721, + "networkId": 721, + "icon": "lycanchain", + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.lycanchain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Canto Testnet", + "chain": "Canto Tesnet", + "rpc": ["https://eth.plexnode.wtf/"], + "faucets": [], + "nativeCurrency": { "name": "Canto", "symbol": "CANTO", "decimals": 18 }, + "infoURL": "https://canto.io", + "shortName": "tcanto", + "chainId": 740, + "networkId": 740, + "explorers": [ + { + "name": "Canto Tesnet Explorer (Neobase)", + "url": "https://testnet-explorer.canto.neobase.one", + "standard": "none" + } + ], + "status": "deprecated" + }, + { + "name": "Vention Smart Chain Testnet", + "chain": "VSCT", + "icon": "ventionTestnet", + "rpc": ["https://node-testnet.vention.network"], + "faucets": ["https://faucet.vention.network"], + "nativeCurrency": { "name": "VNT", "symbol": "VNT", "decimals": 18 }, + "infoURL": "https://testnet.ventionscan.io", + "shortName": "vsct", + "chainId": 741, + "networkId": 741, + "explorers": [ + { + "name": "ventionscan", + "url": "https://testnet.ventionscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "QL1", + "chain": "QOM", + "status": "incubating", + "rpc": ["https://rpc.qom.one"], + "faucets": [], + "nativeCurrency": { + "name": "Shiba Predator", + "symbol": "QOM", + "decimals": 18 + }, + "infoURL": "https://qom.one", + "shortName": "qom", + "chainId": 766, + "networkId": 766, + "icon": "qom", + "explorers": [ + { + "name": "QL1 Mainnet Explorer", + "url": "https://mainnet.qom.one", + "icon": "qom", + "standard": "EIP3091" + } + ] + }, + { + "name": "OpenChain Testnet", + "chain": "OpenChain Testnet", + "rpc": [], + "faucets": ["https://faucet.openchain.info/"], + "nativeCurrency": { + "name": "Openchain Testnet", + "symbol": "TOPC", + "decimals": 18 + }, + "infoURL": "https://testnet.openchain.info/", + "shortName": "opc", + "chainId": 776, + "networkId": 776, + "explorers": [ + { + "name": "OPEN CHAIN TESTNET", + "url": "https://testnet.openchain.info", + "standard": "none" + } + ] + }, + { + "name": "cheapETH", + "chain": "cheapETH", + "rpc": ["https://node.cheapeth.org/rpc"], + "faucets": [], + "nativeCurrency": { "name": "cTH", "symbol": "cTH", "decimals": 18 }, + "infoURL": "https://cheapeth.org/", + "shortName": "cth", + "chainId": 777, + "networkId": 777 + }, + { + "name": "MAAL Sharia Chain", + "chain": "MAAL", + "icon": "maal", + "rpc": [ + "https://node1-mainnet.maalscan.io/", + "https://node2-mainnet.maalscan.io/", + "https://node3-mainnet.maalscan.io/" + ], + "faucets": [], + "nativeCurrency": { "name": "MAAL", "symbol": "MAAL", "decimals": 18 }, + "infoURL": "https://www.maalblockchain.com/", + "shortName": "maal", + "chainId": 786, + "networkId": 786, + "explorers": [ + { + "name": "maalscan", + "url": "https://maalscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Acala Network", + "chain": "ACA", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Acala Token", + "symbol": "ACA", + "decimals": 18 + }, + "infoURL": "https://acala.network", + "shortName": "aca", + "chainId": 787, + "networkId": 787, + "slip44": 787 + }, + { + "name": "Aerochain Testnet", + "chain": "Aerochain", + "rpc": ["https://testnet-rpc.aerochain.id/"], + "faucets": ["https://faucet.aerochain.id/"], + "nativeCurrency": { + "name": "Aerochain Testnet", + "symbol": "TAero", + "decimals": 18 + }, + "infoURL": "https://aerochaincoin.org/", + "shortName": "taero", + "chainId": 788, + "networkId": 788, + "explorers": [ + { + "name": "aeroscan", + "url": "https://testnet.aeroscan.id", + "standard": "EIP3091" + } + ] + }, + { + "name": "Patex", + "chain": "ETH", + "rpc": ["https://rpc.patex.io/"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://patex.io/", + "shortName": "peth", + "chainId": 789, + "networkId": 789 + }, + { + "name": "Lucid Blockchain", + "chain": "Lucid", + "icon": "lucid", + "rpc": ["https://rpc.lucidcoin.io"], + "faucets": ["https://faucet.lucidcoin.io"], + "nativeCurrency": { "name": "LUCID", "symbol": "LUCID", "decimals": 18 }, + "infoURL": "https://lucidcoin.io", + "shortName": "LUCID", + "chainId": 800, + "networkId": 800, + "explorers": [ + { + "name": "Lucid Explorer", + "url": "https://explorer.lucidcoin.io", + "standard": "none" + } + ] + }, + { + "name": "Haic", + "chain": "Haic", + "rpc": ["https://orig.haichain.io/"], + "faucets": [], + "nativeCurrency": { "name": "Haicoin", "symbol": "HAIC", "decimals": 18 }, + "infoURL": "https://www.haichain.io/", + "shortName": "haic", + "chainId": 803, + "networkId": 803 + }, + { + "name": "Portal Fantasy Chain Test", + "chain": "PF", + "icon": "pf", + "rpc": ["https://subnets.avax.network/portal-fantasy/testnet/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "Portal Fantasy Token", + "symbol": "PFT", + "decimals": 18 + }, + "infoURL": "https://portalfantasy.io", + "shortName": "PFTEST", + "chainId": 808, + "networkId": 808, + "explorers": [] + }, + { + "name": "Qitmeer", + "chain": "MEER", + "rpc": [ + "https://evm-dataseed1.meerscan.io", + "https://evm-dataseed2.meerscan.io", + "https://evm-dataseed3.meerscan.io", + "https://evm-dataseed.meerscan.com", + "https://evm-dataseed1.meerscan.com", + "https://evm-dataseed2.meerscan.com" + ], + "faucets": [], + "nativeCurrency": { "name": "Qitmeer", "symbol": "MEER", "decimals": 18 }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "meer", + "chainId": 813, + "networkId": 813, + "slip44": 813, + "icon": "meer", + "explorers": [ + { + "name": "meerscan", + "icon": "meer", + "url": "https://evm.meerscan.com", + "standard": "none" + } + ] + }, + { + "name": "BeOne Chain Mainnet", + "chain": "BOC", + "icon": "beonechain", + "rpc": [ + "https://dataseed1.beonechain.com", + "https://dataseed2.beonechain.com", + "https://dataseed-us1.beonechain.com", + "https://dataseed-us2.beonechain.com", + "https://dataseed-uk1.beonechain.com", + "https://dataseed-uk2.beonechain.com" + ], + "faucets": [], + "nativeCurrency": { + "name": "BeOne Chain Mainnet", + "symbol": "BOC", + "decimals": 18 + }, + "infoURL": "https://beonechain.com", + "shortName": "BOC", + "chainId": 818, + "networkId": 818, + "slip44": 8181, + "explorers": [ + { + "name": "BeOne Chain Mainnet", + "url": "https://beonescan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Callisto Mainnet", + "chain": "CLO", + "rpc": ["https://rpc.callisto.network/"], + "faucets": [], + "nativeCurrency": { "name": "Callisto", "symbol": "CLO", "decimals": 18 }, + "infoURL": "https://callisto.network", + "shortName": "clo", + "chainId": 820, + "networkId": 1, + "slip44": 820 + }, + { + "name": "Callisto Testnet Deprecated", + "chain": "CLO", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Callisto Testnet Ether", + "symbol": "TCLO", + "decimals": 18 + }, + "infoURL": "https://callisto.network", + "shortName": "tclo", + "chainId": 821, + "networkId": 2, + "status": "deprecated" + }, + { + "name": "Taraxa Mainnet", + "chain": "Tara", + "icon": "taraxa", + "rpc": ["https://rpc.mainnet.taraxa.io/"], + "faucets": [], + "nativeCurrency": { "name": "Tara", "symbol": "TARA", "decimals": 18 }, + "infoURL": "https://taraxa.io", + "shortName": "tara", + "chainId": 841, + "networkId": 841, + "explorers": [ + { + "name": "Taraxa Explorer", + "url": "https://explorer.mainnet.taraxa.io", + "standard": "none" + } + ] + }, + { + "name": "Taraxa Testnet", + "chain": "Tara", + "icon": "taraxa", + "rpc": ["https://rpc.testnet.taraxa.io/"], + "faucets": [], + "nativeCurrency": { "name": "Tara", "symbol": "TARA", "decimals": 18 }, + "infoURL": "https://taraxa.io", + "shortName": "taratest", + "chainId": 842, + "networkId": 842, + "explorers": [ + { + "name": "Taraxa Explorer", + "url": "https://explorer.testnet.taraxa.io", + "standard": "none" + } + ] + }, + { + "name": "Zeeth Chain Dev", + "chain": "ZeethChainDev", + "rpc": ["https://rpc.dev.zeeth.io"], + "faucets": [], + "nativeCurrency": { + "name": "Zeeth Token", + "symbol": "ZTH", + "decimals": 18 + }, + "infoURL": "", + "shortName": "zeethdev", + "chainId": 859, + "networkId": 859, + "explorers": [ + { + "name": "Zeeth Explorer Dev", + "url": "https://explorer.dev.zeeth.io", + "standard": "none" + } + ] + }, + { + "name": "Fantasia Chain Mainnet", + "chain": "FSC", + "rpc": [ + "https://mainnet-data1.fantasiachain.com/", + "https://mainnet-data2.fantasiachain.com/", + "https://mainnet-data3.fantasiachain.com/" + ], + "faucets": [], + "nativeCurrency": { "name": "FST", "symbol": "FST", "decimals": 18 }, + "infoURL": "https://fantasia.technology/", + "shortName": "FSCMainnet", + "chainId": 868, + "networkId": 868, + "explorers": [ + { + "name": "FSCScan", + "url": "https://explorer.fantasiachain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bandai Namco Research Verse Mainnet", + "chain": "Bandai Namco Research Verse", + "icon": "bnken", + "rpc": ["https://rpc.main.oasvrs.bnken.net"], + "faucets": [], + "nativeCurrency": { "name": "OAS", "symbol": "OAS", "decimals": 18 }, + "infoURL": "https://www.bandainamco-mirai.com/en/", + "shortName": "BNKEN", + "chainId": 876, + "networkId": 876, + "explorers": [ + { + "name": "Bandai Namco Research Verse Explorer", + "url": "https://explorer.main.oasvrs.bnken.net", + "standard": "EIP3091" + } + ], + "parent": { "type": "L2", "chain": "eip155-248" } + }, + { + "name": "Dexit Network", + "chain": "DXT", + "rpc": ["https://dxt.dexit.network"], + "faucets": ["https://faucet.dexit.network"], + "nativeCurrency": { + "name": "Dexit network", + "symbol": "DXT", + "decimals": 18 + }, + "infoURL": "https://dexit.network", + "shortName": "DXT", + "chainId": 877, + "networkId": 877, + "explorers": [ + { "name": "dxtscan", "url": "https://dxtscan.com", "standard": "EIP3091" } + ] + }, + { + "name": "Ambros Chain Mainnet", + "chain": "ambroschain", + "rpc": ["https://api.ambros.network"], + "faucets": [], + "nativeCurrency": { "name": "AMBROS", "symbol": "AMBROS", "decimals": 18 }, + "infoURL": "https://ambros.network", + "shortName": "ambros", + "chainId": 880, + "networkId": 880, + "explorers": [ + { + "name": "Ambros Chain Explorer", + "url": "https://ambrosscan.com", + "standard": "none" + } + ] + }, + { + "name": "Wanchain", + "chain": "WAN", + "rpc": ["https://gwan-ssl.wandevs.org:56891/"], + "faucets": [], + "nativeCurrency": { "name": "Wancoin", "symbol": "WAN", "decimals": 18 }, + "infoURL": "https://www.wanscan.org", + "shortName": "wan", + "chainId": 888, + "networkId": 888, + "slip44": 5718350 + }, + { + "name": "Garizon Testnet Stage0", + "chain": "GAR", + "icon": "garizon", + "rpc": ["https://s0-testnet.garizon.net/rpc"], + "faucets": ["https://faucet-testnet.garizon.com"], + "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, + "infoURL": "https://garizon.com", + "shortName": "gar-test-s0", + "chainId": 900, + "networkId": 900, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer-testnet.garizon.com", + "icon": "garizon", + "standard": "EIP3091" + } + ] + }, + { + "name": "Garizon Testnet Stage1", + "chain": "GAR", + "icon": "garizon", + "rpc": ["https://s1-testnet.garizon.net/rpc"], + "faucets": ["https://faucet-testnet.garizon.com"], + "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, + "infoURL": "https://garizon.com", + "shortName": "gar-test-s1", + "chainId": 901, + "networkId": 901, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer-testnet.garizon.com", + "icon": "garizon", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-900", "type": "shard" } + }, + { + "name": "Garizon Testnet Stage2", + "chain": "GAR", + "icon": "garizon", + "rpc": ["https://s2-testnet.garizon.net/rpc"], + "faucets": ["https://faucet-testnet.garizon.com"], + "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, + "infoURL": "https://garizon.com", + "shortName": "gar-test-s2", + "chainId": 902, + "networkId": 902, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer-testnet.garizon.com", + "icon": "garizon", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-900", "type": "shard" } + }, + { + "name": "Garizon Testnet Stage3", + "chain": "GAR", + "icon": "garizon", + "rpc": ["https://s3-testnet.garizon.net/rpc"], + "faucets": ["https://faucet-testnet.garizon.com"], + "nativeCurrency": { "name": "Garizon", "symbol": "GAR", "decimals": 18 }, + "infoURL": "https://garizon.com", + "shortName": "gar-test-s3", + "chainId": 903, + "networkId": 903, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer-testnet.garizon.com", + "icon": "garizon", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-900", "type": "shard" } + }, + { + "name": "Portal Fantasy Chain", + "chain": "PF", + "icon": "pf", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Portal Fantasy Token", + "symbol": "PFT", + "decimals": 18 + }, + "infoURL": "https://portalfantasy.io", + "shortName": "PF", + "chainId": 909, + "networkId": 909, + "explorers": [], + "status": "incubating" + }, + { + "name": "DecentraBone Layer1 Testnet", + "chain": "DBONE", + "rpc": ["https://layer1test.decentrabone.com"], + "faucets": [], + "nativeCurrency": { + "name": "DecentraBone", + "symbol": "DBONE", + "decimals": 18 + }, + "infoURL": "https://decentrabone.com", + "shortName": "DBONE", + "chainId": 910, + "networkId": 910 + }, + { + "name": "Rinia Testnet", + "chain": "FIRE", + "icon": "rinia", + "rpc": ["https://rinia.rpc1.thefirechain.com"], + "faucets": ["https://faucet.thefirechain.com"], + "nativeCurrency": { "name": "Firechain", "symbol": "FIRE", "decimals": 18 }, + "infoURL": "https://thefirechain.com", + "shortName": "tfire", + "chainId": 917, + "networkId": 917, + "explorers": [], + "status": "incubating" + }, + { + "name": "PulseChain Testnet", + "shortName": "tpls", + "chain": "tPLS", + "chainId": 940, + "networkId": 940, + "infoURL": "https://pulsechain.com/", + "rpc": [ + "https://rpc.v2.testnet.pulsechain.com/", + "wss://rpc.v2.testnet.pulsechain.com/" + ], + "faucets": ["https://faucet.v2.testnet.pulsechain.com/"], + "status": "deprecated", + "nativeCurrency": { "name": "Test Pulse", "symbol": "tPLS", "decimals": 18 } + }, + { + "name": "PulseChain Testnet v2b", + "shortName": "t2bpls", + "chain": "t2bPLS", + "chainId": 941, + "networkId": 941, + "infoURL": "https://pulsechain.com/", + "rpc": [ + "https://rpc.v2b.testnet.pulsechain.com/", + "wss://rpc.v2b.testnet.pulsechain.com/" + ], + "faucets": ["https://faucet.v2b.testnet.pulsechain.com/"], + "status": "deprecated", + "nativeCurrency": { "name": "Test Pulse", "symbol": "tPLS", "decimals": 18 } + }, + { + "name": "PulseChain Testnet v3", + "shortName": "t3pls", + "chain": "t3PLS", + "chainId": 942, + "networkId": 942, + "infoURL": "https://pulsechain.com/", + "rpc": [ + "https://rpc.v3.testnet.pulsechain.com/", + "wss://rpc.v3.testnet.pulsechain.com/" + ], + "faucets": ["https://faucet.v3.testnet.pulsechain.com/"], + "nativeCurrency": { "name": "Test Pulse", "symbol": "tPLS", "decimals": 18 } + }, + { + "name": "PulseChain Testnet v4", + "shortName": "t4pls", + "chain": "t4PLS", + "chainId": 943, + "networkId": 943, + "icon": "pulsechain", + "infoURL": "https://pulsechain.com", + "rpc": [ + "https://rpc.v4.testnet.pulsechain.com/", + "wss://rpc.v4.testnet.pulsechain.com/" + ], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": ["https://faucet.v4.testnet.pulsechain.com/"], + "ens": { "registry": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" }, + "status": "incubating", + "explorers": [], + "nativeCurrency": { "name": "Test Pulse", "symbol": "tPLS", "decimals": 18 } + }, + { + "name": "muNode Testnet", + "chain": "munode", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://munode.dev/", + "shortName": "munode", + "chainId": 956, + "networkId": 956 + }, + { + "name": "Oort Mainnet", + "chain": "Oort Mainnet", + "rpc": ["https://rpc.oortech.com"], + "faucets": [], + "nativeCurrency": { "name": "Oort", "symbol": "CCN", "decimals": 18 }, + "infoURL": "https://oortech.com", + "shortName": "ccn", + "chainId": 970, + "networkId": 970, + "icon": "ccn" + }, + { + "name": "Oort Huygens", + "chain": "Huygens", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Oort", "symbol": "CCN", "decimals": 18 }, + "infoURL": "https://oortech.com", + "shortName": "Huygens", + "chainId": 971, + "networkId": 971, + "icon": "ccn" + }, + { + "name": "Oort Ascraeus", + "title": "Oort Ascraeus", + "chain": "Ascraeus", + "rpc": ["https://ascraeus-rpc.oortech.com"], + "faucets": [], + "nativeCurrency": { "name": "Oort", "symbol": "CCNA", "decimals": 18 }, + "infoURL": "https://oortech.com", + "shortName": "Ascraeus", + "chainId": 972, + "networkId": 972, + "icon": "ccn" + }, + { + "name": "Nepal Blockchain Network", + "chain": "YETI", + "rpc": [ + "https://api.nepalblockchain.dev", + "https://api.nepalblockchain.network" + ], + "faucets": ["https://faucet.nepalblockchain.network"], + "nativeCurrency": { + "name": "Nepal Blockchain Network Ether", + "symbol": "YETI", + "decimals": 18 + }, + "infoURL": "https://nepalblockchain.network", + "shortName": "yeti", + "chainId": 977, + "networkId": 977 + }, + { + "name": "TOP Mainnet EVM", + "chain": "TOP", + "icon": "top", + "rpc": ["https://ethapi.topnetwork.org"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://www.topnetwork.org/", + "shortName": "top_evm", + "chainId": 980, + "networkId": 0, + "explorers": [ + { + "name": "topscan.dev", + "url": "https://www.topscan.io", + "standard": "none" + } + ] + }, + { + "name": "Memo Smart Chain Mainnet", + "chain": "MEMO", + "rpc": [ + "https://chain.metamemo.one:8501", + "wss://chain.metamemo.one:16801" + ], + "faucets": ["https://faucet.metamemo.one/"], + "nativeCurrency": { "name": "Memo", "symbol": "CMEMO", "decimals": 18 }, + "infoURL": "www.memolabs.org", + "shortName": "memochain", + "chainId": 985, + "networkId": 985, + "icon": "memo", + "explorers": [ + { + "name": "Memo Mainnet Explorer", + "url": "https://scan.metamemo.one:8080", + "icon": "memo", + "standard": "EIP3091" + } + ] + }, + { + "name": "TOP Mainnet", + "chain": "TOP", + "icon": "top", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "TOP", "symbol": "TOP", "decimals": 6 }, + "infoURL": "https://www.topnetwork.org/", + "shortName": "top", + "chainId": 989, + "networkId": 0, + "explorers": [ + { + "name": "topscan.dev", + "url": "https://www.topscan.io", + "standard": "none" + } + ] + }, + { + "name": "5ireChain Thunder", + "chain": "5ireChain", + "rpc": ["https://rpc-testnet.5ire.network"], + "faucets": ["https://explorer.5ire.network/faucet"], + "nativeCurrency": { + "name": "5ire Token", + "symbol": "5ire", + "decimals": 18 + }, + "infoURL": "https://5ire.org", + "shortName": "5ire", + "chainId": 997, + "networkId": 997, + "icon": "5ireChain", + "explorers": [ + { + "name": "5ireChain Explorer", + "url": "https://explorer.5ire.network", + "standard": "none", + "icon": "5ireChain" + } + ] + }, + { + "name": "Lucky Network", + "chain": "LN", + "rpc": [ + "https://rpc.luckynetwork.org", + "wss://ws.lnscan.org", + "https://rpc.lnscan.org" + ], + "faucets": [], + "nativeCurrency": { "name": "Lucky", "symbol": "L99", "decimals": 18 }, + "infoURL": "https://luckynetwork.org", + "shortName": "ln", + "chainId": 998, + "networkId": 998, + "icon": "lucky", + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.luckynetwork.org", + "standard": "none" + }, + { "name": "expedition", "url": "https://lnscan.org", "standard": "none" } + ] + }, + { + "name": "Wanchain Testnet", + "chain": "WAN", + "rpc": ["https://gwan-ssl.wandevs.org:46891/"], + "faucets": [], + "nativeCurrency": { "name": "Wancoin", "symbol": "WAN", "decimals": 18 }, + "infoURL": "https://testnet.wanscan.org", + "shortName": "twan", + "chainId": 999, + "networkId": 999 + }, + { + "name": "GTON Mainnet", + "chain": "GTON", + "rpc": ["https://rpc.gton.network/"], + "faucets": [], + "nativeCurrency": { "name": "GCD", "symbol": "GCD", "decimals": 18 }, + "infoURL": "https://gton.capital", + "shortName": "gton", + "chainId": 1000, + "networkId": 1000, + "explorers": [ + { + "name": "GTON Network Explorer", + "url": "https://explorer.gton.network", + "standard": "EIP3091" + } + ], + "parent": { "type": "L2", "chain": "eip155-1" } + }, + { + "name": "Klaytn Testnet Baobab", + "chain": "KLAY", + "rpc": ["https://api.baobab.klaytn.net:8651"], + "faucets": ["https://baobab.wallet.klaytn.com/access?next=faucet"], + "nativeCurrency": { "name": "KLAY", "symbol": "KLAY", "decimals": 18 }, + "infoURL": "https://www.klaytn.com/", + "shortName": "Baobab", + "chainId": 1001, + "networkId": 1001 + }, + { + "name": "T-EKTA", + "title": "EKTA Testnet T-EKTA", + "chain": "T-EKTA", + "rpc": ["https://test.ekta.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "T-EKTA", "symbol": "T-EKTA", "decimals": 18 }, + "infoURL": "https://www.ekta.io", + "shortName": "t-ekta", + "chainId": 1004, + "networkId": 1004, + "icon": "ekta", + "explorers": [ + { + "name": "test-ektascan", + "url": "https://test.ektascan.io", + "icon": "ekta", + "standard": "EIP3091" + } + ] + }, + { + "name": "Newton Testnet", + "chain": "NEW", + "rpc": ["https://rpc1.newchain.newtonproject.org"], + "faucets": [], + "nativeCurrency": { "name": "Newton", "symbol": "NEW", "decimals": 18 }, + "infoURL": "https://www.newtonproject.org/", + "shortName": "tnew", + "chainId": 1007, + "networkId": 1007 + }, + { + "name": "Eurus Mainnet", + "chain": "EUN", + "rpc": ["https://mainnet.eurus.network/"], + "faucets": [], + "nativeCurrency": { "name": "Eurus", "symbol": "EUN", "decimals": 18 }, + "infoURL": "https://eurus.network", + "shortName": "eun", + "chainId": 1008, + "networkId": 1008, + "icon": "eurus", + "explorers": [ + { + "name": "eurusexplorer", + "url": "https://explorer.eurus.network", + "icon": "eurus", + "standard": "none" + } + ] + }, + { + "name": "Evrice Network", + "chain": "EVC", + "rpc": ["https://meta.evrice.com"], + "faucets": [], + "nativeCurrency": { "name": "Evrice", "symbol": "EVC", "decimals": 18 }, + "infoURL": "https://evrice.com", + "shortName": "EVC", + "chainId": 1010, + "networkId": 1010, + "slip44": 1020 + }, + { + "name": "Newton", + "chain": "NEW", + "rpc": ["https://global.rpc.mainnet.newtonproject.org"], + "faucets": [], + "nativeCurrency": { "name": "Newton", "symbol": "NEW", "decimals": 18 }, + "infoURL": "https://www.newtonproject.org/", + "shortName": "new", + "chainId": 1012, + "networkId": 1012 + }, + { + "name": "Sakura", + "chain": "Sakura", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Sakura", "symbol": "SKU", "decimals": 18 }, + "infoURL": "https://clover.finance/sakura", + "shortName": "sku", + "chainId": 1022, + "networkId": 1022 + }, + { + "name": "Clover Testnet", + "chain": "Clover", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Clover", "symbol": "CLV", "decimals": 18 }, + "infoURL": "https://clover.finance", + "shortName": "tclv", + "chainId": 1023, + "networkId": 1023 + }, + { + "name": "CLV Parachain", + "chain": "CLV", + "rpc": ["https://api-para.clover.finance"], + "faucets": [], + "nativeCurrency": { "name": "CLV", "symbol": "CLV", "decimals": 18 }, + "infoURL": "https://clv.org", + "shortName": "clv", + "chainId": 1024, + "networkId": 1024 + }, + { + "name": "BitTorrent Chain Testnet", + "chain": "BTTC", + "rpc": ["https://testrpc.bittorrentchain.io/"], + "faucets": [], + "nativeCurrency": { "name": "BitTorrent", "symbol": "BTT", "decimals": 18 }, + "infoURL": "https://bittorrentchain.io/", + "shortName": "tbtt", + "chainId": 1028, + "networkId": 1028, + "explorers": [ + { + "name": "testbttcscan", + "url": "https://testscan.bittorrentchain.io", + "standard": "none" + } + ] + }, + { + "name": "Conflux eSpace", + "chain": "Conflux", + "rpc": ["https://evm.confluxrpc.com"], + "faucets": [], + "nativeCurrency": { "name": "CFX", "symbol": "CFX", "decimals": 18 }, + "infoURL": "https://confluxnetwork.org", + "shortName": "cfx", + "chainId": 1030, + "networkId": 1030, + "icon": "conflux", + "explorers": [ + { + "name": "Conflux Scan", + "url": "https://evm.confluxscan.net", + "standard": "none" + } + ] + }, + { + "name": "Proxy Network Testnet", + "chain": "Proxy Network", + "rpc": ["http://128.199.94.183:8041"], + "faucets": [], + "nativeCurrency": { "name": "PRX", "symbol": "PRX", "decimals": 18 }, + "infoURL": "https://theproxy.network", + "shortName": "prx", + "chainId": 1031, + "networkId": 1031, + "explorers": [ + { + "name": "proxy network testnet", + "url": "http://testnet-explorer.theproxy.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bronos Testnet", + "chain": "Bronos", + "rpc": ["https://evm-testnet.bronos.org"], + "faucets": ["https://faucet.bronos.org"], + "nativeCurrency": { "name": "tBRO", "symbol": "tBRO", "decimals": 18 }, + "infoURL": "https://bronos.org", + "shortName": "bronos-testnet", + "chainId": 1038, + "networkId": 1038, + "icon": "bronos", + "explorers": [ + { + "name": "Bronos Testnet Explorer", + "url": "https://tbroscan.bronos.org", + "standard": "none", + "icon": "bronos" + } + ] + }, + { + "name": "Bronos Mainnet", + "chain": "Bronos", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "BRO", "symbol": "BRO", "decimals": 18 }, + "infoURL": "https://bronos.org", + "shortName": "bronos-mainnet", + "chainId": 1039, + "networkId": 1039, + "icon": "bronos", + "explorers": [ + { + "name": "Bronos Explorer", + "url": "https://broscan.bronos.org", + "standard": "none", + "icon": "bronos" + } + ] + }, + { + "name": "ShimmerEVM Testnet", + "title": "ShimmerEVM Testnet", + "chain": "ShimmerEVM", + "icon": "shimmerevm", + "rpc": ["https://json-rpc.evm.testnet.shimmer.network"], + "faucets": [ + "https://evm-toolkit.evm.testnet.shimmer.network", + "https://evm-faucet.testnet.shimmer.network" + ], + "nativeCurrency": { "name": "SMR", "symbol": "SMR", "decimals": 18 }, + "infoURL": "https://shimmer.network", + "shortName": "shimmerevm-testnet", + "chainId": 1071, + "networkId": 1071, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.evm.testnet.shimmer.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Metis Andromeda Mainnet", + "chain": "ETH", + "rpc": ["https://andromeda.metis.io/?owner=1088"], + "faucets": [], + "nativeCurrency": { "name": "Metis", "symbol": "METIS", "decimals": 18 }, + "infoURL": "https://www.metis.io", + "shortName": "metis-andromeda", + "chainId": 1088, + "networkId": 1088, + "explorers": [ + { + "name": "blockscout", + "url": "https://andromeda-explorer.metis.io", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://bridge.metis.io" }] + } + }, + { + "name": "MOAC mainnet", + "chain": "MOAC", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "MOAC", "symbol": "mc", "decimals": 18 }, + "infoURL": "https://moac.io", + "shortName": "moac", + "chainId": 1099, + "networkId": 1099, + "slip44": 314, + "explorers": [ + { + "name": "moac explorer", + "url": "https://explorer.moac.io", + "standard": "none" + } + ] + }, + { + "name": "Polygon zkEVM", + "title": "Polygon zkEVM", + "chain": "Polygon", + "rpc": ["https://zkevm-rpc.com"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://polygon.technology/polygon-zkevm", + "shortName": "zkevm", + "chainId": 1101, + "networkId": 1101, + "icon": "zkevm", + "explorers": [ + { + "name": "blockscout", + "url": "https://zkevm.polygonscan.com", + "icon": "zkevm", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://bridge.zkevm-rpc.com" }] + } + }, + { + "name": "WEMIX3.0 Mainnet", + "chain": "WEMIX", + "rpc": ["https://api.wemix.com", "wss://ws.wemix.com"], + "faucets": [], + "nativeCurrency": { "name": "WEMIX", "symbol": "WEMIX", "decimals": 18 }, + "infoURL": "https://wemix.com", + "shortName": "wemix", + "chainId": 1111, + "networkId": 1111, + "explorers": [ + { + "name": "WEMIX Block Explorer", + "url": "https://explorer.wemix.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "WEMIX3.0 Testnet", + "chain": "TWEMIX", + "rpc": ["https://api.test.wemix.com", "wss://ws.test.wemix.com"], + "faucets": ["https://wallet.test.wemix.com/faucet"], + "nativeCurrency": { + "name": "TestnetWEMIX", + "symbol": "tWEMIX", + "decimals": 18 + }, + "infoURL": "https://wemix.com", + "shortName": "twemix", + "chainId": 1112, + "networkId": 1112, + "explorers": [ + { + "name": "WEMIX Testnet Microscope", + "url": "https://microscope.test.wemix.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Core Blockchain Testnet", + "chain": "Core", + "icon": "core", + "rpc": ["https://rpc.test.btcs.network/"], + "faucets": ["https://scan.test.btcs.network/faucet"], + "nativeCurrency": { + "name": "Core Blockchain Testnet Native Token", + "symbol": "tCORE", + "decimals": 18 + }, + "infoURL": "https://www.coredao.org", + "shortName": "tcore", + "chainId": 1115, + "networkId": 1115, + "explorers": [ + { + "name": "Core Scan Testnet", + "url": "https://scan.test.btcs.network", + "icon": "core", + "standard": "EIP3091" + } + ] + }, + { + "name": "Core Blockchain Mainnet", + "chain": "Core", + "icon": "core", + "rpc": ["https://rpc.coredao.org/", "https://rpc-core.icecreamswap.com"], + "faucets": [], + "nativeCurrency": { + "name": "Core Blockchain Native Token", + "symbol": "CORE", + "decimals": 18 + }, + "infoURL": "https://www.coredao.org", + "shortName": "core", + "chainId": 1116, + "networkId": 1116, + "explorers": [ + { + "name": "Core Scan", + "url": "https://scan.coredao.org", + "icon": "core", + "standard": "EIP3091" + } + ] + }, + { + "name": "Dogcoin Mainnet", + "chain": "DOGS", + "icon": "dogs", + "rpc": ["https://mainnet-rpc.dogcoin.me"], + "faucets": ["https://faucet.dogcoin.network"], + "nativeCurrency": { "name": "Dogcoin", "symbol": "DOGS", "decimals": 18 }, + "infoURL": "https://dogcoin.network", + "shortName": "DOGSm", + "chainId": 1117, + "networkId": 1117, + "explorers": [ + { + "name": "Dogcoin", + "url": "https://explorer.dogcoin.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "DeFiChain EVM Network Mainnet", + "chain": "defichain-evm", + "status": "incubating", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "DeFiChain", "symbol": "DFI", "decimals": 18 }, + "infoURL": "https://meta.defichain.com/", + "shortName": "DFI", + "chainId": 1130, + "networkId": 1130, + "slip44": 1130, + "icon": "defichain-network", + "explorers": [] + }, + { + "name": "DeFiChain EVM Network Testnet", + "chain": "defichain-evm-testnet", + "status": "incubating", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "DeFiChain", "symbol": "DFI", "decimals": 18 }, + "infoURL": "https://meta.defichain.com/", + "shortName": "DFI-T", + "chainId": 1131, + "networkId": 1131, + "icon": "defichain-network", + "explorers": [] + }, + { + "name": "AmStar Testnet", + "chain": "AmStar", + "icon": "amstar", + "rpc": ["https://testnet-rpc.amstarscan.com"], + "faucets": [], + "nativeCurrency": { "name": "SINSO", "symbol": "SINSO", "decimals": 18 }, + "infoURL": "https://sinso.io", + "shortName": "ASARt", + "chainId": 1138, + "networkId": 1138, + "explorers": [ + { + "name": "amstarscan-testnet", + "url": "https://testnet.amstarscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "MathChain", + "chain": "MATH", + "rpc": [ + "https://mathchain-asia.maiziqianbao.net/rpc", + "https://mathchain-us.maiziqianbao.net/rpc" + ], + "faucets": [], + "nativeCurrency": { "name": "MathChain", "symbol": "MATH", "decimals": 18 }, + "infoURL": "https://mathchain.org", + "shortName": "MATH", + "chainId": 1139, + "networkId": 1139 + }, + { + "name": "MathChain Testnet", + "chain": "MATH", + "rpc": ["https://galois-hk.maiziqianbao.net/rpc"], + "faucets": ["https://scan.boka.network/#/Galois/faucet"], + "nativeCurrency": { "name": "MathChain", "symbol": "MATH", "decimals": 18 }, + "infoURL": "https://mathchain.org", + "shortName": "tMATH", + "chainId": 1140, + "networkId": 1140 + }, + { + "name": "Symplexia Smart Chain", + "chain": "Plexchain", + "rpc": ["https://plex-rpc.plexfinance.us"], + "faucets": [], + "nativeCurrency": { + "name": "Plex Native Token", + "symbol": "PLEX", + "decimals": 18 + }, + "infoURL": "https://plexfinance.us/", + "shortName": "Plexchain", + "chainId": 1149, + "networkId": 1149, + "icon": "plexchain", + "explorers": [ + { + "name": "Plexchain Explorer", + "url": "https://explorer.plexfinance.us", + "icon": "plexchain", + "standard": "EIP3091" + } + ] + }, + { + "name": "Origin Testnet", + "chain": "Origin", + "rpc": ["https://json-rpc.origin.uptick.network"], + "faucets": [], + "nativeCurrency": { "name": "Origin", "symbol": "UOC", "decimals": 18 }, + "infoURL": "https://www.uptick.network", + "shortName": "auoc", + "chainId": 1170, + "networkId": 1170, + "icon": "origin", + "explorers": [ + { + "name": "Origin Explorer", + "url": "https://evm-explorer.origin.uptick.network", + "icon": "origin", + "standard": "none" + } + ] + }, + { + "name": "Smart Host Teknoloji TESTNET", + "chain": "SHT", + "rpc": ["https://s2.tl.web.tr:4041"], + "faucets": [], + "nativeCurrency": { + "name": "Smart Host Teknoloji TESTNET", + "symbol": "tSHT", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://smart-host.com.tr", + "shortName": "sht", + "chainId": 1177, + "networkId": 1177, + "icon": "smarthost", + "explorers": [ + { + "name": "Smart Host Teknoloji TESTNET Explorer", + "url": "https://s2.tl.web.tr:4000", + "icon": "smarthost", + "standard": "EIP3091" + } + ] + }, + { + "name": "Iora Chain", + "chain": "IORA", + "icon": "iorachain", + "rpc": ["https://dataseed.iorachain.com"], + "faucets": [], + "nativeCurrency": { "name": "Iora", "symbol": "IORA", "decimals": 18 }, + "infoURL": "https://iorachain.com", + "shortName": "iora", + "chainId": 1197, + "networkId": 1197, + "explorers": [ + { + "name": "ioraexplorer", + "url": "https://explorer.iorachain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Evanesco Testnet", + "chain": "Evanesco Testnet", + "rpc": ["https://seed5.evanesco.org:8547"], + "faucets": [], + "nativeCurrency": { "name": "AVIS", "symbol": "AVIS", "decimals": 18 }, + "infoURL": "https://evanesco.org/", + "shortName": "avis", + "chainId": 1201, + "networkId": 1201 + }, + { + "name": "World Trade Technical Chain Mainnet", + "chain": "WTT", + "rpc": ["https://rpc.cadaut.com", "wss://rpc.cadaut.com/ws"], + "faucets": [], + "nativeCurrency": { + "name": "World Trade Token", + "symbol": "WTT", + "decimals": 18 + }, + "infoURL": "http://www.cadaut.com", + "shortName": "wtt", + "chainId": 1202, + "networkId": 2048, + "explorers": [ + { + "name": "WTTScout", + "url": "https://explorer.cadaut.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Popcateum Mainnet", + "chain": "POPCATEUM", + "rpc": ["https://dataseed.popcateum.org"], + "faucets": [], + "nativeCurrency": { "name": "Popcat", "symbol": "POP", "decimals": 18 }, + "infoURL": "https://popcateum.org", + "shortName": "popcat", + "chainId": 1213, + "networkId": 1213, + "explorers": [ + { + "name": "popcateum explorer", + "url": "https://explorer.popcateum.org", + "standard": "none" + } + ] + }, + { + "name": "EnterChain Mainnet", + "chain": "ENTER", + "rpc": ["https://tapi.entercoin.net/"], + "faucets": [], + "nativeCurrency": { + "name": "EnterCoin", + "symbol": "ENTER", + "decimals": 18 + }, + "infoURL": "https://entercoin.net", + "shortName": "enter", + "chainId": 1214, + "networkId": 1214, + "icon": "enter", + "explorers": [ + { + "name": "Enter Explorer - Expenter", + "url": "https://explorer.entercoin.net", + "icon": "enter", + "standard": "EIP3091" + } + ] + }, + { + "name": "Exzo Network Mainnet", + "chain": "EXZO", + "icon": "exzo", + "rpc": ["https://mainnet.exzo.technology"], + "faucets": [], + "nativeCurrency": { "name": "Exzo", "symbol": "XZO", "decimals": 18 }, + "infoURL": "https://exzo.network", + "shortName": "xzo", + "chainId": 1229, + "networkId": 1229, + "explorers": [ + { + "name": "blockscout", + "url": "https://exzoscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ultron Testnet", + "chain": "Ultron", + "icon": "ultron", + "rpc": ["https://ultron-dev.io"], + "faucets": [], + "nativeCurrency": { "name": "Ultron", "symbol": "ULX", "decimals": 18 }, + "infoURL": "https://ultron.foundation", + "shortName": "UltronTestnet", + "chainId": 1230, + "networkId": 1230, + "explorers": [ + { + "name": "Ultron Testnet Explorer", + "url": "https://explorer.ultron-dev.io", + "icon": "ultron", + "standard": "none" + } + ] + }, + { + "name": "Ultron Mainnet", + "chain": "Ultron", + "icon": "ultron", + "rpc": ["https://ultron-rpc.net"], + "faucets": [], + "nativeCurrency": { "name": "Ultron", "symbol": "ULX", "decimals": 18 }, + "infoURL": "https://ultron.foundation", + "shortName": "UtronMainnet", + "chainId": 1231, + "networkId": 1231, + "explorers": [ + { + "name": "Ultron Explorer", + "url": "https://ulxscan.com", + "icon": "ultron", + "standard": "none" + } + ] + }, + { + "name": "Step Network", + "title": "Step Main Network", + "chain": "STEP", + "icon": "step", + "rpc": ["https://rpc.step.network"], + "faucets": [], + "nativeCurrency": { "name": "FITFI", "symbol": "FITFI", "decimals": 18 }, + "infoURL": "https://step.network", + "shortName": "step", + "chainId": 1234, + "networkId": 1234, + "explorers": [ + { + "name": "StepScan", + "url": "https://stepscan.io", + "icon": "step", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-43114", + "bridges": [{ "url": "https://bridge.step.network" }] + } + }, + { + "name": "ARC Mainnet", + "chain": "ARC", + "icon": "arc", + "rpc": ["https://rpc-main-1.archiechain.io"], + "faucets": [], + "nativeCurrency": { "name": "ARC", "symbol": "ARC", "decimals": 18 }, + "infoURL": "https://archiechain.io/", + "shortName": "ARC", + "chainId": 1243, + "networkId": 1243, + "explorers": [ + { + "name": "archiescan", + "url": "https://app.archiescan.io", + "standard": "none" + } + ] + }, + { + "name": "ARC Testnet", + "chain": "ARC", + "icon": "arc", + "rpc": ["https://rpc-test-1.archiechain.io"], + "faucets": ["https://faucet.archiechain.io"], + "nativeCurrency": { "name": "ARC", "symbol": "ARC", "decimals": 18 }, + "infoURL": "https://archiechain.io/", + "shortName": "TARC", + "chainId": 1244, + "networkId": 1244, + "explorers": [ + { + "name": "archiescan", + "url": "https://testnet.archiescan.io", + "standard": "none" + } + ] + }, + { + "name": "OM Platform Mainnet", + "chain": "omplatform", + "rpc": ["https://rpc-cnx.omplatform.com/"], + "faucets": [], + "nativeCurrency": { "name": "OMCOIN", "symbol": "OM", "decimals": 18 }, + "infoURL": "https://omplatform.com/", + "shortName": "om", + "chainId": 1246, + "networkId": 1246, + "explorers": [ + { + "name": "OMSCAN - Expenter", + "url": "https://omscan.omplatform.com", + "standard": "none" + } + ] + }, + { + "name": "CIC Chain Testnet", + "chain": "CICT", + "rpc": ["https://testapi.cicscan.com"], + "faucets": ["https://cicfaucet.com"], + "nativeCurrency": { + "name": "Crazy Internet Coin", + "symbol": "CICT", + "decimals": 18 + }, + "infoURL": "https://www.cicchain.net", + "shortName": "CICT", + "chainId": 1252, + "networkId": 1252, + "icon": "cicchain", + "explorers": [ + { + "name": "CICscan", + "url": "https://testnet.cicscan.com", + "icon": "cicchain", + "standard": "EIP3091" + } + ] + }, + { + "name": "HALO Mainnet", + "chain": "HALO", + "rpc": ["https://nodes.halo.land"], + "faucets": [], + "nativeCurrency": { "name": "HALO", "symbol": "HO", "decimals": 18 }, + "infoURL": "https://halo.land/#/", + "shortName": "HO", + "chainId": 1280, + "networkId": 1280, + "explorers": [ + { + "name": "HALOexplorer", + "url": "https://browser.halo.land", + "standard": "none" + } + ] + }, + { + "name": "Moonbeam", + "chain": "MOON", + "rpc": [ + "https://rpc.api.moonbeam.network", + "wss://wss.api.moonbeam.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Glimmer", "symbol": "GLMR", "decimals": 18 }, + "infoURL": "https://moonbeam.network/networks/moonbeam/", + "shortName": "mbeam", + "chainId": 1284, + "networkId": 1284, + "explorers": [ + { + "name": "moonscan", + "url": "https://moonbeam.moonscan.io", + "standard": "none" + } + ] + }, + { + "name": "Moonriver", + "chain": "MOON", + "rpc": [ + "https://rpc.api.moonriver.moonbeam.network", + "wss://wss.api.moonriver.moonbeam.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Moonriver", "symbol": "MOVR", "decimals": 18 }, + "infoURL": "https://moonbeam.network/networks/moonriver/", + "shortName": "mriver", + "chainId": 1285, + "networkId": 1285, + "explorers": [ + { + "name": "moonscan", + "url": "https://moonriver.moonscan.io", + "standard": "none" + } + ] + }, + { + "name": "Moonrock old", + "chain": "MOON", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Rocs", "symbol": "ROC", "decimals": 18 }, + "infoURL": "", + "shortName": "mrock-old", + "chainId": 1286, + "networkId": 1286, + "status": "deprecated" + }, + { + "name": "Moonbase Alpha", + "chain": "MOON", + "rpc": [ + "https://rpc.api.moonbase.moonbeam.network", + "wss://wss.api.moonbase.moonbeam.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Dev", "symbol": "DEV", "decimals": 18 }, + "infoURL": "https://docs.moonbeam.network/networks/testnet/", + "shortName": "mbase", + "chainId": 1287, + "networkId": 1287, + "explorers": [ + { + "name": "moonscan", + "url": "https://moonbase.moonscan.io", + "standard": "none" + } + ] + }, + { + "name": "Moonrock", + "chain": "MOON", + "rpc": [ + "https://rpc.api.moonrock.moonbeam.network", + "wss://wss.api.moonrock.moonbeam.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Rocs", "symbol": "ROC", "decimals": 18 }, + "infoURL": "https://docs.moonbeam.network/learn/platform/networks/overview/", + "shortName": "mrock", + "chainId": 1288, + "networkId": 1288 + }, + { + "name": "Bobabeam", + "chain": "Bobabeam", + "rpc": [ + "https://bobabeam.boba.network", + "wss://wss.bobabeam.boba.network", + "https://replica.bobabeam.boba.network", + "wss://replica-wss.bobabeam.boba.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "Bobabeam", + "chainId": 1294, + "networkId": 1294, + "explorers": [ + { + "name": "Bobabeam block explorer", + "url": "https://blockexplorer.bobabeam.boba.network", + "standard": "none" + } + ] + }, + { + "name": "Bobabase Testnet", + "chain": "Bobabase Testnet", + "rpc": [ + "https://bobabase.boba.network", + "wss://wss.bobabase.boba.network", + "https://replica.bobabase.boba.network", + "wss://replica-wss.bobabase.boba.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "Bobabase", + "chainId": 1297, + "networkId": 1297, + "explorers": [ + { + "name": "Bobabase block explorer", + "url": "https://blockexplorer.bobabase.boba.network", + "standard": "none" + } + ] + }, + { + "name": "Dos Fuji Subnet", + "chain": "DOS", + "rpc": ["https://test.doschain.com/jsonrpc"], + "faucets": [], + "nativeCurrency": { + "name": "Dos Native Token", + "symbol": "DOS", + "decimals": 18 + }, + "infoURL": "http://doschain.io/", + "shortName": "TDOS", + "chainId": 1311, + "networkId": 1311, + "explorers": [ + { + "name": "dos-testnet", + "url": "https://test.doscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Alyx Mainnet", + "chain": "ALYX", + "rpc": ["https://rpc.alyxchain.com"], + "faucets": [], + "nativeCurrency": { + "name": "Alyx Chain Native Token", + "symbol": "ALYX", + "decimals": 18 + }, + "infoURL": "https://www.alyxchain.com", + "shortName": "alyx", + "chainId": 1314, + "networkId": 1314, + "explorers": [ + { + "name": "alyxscan", + "url": "https://www.alyxscan.com", + "standard": "EIP3091" + } + ], + "icon": "alyx" + }, + { + "name": "Aitd Mainnet", + "chain": "AITD", + "icon": "aitd", + "rpc": ["https://walletrpc.aitd.io", "https://node.aitd.io"], + "faucets": [], + "nativeCurrency": { + "name": "AITD Mainnet", + "symbol": "AITD", + "decimals": 18 + }, + "infoURL": "https://www.aitd.io/", + "shortName": "aitd", + "chainId": 1319, + "networkId": 1319, + "explorers": [ + { + "name": "AITD Chain Explorer Mainnet", + "url": "https://aitd-explorer-new.aitd.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Aitd Testnet", + "chain": "AITD", + "icon": "aitd", + "rpc": ["http://http-testnet.aitd.io"], + "faucets": ["https://aitd-faucet-pre.aitdcoin.com/"], + "nativeCurrency": { + "name": "AITD Testnet", + "symbol": "AITD", + "decimals": 18 + }, + "infoURL": "https://www.aitd.io/", + "shortName": "aitdtestnet", + "chainId": 1320, + "networkId": 1320, + "explorers": [ + { + "name": "AITD Chain Explorer Testnet", + "url": "https://block-explorer-testnet.aitd.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Geth Testnet", + "title": "Go Ethereum (Geth) Private Testnet", + "chain": "ETH", + "rpc": ["http://127.0.0.1:8545"], + "faucets": [], + "nativeCurrency": { + "name": "Geth Testnet Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://geth.ethereum.org", + "shortName": "geth", + "chainId": 1337, + "networkId": 1337 + }, + { + "name": "Elysium Testnet", + "title": "An L1, carbon-neutral, tree-planting, metaverse dedicated blockchain created by VulcanForged", + "chain": "Elysium", + "rpc": ["https://elysium-test-rpc.vulcanforged.com"], + "faucets": [], + "nativeCurrency": { "name": "LAVA", "symbol": "LAVA", "decimals": 18 }, + "infoURL": "https://elysiumscan.vulcanforged.com", + "shortName": "ELST", + "chainId": 1338, + "networkId": 1338, + "explorers": [ + { + "name": "Elysium testnet explorer", + "url": "https://elysium-explorer.vulcanforged.com", + "standard": "none" + } + ] + }, + { + "name": "Elysium Mainnet", + "title": "An L1, carbon-neutral, tree-planting, metaverse dedicated blockchain created by VulcanForged", + "chain": "Elysium", + "rpc": ["https://rpc.elysiumchain.tech/"], + "faucets": [], + "nativeCurrency": { "name": "LAVA", "symbol": "LAVA", "decimals": 18 }, + "infoURL": "https://elysiumscan.vulcanforged.com", + "shortName": "ELSM", + "chainId": 1339, + "networkId": 1339, + "explorers": [ + { + "name": "Elysium mainnet explorer", + "url": "https://explorer.elysiumchain.tech", + "standard": "none" + } + ] + }, + { + "name": "CIC Chain Mainnet", + "chain": "CIC", + "rpc": ["https://xapi.cicscan.com"], + "faucets": [], + "nativeCurrency": { + "name": "Crazy Internet Coin", + "symbol": "CIC", + "decimals": 18 + }, + "infoURL": "https://www.cicchain.net", + "shortName": "CIC", + "chainId": 1353, + "networkId": 1353, + "icon": "cicchain", + "explorers": [ + { + "name": "CICscan", + "url": "https://cicscan.com", + "icon": "cicchain", + "standard": "EIP3091" + } + ] + }, + { + "name": "Zafirium Mainnet", + "chain": "ZAFIC", + "icon": "zafirium", + "rpc": ["https://mainnet.zakumi.io"], + "faucets": [], + "nativeCurrency": { + "name": "Zakumi Chain Native Token", + "symbol": "ZAFIC", + "decimals": 18 + }, + "infoURL": "https://www.zakumi.io", + "shortName": "zafic", + "chainId": 1369, + "networkId": 1369, + "explorers": [ + { + "name": "zafirium-explorer", + "url": "https://explorer.zakumi.io", + "standard": "none" + } + ] + }, + { + "name": "AmStar Mainnet", + "chain": "AmStar", + "icon": "amstar", + "rpc": ["https://mainnet-rpc.amstarscan.com"], + "faucets": [], + "nativeCurrency": { "name": "SINSO", "symbol": "SINSO", "decimals": 18 }, + "infoURL": "https://sinso.io", + "shortName": "ASAR", + "chainId": 1388, + "networkId": 1388, + "explorers": [ + { + "name": "amstarscan", + "url": "https://mainnet.amstarscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Joseon Mainnet", + "chain": "Joseon", + "icon": "joseon", + "rpc": ["https://rpc.modchain.net/blockchain.joseon.com/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Joseon Mun", "symbol": "JSM", "decimals": 18 }, + "infoURL": "https://www.joseon.com/", + "shortName": "mun", + "chainId": 1392, + "networkId": 1392, + "explorers": [ + { + "name": "BlockExplorer", + "url": "https://www.blockexplorer.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Polygon zkEVM Testnet old", + "title": "Polygon zkEVM Testnet", + "chain": "Polygon", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://polygon.technology/solutions/polygon-zkevm/", + "shortName": "zkevmtest", + "chainId": 1402, + "networkId": 1402, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.public.zkevm-test.net", + "standard": "EIP3091" + } + ], + "status": "deprecated" + }, + { + "name": "Polygon zkEVM Testnet Pre Audit-Upgraded", + "title": "Polygon zkEVM Testnet Pre Audit-Upgraded", + "chain": "Polygon", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://polygon.technology/solutions/polygon-zkevm/", + "shortName": "testnet-zkEVM-mango-pre-audit-upgraded", + "chainId": 1422, + "networkId": 1422, + "explorers": [ + { + "name": "Polygon zkEVM explorer", + "url": "https://explorer.public.zkevm-test.net", + "standard": "EIP3091" + } + ], + "status": "deprecated" + }, + { + "name": "Rikeza Network Mainnet", + "title": "Rikeza Network Mainnet", + "chain": "Rikeza", + "icon": "rikeza", + "rpc": ["https://rpc.rikscan.com"], + "faucets": [], + "nativeCurrency": { "name": "Rikeza", "symbol": "RIK", "decimals": 18 }, + "infoURL": "https://rikeza.io", + "shortName": "RIK", + "chainId": 1433, + "networkId": 1433, + "explorers": [ + { + "name": "Rikeza Blockchain explorer", + "url": "https://rikscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Living Assets Mainnet", + "chain": "LAS", + "icon": "livingassets", + "rpc": [ + "https://beta.mainnet.livingassets.io/rpc", + "https://gamma.mainnet.livingassets.io/rpc" + ], + "faucets": [], + "nativeCurrency": { "name": "LAS", "symbol": "LAS", "decimals": 18 }, + "infoURL": "https://dev.livingassets.io/", + "shortName": "LAS", + "chainId": 1440, + "networkId": 1440 + }, + { + "name": "Polygon zkEVM Testnet", + "title": "Polygon zkEVM Testnet", + "chain": "Polygon", + "rpc": ["https://rpc.public.zkevm-test.net"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://polygon.technology/solutions/polygon-zkevm/", + "shortName": "testnet-zkEVM-mango", + "chainId": 1442, + "networkId": 1442, + "explorers": [ + { + "name": "Polygon zkEVM explorer", + "url": "https://explorer.public.zkevm-test.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "GIL Testnet", + "chain": "GIL", + "icon": "gauss", + "rpc": ["https://rpc.giltestnet.com"], + "faucets": [], + "nativeCurrency": { "name": "GANG", "symbol": "GANG", "decimals": 18 }, + "infoURL": "https://gaussgang.com/", + "shortName": "gil", + "chainId": 1452, + "networkId": 1452, + "explorers": [ + { + "name": "GIL Explorer", + "url": "https://explorer.giltestnet.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ctex Scan Blockchain", + "chain": "Ctex Scan Blockchain", + "icon": "ctex", + "rpc": ["https://mainnet-rpc.ctexscan.com/"], + "faucets": ["https://faucet.ctexscan.com"], + "nativeCurrency": { "name": "CTEX", "symbol": "CTEX", "decimals": 18 }, + "infoURL": "https://ctextoken.io", + "shortName": "CTEX", + "chainId": 1455, + "networkId": 1455, + "explorers": [ + { + "name": "Ctex Scan Explorer", + "url": "https://ctexscan.com", + "standard": "none" + } + ] + }, + { + "name": "ChainX-EVM", + "chain": "ChainX", + "rpc": [ + "https://mainnet.chainx.org/rpc", + "https://mainnet2.chainx.org/rpc" + ], + "faucets": [], + "nativeCurrency": { "name": "BTC", "symbol": "BTC", "decimals": 18 }, + "infoURL": "https://chainx.org", + "shortName": "chainx", + "chainId": 1501, + "networkId": 1501, + "explorers": [ + { + "name": "chainx-evm scan", + "url": "https://evm.chainx.org", + "standard": "none" + } + ] + }, + { + "name": "Sherpax Mainnet", + "chain": "Sherpax Mainnet", + "rpc": ["https://mainnet.sherpax.io/rpc"], + "faucets": [], + "nativeCurrency": { "name": "KSX", "symbol": "KSX", "decimals": 18 }, + "infoURL": "https://sherpax.io/", + "shortName": "Sherpax", + "chainId": 1506, + "networkId": 1506, + "explorers": [ + { + "name": "Sherpax Mainnet Explorer", + "url": "https://evm.sherpax.io", + "standard": "none" + } + ] + }, + { + "name": "Sherpax Testnet", + "chain": "Sherpax Testnet", + "rpc": ["https://sherpax-testnet.chainx.org/rpc"], + "faucets": [], + "nativeCurrency": { "name": "KSX", "symbol": "KSX", "decimals": 18 }, + "infoURL": "https://sherpax.io/", + "shortName": "SherpaxTestnet", + "chainId": 1507, + "networkId": 1507, + "explorers": [ + { + "name": "Sherpax Testnet Explorer", + "url": "https://evm-pre.sherpax.io", + "standard": "none" + } + ] + }, + { + "name": "Beagle Messaging Chain", + "chain": "BMC", + "rpc": ["https://beagle.chat/eth"], + "faucets": ["https://faucet.beagle.chat/"], + "nativeCurrency": { "name": "Beagle", "symbol": "BG", "decimals": 18 }, + "infoURL": "https://beagle.chat/", + "shortName": "beagle", + "chainId": 1515, + "networkId": 1515, + "explorers": [ + { + "name": "Beagle Messaging Chain Explorer", + "url": "https://eth.beagle.chat", + "standard": "EIP3091" + } + ] + }, + { + "name": "Tenet", + "title": "Tenet Mainnet", + "chain": "TENET", + "icon": "tenet", + "rpc": ["https://rpc.tenet.org"], + "faucets": [], + "nativeCurrency": { "name": "TENET", "symbol": "TENET", "decimals": 18 }, + "infoURL": "https://tenet.org/", + "shortName": "tenet", + "chainId": 1559, + "networkId": 1559, + "explorers": [ + { + "name": "TenetScan Mainnet", + "url": "https://tenetscan.io", + "icon": "tenet", + "standard": "EIP3091" + } + ] + }, + { + "name": "Catecoin Chain Mainnet", + "chain": "Catechain", + "rpc": ["https://send.catechain.com"], + "faucets": [], + "nativeCurrency": { "name": "Catecoin", "symbol": "CATE", "decimals": 18 }, + "infoURL": "https://catechain.com", + "shortName": "cate", + "chainId": 1618, + "networkId": 1618 + }, + { + "name": "Atheios", + "chain": "ATH", + "rpc": ["https://wallet.atheios.com:8797"], + "faucets": [], + "nativeCurrency": { + "name": "Atheios Ether", + "symbol": "ATH", + "decimals": 18 + }, + "infoURL": "https://atheios.com", + "shortName": "ath", + "chainId": 1620, + "networkId": 11235813, + "slip44": 1620 + }, + { + "name": "Btachain", + "chain": "btachain", + "rpc": ["https://dataseed1.btachain.com/"], + "faucets": [], + "nativeCurrency": { + "name": "Bitcoin Asset", + "symbol": "BTA", + "decimals": 18 + }, + "infoURL": "https://bitcoinasset.io/", + "shortName": "bta", + "chainId": 1657, + "networkId": 1657 + }, + { + "name": "Horizen Yuma Testnet", + "shortName": "Yuma", + "chain": "Yuma", + "icon": "eon", + "rpc": ["https://yuma-testnet.horizenlabs.io/ethv1"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": ["https://yuma-testnet-faucet.horizen.io"], + "nativeCurrency": { + "name": "Testnet Zen", + "symbol": "tZEN", + "decimals": 18 + }, + "infoURL": "https://horizen.io/", + "chainId": 1662, + "networkId": 1662, + "slip44": 121, + "explorers": [ + { + "name": "Yuma Testnet Block Explorer", + "url": "https://yuma-explorer.horizen.io", + "icon": "eon", + "standard": "EIP3091" + } + ] + }, + { + "name": "Horizen Gobi Testnet", + "shortName": "Gobi", + "chain": "Gobi", + "icon": "eon", + "rpc": ["https://gobi-testnet.horizenlabs.io/ethv1"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": ["https://faucet.horizen.io"], + "nativeCurrency": { + "name": "Testnet Zen", + "symbol": "tZEN", + "decimals": 18 + }, + "infoURL": "https://horizen.io/", + "chainId": 1663, + "networkId": 1663, + "slip44": 121, + "explorers": [ + { + "name": "Gobi Testnet Block Explorer", + "url": "https://gobi-explorer.horizen.io", + "icon": "eon", + "standard": "EIP3091" + } + ] + }, + { + "name": "LUDAN Mainnet", + "chain": "LUDAN", + "rpc": ["https://rpc.ludan.org/"], + "faucets": [], + "nativeCurrency": { "name": "LUDAN", "symbol": "LUDAN", "decimals": 18 }, + "infoURL": "https://www.ludan.org/", + "shortName": "LUDAN", + "icon": "ludan", + "chainId": 1688, + "networkId": 1688 + }, + { + "name": "Anytype EVM Chain", + "chain": "ETH", + "icon": "any", + "rpc": ["https://geth.anytype.io"], + "faucets": ["https://evm.anytype.io/faucet"], + "nativeCurrency": { "name": "ANY", "symbol": "ANY", "decimals": 18 }, + "infoURL": "https://evm.anytype.io", + "shortName": "AnytypeChain", + "chainId": 1701, + "networkId": 1701, + "explorers": [ + { + "name": "Anytype Explorer", + "url": "https://explorer.anytype.io", + "icon": "any", + "standard": "EIP3091" + } + ] + }, + { + "name": "TBSI Mainnet", + "title": "Thai Blockchain Service Infrastructure Mainnet", + "chain": "TBSI", + "rpc": ["https://rpc.blockchain.or.th"], + "faucets": [], + "nativeCurrency": { "name": "Jinda", "symbol": "JINDA", "decimals": 18 }, + "infoURL": "https://blockchain.or.th", + "shortName": "TBSI", + "chainId": 1707, + "networkId": 1707 + }, + { + "name": "TBSI Testnet", + "title": "Thai Blockchain Service Infrastructure Testnet", + "chain": "TBSI", + "rpc": ["https://rpc.testnet.blockchain.or.th"], + "faucets": ["https://faucet.blockchain.or.th"], + "nativeCurrency": { "name": "Jinda", "symbol": "JINDA", "decimals": 18 }, + "infoURL": "https://blockchain.or.th", + "shortName": "tTBSI", + "chainId": 1708, + "networkId": 1708 + }, + { + "name": "Palette Chain Mainnet", + "chain": "PLT", + "rpc": ["https://palette-rpc.com:22000"], + "faucets": [], + "nativeCurrency": { + "name": "Palette Token", + "symbol": "PLT", + "decimals": 18 + }, + "features": [], + "infoURL": "https://hashpalette.com/", + "shortName": "PCM", + "chainId": 1718, + "networkId": 1718, + "icon": "PLT", + "explorers": [ + { + "name": "Palettescan", + "url": "https://palettescan.com", + "icon": "PLT", + "standard": "none" + } + ] + }, + { + "name": "PartyChain", + "chain": "mainnet", + "rpc": ["https://tea.mining4people.com/rpc", "http://172.104.194.36:8545"], + "faucets": [], + "nativeCurrency": { "name": "Grams", "symbol": "GRAMS", "decimals": 18 }, + "infoURL": "TeaPartyCrypto.com", + "shortName": "TeaParty", + "chainId": 1773, + "networkId": 1773, + "icon": "grams", + "status": "incubating", + "explorers": [ + { + "name": "PartyExplorer", + "url": "https://partyexplorer.co", + "icon": "grams", + "standard": "EIP3091" + } + ] + }, + { + "name": "Gauss Mainnet", + "chain": "Gauss", + "icon": "gauss", + "rpc": ["https://rpc.gaussgang.com"], + "faucets": [], + "nativeCurrency": { "name": "GANG", "symbol": "GANG", "decimals": 18 }, + "infoURL": "https://gaussgang.com/", + "shortName": "gauss", + "chainId": 1777, + "networkId": 1777, + "explorers": [ + { + "name": "Gauss Explorer", + "url": "https://explorer.gaussgang.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Kerleano", + "title": "Proof of Climate awaReness testnet", + "chain": "CRC", + "status": "active", + "rpc": [ + "https://cacib-saturn-test.francecentral.cloudapp.azure.com", + "wss://cacib-saturn-test.francecentral.cloudapp.azure.com:9443" + ], + "faucets": [ + "https://github.com/ethereum-pocr/kerleano/blob/main/docs/faucet.md" + ], + "nativeCurrency": { + "name": "Climate awaReness Coin", + "symbol": "CRC", + "decimals": 18 + }, + "infoURL": "https://github.com/ethereum-pocr/kerleano", + "shortName": "kerleano", + "chainId": 1804, + "networkId": 1804, + "icon": "pocr", + "explorers": [ + { + "name": "Lite Explorer", + "url": "https://ethereum-pocr.github.io/explorer/kerleano", + "icon": "pocr", + "standard": "EIP3091" + } + ] + }, + { + "name": "Rabbit Analog Testnet Chain", + "chain": "rAna", + "icon": "rabbit", + "rpc": ["https://rabbit.analog-rpc.com"], + "faucets": ["https://analogfaucet.com"], + "nativeCurrency": { + "name": "Rabbit Analog Test Chain Native Token ", + "symbol": "rAna", + "decimals": 18 + }, + "infoURL": "https://rabbit.analogscan.com", + "shortName": "rAna", + "chainId": 1807, + "networkId": 1807, + "explorers": [ + { + "name": "blockscout", + "url": "https://rabbit.analogscan.com", + "standard": "none" + } + ] + }, + { + "name": "Cube Chain Mainnet", + "chain": "Cube", + "icon": "cube", + "rpc": [ + "https://http-mainnet.cube.network", + "wss://ws-mainnet.cube.network", + "https://http-mainnet-sg.cube.network", + "wss://ws-mainnet-sg.cube.network", + "https://http-mainnet-us.cube.network", + "wss://ws-mainnet-us.cube.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Cube Chain Native Token", + "symbol": "CUBE", + "decimals": 18 + }, + "infoURL": "https://www.cube.network", + "shortName": "cube", + "chainId": 1818, + "networkId": 1818, + "slip44": 1818, + "explorers": [ + { + "name": "cube-scan", + "url": "https://cubescan.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Cube Chain Testnet", + "chain": "Cube", + "icon": "cube", + "rpc": [ + "https://http-testnet.cube.network", + "wss://ws-testnet.cube.network", + "https://http-testnet-sg.cube.network", + "wss://ws-testnet-sg.cube.network", + "https://http-testnet-jp.cube.network", + "wss://ws-testnet-jp.cube.network", + "https://http-testnet-us.cube.network", + "wss://ws-testnet-us.cube.network" + ], + "faucets": ["https://faucet.cube.network"], + "nativeCurrency": { + "name": "Cube Chain Test Native Token", + "symbol": "CUBET", + "decimals": 18 + }, + "infoURL": "https://www.cube.network", + "shortName": "cubet", + "chainId": 1819, + "networkId": 1819, + "slip44": 1819, + "explorers": [ + { + "name": "cubetest-scan", + "url": "https://testnet.cubescan.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Teslafunds", + "chain": "TSF", + "rpc": ["https://tsfapi.europool.me"], + "faucets": [], + "nativeCurrency": { + "name": "Teslafunds Ether", + "symbol": "TSF", + "decimals": 18 + }, + "infoURL": "https://teslafunds.io", + "shortName": "tsf", + "chainId": 1856, + "networkId": 1 + }, + { + "name": "Gitshock Cartenz Testnet", + "chain": "Gitshock Cartenz", + "icon": "gitshockchain", + "rpc": ["https://rpc.cartenz.works"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { + "name": "Gitshock Cartenz", + "symbol": "tGTFX", + "decimals": 18 + }, + "infoURL": "https://gitshock.com", + "shortName": "gitshockchain", + "chainId": 1881, + "networkId": 1881, + "explorers": [ + { + "name": "blockscout", + "url": "https://scan.cartenz.works", + "standard": "EIP3091" + } + ] + }, + { + "name": "Lightlink Phoenix Mainnet", + "chain": "Lightlink Phoenix Mainnet", + "icon": "lightlink", + "rpc": [ + "https://replicator-01.phoenix.lightlink.io/rpc/v1", + "https://replicator-02.phoenix.lightlink.io/rpc/v1" + ], + "features": [{ "name": "EIP155" }], + "faucets": [], + "nativeCurrency": { "name": "Ethereum", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://lightlink.io", + "shortName": "lightlink_phoenix", + "chainId": 1890, + "networkId": 1890, + "explorers": [ + { + "name": "phoenix", + "url": "https://phoenix.lightlink.io", + "icon": "lightlink", + "standard": "EIP3091" + } + ] + }, + { + "name": "Lightlink Pegasus Testnet", + "chain": "Lightlink Pegasus Testnet", + "icon": "lightlink", + "rpc": [ + "https://replicator-01.pegasus.lightlink.io/rpc/v1", + "https://replicator-02.pegasus.lightlink.io/rpc/v1" + ], + "features": [{ "name": "EIP155" }], + "faucets": ["https://pegasus-faucet-react.vercel.app"], + "nativeCurrency": { "name": "Ethereum", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://lightlink.io", + "shortName": "lightlink_pegasus", + "chainId": 1891, + "networkId": 1891, + "explorers": [ + { + "name": "pegasus", + "url": "https://pegasus.lightlink.io", + "icon": "lightlink", + "standard": "EIP3091" + } + ] + }, + { + "name": "BON Network", + "chain": "BON", + "rpc": ["http://rpc.boyanet.org:8545", "ws://rpc.boyanet.org:8546"], + "faucets": [], + "nativeCurrency": { "name": "BOYACoin", "symbol": "BOY", "decimals": 18 }, + "infoURL": "https://boyanet.org", + "shortName": "boya", + "chainId": 1898, + "networkId": 1, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.boyanet.org:4001", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bitcichain Mainnet", + "chain": "BITCI", + "icon": "bitci", + "rpc": ["https://rpc.bitci.com"], + "faucets": [], + "nativeCurrency": { "name": "Bitci", "symbol": "BITCI", "decimals": 18 }, + "infoURL": "https://www.bitcichain.com", + "shortName": "bitci", + "chainId": 1907, + "networkId": 1907, + "explorers": [ + { + "name": "Bitci Explorer", + "url": "https://bitciexplorer.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bitcichain Testnet", + "chain": "TBITCI", + "icon": "bitci", + "rpc": ["https://testnet.bitcichain.com"], + "faucets": ["https://faucet.bitcichain.com"], + "nativeCurrency": { + "name": "Test Bitci", + "symbol": "TBITCI", + "decimals": 18 + }, + "infoURL": "https://www.bitcichain.com", + "shortName": "tbitci", + "chainId": 1908, + "networkId": 1908, + "explorers": [ + { + "name": "Bitci Explorer Testnet", + "url": "https://testnet.bitciexplorer.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "ONUS Chain Testnet", + "title": "ONUS Chain Testnet", + "chain": "onus", + "rpc": ["https://rpc-testnet.onuschain.io"], + "faucets": [], + "nativeCurrency": { "name": "ONUS", "symbol": "ONUS", "decimals": 18 }, + "infoURL": "https://onuschain.io", + "shortName": "onus-testnet", + "chainId": 1945, + "networkId": 1945, + "explorers": [ + { + "name": "Onus explorer testnet", + "url": "https://explorer-testnet.onuschain.io", + "icon": "onus", + "standard": "EIP3091" + } + ] + }, + { + "name": "D-Chain Mainnet", + "chain": "D-Chain", + "rpc": [ + "https://mainnet.d-chain.network/ext/bc/2ZiR1Bro5E59siVuwdNuRFzqL95NkvkbzyLBdrsYR9BLSHV7H4/rpc" + ], + "nativeCurrency": { "name": "DOINX", "symbol": "DOINX", "decimals": 18 }, + "shortName": "dchain-mainnet", + "chainId": 1951, + "networkId": 1951, + "icon": "dchain", + "faucets": [], + "infoURL": "" + }, + { + "name": "Dexilla Testnet", + "chain": "Dexilla", + "rpc": ["https://rpc.dexilla.com"], + "faucets": [], + "icon": "dxz", + "nativeCurrency": { + "name": "Dexilla Native Token", + "symbol": "DXZ", + "decimals": 18 + }, + "infoURL": "https://dexilla.com", + "shortName": "Dexilla", + "chainId": 1954, + "networkId": 1954, + "explorers": [ + { + "name": "dos-mainnet", + "url": "https://exp.dexilla.com", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-11155111", + "bridges": [{ "url": "https://bridge.dexilla.com" }] + } + }, + { + "name": "Eleanor", + "title": "Metatime Testnet Eleanor", + "chain": "MTC", + "rpc": [ + "https://rpc.metatime.com/eleanor", + "wss://ws.metatime.com/eleanor" + ], + "faucets": ["https://faucet.metatime.com/eleanor"], + "nativeCurrency": { + "name": "Eleanor Metacoin", + "symbol": "MTC", + "decimals": 18 + }, + "infoURL": "https://eleanor.metatime.com", + "shortName": "mtc", + "chainId": 1967, + "networkId": 1967, + "explorers": [ + { + "name": "metaexplorer-eleanor", + "url": "https://explorer.metatime.com/eleanor", + "standard": "EIP3091" + } + ] + }, + { + "name": "Super Smart Chain Testnet", + "chain": "TSCS", + "rpc": ["https://testnetrpc.scschain.com"], + "faucets": ["https://testnet.scschain.com"], + "nativeCurrency": { + "name": "Super Chain Native Token", + "symbol": "TSCS", + "decimals": 18 + }, + "infoURL": "https://testnet.scschain.com", + "shortName": "tscs", + "chainId": 1969, + "networkId": 1969, + "icon": "super", + "explorers": [ + { + "name": "blockscout", + "url": "https://testnetscan.scschain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Super Smart Chain Mainnet", + "chain": "SCS", + "rpc": ["https://rpc.scschain.com"], + "faucets": [], + "nativeCurrency": { + "name": "Super Chain Native Token", + "symbol": "SCS", + "decimals": 18 + }, + "infoURL": "https://scschain.com", + "shortName": "scs", + "chainId": 1970, + "networkId": 1970, + "icon": "super", + "explorers": [ + { + "name": "blockscout", + "url": "https://scan.scschain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Atelier", + "title": "Atelier Test Network", + "chain": "ALTR", + "rpc": ["https://1971.network/atlr", "wss://1971.network/atlr"], + "faucets": [], + "nativeCurrency": { "name": "ATLR", "symbol": "ATLR", "decimals": 18 }, + "infoURL": "https://1971.network/", + "shortName": "atlr", + "chainId": 1971, + "networkId": 1971, + "icon": "atlr" + }, + { + "name": "ONUS Chain Mainnet", + "title": "ONUS Chain Mainnet", + "chain": "onus", + "rpc": ["https://rpc.onuschain.io", "wss://ws.onuschain.io"], + "faucets": [], + "nativeCurrency": { "name": "ONUS", "symbol": "ONUS", "decimals": 18 }, + "infoURL": "https://onuschain.io", + "shortName": "onus-mainnet", + "chainId": 1975, + "networkId": 1975, + "explorers": [ + { + "name": "Onus explorer mainnet", + "url": "https://explorer.onuschain.io", + "icon": "onus", + "standard": "EIP3091" + } + ] + }, + { + "name": "Eurus Testnet", + "chain": "EUN", + "rpc": ["https://testnet.eurus.network"], + "faucets": [], + "nativeCurrency": { "name": "Eurus", "symbol": "EUN", "decimals": 18 }, + "infoURL": "https://eurus.network", + "shortName": "euntest", + "chainId": 1984, + "networkId": 1984, + "icon": "eurus", + "explorers": [ + { + "name": "testnetexplorer", + "url": "https://testnetexplorer.eurus.network", + "icon": "eurus", + "standard": "none" + } + ] + }, + { + "name": "EtherGem", + "chain": "EGEM", + "rpc": ["https://jsonrpc.egem.io/custom"], + "faucets": [], + "nativeCurrency": { + "name": "EtherGem Ether", + "symbol": "EGEM", + "decimals": 18 + }, + "infoURL": "https://egem.io", + "shortName": "egem", + "chainId": 1987, + "networkId": 1987, + "slip44": 1987 + }, + { + "name": "Ekta", + "chain": "EKTA", + "rpc": ["https://main.ekta.io"], + "faucets": [], + "nativeCurrency": { "name": "EKTA", "symbol": "EKTA", "decimals": 18 }, + "infoURL": "https://www.ekta.io", + "shortName": "ekta", + "chainId": 1994, + "networkId": 1994, + "icon": "ekta", + "explorers": [ + { + "name": "ektascan", + "url": "https://ektascan.io", + "icon": "ekta", + "standard": "EIP3091" + } + ] + }, + { + "name": "edeXa Testnet", + "chain": "edeXa TestNetwork", + "rpc": [ + "https://testnet.edexa.com/rpc", + "https://io-dataseed1.testnet.edexa.io-market.com/rpc" + ], + "faucets": ["https://faucet.edexa.com/"], + "nativeCurrency": { "name": "EDEXA", "symbol": "EDX", "decimals": 18 }, + "infoURL": "https://edexa.com/", + "shortName": "edx", + "chainId": 1995, + "networkId": 1995, + "icon": "edexa", + "explorers": [ + { + "name": "edexa-testnet", + "url": "https://explorer.testnet.edexa.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Dogechain Mainnet", + "chain": "DC", + "icon": "dogechain", + "rpc": [ + "https://rpc.dogechain.dog", + "https://rpc01-sg.dogechain.dog", + "https://rpc.ankr.com/dogechain" + ], + "faucets": [], + "nativeCurrency": { "name": "Dogecoin", "symbol": "DOGE", "decimals": 18 }, + "infoURL": "https://dogechain.dog", + "shortName": "dc", + "chainId": 2000, + "networkId": 2000, + "explorers": [ + { + "name": "dogechain explorer", + "url": "https://explorer.dogechain.dog", + "standard": "EIP3091" + } + ] + }, + { + "name": "Milkomeda C1 Mainnet", + "chain": "milkAda", + "icon": "milkomeda", + "rpc": [ + "https://rpc-mainnet-cardano-evm.c1.milkomeda.com", + "wss://rpc-mainnet-cardano-evm.c1.milkomeda.com" + ], + "faucets": [], + "nativeCurrency": { "name": "milkAda", "symbol": "mADA", "decimals": 18 }, + "infoURL": "https://milkomeda.com", + "shortName": "milkAda", + "chainId": 2001, + "networkId": 2001, + "explorers": [ + { + "name": "Blockscout", + "url": "https://explorer-mainnet-cardano-evm.c1.milkomeda.com", + "standard": "none" + } + ] + }, + { + "name": "Milkomeda A1 Mainnet", + "chain": "milkALGO", + "icon": "milkomeda", + "rpc": [ + "https://rpc-mainnet-algorand-rollup.a1.milkomeda.com", + "wss://rpc-mainnet-algorand-rollup.a1.milkomeda.com/ws" + ], + "faucets": [], + "nativeCurrency": { "name": "milkALGO", "symbol": "mALGO", "decimals": 18 }, + "infoURL": "https://milkomeda.com", + "shortName": "milkALGO", + "chainId": 2002, + "networkId": 2002, + "explorers": [ + { + "name": "Blockscout", + "url": "https://explorer-mainnet-algorand-rollup.a1.milkomeda.com", + "standard": "none" + } + ] + }, + { + "name": "CloudWalk Testnet", + "chain": "CloudWalk Testnet", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "CloudWalk Native Token", + "symbol": "CWN", + "decimals": 18 + }, + "infoURL": "https://cloudwalk.io", + "shortName": "cloudwalk_testnet", + "chainId": 2008, + "networkId": 2008, + "explorers": [ + { + "name": "CloudWalk Testnet Explorer", + "url": "https://explorer.testnet.cloudwalk.io", + "standard": "none" + } + ] + }, + { + "name": "CloudWalk Mainnet", + "chain": "CloudWalk Mainnet", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "CloudWalk Native Token", + "symbol": "CWN", + "decimals": 18 + }, + "infoURL": "https://cloudwalk.io", + "shortName": "cloudwalk_mainnet", + "chainId": 2009, + "networkId": 2009, + "explorers": [ + { + "name": "CloudWalk Mainnet Explorer", + "url": "https://explorer.mainnet.cloudwalk.io", + "standard": "none" + } + ] + }, + { + "name": "MainnetZ Mainnet", + "chain": "NetZ", + "icon": "mainnetz", + "rpc": ["https://mainnet-rpc.mainnetz.io"], + "faucets": ["https://faucet.mainnetz.io"], + "nativeCurrency": { "name": "MainnetZ", "symbol": "NetZ", "decimals": 18 }, + "infoURL": "https://mainnetz.io", + "shortName": "NetZm", + "chainId": 2016, + "networkId": 2016, + "explorers": [ + { + "name": "MainnetZ", + "url": "https://explorer.mainnetz.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "PublicMint Devnet", + "title": "Public Mint Devnet", + "chain": "PublicMint", + "rpc": ["https://rpc.dev.publicmint.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "USD", "symbol": "USD", "decimals": 18 }, + "infoURL": "https://publicmint.com", + "shortName": "pmint_dev", + "chainId": 2018, + "networkId": 2018, + "slip44": 60, + "explorers": [ + { + "name": "PublicMint Explorer", + "url": "https://explorer.dev.publicmint.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "PublicMint Testnet", + "title": "Public Mint Testnet", + "chain": "PublicMint", + "rpc": ["https://rpc.tst.publicmint.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "USD", "symbol": "USD", "decimals": 18 }, + "infoURL": "https://publicmint.com", + "shortName": "pmint_test", + "chainId": 2019, + "networkId": 2019, + "slip44": 60, + "explorers": [ + { + "name": "PublicMint Explorer", + "url": "https://explorer.tst.publicmint.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "PublicMint Mainnet", + "title": "Public Mint Mainnet", + "chain": "PublicMint", + "rpc": ["https://rpc.publicmint.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "USD", "symbol": "USD", "decimals": 18 }, + "infoURL": "https://publicmint.com", + "shortName": "pmint", + "chainId": 2020, + "networkId": 2020, + "slip44": 60, + "explorers": [ + { + "name": "PublicMint Explorer", + "url": "https://explorer.publicmint.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Edgeware EdgeEVM Mainnet", + "chain": "EDG", + "icon": "edgeware", + "rpc": [ + "https://edgeware-evm.jelliedowl.net", + "https://mainnet2.edgewa.re/evm", + "https://mainnet3.edgewa.re/evm", + "https://mainnet4.edgewa.re/evm", + "https://mainnet5.edgewa.re/evm", + "wss://edgeware.jelliedowl.net", + "wss://mainnet2.edgewa.re", + "wss://mainnet3.edgewa.re", + "wss://mainnet4.edgewa.re", + "wss://mainnet5.edgewa.re" + ], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "Edgeware", "symbol": "EDG", "decimals": 18 }, + "infoURL": "https://edgeware.io", + "shortName": "edg", + "chainId": 2021, + "networkId": 2021, + "slip44": 523, + "explorers": [ + { + "name": "Edgscan by Bharathcoorg", + "url": "https://edgscan.live", + "standard": "EIP3091" + }, + { + "name": "Subscan", + "url": "https://edgeware.subscan.io", + "standard": "none", + "icon": "subscan" + } + ] + }, + { + "name": "Beresheet BereEVM Testnet", + "chain": "EDG", + "rpc": [ + "https://beresheet-evm.jelliedowl.net", + "wss://beresheet.jelliedowl.net" + ], + "faucets": [], + "nativeCurrency": { + "name": "Testnet EDG", + "symbol": "tEDG", + "decimals": 18 + }, + "infoURL": "https://edgeware.io/build", + "shortName": "edgt", + "chainId": 2022, + "networkId": 2022, + "explorers": [ + { + "name": "Edgscan by Bharathcoorg", + "url": "https://testnet.edgscan.live", + "standard": "EIP3091" + } + ] + }, + { + "name": "Taycan Testnet", + "chain": "Taycan", + "rpc": ["https://test-taycan.hupayx.io"], + "faucets": ["https://ttaycan-faucet.hupayx.io/"], + "nativeCurrency": { + "name": "test-Shuffle", + "symbol": "tSFL", + "decimals": 18 + }, + "infoURL": "https://hupayx.io", + "shortName": "taycan-testnet", + "chainId": 2023, + "networkId": 2023, + "icon": "shuffle", + "explorers": [ + { + "name": "Taycan Explorer(Blockscout)", + "url": "https://evmscan-test.hupayx.io", + "standard": "none", + "icon": "shuffle" + }, + { + "name": "Taycan Cosmos Explorer", + "url": "https://cosmoscan-test.hupayx.io", + "standard": "none", + "icon": "shuffle" + } + ] + }, + { + "name": "Rangers Protocol Mainnet", + "chain": "Rangers", + "icon": "rangers", + "rpc": ["https://mainnet.rangersprotocol.com/api/jsonrpc"], + "faucets": [], + "nativeCurrency": { + "name": "Rangers Protocol Gas", + "symbol": "RPG", + "decimals": 18 + }, + "infoURL": "https://rangersprotocol.com", + "shortName": "rpg", + "chainId": 2025, + "networkId": 2025, + "slip44": 1008, + "explorers": [ + { + "name": "rangersscan", + "url": "https://scan.rangersprotocol.com", + "standard": "none" + } + ] + }, + { + "name": "OriginTrail Parachain", + "chain": "OTP", + "rpc": [ + "https://astrosat.origintrail.network", + "wss://parachain-rpc.origin-trail.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "OriginTrail Parachain Token", + "symbol": "OTP", + "decimals": 12 + }, + "infoURL": "https://parachain.origintrail.io", + "shortName": "otp", + "chainId": 2043, + "networkId": 2043 + }, + { + "name": "Shrapnel Subnet", + "chain": "shrapnel", + "rpc": ["https://subnets.avax.network/shrapnel/mainnet/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "Shrapnel Gas Token", + "symbol": "SHRAPG", + "decimals": 18 + }, + "infoURL": "https://www.shrapnel.com/", + "shortName": "Shrapnel", + "chainId": 2044, + "networkId": 2044 + }, + { + "name": "Stratos Testnet", + "chain": "STOS", + "rpc": ["https://web3-testnet-rpc.thestratos.org"], + "faucets": [], + "nativeCurrency": { "name": "STOS", "symbol": "STOS", "decimals": 18 }, + "infoURL": "https://www.thestratos.org", + "shortName": "stos-testnet", + "chainId": 2047, + "networkId": 2047, + "explorers": [ + { + "name": "Stratos EVM Explorer (Blockscout)", + "url": "https://web3-testnet-explorer.thestratos.org", + "standard": "none" + }, + { + "name": "Stratos Cosmos Explorer (BigDipper)", + "url": "https://big-dipper-dev.thestratos.org", + "standard": "none" + } + ] + }, + { + "name": "Stratos Mainnet", + "chain": "STOS", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "STOS", "symbol": "STOS", "decimals": 18 }, + "infoURL": "https://www.thestratos.org", + "shortName": "stos-mainnet", + "chainId": 2048, + "networkId": 2048, + "status": "incubating" + }, + { + "name": "Quokkacoin Mainnet", + "chain": "Qkacoin", + "rpc": ["https://rpc.qkacoin.org"], + "faucets": [], + "nativeCurrency": { "name": "Qkacoin", "symbol": "QKA", "decimals": 18 }, + "infoURL": "https://qkacoin.org", + "shortName": "QKA", + "chainId": 2077, + "networkId": 2077, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.qkacoin.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ecoball Mainnet", + "chain": "ECO", + "rpc": ["https://api.ecoball.org/ecoball/"], + "faucets": [], + "nativeCurrency": { + "name": "Ecoball Coin", + "symbol": "ECO", + "decimals": 18 + }, + "infoURL": "https://ecoball.org", + "shortName": "eco", + "chainId": 2100, + "networkId": 2100, + "explorers": [ + { + "name": "Ecoball Explorer", + "url": "https://scan.ecoball.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ecoball Testnet Espuma", + "chain": "ECO", + "rpc": ["https://api.ecoball.org/espuma/"], + "faucets": [], + "nativeCurrency": { + "name": "Espuma Coin", + "symbol": "ECO", + "decimals": 18 + }, + "infoURL": "https://ecoball.org", + "shortName": "esp", + "chainId": 2101, + "networkId": 2101, + "explorers": [ + { + "name": "Ecoball Testnet Explorer", + "url": "https://espuma-scan.ecoball.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Exosama Network", + "chain": "EXN", + "rpc": ["https://rpc.exosama.com", "wss://rpc.exosama.com"], + "faucets": [], + "nativeCurrency": { + "name": "Sama Token", + "symbol": "SAMA", + "decimals": 18 + }, + "infoURL": "https://moonsama.com", + "shortName": "exn", + "chainId": 2109, + "networkId": 2109, + "slip44": 2109, + "icon": "exn", + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.exosama.com", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "Metaplayerone Mainnet", + "chain": "METAD", + "icon": "metad", + "rpc": ["https://rpc.metaplayer.one/"], + "faucets": [], + "nativeCurrency": { "name": "METAD", "symbol": "METAD", "decimals": 18 }, + "infoURL": "https://docs.metaplayer.one/", + "shortName": "Metad", + "chainId": 2122, + "networkId": 2122, + "explorers": [ + { + "name": "Metad Scan", + "url": "https://scan.metaplayer.one", + "icon": "metad", + "standard": "EIP3091" + } + ] + }, + { + "name": "Metaplayerone Dubai Testnet", + "chain": "MP1 Dubai-Testnet", + "rpc": ["https://rpc-dubai.mp1network.com/"], + "faucets": [], + "nativeCurrency": { "name": "Metaunit", "symbol": "MEU", "decimals": 18 }, + "infoURL": "https://docs.metaplayer.one/", + "shortName": "MEU", + "chainId": 2124, + "networkId": 2124, + "explorers": [ + { + "name": "MP1Scan", + "url": "https://dubai.mp1scan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Defi Oracle Meta Testnet", + "chain": "dfiometatest", + "icon": "defioraclemeta", + "rpc": [ + "https://rpc.public-2138.defi-oracle.io", + "wss://rpc.public-2138.defi-oracle.io" + ], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "testEther", "symbol": "tETH", "decimals": 18 }, + "infoURL": "https://defi-oracle.io/", + "shortName": "dfio-meta-test", + "chainId": 2138, + "networkId": 21, + "slip44": 60, + "ens": { "registry": "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85" }, + "explorers": [ + { + "name": "Quorum Explorer", + "url": "https://public-2138.defi-oracle.io", + "standard": "none" + } + ] + }, + { + "name": "BOSagora Mainnet", + "chain": "ETH", + "rpc": ["https://mainnet.bosagora.org", "https://rpc.bosagora.org"], + "faucets": [], + "nativeCurrency": { "name": "BOSAGORA", "symbol": "BOA", "decimals": 18 }, + "infoURL": "https://docs.bosagora.org", + "shortName": "boa", + "chainId": 2151, + "networkId": 2151, + "icon": "agora", + "explorers": [ + { + "name": "BOASCAN", + "url": "https://boascan.io", + "icon": "agora", + "standard": "EIP3091" + } + ] + }, + { + "name": "Findora Mainnet", + "chain": "Findora", + "rpc": ["https://rpc-mainnet.findora.org"], + "faucets": [], + "nativeCurrency": { "name": "FRA", "symbol": "FRA", "decimals": 18 }, + "infoURL": "https://findora.org/", + "shortName": "fra", + "chainId": 2152, + "networkId": 2152, + "explorers": [ + { + "name": "findorascan", + "url": "https://evm.findorascan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Findora Testnet", + "chain": "Testnet-anvil", + "rpc": ["https://prod-testnet.prod.findora.org:8545/"], + "faucets": [], + "nativeCurrency": { "name": "FRA", "symbol": "FRA", "decimals": 18 }, + "infoURL": "https://findora.org/", + "shortName": "findora-testnet", + "chainId": 2153, + "networkId": 2153, + "explorers": [ + { + "name": "findorascan", + "url": "https://testnet-anvil.evm.findorascan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Findora Forge", + "chain": "Testnet-forge", + "rpc": ["https://prod-forge.prod.findora.org:8545/"], + "faucets": [], + "nativeCurrency": { "name": "FRA", "symbol": "FRA", "decimals": 18 }, + "infoURL": "https://findora.org/", + "shortName": "findora-forge", + "chainId": 2154, + "networkId": 2154, + "explorers": [ + { + "name": "findorascan", + "url": "https://testnet-forge.evm.findorascan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bitcoin EVM", + "chain": "Bitcoin EVM", + "rpc": ["https://connect.bitcoinevm.com"], + "faucets": [], + "nativeCurrency": { "name": "Bitcoin", "symbol": "BTC", "decimals": 18 }, + "infoURL": "https://bitcoinevm.com", + "shortName": "BTC", + "chainId": 2203, + "networkId": 2203, + "icon": "ebtc", + "explorers": [ + { + "name": "Explorer", + "url": "https://explorer.bitcoinevm.com", + "icon": "ebtc", + "standard": "none" + } + ] + }, + { + "name": "Evanesco Mainnet", + "chain": "EVA", + "rpc": ["https://seed4.evanesco.org:8546"], + "faucets": [], + "nativeCurrency": { "name": "EVA", "symbol": "EVA", "decimals": 18 }, + "infoURL": "https://evanesco.org/", + "shortName": "evanesco", + "chainId": 2213, + "networkId": 2213, + "icon": "evanesco", + "explorers": [ + { + "name": "Evanesco Explorer", + "url": "https://explorer.evanesco.org", + "standard": "none" + } + ] + }, + { + "name": "Kava EVM Testnet", + "chain": "KAVA", + "rpc": ["https://evm.testnet.kava.io", "wss://wevm.testnet.kava.io"], + "faucets": ["https://faucet.kava.io"], + "nativeCurrency": { "name": "TKava", "symbol": "TKAVA", "decimals": 18 }, + "infoURL": "https://www.kava.io", + "shortName": "tkava", + "chainId": 2221, + "networkId": 2221, + "icon": "kava", + "explorers": [ + { + "name": "Kava Testnet Explorer", + "url": "https://explorer.testnet.kava.io", + "standard": "EIP3091", + "icon": "kava" + } + ] + }, + { + "name": "Kava EVM", + "chain": "KAVA", + "rpc": [ + "https://evm.kava.io", + "https://evm2.kava.io", + "wss://wevm.kava.io", + "wss://wevm2.kava.io" + ], + "faucets": [], + "nativeCurrency": { "name": "Kava", "symbol": "KAVA", "decimals": 18 }, + "infoURL": "https://www.kava.io", + "shortName": "kava", + "chainId": 2222, + "networkId": 2222, + "icon": "kava", + "explorers": [ + { + "name": "Kava EVM Explorer", + "url": "https://explorer.kava.io", + "standard": "EIP3091", + "icon": "kava" + } + ] + }, + { + "name": "VChain Mainnet", + "chain": "VChain", + "rpc": ["https://bc.vcex.xyz"], + "faucets": [], + "nativeCurrency": { "name": "VNDT", "symbol": "VNDT", "decimals": 18 }, + "infoURL": "https://bo.vcex.xyz/", + "shortName": "VChain", + "chainId": 2223, + "networkId": 2223, + "explorers": [ + { + "name": "VChain Scan", + "url": "https://scan.vcex.xyz", + "standard": "EIP3091" + } + ] + }, + { + "name": "BOMB Chain", + "chain": "BOMB", + "rpc": ["https://rpc.bombchain.com"], + "faucets": [], + "nativeCurrency": { + "name": "BOMB Token", + "symbol": "BOMB", + "decimals": 18 + }, + "infoURL": "https://www.bombchain.com", + "shortName": "bomb", + "chainId": 2300, + "networkId": 2300, + "icon": "bomb", + "explorers": [ + { + "name": "bombscan", + "icon": "bomb", + "url": "https://bombscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Arevia", + "chain": "Arevia", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Arev", "symbol": "ARÉV", "decimals": 18 }, + "infoURL": "", + "shortName": "arevia", + "chainId": 2309, + "networkId": 2309, + "explorers": [], + "status": "incubating" + }, + { + "name": "SOMA Network Testnet", + "chain": "SOMA", + "rpc": ["https://data-testnet-v1.somanetwork.io/"], + "faucets": ["https://faucet.somanetwork.io"], + "nativeCurrency": { "name": "SMA", "symbol": "tSMA", "decimals": 18 }, + "infoURL": "https://somanetwork.io", + "shortName": "sma", + "chainId": 2323, + "networkId": 2323, + "icon": "soma", + "explorers": [ + { + "name": "SOMA Testnet Explorer", + "icon": "soma", + "url": "https://testnet.somascan.io", + "standard": "none" + } + ] + }, + { + "name": "Altcoinchain", + "chain": "mainnet", + "rpc": ["https://rpc0.altcoinchain.org/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Altcoin", "symbol": "ALT", "decimals": 18 }, + "infoURL": "https://altcoinchain.org", + "shortName": "alt", + "chainId": 2330, + "networkId": 2330, + "icon": "altcoinchain", + "status": "active", + "explorers": [ + { + "name": "expedition", + "url": "http://expedition.altcoinchain.org", + "icon": "altcoinchain", + "standard": "none" + } + ] + }, + { + "name": "SOMA Network Mainnet", + "chain": "SOMA", + "rpc": ["https://data-mainnet-v1.somanetwork.io/"], + "faucets": ["https://airdrop.somanetwork.io"], + "nativeCurrency": { + "name": "Soma Native Token", + "symbol": "SMA", + "decimals": 18 + }, + "infoURL": "https://somanetwork.io", + "shortName": "smam", + "chainId": 2332, + "networkId": 2332, + "icon": "soma", + "status": "incubating", + "explorers": [ + { + "name": "SOMA Explorer Mainnet", + "icon": "soma", + "url": "https://somascan.io", + "standard": "none" + } + ] + }, + { + "name": "Kroma Sepolia", + "title": "Kroma Testnet Sepolia", + "chainId": 2357, + "shortName": "kroma-sepolia", + "chain": "ETH", + "networkId": 2357, + "nativeCurrency": { + "name": "Sepolia Ether", + "symbol": "ETH", + "decimals": 18 + }, + "rpc": ["https://api.sepolia.kroma.network"], + "faucets": [], + "infoURL": "https://kroma.network", + "icon": "kroma", + "explorers": [ + { + "name": "blockscout", + "url": "https://blockscout.sepolia.kroma.network", + "icon": "kroma", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-11155111", + "bridges": [{ "url": "https://kroma.network/bridge" }] + } + }, + { + "name": "BOMB Chain Testnet", + "chain": "BOMB", + "rpc": ["https://bombchain-testnet.ankr.com/bas_full_rpc_1"], + "faucets": ["https://faucet.bombchain-testnet.ankr.com/"], + "nativeCurrency": { + "name": "BOMB Token", + "symbol": "tBOMB", + "decimals": 18 + }, + "infoURL": "https://www.bombmoney.com", + "shortName": "bombt", + "chainId": 2399, + "networkId": 2399, + "icon": "bomb", + "explorers": [ + { + "name": "bombscan-testnet", + "icon": "bomb", + "url": "https://explorer.bombchain-testnet.ankr.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "TCG Verse Mainnet", + "chain": "TCG Verse", + "icon": "tcg_verse", + "rpc": ["https://rpc.tcgverse.xyz"], + "faucets": [], + "nativeCurrency": { "name": "OAS", "symbol": "OAS", "decimals": 18 }, + "infoURL": "https://tcgverse.xyz/", + "shortName": "TCGV", + "chainId": 2400, + "networkId": 2400, + "explorers": [ + { + "name": "TCG Verse Explorer", + "url": "https://explorer.tcgverse.xyz", + "standard": "EIP3091" + } + ], + "parent": { "type": "L2", "chain": "eip155-248" } + }, + { + "name": "XODEX", + "chain": "XODEX", + "rpc": ["https://mainnet.xo-dex.com/rpc", "https://xo-dex.io"], + "faucets": [], + "nativeCurrency": { + "name": "XODEX Native Token", + "symbol": "XODEX", + "decimals": 18 + }, + "infoURL": "https://xo-dex.com", + "shortName": "xodex", + "chainId": 2415, + "networkId": 10, + "icon": "xodex", + "explorers": [ + { + "name": "XODEX Explorer", + "url": "https://explorer.xo-dex.com", + "standard": "EIP3091", + "icon": "xodex" + } + ] + }, + { + "name": "Kortho Mainnet", + "chain": "Kortho Chain", + "rpc": ["https://www.kortho-chain.com"], + "faucets": [], + "nativeCurrency": { + "name": "KorthoChain", + "symbol": "KTO", + "decimals": 11 + }, + "infoURL": "https://www.kortho.io/", + "shortName": "ktoc", + "chainId": 2559, + "networkId": 2559 + }, + { + "name": "TechPay Mainnet", + "chain": "TPC", + "rpc": ["https://api.techpay.io/"], + "faucets": [], + "nativeCurrency": { "name": "TechPay", "symbol": "TPC", "decimals": 18 }, + "infoURL": "https://techpay.io/", + "shortName": "tpc", + "chainId": 2569, + "networkId": 2569, + "icon": "techpay", + "explorers": [ + { + "name": "tpcscan", + "url": "https://tpcscan.com", + "icon": "techpay", + "standard": "EIP3091" + } + ] + }, + { + "name": "PoCRNet", + "title": "Proof of Climate awaReness mainnet", + "chain": "CRC", + "status": "active", + "rpc": [ + "https://pocrnet.westeurope.cloudapp.azure.com/http", + "wss://pocrnet.westeurope.cloudapp.azure.com/ws" + ], + "faucets": [], + "nativeCurrency": { + "name": "Climate awaReness Coin", + "symbol": "CRC", + "decimals": 18 + }, + "infoURL": "https://github.com/ethereum-pocr/pocrnet", + "shortName": "pocrnet", + "chainId": 2606, + "networkId": 2606, + "icon": "pocr", + "explorers": [ + { + "name": "Lite Explorer", + "url": "https://ethereum-pocr.github.io/explorer/pocrnet", + "icon": "pocr", + "standard": "EIP3091" + } + ] + }, + { + "name": "Redlight Chain Mainnet", + "chain": "REDLC", + "rpc": ["https://dataseed2.redlightscan.finance"], + "faucets": [], + "nativeCurrency": { + "name": "Redlight Coin", + "symbol": "REDLC", + "decimals": 18 + }, + "infoURL": "https://redlight.finance/", + "shortName": "REDLC", + "chainId": 2611, + "networkId": 2611, + "explorers": [ + { + "name": "REDLC Explorer", + "url": "https://redlightscan.finance", + "standard": "EIP3091" + } + ] + }, + { + "name": "EZChain C-Chain Mainnet", + "chain": "EZC", + "rpc": ["https://api.ezchain.com/ext/bc/C/rpc"], + "faucets": [], + "nativeCurrency": { "name": "EZChain", "symbol": "EZC", "decimals": 18 }, + "infoURL": "https://ezchain.com", + "shortName": "EZChain", + "chainId": 2612, + "networkId": 2612, + "icon": "ezchain", + "explorers": [ + { + "name": "ezchain", + "url": "https://cchain-explorer.ezchain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "EZChain C-Chain Testnet", + "chain": "EZC", + "rpc": ["https://testnet-api.ezchain.com/ext/bc/C/rpc"], + "faucets": ["https://testnet-faucet.ezchain.com"], + "nativeCurrency": { "name": "EZChain", "symbol": "EZC", "decimals": 18 }, + "infoURL": "https://ezchain.com", + "shortName": "Fuji-EZChain", + "chainId": 2613, + "networkId": 2613, + "icon": "ezchain", + "explorers": [ + { + "name": "ezchain", + "url": "https://testnet-cchain-explorer.ezchain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "WhiteBIT Network Testnet", + "chain": "WBT", + "rpc": ["https://rpc-testnet.whitebit.network"], + "faucets": ["https://explorer.whitebit.network/testnet/faucet"], + "nativeCurrency": { + "name": "WhiteBIT Coin", + "symbol": "WBT", + "decimals": 18 + }, + "infoURL": "https://whitebit.com/wbt", + "shortName": "twbt", + "chainId": 2625, + "networkId": 2625, + "icon": "whitebit-testnet", + "explorers": [ + { + "name": "wb-explorer-testnet", + "url": "https://explorer.whitebit.network/testnet", + "standard": "EIP3091" + } + ] + }, + { + "name": "Boba Network Goerli Testnet", + "chain": "ETH", + "rpc": ["https://goerli.boba.network/"], + "faucets": [], + "nativeCurrency": { + "name": "Goerli Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "Bobagoerli", + "chainId": 2888, + "networkId": 2888, + "explorers": [ + { + "name": "Blockscout", + "url": "https://testnet.bobascan.com", + "standard": "none" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-5", + "bridges": [{ "url": "https://gateway.goerli.boba.network" }] + } + }, + { + "name": "BitYuan Mainnet", + "chain": "BTY", + "rpc": ["https://mainnet.bityuan.com/eth"], + "faucets": [], + "nativeCurrency": { "name": "BTY", "symbol": "BTY", "decimals": 18 }, + "infoURL": "https://www.bityuan.com", + "shortName": "bty", + "chainId": 2999, + "networkId": 2999, + "icon": "bty", + "explorers": [ + { + "name": "BitYuan Block Chain Explorer", + "url": "https://mainnet.bityuan.com", + "standard": "none" + } + ] + }, + { + "name": "CENNZnet Rata", + "chain": "CENNZnet", + "rpc": [], + "faucets": ["https://app-faucet.centrality.me"], + "nativeCurrency": { "name": "CPAY", "symbol": "CPAY", "decimals": 18 }, + "infoURL": "https://cennz.net", + "shortName": "cennz-r", + "chainId": 3000, + "networkId": 3000, + "icon": "cennz" + }, + { + "name": "CENNZnet Nikau", + "chain": "CENNZnet", + "rpc": ["https://nikau.centrality.me/public"], + "faucets": ["https://app-faucet.centrality.me"], + "nativeCurrency": { "name": "CPAY", "symbol": "CPAY", "decimals": 18 }, + "infoURL": "https://cennz.net", + "shortName": "cennz-n", + "chainId": 3001, + "networkId": 3001, + "icon": "cennz", + "explorers": [ + { + "name": "UNcover", + "url": "https://www.uncoverexplorer.com/?network=Nikau", + "standard": "none" + } + ] + }, + { + "name": "Canxium Mainnet", + "chain": "CAU", + "rpc": ["https://rpc.canxium.org"], + "faucets": [], + "nativeCurrency": { "name": "Canxium", "symbol": "CAU", "decimals": 18 }, + "infoURL": "https://canxium.org", + "shortName": "cau", + "chainId": 3003, + "networkId": 3003, + "explorers": [ + { + "name": "canxium explorer", + "url": "https://explorer.canxium.org", + "standard": "none" + } + ] + }, + { + "name": "PLAYA3ULL GAMES", + "chain": "3ULL", + "rpc": ["https://api.mainnet.playa3ull.games"], + "faucets": [], + "nativeCurrency": { "name": "3ULL", "symbol": "3ULL", "decimals": 18 }, + "features": [{ "name": "EIP1559" }], + "infoURL": "https://playa3ull.games", + "shortName": "3ULL", + "chainId": 3011, + "networkId": 3011, + "icon": "playa3ull", + "explorers": [ + { + "name": "PLAYA3ULL GAMES Explorer", + "url": "https://3011.routescan.io", + "icon": "playa3ull", + "standard": "EIP3091" + } + ] + }, + { + "name": "Orlando Chain", + "chain": "ORL", + "rpc": ["https://rpc-testnet.orlchain.com"], + "faucets": [], + "nativeCurrency": { "name": "Orlando", "symbol": "ORL", "decimals": 18 }, + "infoURL": "https://orlchain.com", + "shortName": "ORL", + "chainId": 3031, + "networkId": 3031, + "icon": "orl", + "explorers": [ + { + "name": "Orlando (ORL) Explorer", + "url": "https://orlscan.com", + "icon": "orl", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bifrost Mainnet", + "title": "The Bifrost Mainnet network", + "chain": "BFC", + "rpc": [ + "https://public-01.mainnet.thebifrost.io/rpc", + "https://public-02.mainnet.thebifrost.io/rpc" + ], + "faucets": [], + "nativeCurrency": { "name": "Bifrost", "symbol": "BFC", "decimals": 18 }, + "infoURL": "https://thebifrost.io", + "shortName": "bfc", + "chainId": 3068, + "networkId": 3068, + "icon": "bifrost", + "explorers": [ + { + "name": "explorer-thebifrost", + "url": "https://explorer.mainnet.thebifrost.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Filecoin - Hyperspace testnet", + "status": "deprecated", + "chain": "FIL", + "icon": "filecoin", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "testnet filecoin", + "symbol": "tFIL", + "decimals": 18 + }, + "infoURL": "https://filecoin.io", + "shortName": "filecoin-hyperspace", + "chainId": 3141, + "networkId": 3141, + "slip44": 1, + "explorers": [] + }, + { + "name": "Debounce Subnet Testnet", + "chain": "Debounce Network", + "icon": "debounce", + "rpc": ["https://dev-rpc.debounce.network"], + "faucets": [], + "nativeCurrency": { + "name": "Debounce Network", + "symbol": "DB", + "decimals": 18 + }, + "infoURL": "https://debounce.network", + "shortName": "debounce-devnet", + "chainId": 3306, + "networkId": 3306, + "explorers": [ + { + "name": "Debounce Devnet Explorer", + "url": "https://explorer.debounce.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "ZCore Testnet", + "chain": "Beach", + "icon": "zcore", + "rpc": ["https://rpc-testnet.zcore.cash"], + "faucets": ["https://faucet.zcore.cash"], + "nativeCurrency": { "name": "ZCore", "symbol": "ZCR", "decimals": 18 }, + "infoURL": "https://zcore.cash", + "shortName": "zcrbeach", + "chainId": 3331, + "networkId": 3331 + }, + { + "name": "Web3Q Testnet", + "chain": "Web3Q", + "rpc": ["https://testnet.web3q.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "Web3Q", "symbol": "W3Q", "decimals": 18 }, + "infoURL": "https://testnet.web3q.io/home.w3q/", + "shortName": "w3q-t", + "chainId": 3333, + "networkId": 3333, + "explorers": [ + { + "name": "w3q-testnet", + "url": "https://explorer.testnet.web3q.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Web3Q Galileo", + "chain": "Web3Q", + "rpc": ["https://galileo.web3q.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "Web3Q", "symbol": "W3Q", "decimals": 18 }, + "infoURL": "https://galileo.web3q.io/home.w3q/", + "shortName": "w3q-g", + "chainId": 3334, + "networkId": 3334, + "explorers": [ + { + "name": "w3q-galileo", + "url": "https://explorer.galileo.web3q.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Paribu Net Mainnet", + "chain": "PRB", + "rpc": ["https://rpc.paribu.network"], + "faucets": [], + "nativeCurrency": { "name": "PRB", "symbol": "PRB", "decimals": 18 }, + "infoURL": "https://net.paribu.com", + "shortName": "prb", + "chainId": 3400, + "networkId": 3400, + "icon": "prb", + "explorers": [ + { + "name": "Paribu Net Explorer", + "url": "https://explorer.paribu.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "SecureChain Testnet", + "chain": "SCAI", + "icon": "scaiIcon", + "rpc": ["https://testnet-rpc.securechain.ai"], + "faucets": ["https://faucet.securechain.ai"], + "nativeCurrency": { "name": "SCAI", "symbol": "SCAI", "decimals": 18 }, + "infoURL": "https://securechain.ai", + "shortName": "SCAIt", + "chainId": 3434, + "networkId": 3434, + "explorers": [ + { + "name": "SecureChain", + "url": "https://testnet.securechain.ai", + "standard": "EIP3091" + } + ] + }, + { + "name": "Paribu Net Testnet", + "chain": "PRB", + "rpc": ["https://rpc.testnet.paribuscan.com"], + "faucets": ["https://faucet.paribuscan.com"], + "nativeCurrency": { "name": "PRB", "symbol": "PRB", "decimals": 18 }, + "infoURL": "https://net.paribu.com", + "shortName": "prbtestnet", + "chainId": 3500, + "networkId": 3500, + "icon": "prb", + "explorers": [ + { + "name": "Paribu Net Testnet Explorer", + "url": "https://testnet.paribuscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "JFIN Chain", + "chain": "JFIN", + "rpc": ["https://rpc.jfinchain.com"], + "faucets": [], + "nativeCurrency": { "name": "JFIN Coin", "symbol": "jfin", "decimals": 18 }, + "infoURL": "https://jfinchain.com", + "shortName": "jfin", + "chainId": 3501, + "networkId": 3501, + "explorers": [ + { + "name": "JFIN Chain Explorer", + "url": "https://exp.jfinchain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "PandoProject Mainnet", + "chain": "PandoProject", + "icon": "pando", + "rpc": ["https://eth-rpc-api.pandoproject.org/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "pando-token", + "symbol": "PTX", + "decimals": 18 + }, + "infoURL": "https://www.pandoproject.org/", + "shortName": "pando-mainnet", + "chainId": 3601, + "networkId": 3601, + "explorers": [ + { + "name": "Pando Mainnet Explorer", + "url": "https://explorer.pandoproject.org", + "standard": "none" + } + ] + }, + { + "name": "PandoProject Testnet", + "chain": "PandoProject", + "icon": "pando", + "rpc": ["https://testnet.ethrpc.pandoproject.org/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "pando-token", + "symbol": "PTX", + "decimals": 18 + }, + "infoURL": "https://www.pandoproject.org/", + "shortName": "pando-testnet", + "chainId": 3602, + "networkId": 3602, + "explorers": [ + { + "name": "Pando Testnet Explorer", + "url": "https://testnet.explorer.pandoproject.org", + "standard": "none" + } + ] + }, + { + "name": "Jouleverse Mainnet", + "chain": "Jouleverse", + "rpc": ["https://rpc.jnsdao.com:8503"], + "faucets": [], + "nativeCurrency": { "name": "J", "symbol": "J", "decimals": 18 }, + "infoURL": "https://jnsdao.com", + "shortName": "jouleverse", + "chainId": 3666, + "networkId": 3666, + "explorers": [ + { + "name": "jscan", + "url": "https://jscan.jnsdao.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bittex Mainnet", + "chain": "BTX", + "rpc": ["https://rpc1.bittexscan.info", "https://rpc2.bittexscan.info"], + "faucets": [], + "nativeCurrency": { "name": "Bittex", "symbol": "BTX", "decimals": 18 }, + "infoURL": "https://bittexscan.com", + "shortName": "btx", + "chainId": 3690, + "networkId": 3690, + "explorers": [ + { + "name": "bittexscan", + "url": "https://bittexscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Empire Network", + "chain": "EMPIRE", + "rpc": ["https://rpc.empirenetwork.io"], + "faucets": [], + "nativeCurrency": { "name": "Empire", "symbol": "EMPIRE", "decimals": 18 }, + "infoURL": "https://www.empirenetwork.io/", + "shortName": "empire", + "chainId": 3693, + "networkId": 3693, + "explorers": [ + { + "name": "Empire Explorer", + "url": "https://explorer.empirenetwork.io", + "standard": "none" + } + ] + }, + { + "name": "Crossbell", + "chain": "Crossbell", + "rpc": ["https://rpc.crossbell.io"], + "faucets": ["https://faucet.crossbell.io"], + "nativeCurrency": { + "name": "Crossbell Token", + "symbol": "CSB", + "decimals": 18 + }, + "infoURL": "https://crossbell.io", + "shortName": "csb", + "chainId": 3737, + "networkId": 3737, + "icon": "crossbell", + "explorers": [ + { + "name": "Crossbell Explorer", + "url": "https://scan.crossbell.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "AlveyChain Mainnet", + "chain": "ALV", + "icon": "alveychain", + "rpc": ["https://rpc.alveychain.com/rpc", "https://rpc2.alvey.io/rpc"], + "faucets": [], + "nativeCurrency": { "name": "AlveyCoin", "symbol": "ALV", "decimals": 18 }, + "infoURL": "https://alveyscan.com/rpc", + "shortName": "alv", + "chainId": 3797, + "networkId": 3797, + "explorers": [ + { + "name": "AlveyScan", + "url": "https://alveyscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "DRAC Network", + "chain": "DRAC", + "rpc": ["https://www.dracscan.com/rpc"], + "faucets": ["https://www.dracscan.io/faucet"], + "nativeCurrency": { "name": "DRAC", "symbol": "DRAC", "decimals": 18 }, + "infoURL": "https://drac.io/", + "shortName": "drac", + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "chainId": 3912, + "networkId": 3912, + "icon": "drac", + "explorers": [ + { + "name": "DRAC_Network Scan", + "url": "https://www.dracscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "DOS Tesnet", + "chain": "DOS", + "rpc": ["https://test.doschain.com"], + "faucets": [], + "nativeCurrency": { "name": "DOS", "symbol": "DOS", "decimals": 18 }, + "infoURL": "http://doschain.io/", + "shortName": "dost", + "chainId": 3939, + "networkId": 3939, + "icon": "doschain", + "explorers": [ + { + "name": "DOScan-Test", + "url": "https://test.doscan.io", + "icon": "doschain", + "standard": "EIP3091" + } + ] + }, + { + "name": "DYNO Mainnet", + "chain": "DYNO", + "rpc": ["https://api.dynoprotocol.com"], + "faucets": ["https://faucet.dynoscan.io"], + "nativeCurrency": { + "name": "DYNO Token", + "symbol": "DYNO", + "decimals": 18 + }, + "infoURL": "https://dynoprotocol.com", + "shortName": "dyno", + "chainId": 3966, + "networkId": 3966, + "explorers": [ + { + "name": "DYNO Explorer", + "url": "https://dynoscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "DYNO Testnet", + "chain": "DYNO", + "rpc": ["https://tapi.dynoprotocol.com"], + "faucets": ["https://faucet.dynoscan.io"], + "nativeCurrency": { + "name": "DYNO Token", + "symbol": "tDYNO", + "decimals": 18 + }, + "infoURL": "https://dynoprotocol.com", + "shortName": "tdyno", + "chainId": 3967, + "networkId": 3967, + "explorers": [ + { + "name": "DYNO Explorer", + "url": "https://testnet.dynoscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "YuanChain Mainnet", + "chain": "YCC", + "rpc": ["https://mainnet.yuan.org/eth"], + "faucets": [], + "nativeCurrency": { "name": "YCC", "symbol": "YCC", "decimals": 18 }, + "infoURL": "https://www.yuan.org", + "shortName": "ycc", + "chainId": 3999, + "networkId": 3999, + "icon": "ycc", + "explorers": [ + { + "name": "YuanChain Explorer", + "url": "https://mainnet.yuan.org", + "standard": "none" + } + ] + }, + { + "name": "Ozone Chain Mainnet", + "chain": "OZONE", + "rpc": ["https://node1.ozonechain.io"], + "faucets": [], + "nativeCurrency": { "name": "OZONE", "symbol": "OZO", "decimals": 18 }, + "infoURL": "https://ozonechain.io", + "shortName": "ozo", + "chainId": 4000, + "networkId": 4000, + "icon": "ozonechain", + "explorers": [ + { + "name": "OZONE Scan", + "url": "https://ozonescan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Fantom Testnet", + "chain": "FTM", + "rpc": [ + "https://rpc.testnet.fantom.network", + "https://fantom-testnet.publicnode.com" + ], + "faucets": ["https://faucet.fantom.network"], + "nativeCurrency": { "name": "Fantom", "symbol": "FTM", "decimals": 18 }, + "infoURL": "https://docs.fantom.foundation/quick-start/short-guide#fantom-testnet", + "shortName": "tftm", + "chainId": 4002, + "networkId": 4002, + "icon": "fantom", + "explorers": [ + { + "name": "ftmscan", + "url": "https://testnet.ftmscan.com", + "icon": "ftmscan", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bobaopera Testnet", + "chain": "Bobaopera Testnet", + "rpc": [ + "https://testnet.bobaopera.boba.network", + "wss://wss.testnet.bobaopera.boba.network", + "https://replica.testnet.bobaopera.boba.network", + "wss://replica-wss.testnet.bobaopera.boba.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "BobaoperaTestnet", + "chainId": 4051, + "networkId": 4051, + "explorers": [ + { + "name": "Bobaopera Testnet block explorer", + "url": "https://blockexplorer.testnet.bobaopera.boba.network", + "standard": "none" + } + ] + }, + { + "name": "Nahmii 3 Mainnet", + "chain": "Nahmii", + "rpc": [], + "status": "incubating", + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://nahmii.io", + "shortName": "Nahmii3Mainnet", + "chainId": 4061, + "networkId": 4061, + "icon": "nahmii", + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://bridge.nahmii.io" }] + } + }, + { + "name": "Nahmii 3 Testnet", + "chain": "Nahmii", + "rpc": ["https://ngeth.testnet.n3.nahmii.io"], + "faucets": [], + "nativeCurrency": { + "name": "Goerli Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://nahmii.io", + "shortName": "Nahmii3Testnet", + "chainId": 4062, + "networkId": 4062, + "icon": "nahmii", + "explorers": [ + { + "name": "Nahmii 3 Testnet Explorer", + "url": "https://explorer.testnet.n3.nahmii.io", + "icon": "nahmii", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-3", + "bridges": [{ "url": "https://bridge.testnet.n3.nahmii.io" }] + } + }, + { + "name": "Fastex Chain (Bahamut) Oasis Testnet", + "title": "Bahamut testnet Oasis", + "icon": "bahamut", + "chain": "Fastex Chain (Bahamut)", + "rpc": ["https://rpc1.oasis.bahamutchain.com"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": ["https://faucet.oasis.fastexchain.com"], + "nativeCurrency": { "name": "FTN", "symbol": "FTN", "decimals": 18 }, + "infoURL": "https://fastexchain.com", + "shortName": "Oasis", + "chainId": 4090, + "networkId": 4090, + "explorers": [ + { + "name": "blockscout", + "url": "https://oasis.ftnscan.com", + "standard": "none" + } + ] + }, + { + "name": "Bitindi Testnet", + "chain": "BNI", + "icon": "bitindiTestnet", + "rpc": ["https://testnet-rpc.bitindi.org"], + "faucets": ["https://faucet.bitindi.org"], + "nativeCurrency": { "name": "BNI", "symbol": "$BNI", "decimals": 18 }, + "infoURL": "https://bitindi.org", + "shortName": "BNIt", + "chainId": 4096, + "networkId": 4096, + "explorers": [ + { + "name": "Bitindi", + "url": "https://testnet.bitindiscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bitindi Mainnet", + "chain": "BNI", + "icon": "bitindi", + "rpc": ["https://mainnet-rpc.bitindi.org"], + "faucets": ["https://faucet.bitindi.org"], + "nativeCurrency": { "name": "BNI", "symbol": "$BNI", "decimals": 18 }, + "infoURL": "https://bitindi.org", + "shortName": "BNIm", + "chainId": 4099, + "networkId": 4099, + "explorers": [ + { + "name": "Bitindi", + "url": "https://bitindiscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "AIOZ Network Testnet", + "chain": "AIOZ", + "icon": "aioz", + "rpc": ["https://eth-ds.testnet.aioz.network"], + "faucets": [], + "nativeCurrency": { "name": "testAIOZ", "symbol": "AIOZ", "decimals": 18 }, + "infoURL": "https://aioz.network", + "shortName": "aioz-testnet", + "chainId": 4102, + "networkId": 4102, + "slip44": 60, + "explorers": [ + { + "name": "AIOZ Network Testnet Explorer", + "url": "https://testnet.explorer.aioz.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Tipboxcoin Testnet", + "chain": "TPBX", + "icon": "tipboxcoinIcon", + "rpc": ["https://testnet-rpc.tipboxcoin.net"], + "faucets": ["https://faucet.tipboxcoin.net"], + "nativeCurrency": { + "name": "Tipboxcoin", + "symbol": "TPBX", + "decimals": 18 + }, + "infoURL": "https://tipboxcoin.net", + "shortName": "TPBXt", + "chainId": 4141, + "networkId": 4141, + "explorers": [ + { + "name": "Tipboxcoin", + "url": "https://testnet.tipboxcoin.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "PHI Network V1", + "chain": "PHI V1", + "rpc": ["https://rpc1.phi.network", "https://rpc2.phi.network"], + "faucets": [], + "nativeCurrency": { "name": "PHI", "symbol": "Φ", "decimals": 18 }, + "infoURL": "https://phi.network", + "shortName": "PHIv1", + "chainId": 4181, + "networkId": 4181, + "icon": "phi", + "explorers": [ + { + "name": "PHI Explorer", + "url": "https://explorer.phi.network", + "icon": "phi", + "standard": "none" + } + ] + }, + { + "name": "LUKSO Testnet", + "chain": "LUKSO Testnet", + "icon": "lukso", + "rpc": [ + "https://rpc.testnet.lukso.network", + "wss://ws-rpc.testnet.lukso.network" + ], + "faucets": ["https://faucet.testnet.lukso.network"], + "nativeCurrency": { "name": "TestLYX", "symbol": "LYXt", "decimals": 18 }, + "explorers": [ + { + "name": "Blockscout", + "url": "https://explorer.execution.testnet.lukso.network", + "standard": "none" + } + ], + "infoURL": "https://lukso.network", + "shortName": "lukso-testnet", + "chainId": 4201, + "networkId": 4201, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }] + }, + { + "name": "Nexi Mainnet", + "chain": "Nexi", + "icon": "nexi", + "rpc": [ + "https://rpc.chain.nexi.technology/", + "https://chain.nexilix.com", + "https://chain.nexi.evmnode.online" + ], + "faucets": [], + "nativeCurrency": { "name": "Nexi", "symbol": "NEXI", "decimals": 18 }, + "infoURL": "https://www.nexi.technology/", + "shortName": "nexi", + "chainId": 4242, + "networkId": 4242, + "slip44": 2500, + "explorers": [ + { + "name": "nexiscan", + "url": "https://www.nexiscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bobafuji Testnet", + "chain": "Bobafuji Testnet", + "rpc": [ + "https://testnet.avax.boba.network", + "wss://wss.testnet.avax.boba.network", + "https://replica.testnet.avax.boba.network", + "wss://replica-wss.testnet.avax.boba.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "BobaFujiTestnet", + "chainId": 4328, + "networkId": 4328, + "explorers": [ + { + "name": "Bobafuji Testnet block explorer", + "url": "https://blockexplorer.testnet.avax.boba.network", + "standard": "none" + } + ] + }, + { + "name": "Htmlcoin Mainnet", + "chain": "mainnet", + "rpc": ["https://janus.htmlcoin.com/api/"], + "faucets": ["https://gruvin.me/htmlcoin"], + "nativeCurrency": { "name": "Htmlcoin", "symbol": "HTML", "decimals": 8 }, + "infoURL": "https://htmlcoin.com", + "shortName": "html", + "chainId": 4444, + "networkId": 4444, + "icon": "htmlcoin", + "status": "active", + "explorers": [ + { + "name": "htmlcoin", + "url": "https://explorer.htmlcoin.com", + "icon": "htmlcoin", + "standard": "none" + } + ] + }, + { + "name": "IoTeX Network Mainnet", + "chain": "iotex.io", + "rpc": ["https://babel-api.mainnet.iotex.io"], + "faucets": [], + "nativeCurrency": { "name": "IoTeX", "symbol": "IOTX", "decimals": 18 }, + "infoURL": "https://iotex.io", + "shortName": "iotex-mainnet", + "chainId": 4689, + "networkId": 4689, + "explorers": [ + { + "name": "iotexscan", + "url": "https://iotexscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "IoTeX Network Testnet", + "chain": "iotex.io", + "rpc": ["https://babel-api.testnet.iotex.io"], + "faucets": ["https://faucet.iotex.io/"], + "nativeCurrency": { "name": "IoTeX", "symbol": "IOTX", "decimals": 18 }, + "infoURL": "https://iotex.io", + "shortName": "iotex-testnet", + "chainId": 4690, + "networkId": 4690, + "explorers": [ + { + "name": "testnet iotexscan", + "url": "https://testnet.iotexscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "BlackFort Exchange Network Testnet", + "chain": "TBXN", + "rpc": ["https://testnet.blackfort.network/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "BlackFort Testnet Token", + "symbol": "TBXN", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://blackfort.exchange", + "shortName": "TBXN", + "chainId": 4777, + "networkId": 4777, + "icon": "bxn", + "explorers": [ + { + "name": "blockscout", + "url": "https://testnet-explorer.blackfort.network", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "Venidium Testnet", + "chain": "XVM", + "rpc": ["https://rpc-evm-testnet.venidium.io"], + "faucets": [], + "nativeCurrency": { "name": "Venidium", "symbol": "XVM", "decimals": 18 }, + "infoURL": "https://venidium.io", + "shortName": "txvm", + "chainId": 4918, + "networkId": 4918, + "explorers": [ + { + "name": "Venidium EVM Testnet Explorer", + "url": "https://evm-testnet.venidiumexplorer.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Venidium Mainnet", + "chain": "XVM", + "icon": "venidium", + "rpc": ["https://rpc.venidium.io"], + "faucets": [], + "nativeCurrency": { "name": "Venidium", "symbol": "XVM", "decimals": 18 }, + "infoURL": "https://venidium.io", + "shortName": "xvm", + "chainId": 4919, + "networkId": 4919, + "explorers": [ + { + "name": "Venidium Explorer", + "url": "https://evm.venidiumexplorer.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "BlackFort Exchange Network", + "chain": "BXN", + "rpc": [ + "https://mainnet.blackfort.network/rpc", + "https://mainnet-1.blackfort.network/rpc", + "https://mainnet-2.blackfort.network/rpc", + "https://mainnet-3.blackfort.network/rpc" + ], + "faucets": [], + "nativeCurrency": { + "name": "BlackFort Token", + "symbol": "BXN", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://blackfort.exchange", + "shortName": "BXN", + "chainId": 4999, + "networkId": 4999, + "icon": "bxn", + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.blackfort.network", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "Mantle", + "chain": "ETH", + "rpc": ["https://rpc.mantle.xyz"], + "faucets": [], + "nativeCurrency": { "name": "Mantle", "symbol": "MNT", "decimals": 18 }, + "infoURL": "https://mantle.xyz", + "shortName": "mantle", + "chainId": 5000, + "networkId": 5000, + "explorers": [ + { + "name": "Mantle Explorer", + "url": "https://explorer.mantle.xyz", + "standard": "EIP3091" + } + ] + }, + { + "name": "Mantle Testnet", + "chain": "ETH", + "rpc": ["https://rpc.testnet.mantle.xyz"], + "faucets": ["https://faucet.testnet.mantle.xyz"], + "nativeCurrency": { + "name": "Testnet Mantle", + "symbol": "MNT", + "decimals": 18 + }, + "infoURL": "https://mantle.xyz", + "shortName": "mantle-testnet", + "chainId": 5001, + "networkId": 5001, + "explorers": [ + { + "name": "Mantle Testnet Explorer", + "url": "https://explorer.testnet.mantle.xyz", + "standard": "EIP3091" + } + ] + }, + { + "name": "Fastex Chain (Bahamut)", + "title": "Bahamut mainnet Sahara", + "chain": "Fastex Chain (Bahamut)", + "icon": "bahamut", + "rpc": [ + "https://rpc1.sahara.bahamutchain.com", + "https://rpc2.sahara.bahamutchain.com" + ], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "FTN", "symbol": "FTN", "decimals": 18 }, + "shortName": "ftn", + "infoURL": "https://fastexchain.com", + "chainId": 5165, + "networkId": 5165, + "explorers": [ + { "name": "blockscout", "url": "https://ftnscan.com", "standard": "none" } + ] + }, + { + "name": "TLChain Network Mainnet", + "chain": "TLC", + "icon": "tlc", + "rpc": ["https://mainnet-rpc.tlxscan.com/"], + "faucets": [], + "nativeCurrency": { + "name": "TLChain Network", + "symbol": "TLC", + "decimals": 18 + }, + "infoURL": "https://tlchain.network/", + "shortName": "tlc", + "chainId": 5177, + "networkId": 5177, + "explorers": [ + { + "name": "TLChain Explorer", + "url": "https://explorer.tlchain.network", + "standard": "none" + } + ] + }, + { + "name": "EraSwap Mainnet", + "chain": "ESN", + "icon": "eraswap", + "rpc": [ + "https://mainnet.eraswap.network", + "https://rpc-mumbai.mainnet.eraswap.network" + ], + "faucets": [], + "nativeCurrency": { "name": "EraSwap", "symbol": "ES", "decimals": 18 }, + "infoURL": "https://eraswap.info/", + "shortName": "es", + "chainId": 5197, + "networkId": 5197 + }, + { + "name": "Humanode Mainnet", + "chain": "HMND", + "rpc": ["https://explorer-rpc-http.mainnet.stages.humanode.io"], + "faucets": [], + "nativeCurrency": { "name": "HMND", "symbol": "HMND", "decimals": 18 }, + "infoURL": "https://humanode.io", + "shortName": "hmnd", + "chainId": 5234, + "networkId": 5234, + "explorers": [] + }, + { + "name": "Firechain Mainnet Old", + "chain": "FIRE", + "icon": "firechain", + "rpc": ["https://mainnet.rpc1.thefirechain.com"], + "faucets": [], + "nativeCurrency": { "name": "Firechain", "symbol": "FIRE", "decimals": 18 }, + "infoURL": "https://thefirechain.com", + "shortName": "_old_fire", + "chainId": 5290, + "networkId": 5290, + "explorers": [], + "status": "deprecated" + }, + { + "name": "Uzmi Network Mainnet", + "chain": "UZMI", + "rpc": ["https://network.uzmigames.com.br/"], + "faucets": [], + "nativeCurrency": { "name": "UZMI", "symbol": "UZMI", "decimals": 18 }, + "infoURL": "https://uzmigames.com.br/", + "shortName": "UZMI", + "chainId": 5315, + "networkId": 5315 + }, + { + "name": "Nahmii Mainnet", + "chain": "Nahmii", + "rpc": ["https://l2.nahmii.io"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://nahmii.io", + "shortName": "Nahmii", + "chainId": 5551, + "networkId": 5551, + "icon": "nahmii", + "explorers": [ + { + "name": "Nahmii mainnet explorer", + "url": "https://explorer.nahmii.io", + "icon": "nahmii", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://bridge.nahmii.io" }] + } + }, + { + "name": "Nahmii Testnet", + "chain": "Nahmii", + "rpc": ["https://l2.testnet.nahmii.io"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://nahmii.io", + "shortName": "NahmiiTestnet", + "chainId": 5553, + "networkId": 5553, + "icon": "nahmii", + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.testnet.nahmii.io", + "icon": "nahmii", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-3", + "bridges": [{ "url": "https://bridge.nahmii.io" }] + } + }, + { + "name": "Chain Verse Mainnet", + "chain": "CVERSE", + "icon": "chain_verse", + "rpc": ["https://rpc.chainverse.info"], + "faucets": [], + "nativeCurrency": { "name": "Oasys", "symbol": "OAS", "decimals": 18 }, + "infoURL": "https://chainverse.info", + "shortName": "cverse", + "chainId": 5555, + "networkId": 5555, + "explorers": [ + { + "name": "Chain Verse Explorer", + "url": "https://explorer.chainverse.info", + "standard": "EIP3091" + } + ] + }, + { + "name": "Syscoin Tanenbaum Testnet", + "chain": "SYS", + "rpc": ["https://rpc.tanenbaum.io", "wss://rpc.tanenbaum.io/wss"], + "faucets": ["https://faucet.tanenbaum.io"], + "nativeCurrency": { + "name": "Testnet Syscoin", + "symbol": "tSYS", + "decimals": 18 + }, + "infoURL": "https://syscoin.org", + "shortName": "tsys", + "chainId": 5700, + "networkId": 5700, + "explorers": [ + { + "name": "Syscoin Testnet Block Explorer", + "url": "https://tanenbaum.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Hika Network Testnet", + "title": "Hika Network Testnet", + "chain": "HIK", + "icon": "hik", + "rpc": ["https://rpc-testnet.hika.network/"], + "faucets": [], + "nativeCurrency": { "name": "Hik Token", "symbol": "HIK", "decimals": 18 }, + "infoURL": "https://hika.network/", + "shortName": "hik", + "chainId": 5729, + "networkId": 5729, + "explorers": [ + { + "name": "Hika Network Testnet Explorer", + "url": "https://scan-testnet.hika.network", + "standard": "none" + } + ] + }, + { + "name": "SatoshiChain Testnet", + "chain": "SATS", + "icon": "satoshichain", + "rpc": ["https://testnet-rpc.satoshichain.io"], + "faucets": ["https://faucet.satoshichain.io"], + "nativeCurrency": { + "name": "SatoshiChain Coin", + "symbol": "SATS", + "decimals": 18 + }, + "infoURL": "https://satoshichain.net", + "shortName": "satst", + "chainId": 5758, + "networkId": 5758, + "explorers": [ + { + "name": "SatoshiChain Testnet Explorer", + "url": "https://testnet.satoshiscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ganache", + "title": "Ganache GUI Ethereum Testnet", + "chain": "ETH", + "icon": "ganache", + "rpc": ["https://127.0.0.1:7545"], + "faucets": [], + "nativeCurrency": { + "name": "Ganache Test Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://trufflesuite.com/ganache/", + "shortName": "ggui", + "chainId": 5777, + "networkId": 5777, + "explorers": [] + }, + { + "name": "Ontology Testnet", + "chain": "Ontology", + "icon": "ontology", + "rpc": [ + "http://polaris1.ont.io:20339", + "http://polaris2.ont.io:20339", + "http://polaris3.ont.io:20339", + "http://polaris4.ont.io:20339", + "https://polaris1.ont.io:10339", + "https://polaris2.ont.io:10339", + "https://polaris3.ont.io:10339", + "https://polaris4.ont.io:10339" + ], + "faucets": ["https://developer.ont.io/"], + "nativeCurrency": { "name": "ONG", "symbol": "ONG", "decimals": 18 }, + "infoURL": "https://ont.io/", + "shortName": "OntologyTestnet", + "chainId": 5851, + "networkId": 5851, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.ont.io/testnet", + "standard": "EIP3091" + } + ] + }, + { + "name": "Wegochain Rubidium Mainnet", + "chain": "RBD", + "rpc": ["https://proxy.wegochain.io", "http://wallet.wegochain.io:7764"], + "faucets": [], + "nativeCurrency": { "name": "Rubid", "symbol": "RBD", "decimals": 18 }, + "infoURL": "https://www.wegochain.io", + "shortName": "rbd", + "chainId": 5869, + "networkId": 5869, + "explorers": [ + { + "name": "wegoscan2", + "url": "https://scan2.wegochain.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Tres Testnet", + "chain": "TresLeches", + "rpc": ["https://rpc-test.tresleches.finance/"], + "faucets": ["http://faucet.tresleches.finance:8080"], + "nativeCurrency": { "name": "TRES", "symbol": "TRES", "decimals": 18 }, + "infoURL": "https://treschain.com", + "shortName": "TRESTEST", + "chainId": 6065, + "networkId": 6065, + "icon": "tresleches", + "explorers": [ + { + "name": "treslechesexplorer", + "url": "https://explorer-test.tresleches.finance", + "icon": "treslechesexplorer", + "standard": "EIP3091" + } + ] + }, + { + "name": "Tres Mainnet", + "chain": "TresLeches", + "rpc": ["https://rpc.tresleches.finance/", "https://rpc.treschain.io/"], + "faucets": [], + "nativeCurrency": { "name": "TRES", "symbol": "TRES", "decimals": 18 }, + "infoURL": "https://treschain.com", + "shortName": "TRESMAIN", + "chainId": 6066, + "networkId": 6066, + "icon": "tresleches", + "explorers": [ + { + "name": "treslechesexplorer", + "url": "https://explorer.tresleches.finance", + "icon": "treslechesexplorer", + "standard": "EIP3091" + } + ] + }, + { + "name": "UPTN Testnet", + "chain": "UPTN", + "icon": "uptn", + "rpc": ["https://node-api.alp.uptn.io/v1/ext/rpc"], + "features": [{ "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "UPTN", "symbol": "UPTN", "decimals": 18 }, + "infoURL": "https://uptn.io", + "shortName": "UPTN-TEST", + "chainId": 6118, + "networkId": 6118, + "explorers": [ + { + "name": "UPTN Testnet Explorer", + "url": "https://testnet.explorer.uptn.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "UPTN", + "chain": "UPTN", + "icon": "uptn", + "rpc": ["https://node-api.uptn.io/v1/ext/rpc"], + "features": [{ "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "UPTN", "symbol": "UPTN", "decimals": 18 }, + "infoURL": "https://uptn.io", + "shortName": "UPTN", + "chainId": 6119, + "networkId": 6119, + "explorers": [ + { + "name": "UPTN Explorer", + "url": "https://explorer.uptn.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Peerpay", + "chain": "P2P", + "rpc": ["https://peerpay.su.gy/p2p"], + "faucets": [], + "nativeCurrency": { "name": "Peerpay", "symbol": "P2P", "decimals": 18 }, + "infoURL": "https://peerpay.su.gy", + "shortName": "Peerpay", + "chainId": 6502, + "networkId": 6502, + "explorers": [] + }, + { + "name": "Scolcoin WeiChain Testnet", + "chain": "SCOLWEI-testnet", + "rpc": ["https://testnet-rpc.scolcoin.com"], + "faucets": ["https://faucet.scolcoin.com"], + "nativeCurrency": { "name": "Scolcoin", "symbol": "SCOL", "decimals": 18 }, + "infoURL": "https://scolcoin.com", + "shortName": "SRC-test", + "chainId": 6552, + "networkId": 6552, + "icon": "scolcoin", + "explorers": [ + { + "name": "Scolscan Testnet Explorer", + "url": "https://testnet-explorer.scolcoin.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Fox Testnet Network", + "chain": "FOX", + "rpc": [ + "https://rpc-testnet-v1.foxchain.app/", + "https://rpc2-testnet-v1.foxchain.app/", + "https://rpc3-testnet-v1.foxchain.app" + ], + "faucets": ["https://faucet.foxchain.app"], + "nativeCurrency": { + "name": "FOX Native Token", + "symbol": "tFOX", + "decimals": 18 + }, + "infoURL": "https://foxchain.app", + "shortName": "fox", + "chainId": 6565, + "networkId": 6565, + "icon": "fox", + "explorers": [ + { + "name": "FOX Testnet Explorer", + "icon": "fox", + "url": "https://testnet.foxscan.app", + "standard": "none" + } + ] + }, + { + "name": "Pixie Chain Mainnet", + "chain": "PixieChain", + "rpc": [ + "https://http-mainnet.chain.pixie.xyz", + "wss://ws-mainnet.chain.pixie.xyz" + ], + "faucets": [], + "nativeCurrency": { + "name": "Pixie Chain Native Token", + "symbol": "PIX", + "decimals": 18 + }, + "infoURL": "https://chain.pixie.xyz", + "shortName": "pixie-chain", + "chainId": 6626, + "networkId": 6626, + "explorers": [ + { + "name": "blockscout", + "url": "https://scan.chain.pixie.xyz", + "standard": "none" + } + ] + }, + { + "name": "IRIShub", + "chain": "IRIShub", + "rpc": ["https://evmrpc.irishub-1.irisnet.org"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "Eris", "symbol": "ERIS", "decimals": 18 }, + "infoURL": "https://www.irisnet.org", + "shortName": "iris", + "chainId": 6688, + "networkId": 6688, + "icon": "irishub", + "explorers": [ + { + "name": "IRISHub Cosmos Explorer (IOBScan)", + "url": "https://irishub.iobscan.io", + "standard": "none", + "icon": "irishub" + } + ] + }, + { + "name": "Gold Smart Chain Mainnet", + "chain": "STAND", + "icon": "stand", + "rpc": ["https://rpc-mainnet.goldsmartchain.com"], + "faucets": ["https://faucet.goldsmartchain.com"], + "nativeCurrency": { + "name": "Standard in Gold", + "symbol": "STAND", + "decimals": 18 + }, + "infoURL": "https://goldsmartchain.com", + "shortName": "STANDm", + "chainId": 6789, + "networkId": 6789, + "explorers": [ + { + "name": "Gold Smart Chain", + "url": "https://mainnet.goldsmartchain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Tomb Chain Mainnet", + "chain": "Tomb Chain", + "rpc": ["https://rpc.tombchain.com/"], + "faucets": [], + "nativeCurrency": { "name": "Tomb", "symbol": "TOMB", "decimals": 18 }, + "infoURL": "https://tombchain.com/", + "shortName": "tombchain", + "chainId": 6969, + "networkId": 6969, + "explorers": [ + { + "name": "tombscout", + "url": "https://tombscout.com", + "standard": "none" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-250", + "bridges": [{ "url": "https://lif3.com/bridge" }] + } + }, + { + "name": "PolySmartChain", + "chain": "PSC", + "rpc": [ + "https://seed0.polysmartchain.com/", + "https://seed1.polysmartchain.com/", + "https://seed2.polysmartchain.com/" + ], + "faucets": [], + "nativeCurrency": { "name": "PSC", "symbol": "PSC", "decimals": 18 }, + "infoURL": "https://www.polysmartchain.com/", + "shortName": "psc", + "chainId": 6999, + "networkId": 6999 + }, + { + "name": "ZetaChain Mainnet", + "chain": "ZetaChain", + "icon": "zetachain", + "rpc": ["https://api.mainnet.zetachain.com/evm"], + "faucets": [], + "nativeCurrency": { "name": "Zeta", "symbol": "ZETA", "decimals": 18 }, + "infoURL": "https://zetachain.com/docs/", + "shortName": "zetachain-mainnet", + "chainId": 7000, + "networkId": 7000, + "status": "incubating", + "explorers": [ + { + "name": "ZetaChain Mainnet Explorer", + "url": "https://explorer.mainnet.zetachain.com", + "standard": "none" + } + ] + }, + { + "name": "ZetaChain Athens Testnet", + "chain": "ZetaChain", + "icon": "zetachain", + "rpc": [ + "https://zetachain-athens-evm.blockpi.network/v1/rpc/public", + "wss://zetachain-athens.blockpi.network/rpc/v1/public/websocket" + ], + "faucets": ["https://labs.zetachain.com/get-zeta"], + "nativeCurrency": { "name": "Zeta", "symbol": "aZETA", "decimals": 18 }, + "infoURL": "https://zetachain.com/docs", + "shortName": "zetachain-athens", + "chainId": 7001, + "networkId": 7001, + "status": "active", + "explorers": [ + { + "name": "ZetaChain Athens Testnet Explorer", + "url": "https://explorer.athens.zetachain.com", + "standard": "none" + } + ] + }, + { + "name": "Ella the heart", + "chain": "ella", + "icon": "ella", + "rpc": ["https://rpc.ella.network"], + "faucets": [], + "nativeCurrency": { "name": "Ella", "symbol": "ELLA", "decimals": 18 }, + "infoURL": "https://ella.network", + "shortName": "ELLA", + "chainId": 7027, + "networkId": 7027, + "explorers": [ + { "name": "Ella", "url": "https://ella.network", "standard": "EIP3091" } + ] + }, + { + "name": "Planq Mainnet", + "chain": "Planq", + "icon": "planq", + "rpc": ["https://evm-rpc.planq.network"], + "faucets": [], + "nativeCurrency": { "name": "Planq", "symbol": "PLQ", "decimals": 18 }, + "infoURL": "https://planq.network", + "shortName": "planq", + "chainId": 7070, + "networkId": 7070, + "explorers": [ + { + "name": "Planq EVM Explorer (Blockscout)", + "url": "https://evm.planq.network", + "standard": "none" + }, + { + "name": "Planq Cosmos Explorer (BigDipper)", + "url": "https://explorer.planq.network", + "standard": "none" + } + ] + }, + { + "name": "KLYNTAR", + "chain": "KLY", + "rpc": [ + "https://evm.klyntar.org/kly_evm_rpc", + "https://evm.klyntarscan.org/kly_evm_rpc" + ], + "faucets": [], + "nativeCurrency": { "name": "KLYNTAR", "symbol": "KLY", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://klyntar.org", + "shortName": "kly", + "chainId": 7331, + "networkId": 7331, + "icon": "klyntar", + "explorers": [], + "status": "incubating" + }, + { + "name": "Shyft Mainnet", + "chain": "SHYFT", + "icon": "shyft", + "rpc": ["https://rpc.shyft.network/"], + "faucets": [], + "nativeCurrency": { "name": "Shyft", "symbol": "SHYFT", "decimals": 18 }, + "infoURL": "https://shyft.network", + "shortName": "shyft", + "chainId": 7341, + "networkId": 7341, + "slip44": 2147490989, + "explorers": [ + { + "name": "Shyft BX", + "url": "https://bx.shyft.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Raba Network Mainnet", + "chain": "Raba", + "icon": "raba", + "rpc": ["https://rpc.x.raba.app/", "wss://rpc.x.raba.app/ws/"], + "faucets": [], + "nativeCurrency": { "name": "Raba", "symbol": "RABA", "decimals": 18 }, + "infoURL": "https://x.raba.app/", + "shortName": "raba", + "chainId": 7484, + "networkId": 7484, + "explorers": [ + { + "name": "raba", + "url": "https://x.raba.app/explorer", + "standard": "none" + } + ] + }, + { + "name": "ADIL Testnet", + "chain": "ADIL", + "icon": "adil", + "rpc": ["https://testnet.adilchain-rpc.io"], + "faucets": ["https://testnet-faucet.adil-scan.io"], + "nativeCurrency": { + "name": "Testnet ADIL", + "symbol": "ADIL", + "decimals": 18 + }, + "infoURL": "https://adilchain.io", + "shortName": "tadil", + "chainId": 7575, + "networkId": 7575, + "explorers": [ + { + "name": "ADIL Testnet Explorer", + "url": "https://testnet.adilchain-scan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Adil Chain V2 Mainnet", + "chain": "ADIL", + "icon": "adil", + "rpc": ["https://adilchain-rpc.io"], + "faucets": [], + "nativeCurrency": { "name": "ADIL", "symbol": "ADIL", "decimals": 18 }, + "infoURL": "https://adilchain.io", + "shortName": "adil", + "chainId": 7576, + "networkId": 7576, + "explorers": [ + { + "name": "ADIL Mainnet Explorer", + "url": "https://adilchain-scan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "The Root Network - Mainnet", + "chain": "TRN", + "rpc": [ + "https://root.rootnet.live/archive", + "wss://root.rootnet.live/archive/ws" + ], + "faucets": [], + "nativeCurrency": { "name": "XRP", "symbol": "XRP", "decimals": 6 }, + "infoURL": "https://www.futureverse.com/technology/root", + "shortName": "trn-mainnet", + "chainId": 7668, + "networkId": 7668, + "explorers": [ + { + "name": "rootnet", + "url": "https://explorer.rootnet.live", + "standard": "EIP3091" + } + ] + }, + { + "name": "The Root Network - Porcini Testnet", + "chain": "TRN", + "rpc": [ + "https://porcini.rootnet.app/archive", + "wss://porcini.rootnet.app/archive/ws" + ], + "faucets": [], + "nativeCurrency": { "name": "XRP", "symbol": "XRP", "decimals": 6 }, + "infoURL": "https://www.futureverse.com/technology/root", + "shortName": "trn-porcini", + "chainId": 7672, + "networkId": 7672, + "explorers": [ + { + "name": "rootnet", + "url": "https://explorer.rootnet.cloud", + "standard": "EIP3091" + } + ] + }, + { + "name": "Canto", + "chain": "Canto", + "rpc": [ + "https://canto.slingshot.finance", + "https://canto.neobase.one", + "https://mainnode.plexnode.org:8545" + ], + "faucets": [], + "nativeCurrency": { "name": "Canto", "symbol": "CANTO", "decimals": 18 }, + "infoURL": "https://canto.io", + "shortName": "canto", + "chainId": 7700, + "networkId": 7700, + "explorers": [ + { + "name": "Canto EVM Explorer (Blockscout)", + "url": "https://evm.explorer.canto.io", + "standard": "none" + }, + { + "name": "Canto Cosmos Explorer", + "url": "https://cosmos-explorers.neobase.one", + "standard": "none" + }, + { + "name": "Canto EVM Explorer (Blockscout)", + "url": "https://tuber.build", + "standard": "none" + } + ] + }, + { + "name": "Canto Tesnet", + "chain": "Canto", + "rpc": ["https://testnet-archive.plexnode.wtf"], + "faucets": [], + "nativeCurrency": { + "name": "Testnet Canto", + "symbol": "CANTO", + "decimals": 18 + }, + "infoURL": "https://canto.io", + "shortName": "TestnetCanto", + "chainId": 7701, + "networkId": 7701, + "explorers": [ + { + "name": "Canto Testnet EVM Explorer (Blockscout)", + "url": "https://testnet.tuber.build", + "standard": "none" + } + ] + }, + { + "name": "Rise of the Warbots Testnet", + "chain": "nmactest", + "rpc": [ + "https://testnet1.riseofthewarbots.com", + "https://testnet2.riseofthewarbots.com", + "https://testnet3.riseofthewarbots.com", + "https://testnet4.riseofthewarbots.com", + "https://testnet5.riseofthewarbots.com" + ], + "faucets": [], + "nativeCurrency": { + "name": "Nano Machines", + "symbol": "NMAC", + "decimals": 18 + }, + "infoURL": "https://riseofthewarbots.com/", + "shortName": "RiseOfTheWarbotsTestnet", + "chainId": 7777, + "networkId": 7777, + "explorers": [ + { + "name": "avascan", + "url": "https://testnet.avascan.info/blockchain/2mZ9doojfwHzXN3VXDQELKnKyZYxv7833U8Yq5eTfFx3hxJtiy", + "standard": "none" + } + ] + }, + { + "name": "Hazlor Testnet", + "chain": "SCAS", + "rpc": [ + "https://hatlas.rpc.hazlor.com:8545", + "wss://hatlas.rpc.hazlor.com:8546" + ], + "faucets": ["https://faucet.hazlor.com"], + "nativeCurrency": { + "name": "Hazlor Test Coin", + "symbol": "TSCAS", + "decimals": 18 + }, + "infoURL": "https://hazlor.com", + "shortName": "tscas", + "chainId": 7878, + "networkId": 7878, + "explorers": [ + { + "name": "Hazlor Testnet Explorer", + "url": "https://explorer.hazlor.com", + "standard": "none" + } + ] + }, + { + "name": "DOS Chain", + "chain": "DOS", + "rpc": ["https://main.doschain.com"], + "faucets": [], + "nativeCurrency": { "name": "DOS", "symbol": "DOS", "decimals": 18 }, + "infoURL": "https://doschain.io", + "shortName": "dos", + "chainId": 7979, + "networkId": 7979, + "icon": "doschain", + "explorers": [ + { + "name": "DOScan", + "url": "https://doscan.io", + "icon": "doschain", + "standard": "EIP3091" + } + ] + }, + { + "name": "Teleport", + "chain": "Teleport", + "rpc": ["https://evm-rpc.teleport.network"], + "faucets": [], + "nativeCurrency": { "name": "Tele", "symbol": "TELE", "decimals": 18 }, + "infoURL": "https://teleport.network", + "shortName": "teleport", + "chainId": 8000, + "networkId": 8000, + "icon": "teleport", + "explorers": [ + { + "name": "Teleport EVM Explorer (Blockscout)", + "url": "https://evm-explorer.teleport.network", + "standard": "none", + "icon": "teleport" + }, + { + "name": "Teleport Cosmos Explorer (Big Dipper)", + "url": "https://explorer.teleport.network", + "standard": "none", + "icon": "teleport" + } + ] + }, + { + "name": "Teleport Testnet", + "chain": "Teleport", + "rpc": ["https://evm-rpc.testnet.teleport.network"], + "faucets": ["https://chain-docs.teleport.network/testnet/faucet.html"], + "nativeCurrency": { "name": "Tele", "symbol": "TELE", "decimals": 18 }, + "infoURL": "https://teleport.network", + "shortName": "teleport-testnet", + "chainId": 8001, + "networkId": 8001, + "icon": "teleport", + "explorers": [ + { + "name": "Teleport EVM Explorer (Blockscout)", + "url": "https://evm-explorer.testnet.teleport.network", + "standard": "none", + "icon": "teleport" + }, + { + "name": "Teleport Cosmos Explorer (Big Dipper)", + "url": "https://explorer.testnet.teleport.network", + "standard": "none", + "icon": "teleport" + } + ] + }, + { + "name": "MDGL Testnet", + "chain": "MDGL", + "rpc": ["https://testnet.mdgl.io"], + "faucets": [], + "nativeCurrency": { + "name": "MDGL Token", + "symbol": "MDGLT", + "decimals": 18 + }, + "infoURL": "https://mdgl.io", + "shortName": "mdgl", + "chainId": 8029, + "networkId": 8029 + }, + { + "name": "Shardeum Liberty 1.X", + "chain": "Shardeum", + "icon": "shardeum", + "rpc": ["https://liberty10.shardeum.org/"], + "faucets": ["https://faucet.liberty10.shardeum.org"], + "nativeCurrency": { + "name": "Shardeum SHM", + "symbol": "SHM", + "decimals": 18 + }, + "infoURL": "https://docs.shardeum.org/", + "shortName": "Liberty10", + "chainId": 8080, + "networkId": 8080, + "explorers": [ + { + "name": "Shardeum Scan", + "url": "https://explorer-liberty10.shardeum.org", + "standard": "EIP3091" + } + ], + "redFlags": ["reusedChainId"] + }, + { + "name": "Shardeum Liberty 2.X", + "chain": "Shardeum", + "icon": "shardeum", + "rpc": ["https://liberty20.shardeum.org/"], + "faucets": ["https://faucet.liberty20.shardeum.org"], + "nativeCurrency": { + "name": "Shardeum SHM", + "symbol": "SHM", + "decimals": 18 + }, + "infoURL": "https://docs.shardeum.org/", + "shortName": "Liberty20", + "chainId": 8081, + "networkId": 8081, + "explorers": [ + { + "name": "Shardeum Scan", + "url": "https://explorer-liberty20.shardeum.org", + "standard": "EIP3091" + } + ], + "redFlags": ["reusedChainId"] + }, + { + "name": "Shardeum Sphinx 1.X", + "chain": "Shardeum", + "icon": "shardeum", + "rpc": ["https://sphinx.shardeum.org/"], + "faucets": ["https://faucet-sphinx.shardeum.org/"], + "nativeCurrency": { + "name": "Shardeum SHM", + "symbol": "SHM", + "decimals": 18 + }, + "infoURL": "https://docs.shardeum.org/", + "shortName": "Sphinx10", + "chainId": 8082, + "networkId": 8082, + "explorers": [ + { + "name": "Shardeum Scan", + "url": "https://explorer-sphinx.shardeum.org", + "standard": "EIP3091" + } + ], + "redFlags": ["reusedChainId"] + }, + { + "name": "BitEth", + "chain": "BTE", + "rpc": ["https://rpc.biteth.org"], + "faucets": [], + "nativeCurrency": { "name": "BitEth", "symbol": "BTE", "decimals": 18 }, + "infoURL": "https://biteth.org", + "shortName": "BitEth", + "chainId": 8086, + "networkId": 8086, + "explorers": [] + }, + { + "name": "StreamuX Blockchain", + "chain": "StreamuX", + "rpc": [ + "https://u0ma6t6heb:KDNwOsRDGcyM2Oeui1p431Bteb4rvcWkuPgQNHwB4FM@u0xy4x6x82-u0e2mg517m-rpc.us0-aws.kaleido.io/" + ], + "faucets": [], + "nativeCurrency": { "name": "StreamuX", "symbol": "SmuX", "decimals": 18 }, + "infoURL": "https://www.streamux.cloud", + "shortName": "StreamuX", + "chainId": 8098, + "networkId": 8098 + }, + { + "name": "Qitmeer Network Testnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Qitmeer Testnet", + "symbol": "MEER-T", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "meertest", + "chainId": 8131, + "networkId": 8131, + "icon": "meer", + "explorers": [ + { + "name": "meerscan testnet", + "icon": "meer", + "url": "https://testnet.qng.meerscan.io", + "standard": "none" + } + ] + }, + { + "name": "Qitmeer Network Mixnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Qitmeer Mixnet", + "symbol": "MEER-M", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "meermix", + "icon": "meer", + "chainId": 8132, + "networkId": 8132, + "status": "incubating" + }, + { + "name": "Qitmeer Network Privnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Qitmeer Privnet", + "symbol": "MEER-P", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "meerpriv", + "icon": "meer", + "chainId": 8133, + "networkId": 8133, + "status": "incubating" + }, + { + "name": "Amana", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Amana Mainnet", + "symbol": "MEER", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "amana", + "icon": "meer", + "chainId": 8134, + "networkId": 8134, + "status": "incubating" + }, + { + "name": "Flana", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Flana Mainnet", + "symbol": "MEER", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "flana", + "icon": "meer", + "chainId": 8135, + "networkId": 8135, + "status": "incubating" + }, + { + "name": "Mizana", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Mizana Mainnet", + "symbol": "MEER", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "mizana", + "icon": "meer", + "chainId": 8136, + "networkId": 8136, + "status": "incubating" + }, + { + "name": "BeOne Chain Testnet", + "chain": "BOC", + "rpc": [ + "https://pre-boc1.beonechain.com", + "https://pre-boc2.beonechain.com", + "https://pre-boc3.beonechain.com" + ], + "faucets": ["https://testnet.beonescan.com/faucet"], + "nativeCurrency": { + "name": "BeOne Chain Testnet", + "symbol": "BOC", + "decimals": 18 + }, + "infoURL": "https://testnet.beonescan.com", + "shortName": "tBOC", + "chainId": 8181, + "networkId": 8181, + "icon": "beonechain", + "explorers": [ + { + "name": "BeOne Chain Testnet", + "url": "https://testnet.beonescan.com", + "icon": "beonechain", + "standard": "none" + } + ] + }, + { + "name": "Klaytn Mainnet Cypress", + "chain": "KLAY", + "rpc": ["https://public-node-api.klaytnapi.com/v1/cypress"], + "faucets": [], + "nativeCurrency": { "name": "KLAY", "symbol": "KLAY", "decimals": 18 }, + "infoURL": "https://www.klaytn.com/", + "shortName": "Cypress", + "chainId": 8217, + "networkId": 8217, + "slip44": 8217, + "explorers": [ + { + "name": "Klaytnscope", + "url": "https://scope.klaytn.com", + "standard": "none" + } + ] + }, + { + "name": "Blockton Blockchain", + "chain": "Blockton Blockchain", + "icon": "bton", + "rpc": ["https://rpc.blocktonscan.com/"], + "faucets": ["https://faucet.blocktonscan.com/"], + "nativeCurrency": { "name": "BLOCKTON", "symbol": "BTON", "decimals": 18 }, + "infoURL": "https://blocktoncoin.com", + "shortName": "BTON", + "chainId": 8272, + "networkId": 8272, + "explorers": [ + { + "name": "Blockton Explorer", + "url": "https://blocktonscan.com", + "standard": "none" + } + ] + }, + { + "name": "KorthoTest", + "chain": "Kortho", + "rpc": ["https://www.krotho-test.net"], + "faucets": [], + "nativeCurrency": { + "name": "Kortho Test", + "symbol": "KTO", + "decimals": 11 + }, + "infoURL": "https://www.kortho.io/", + "shortName": "Kortho", + "chainId": 8285, + "networkId": 8285 + }, + { + "name": "Dracones Financial Services", + "title": "The Dracones Mainnet", + "chain": "FUCK", + "rpc": ["https://api.dracones.net/"], + "faucets": [], + "nativeCurrency": { + "name": "Functionally Universal Coin Kind", + "symbol": "FUCK", + "decimals": 18 + }, + "infoURL": "https://wolfery.com", + "shortName": "fuck", + "chainId": 8387, + "networkId": 8387, + "icon": "dracones", + "explorers": [] + }, + { + "name": "Base", + "chain": "ETH", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://base.org", + "shortName": "base", + "chainId": 8453, + "networkId": 8453, + "status": "incubating" + }, + { + "name": "Toki Network", + "chain": "TOKI", + "rpc": ["https://mainnet.buildwithtoki.com/v0/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Toki", "symbol": "TOKI", "decimals": 18 }, + "infoURL": "https://www.buildwithtoki.com", + "shortName": "toki", + "chainId": 8654, + "networkId": 8654, + "icon": "toki", + "explorers": [] + }, + { + "name": "Toki Testnet", + "chain": "TOKI", + "rpc": ["https://testnet.buildwithtoki.com/v0/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Toki", "symbol": "TOKI", "decimals": 18 }, + "infoURL": "https://www.buildwithtoki.com", + "shortName": "toki-testnet", + "chainId": 8655, + "networkId": 8655, + "icon": "toki", + "explorers": [] + }, + { + "name": "TOOL Global Mainnet", + "chain": "OLO", + "rpc": ["https://mainnet-web3.wolot.io"], + "faucets": [], + "nativeCurrency": { + "name": "TOOL Global", + "symbol": "OLO", + "decimals": 18 + }, + "infoURL": "https://ibdt.io", + "shortName": "olo", + "chainId": 8723, + "networkId": 8723, + "slip44": 479, + "explorers": [ + { + "name": "OLO Block Explorer", + "url": "https://www.olo.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "TOOL Global Testnet", + "chain": "OLO", + "rpc": ["https://testnet-web3.wolot.io"], + "faucets": ["https://testnet-explorer.wolot.io"], + "nativeCurrency": { + "name": "TOOL Global", + "symbol": "OLO", + "decimals": 18 + }, + "infoURL": "https://testnet-explorer.wolot.io", + "shortName": "tolo", + "chainId": 8724, + "networkId": 8724, + "slip44": 479 + }, + { + "name": "Alph Network", + "chain": "ALPH", + "rpc": ["https://rpc.alph.network", "wss://rpc.alph.network"], + "faucets": [], + "nativeCurrency": { + "name": "Alph Network", + "symbol": "ALPH", + "decimals": 18 + }, + "infoURL": "https://alph.network", + "shortName": "alph", + "chainId": 8738, + "networkId": 8738, + "explorers": [ + { + "name": "alphscan", + "url": "https://explorer.alph.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "TMY Chain", + "chain": "TMY", + "icon": "tmychain", + "rpc": ["https://node1.tmyblockchain.org/rpc"], + "faucets": ["https://faucet.tmychain.org/"], + "nativeCurrency": { "name": "TMY", "symbol": "TMY", "decimals": 18 }, + "infoURL": "https://tmychain.org/", + "shortName": "tmy", + "chainId": 8768, + "networkId": 8768 + }, + { + "name": "MARO Blockchain Mainnet", + "chain": "MARO Blockchain", + "icon": "MARO", + "rpc": ["https://rpc-mainnet.ma.ro"], + "faucets": [], + "nativeCurrency": { "name": "MARO", "symbol": "MARO", "decimals": 18 }, + "infoURL": "https://ma.ro/", + "shortName": "maro", + "chainId": 8848, + "networkId": 8848, + "explorers": [ + { "name": "MARO Scan", "url": "https://scan.ma.ro/#", "standard": "none" } + ] + }, + { + "name": "Unique", + "icon": "unique", + "chain": "UNQ", + "rpc": [ + "https://rpc.unique.network", + "https://eu-rpc.unique.network", + "https://asia-rpc.unique.network", + "https://us-rpc.unique.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Unique", "symbol": "UNQ", "decimals": 18 }, + "infoURL": "https://unique.network", + "shortName": "unq", + "chainId": 8880, + "networkId": 8880, + "explorers": [ + { + "name": "Unique Scan", + "url": "https://uniquescan.io/unique", + "standard": "none" + } + ] + }, + { + "name": "Quartz by Unique", + "icon": "quartz", + "chain": "UNQ", + "rpc": [ + "https://rpc-quartz.unique.network", + "https://quartz.api.onfinality.io/public-ws", + "https://eu-rpc-quartz.unique.network", + "https://asia-rpc-quartz.unique.network", + "https://us-rpc-quartz.unique.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Quartz", "symbol": "QTZ", "decimals": 18 }, + "infoURL": "https://unique.network", + "shortName": "qtz", + "chainId": 8881, + "networkId": 8881, + "explorers": [ + { + "name": "Unique Scan / Quartz", + "url": "https://uniquescan.io/quartz", + "standard": "none" + } + ] + }, + { + "name": "Opal testnet by Unique", + "icon": "opal", + "chain": "UNQ", + "rpc": [ + "https://rpc-opal.unique.network", + "https://us-rpc-opal.unique.network", + "https://eu-rpc-opal.unique.network", + "https://asia-rpc-opal.unique.network" + ], + "faucets": ["https://t.me/unique2faucet_opal_bot"], + "nativeCurrency": { "name": "Opal", "symbol": "UNQ", "decimals": 18 }, + "infoURL": "https://unique.network", + "shortName": "opl", + "chainId": 8882, + "networkId": 8882, + "explorers": [ + { + "name": "Unique Scan / Opal", + "url": "https://uniquescan.io/opal", + "standard": "none" + } + ] + }, + { + "name": "Sapphire by Unique", + "icon": "sapphire", + "chain": "UNQ", + "rpc": [ + "https://rpc-sapphire.unique.network", + "https://us-rpc-sapphire.unique.network", + "https://eu-rpc-sapphire.unique.network", + "https://asia-rpc-sapphire.unique.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Quartz", "symbol": "QTZ", "decimals": 18 }, + "infoURL": "https://unique.network", + "shortName": "sph", + "chainId": 8883, + "networkId": 8883, + "explorers": [ + { + "name": "Unique Scan / Sapphire", + "url": "https://uniquescan.io/sapphire", + "standard": "none" + } + ] + }, + { + "name": "XANAChain", + "chain": "XANAChain", + "rpc": ["https://mainnet.xana.net/rpc"], + "faucets": [], + "nativeCurrency": { "name": "XETA", "symbol": "XETA", "decimals": 18 }, + "infoURL": "https://xanachain.xana.net/", + "shortName": "XANAChain", + "chainId": 8888, + "networkId": 8888, + "icon": "xeta", + "explorers": [ + { + "name": "XANAChain", + "url": "https://xanachain.xana.net", + "standard": "EIP3091" + } + ], + "redFlags": ["reusedChainId"] + }, + { + "name": "Vyvo Smart Chain", + "chain": "VSC", + "rpc": ["https://vsc-dataseed.vyvo.org:8889"], + "faucets": [], + "nativeCurrency": { "name": "VSC", "symbol": "VSC", "decimals": 18 }, + "infoURL": "https://vsc-dataseed.vyvo.org", + "shortName": "vsc", + "chainId": 8889, + "networkId": 8889 + }, + { + "name": "Mammoth Mainnet", + "title": "Mammoth Chain", + "chain": "MMT", + "rpc": [ + "https://dataseed.mmtscan.io", + "https://dataseed1.mmtscan.io", + "https://dataseed2.mmtscan.io" + ], + "faucets": ["https://faucet.mmtscan.io/"], + "nativeCurrency": { + "name": "Mammoth Token", + "symbol": "MMT", + "decimals": 18 + }, + "infoURL": "https://mmtchain.io/", + "shortName": "mmt", + "chainId": 8898, + "networkId": 8898, + "icon": "mmt", + "explorers": [ + { + "name": "mmtscan", + "url": "https://mmtscan.io", + "standard": "EIP3091", + "icon": "mmt" + } + ] + }, + { + "name": "JIBCHAIN L1", + "chain": "JBC", + "rpc": ["https://rpc-l1.jibchain.net"], + "faucets": [], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "nativeCurrency": { "name": "JIBCOIN", "symbol": "JBC", "decimals": 18 }, + "infoURL": "https://jibchain.net", + "shortName": "jbc", + "chainId": 8899, + "networkId": 8899, + "explorers": [ + { + "name": "JIBCHAIN Explorer", + "url": "https://exp-l1.jibchain.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Giant Mammoth Mainnet", + "title": "Giant Mammoth Chain", + "chain": "GMMT", + "rpc": ["https://rpc-asia.gmmtchain.io"], + "faucets": [], + "nativeCurrency": { + "name": "Giant Mammoth Coin", + "symbol": "GMMT", + "decimals": 18 + }, + "infoURL": "https://gmmtchain.io/", + "shortName": "gmmt", + "chainId": 8989, + "networkId": 8989, + "icon": "gmmt", + "explorers": [ + { + "name": "gmmtscan", + "url": "https://scan.gmmtchain.io", + "standard": "EIP3091", + "icon": "gmmt" + } + ] + }, + { + "name": "bloxberg", + "chain": "bloxberg", + "rpc": ["https://core.bloxberg.org"], + "faucets": ["https://faucet.bloxberg.org/"], + "nativeCurrency": { "name": "BERG", "symbol": "U+25B3", "decimals": 18 }, + "infoURL": "https://bloxberg.org", + "shortName": "berg", + "chainId": 8995, + "networkId": 8995 + }, + { + "name": "Evmos Testnet", + "chain": "Evmos", + "rpc": ["https://eth.bd.evmos.dev:8545"], + "faucets": ["https://faucet.evmos.dev"], + "nativeCurrency": { + "name": "test-Evmos", + "symbol": "tEVMOS", + "decimals": 18 + }, + "infoURL": "https://evmos.org", + "shortName": "evmos-testnet", + "chainId": 9000, + "networkId": 9000, + "icon": "evmos", + "explorers": [ + { + "name": "Evmos EVM Explorer", + "url": "https://evm.evmos.dev", + "standard": "EIP3091", + "icon": "evmos" + }, + { + "name": "Evmos Cosmos Explorer", + "url": "https://explorer.evmos.dev", + "standard": "none", + "icon": "evmos" + } + ] + }, + { + "name": "Evmos", + "chain": "Evmos", + "rpc": [ + "https://eth.bd.evmos.org:8545", + "https://evmos-evm.publicnode.com" + ], + "faucets": [], + "nativeCurrency": { "name": "Evmos", "symbol": "EVMOS", "decimals": 18 }, + "infoURL": "https://evmos.org", + "shortName": "evmos", + "chainId": 9001, + "networkId": 9001, + "icon": "evmos", + "explorers": [ + { + "name": "Evmos EVM Explorer (Escan)", + "url": "https://escan.live", + "standard": "none", + "icon": "evmos" + }, + { + "name": "Evmos Cosmos Explorer (Mintscan)", + "url": "https://www.mintscan.io/evmos", + "standard": "none", + "icon": "evmos" + } + ] + }, + { + "name": "BerylBit Mainnet", + "chain": "BRB", + "rpc": ["https://mainnet.berylbit.io"], + "faucets": ["https://t.me/BerylBit"], + "nativeCurrency": { + "name": "BerylBit Chain Native Token", + "symbol": "BRB", + "decimals": 18 + }, + "infoURL": "https://www.beryl-bit.com", + "shortName": "brb", + "chainId": 9012, + "networkId": 9012, + "icon": "berylbit", + "explorers": [ + { + "name": "berylbit-explorer", + "url": "https://explorer.berylbit.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Genesis Coin", + "chain": "Genesis", + "rpc": ["https://genesis-gn.com", "wss://genesis-gn.com"], + "faucets": [], + "nativeCurrency": { "name": "GN Coin", "symbol": "GNC", "decimals": 18 }, + "infoURL": "https://genesis-gn.com", + "shortName": "GENEC", + "chainId": 9100, + "networkId": 9100 + }, + { + "name": "Rinia Testnet Old", + "chain": "FIRE", + "icon": "rinia", + "rpc": [], + "faucets": ["https://faucet.thefirechain.com"], + "nativeCurrency": { "name": "Firechain", "symbol": "FIRE", "decimals": 18 }, + "infoURL": "https://thefirechain.com", + "shortName": "_old_tfire", + "chainId": 9170, + "networkId": 9170, + "explorers": [], + "status": "deprecated" + }, + { + "name": "Dogcoin Testnet", + "chain": "DOGS", + "icon": "dogs", + "rpc": ["https://testnet-rpc.dogcoin.me"], + "faucets": ["https://faucet.dogcoin.network"], + "nativeCurrency": { "name": "Dogcoin", "symbol": "DOGS", "decimals": 18 }, + "infoURL": "https://dogcoin.network", + "shortName": "DOGSt", + "chainId": 9339, + "networkId": 9339, + "explorers": [ + { + "name": "Dogcoin", + "url": "https://testnet.dogcoin.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Rangers Protocol Testnet Robin", + "chain": "Rangers", + "icon": "rangers", + "rpc": ["https://robin.rangersprotocol.com/api/jsonrpc"], + "faucets": ["https://robin-faucet.rangersprotocol.com"], + "nativeCurrency": { + "name": "Rangers Protocol Gas", + "symbol": "tRPG", + "decimals": 18 + }, + "infoURL": "https://rangersprotocol.com", + "shortName": "trpg", + "chainId": 9527, + "networkId": 9527, + "explorers": [ + { + "name": "rangersscan-robin", + "url": "https://robin-rangersscan.rangersprotocol.com", + "standard": "none" + } + ] + }, + { + "name": "QEasyWeb3 Testnet", + "chain": "QET", + "rpc": ["https://qeasyweb3.com"], + "faucets": ["http://faucet.qeasyweb3.com"], + "nativeCurrency": { "name": "QET", "symbol": "QET", "decimals": 18 }, + "infoURL": "https://www.qeasyweb3.com", + "shortName": "QETTest", + "chainId": 9528, + "networkId": 9528, + "explorers": [ + { + "name": "QEasyWeb3 Explorer", + "url": "https://www.qeasyweb3.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Neonlink Testnet", + "chain": "Neonlink", + "rpc": ["https://testnet.neonlink.io"], + "faucets": ["https://faucet.neonlink.io/"], + "nativeCurrency": { + "name": "Neonlink Native Token", + "symbol": "tNEON", + "decimals": 18 + }, + "infoURL": "https://neonlink.io", + "shortName": "testneon", + "chainId": 9559, + "networkId": 9559, + "icon": "neonlink", + "explorers": [ + { + "name": "Neon Blockchain Explorer", + "url": "https://testnet-scan.neonlink.io", + "standard": "EIP3091", + "icon": "neonlink" + } + ] + }, + { + "name": "Oort MainnetDev", + "title": "Oort MainnetDev", + "chain": "MainnetDev", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Oort", "symbol": "CCN", "decimals": 18 }, + "infoURL": "https://oortech.com", + "shortName": "MainnetDev", + "chainId": 9700, + "networkId": 9700, + "icon": "ccn" + }, + { + "name": "Boba BNB Testnet", + "chain": "Boba BNB Testnet", + "rpc": [ + "https://testnet.bnb.boba.network", + "wss://wss.testnet.bnb.boba.network", + "https://replica.testnet.bnb.boba.network", + "wss://replica-wss.testnet.bnb.boba.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "BobaBnbTestnet", + "chainId": 9728, + "networkId": 9728, + "explorers": [ + { + "name": "Boba BNB Testnet block explorer", + "url": "https://blockexplorer.testnet.bnb.boba.network", + "standard": "none" + } + ] + }, + { + "name": "MainnetZ Testnet", + "chain": "NetZ", + "icon": "mainnetzTestnet", + "rpc": ["https://testnet-rpc.mainnetz.io"], + "faucets": ["https://faucet.mainnetz.io"], + "nativeCurrency": { "name": "MainnetZ", "symbol": "NetZ", "decimals": 18 }, + "infoURL": "https://testnet.mainnetz.io", + "shortName": "NetZt", + "chainId": 9768, + "networkId": 9768, + "explorers": [ + { + "name": "MainnetZ", + "url": "https://testnet.mainnetz.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "PepeNetwork Mainnet", + "chain": "PepeNetwork", + "rpc": ["https://rpc-mainnet.pepenetwork.io"], + "faucets": [], + "nativeCurrency": { "name": "Pepe", "symbol": "WPEPE", "decimals": 18 }, + "infoURL": "https://pepenetwork.io", + "shortName": "pn", + "chainId": 9779, + "networkId": 9779, + "icon": "pepenetwork", + "explorers": [ + { + "name": "Pepe Explorer", + "url": "https://explorer.pepenetwork.io", + "icon": "pepenetwork", + "standard": "none" + } + ] + }, + { + "name": "Carbon EVM", + "chain": "Carbon", + "icon": "carbon", + "rpc": ["https://evm-api.carbon.network/"], + "faucets": [], + "nativeCurrency": { "name": "swth", "symbol": "SWTH", "decimals": 18 }, + "infoURL": "https://carbon.network/", + "shortName": "carbon", + "chainId": 9790, + "networkId": 9790, + "explorers": [] + }, + { + "name": "Carbon EVM Testnet", + "chain": "Carbon", + "icon": "carbon", + "rpc": ["https://test-evm-api.carbon.network/"], + "faucets": [], + "nativeCurrency": { "name": "swth", "symbol": "SWTH", "decimals": 18 }, + "infoURL": "https://carbon.network/", + "shortName": "carbon-testnet", + "chainId": 9792, + "networkId": 9792, + "explorers": [] + }, + { + "name": "AltLayer Testnet", + "chain": "ETH", + "rpc": ["https://testnet-rollup-api.altlayer.io"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://altlayer.io", + "shortName": "alt-testnet", + "chainId": 9997, + "networkId": 9997, + "icon": "altlayer", + "explorers": [ + { + "name": "blockscout", + "url": "https://testnet-rollup-explorer.altlayer.io", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "myOwn Testnet", + "chain": "myOwn", + "rpc": ["https://geth.dev.bccloud.net"], + "faucets": [], + "nativeCurrency": { "name": "MYN", "symbol": "MYN", "decimals": 18 }, + "infoURL": "https://docs.bccloud.net/", + "shortName": "myn", + "chainId": 9999, + "networkId": 9999 + }, + { + "name": "Smart Bitcoin Cash", + "chain": "smartBCH", + "rpc": [ + "https://smartbch.greyh.at", + "https://rpc-mainnet.smartbch.org", + "https://smartbch.fountainhead.cash/mainnet", + "https://smartbch.devops.cash/mainnet" + ], + "faucets": [], + "nativeCurrency": { + "name": "Bitcoin Cash", + "symbol": "BCH", + "decimals": 18 + }, + "infoURL": "https://smartbch.org/", + "shortName": "smartbch", + "chainId": 10000, + "networkId": 10000 + }, + { + "name": "Smart Bitcoin Cash Testnet", + "chain": "smartBCHTest", + "rpc": [ + "https://rpc-testnet.smartbch.org", + "https://smartbch.devops.cash/testnet" + ], + "faucets": [], + "nativeCurrency": { + "name": "Bitcoin Cash Test Token", + "symbol": "BCHT", + "decimals": 18 + }, + "infoURL": "http://smartbch.org/", + "shortName": "smartbchtest", + "chainId": 10001, + "networkId": 10001 + }, + { + "name": "Gon Chain", + "chain": "GonChain", + "icon": "gonchain", + "rpc": [ + "https://node1.testnet.gaiaopen.network", + "http://database1.gaiaopen.network" + ], + "faucets": [], + "nativeCurrency": { "name": "Gon Token", "symbol": "GT", "decimals": 18 }, + "infoURL": "", + "shortName": "gon", + "chainId": 10024, + "networkId": 10024, + "explorers": [ + { + "name": "Gon Explorer", + "url": "https://gonscan.com", + "standard": "none" + } + ] + }, + { + "name": "SJATSH", + "chain": "ETH", + "rpc": ["http://geth.free.idcfengye.com"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://sjis.me", + "shortName": "SJ", + "chainId": 10086, + "networkId": 10086 + }, + { + "name": "Blockchain Genesis Mainnet", + "chain": "GEN", + "rpc": [ + "https://eu.mainnet.xixoio.com", + "https://us.mainnet.xixoio.com", + "https://asia.mainnet.xixoio.com" + ], + "faucets": [], + "nativeCurrency": { "name": "GEN", "symbol": "GEN", "decimals": 18 }, + "infoURL": "https://www.xixoio.com/", + "shortName": "GEN", + "chainId": 10101, + "networkId": 10101 + }, + { + "name": "Gnosis Chiado Testnet", + "chain": "GNO", + "icon": "gnosis", + "rpc": [ + "https://rpc.chiadochain.net", + "https://rpc.chiado.gnosis.gateway.fm", + "wss://rpc.chiadochain.net/wss" + ], + "faucets": ["https://gnosisfaucet.com"], + "nativeCurrency": { + "name": "Chiado xDAI", + "symbol": "XDAI", + "decimals": 18 + }, + "infoURL": "https://docs.gnosischain.com", + "shortName": "chi", + "chainId": 10200, + "networkId": 10200, + "explorers": [ + { + "name": "blockscout", + "url": "https://blockscout.chiadochain.net", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "0XTade", + "chain": "0XTade Chain", + "rpc": ["https://node.0xtchain.com"], + "faucets": [], + "nativeCurrency": { "name": "0XT", "symbol": "0XT", "decimals": 18 }, + "infoURL": "https://www.0xtrade.finance/", + "shortName": "0xt", + "chainId": 10248, + "networkId": 10248, + "explorers": [ + { + "name": "0xtrade Scan", + "url": "https://www.0xtscan.com", + "standard": "none" + } + ] + }, + { + "name": "Numbers Mainnet", + "chain": "NUM", + "icon": "num", + "rpc": ["https://mainnetrpc.num.network"], + "faucets": [], + "nativeCurrency": { "name": "NUM Token", "symbol": "NUM", "decimals": 18 }, + "infoURL": "https://numbersprotocol.io", + "shortName": "Jade", + "chainId": 10507, + "networkId": 10507, + "explorers": [ + { + "name": "ethernal", + "url": "https://mainnet.num.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Numbers Testnet", + "chain": "NUM", + "icon": "num", + "rpc": ["https://testnetrpc.num.network"], + "faucets": [ + "https://faucet.avax.network/?subnet=num", + "https://faucet.num.network" + ], + "nativeCurrency": { "name": "NUM Token", "symbol": "NUM", "decimals": 18 }, + "infoURL": "https://numbersprotocol.io", + "shortName": "Snow", + "chainId": 10508, + "networkId": 10508, + "explorers": [ + { + "name": "ethernal", + "url": "https://testnet.num.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "CryptoCoinPay", + "chain": "CCP", + "rpc": [ + "http://node106.cryptocoinpay.info:8545", + "ws://node106.cryptocoinpay.info:8546" + ], + "faucets": [], + "icon": "ccp", + "nativeCurrency": { + "name": "CryptoCoinPay", + "symbol": "CCP", + "decimals": 18 + }, + "infoURL": "https://www.cryptocoinpay.co", + "shortName": "CCP", + "chainId": 10823, + "networkId": 10823, + "explorers": [ + { + "name": "CCP Explorer", + "url": "https://cryptocoinpay.info", + "standard": "EIP3091" + } + ] + }, + { + "name": "Quadrans Blockchain", + "chain": "QDC", + "icon": "quadrans", + "rpc": [ + "https://rpc.quadrans.io", + "https://rpcna.quadrans.io", + "https://rpceu.quadrans.io" + ], + "faucets": [], + "nativeCurrency": { + "name": "Quadrans Coin", + "symbol": "QDC", + "decimals": 18 + }, + "infoURL": "https://quadrans.io", + "shortName": "quadrans", + "chainId": 10946, + "networkId": 10946, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.quadrans.io", + "icon": "quadrans", + "standard": "EIP3091" + } + ] + }, + { + "name": "Quadrans Blockchain Testnet", + "chain": "tQDC", + "icon": "quadrans", + "rpc": ["https://rpctest.quadrans.io", "https://rpctest2.quadrans.io"], + "faucets": ["https://faucetpage.quadrans.io"], + "nativeCurrency": { + "name": "Quadrans Testnet Coin", + "symbol": "tQDC", + "decimals": 18 + }, + "infoURL": "https://quadrans.io", + "shortName": "quadranstestnet", + "chainId": 10947, + "networkId": 10947, + "explorers": [ + { + "name": "explorer", + "url": "https://explorer.testnet.quadrans.io", + "icon": "quadrans", + "standard": "EIP3091" + } + ] + }, + { + "name": "Astra", + "chain": "Astra", + "rpc": ["https://rpc.astranaut.io", "https://rpc1.astranaut.io"], + "faucets": [], + "nativeCurrency": { "name": "Astra", "symbol": "ASA", "decimals": 18 }, + "infoURL": "https://astranaut.io", + "shortName": "astra", + "chainId": 11110, + "networkId": 11110, + "icon": "astra", + "explorers": [ + { + "name": "Astra EVM Explorer (Blockscout)", + "url": "https://explorer.astranaut.io", + "standard": "none", + "icon": "astra" + }, + { + "name": "Astra PingPub Explorer", + "url": "https://ping.astranaut.io/astra", + "standard": "none", + "icon": "astra" + } + ] + }, + { + "name": "WAGMI", + "chain": "WAGMI", + "icon": "wagmi", + "rpc": ["https://subnets.avax.network/wagmi/wagmi-chain-testnet/rpc"], + "faucets": ["https://faucet.avax.network/?subnet=wagmi"], + "nativeCurrency": { "name": "WAGMI", "symbol": "WGM", "decimals": 18 }, + "infoURL": "https://subnets-test.avax.network/wagmi/details", + "shortName": "WAGMI", + "chainId": 11111, + "networkId": 11111, + "explorers": [ + { + "name": "Avalanche Subnet Explorer", + "url": "https://subnets-test.avax.network/wagmi", + "standard": "EIP3091" + } + ] + }, + { + "name": "Astra Testnet", + "chain": "Astra", + "rpc": ["https://rpc.astranaut.dev"], + "faucets": ["https://faucet.astranaut.dev"], + "nativeCurrency": { + "name": "test-Astra", + "symbol": "tASA", + "decimals": 18 + }, + "infoURL": "https://astranaut.io", + "shortName": "astra-testnet", + "chainId": 11115, + "networkId": 11115, + "icon": "astra", + "explorers": [ + { + "name": "Astra EVM Explorer", + "url": "https://explorer.astranaut.dev", + "standard": "EIP3091", + "icon": "astra" + }, + { + "name": "Astra PingPub Explorer", + "url": "https://ping.astranaut.dev/astra", + "standard": "none", + "icon": "astra" + } + ] + }, + { + "name": "HashBit Mainnet", + "chain": "HBIT", + "rpc": ["https://mainnet-rpc.hashbit.org", "https://rpc.hashbit.org"], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], + "nativeCurrency": { + "name": "HashBit Native Token", + "symbol": "HBIT", + "decimals": 18 + }, + "infoURL": "https://hashbit.org", + "shortName": "hbit", + "chainId": 11119, + "networkId": 11119, + "explorers": [ + { + "name": "hashbitscan", + "url": "https://explorer.hashbit.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Haqq Network", + "chain": "Haqq", + "rpc": ["https://rpc.eth.haqq.network"], + "faucets": [], + "nativeCurrency": { + "name": "Islamic Coin", + "symbol": "ISLM", + "decimals": 18 + }, + "infoURL": "https://islamiccoin.net", + "shortName": "ISLM", + "chainId": 11235, + "networkId": 11235, + "explorers": [ + { + "name": "Mainnet HAQQ Explorer", + "url": "https://explorer.haqq.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Shyft Testnet", + "chain": "SHYFTT", + "icon": "shyft", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Shyft Test Token", + "symbol": "SHYFTT", + "decimals": 18 + }, + "infoURL": "https://shyft.network", + "shortName": "shyftt", + "chainId": 11437, + "networkId": 11437, + "explorers": [ + { + "name": "Shyft Testnet BX", + "url": "https://bx.testnet.shyft.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Sardis Testnet", + "chain": "SRDX", + "icon": "sardisTestnet", + "rpc": ["https://testnet-rpc.sardisnetwork.com"], + "faucets": ["https://faucet.sardisnetwork.com"], + "nativeCurrency": { "name": "Sardis", "symbol": "SRDX", "decimals": 18 }, + "infoURL": "https://mysardis.com", + "shortName": "SRDXt", + "chainId": 11612, + "networkId": 11612, + "explorers": [ + { + "name": "Sardis", + "url": "https://testnet.sardisnetwork.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "SanR Chain", + "chain": "SanRChain", + "rpc": ["https://sanrchain-node.santiment.net"], + "faucets": [], + "nativeCurrency": { "name": "nSAN", "symbol": "nSAN", "decimals": 18 }, + "infoURL": "https://sanr.app", + "shortName": "SAN", + "chainId": 11888, + "networkId": 11888, + "icon": "sanrchain", + "parent": { + "chain": "eip155-1", + "type": "L2", + "bridges": [{ "url": "https://sanr.app" }] + }, + "explorers": [ + { + "name": "SanR Chain Explorer", + "url": "https://sanrchain-explorer.santiment.net", + "standard": "none" + } + ] + }, + { + "name": "SatoshiChain Mainnet", + "chain": "SATS", + "icon": "satoshichain", + "rpc": ["https://mainnet-rpc.satoshichain.io"], + "faucets": [], + "nativeCurrency": { + "name": "SatoshiChain Coin", + "symbol": "SATS", + "decimals": 18 + }, + "infoURL": "https://satoshichain.net", + "shortName": "sats", + "chainId": 12009, + "networkId": 12009, + "explorers": [ + { + "name": "SatoshiChain Explorer", + "url": "https://satoshiscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Singularity ZERO Testnet", + "chain": "ZERO", + "rpc": ["https://betaenv.singularity.gold:18545"], + "faucets": ["https://nft.singularity.gold"], + "nativeCurrency": { "name": "ZERO", "symbol": "tZERO", "decimals": 18 }, + "infoURL": "https://www.singularity.gold", + "shortName": "tZERO", + "chainId": 12051, + "networkId": 12051, + "explorers": [ + { + "name": "zeroscan", + "url": "https://betaenv.singularity.gold:18002", + "standard": "EIP3091" + } + ] + }, + { + "name": "Singularity ZERO Mainnet", + "chain": "ZERO", + "rpc": ["https://zerorpc.singularity.gold"], + "faucets": ["https://zeroscan.singularity.gold"], + "nativeCurrency": { "name": "ZERO", "symbol": "ZERO", "decimals": 18 }, + "infoURL": "https://www.singularity.gold", + "shortName": "ZERO", + "chainId": 12052, + "networkId": 12052, + "slip44": 621, + "explorers": [ + { + "name": "zeroscan", + "url": "https://zeroscan.singularity.gold", + "standard": "EIP3091" + } + ] + }, + { + "name": "Fibonacci Mainnet", + "chain": "FIBO", + "icon": "fibonacci", + "rpc": [ + "https://node1.fibo-api.asia", + "https://node2.fibo-api.asia", + "https://node3.fibo-api.asia", + "https://node4.fibo-api.asia", + "https://node5.fibo-api.asia", + "https://node6.fibo-api.asia", + "https://node7.fibo-api.asia", + "https://node1.fibo-rpc.asia", + "https://node2.fibo-rpc.asia", + "https://node3.fibo-rpc.asia", + "https://node4.fibo-rpc.asia", + "https://node5.fibo-rpc.asia", + "https://node6.fibo-rpc.asia", + "https://node7.fibo-rpc.asia" + ], + "faucets": ["https://test.fibochain.org/faucets"], + "nativeCurrency": { + "name": "FIBONACCI UTILITY TOKEN", + "symbol": "FIBO", + "decimals": 18 + }, + "infoURL": "https://fibochain.org", + "shortName": "fibo", + "chainId": 12306, + "networkId": 1230, + "explorers": [ + { + "name": "fiboscan", + "url": "https://scan.fibochain.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "BLG Testnet", + "chain": "BLG", + "icon": "blg", + "rpc": ["https://rpc.blgchain.com"], + "faucets": ["https://faucet.blgchain.com"], + "nativeCurrency": { "name": "Blg", "symbol": "BLG", "decimals": 18 }, + "infoURL": "https://blgchain.com", + "shortName": "blgchain", + "chainId": 12321, + "networkId": 12321 + }, + { + "name": "Step Testnet", + "title": "Step Test Network", + "chain": "STEP", + "icon": "step", + "rpc": ["https://rpc.testnet.step.network"], + "faucets": ["https://faucet.step.network"], + "nativeCurrency": { "name": "FITFI", "symbol": "FITFI", "decimals": 18 }, + "infoURL": "https://step.network", + "shortName": "steptest", + "chainId": 12345, + "networkId": 12345, + "explorers": [ + { + "name": "StepScan", + "url": "https://testnet.stepscan.io", + "icon": "step", + "standard": "EIP3091" + } + ], + "parent": { "type": "L2", "chain": "eip155-43113" } + }, + { + "name": "Rikeza Network Testnet", + "title": "Rikeza Network Testnet", + "chain": "Rikeza", + "icon": "rikeza", + "rpc": ["https://testnet-rpc.rikscan.com"], + "faucets": [], + "nativeCurrency": { "name": "Rikeza", "symbol": "RIK", "decimals": 18 }, + "infoURL": "https://rikeza.io", + "shortName": "tRIK", + "chainId": 12715, + "networkId": 12715, + "explorers": [ + { + "name": "Rikeza Blockchain explorer", + "url": "https://testnet.rikscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "SPS", + "chain": "SPS", + "rpc": ["https://rpc.ssquad.games"], + "faucets": [], + "nativeCurrency": { "name": "ECG", "symbol": "ECG", "decimals": 18 }, + "infoURL": "https://ssquad.games/", + "shortName": "SPS", + "chainId": 13000, + "networkId": 13000, + "explorers": [ + { + "name": "SPS Explorer", + "url": "http://spsscan.ssquad.games", + "standard": "EIP3091" + } + ] + }, + { + "name": "Credit Smartchain Mainnet", + "chain": "CREDIT", + "rpc": ["https://mainnet-rpc.cscscan.io"], + "faucets": [], + "nativeCurrency": { "name": "Credit", "symbol": "CREDIT", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://creditsmartchain.com", + "shortName": "Credit", + "chainId": 13308, + "networkId": 1, + "icon": "credit", + "explorers": [ + { + "name": "CSC Scan", + "url": "https://explorer.cscscan.io", + "icon": "credit", + "standard": "EIP3091" + } + ] + }, + { + "name": "Phoenix Mainnet", + "chain": "Phoenix", + "rpc": ["https://rpc.phoenixplorer.com/"], + "faucets": [], + "nativeCurrency": { "name": "Phoenix", "symbol": "PHX", "decimals": 18 }, + "infoURL": "https://cryptophoenix.org/phoenix", + "shortName": "Phoenix", + "chainId": 13381, + "networkId": 13381, + "icon": "phoenix", + "explorers": [ + { + "name": "phoenixplorer", + "url": "https://phoenixplorer.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Susono", + "chain": "SUS", + "rpc": [ + "https://gateway.opn.network/node/ext/bc/2VsZe5DstWw2bfgdx3YbjKcMsJnNDjni95sZorBEdk9L9Qr9Fr/rpc" + ], + "faucets": [], + "nativeCurrency": { "name": "Susono", "symbol": "OPN", "decimals": 18 }, + "infoURL": "", + "shortName": "sus", + "chainId": 13812, + "networkId": 13812, + "explorers": [ + { + "name": "Susono", + "url": "http://explorer.opn.network", + "standard": "none" + } + ] + }, + { + "name": "SPS Testnet", + "chain": "SPS-Testnet", + "rpc": ["https://www.3sps.net"], + "faucets": [], + "nativeCurrency": { "name": "ECG", "symbol": "ECG", "decimals": 18 }, + "infoURL": "https://ssquad.games/", + "shortName": "SPS-Test", + "chainId": 14000, + "networkId": 14000, + "explorers": [ + { + "name": "SPS Test Explorer", + "url": "https://explorer.3sps.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "LoopNetwork Mainnet", + "chain": "LoopNetwork", + "rpc": ["https://api.mainnetloop.com"], + "faucets": [], + "nativeCurrency": { "name": "LOOP", "symbol": "LOOP", "decimals": 18 }, + "infoURL": "http://theloopnetwork.org/", + "shortName": "loop", + "chainId": 15551, + "networkId": 15551, + "explorers": [ + { + "name": "loopscan", + "url": "http://explorer.mainnetloop.com", + "standard": "none" + } + ] + }, + { + "name": "Trust EVM Testnet", + "chain": "Trust EVM Testnet", + "rpc": ["https://api.testnet-dev.trust.one"], + "faucets": ["https://faucet.testnet-dev.trust.one/"], + "nativeCurrency": { "name": "Trust EVM", "symbol": "EVM", "decimals": 18 }, + "infoURL": "https://www.trust.one/", + "shortName": "TrustTestnet", + "chainId": 15555, + "networkId": 15555, + "explorers": [ + { + "name": "Trust EVM Explorer", + "url": "https://trustscan.one", + "standard": "EIP3091" + } + ] + }, + { + "name": "EOS EVM Network Testnet", + "chain": "EOS", + "icon": "eos", + "rpc": ["https://api.testnet.evm.eosnetwork.com"], + "faucets": [], + "nativeCurrency": { "name": "EOS", "symbol": "EOS", "decimals": 18 }, + "infoURL": "https://eosnetwork.com/eos-evm", + "shortName": "eos-testnet", + "chainId": 15557, + "networkId": 15557, + "explorers": [ + { + "name": "EOS EVM Explorer", + "url": "https://explorer.testnet.evm.eosnetwork.com", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://bridge.testnet.evm.eosnetwork.com" }] + } + }, + { + "name": "MetaDot Mainnet", + "chain": "MTT", + "rpc": ["https://mainnet.metadot.network"], + "faucets": [], + "nativeCurrency": { + "name": "MetaDot Token", + "symbol": "MTT", + "decimals": 18 + }, + "infoURL": "https://metadot.network", + "shortName": "mtt", + "chainId": 16000, + "networkId": 16000 + }, + { + "name": "MetaDot Testnet", + "chain": "MTTTest", + "rpc": ["https://testnet.metadot.network"], + "faucets": ["https://faucet.metadot.network/"], + "nativeCurrency": { + "name": "MetaDot Token TestNet", + "symbol": "MTTest", + "decimals": 18 + }, + "infoURL": "https://metadot.network", + "shortName": "mtttest", + "chainId": 16001, + "networkId": 16001 + }, + { + "name": "Genesys Mainnet", + "chain": "Genesys", + "icon": "genesys", + "rpc": ["https://rpc.genesys.network"], + "faucets": [], + "nativeCurrency": { "name": "Genesys", "symbol": "GSYS", "decimals": 18 }, + "infoURL": "https://www.genesys.network/", + "shortName": "Genesys", + "chainId": 16507, + "networkId": 16507, + "explorers": [ + { + "name": "GchainExplorer", + "url": "https://gchainexplorer.genesys.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "IRIShub Testnet", + "chain": "IRIShub", + "rpc": ["https://evmrpc.nyancat.irisnet.org"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "Eris", "symbol": "ERIS", "decimals": 18 }, + "infoURL": "https://www.irisnet.org", + "shortName": "nyancat", + "chainId": 16688, + "networkId": 16688, + "icon": "nyancat", + "explorers": [ + { + "name": "IRISHub Testnet Cosmos Explorer (IOBScan)", + "url": "https://nyancat.iobscan.io", + "standard": "none", + "icon": "nyancat" + } + ] + }, + { + "name": "AirDAO Mainnet", + "chain": "ambnet", + "icon": "airdao", + "rpc": ["https://network.ambrosus.io"], + "faucets": [], + "nativeCurrency": { "name": "Amber", "symbol": "AMB", "decimals": 18 }, + "infoURL": "https://airdao.io", + "shortName": "airdao", + "chainId": 16718, + "networkId": 16718, + "explorers": [ + { + "name": "AirDAO Network Explorer", + "url": "https://airdao.io/explorer", + "standard": "none" + } + ] + }, + { + "name": "IVAR Chain Testnet", + "chain": "IVAR", + "icon": "ivar", + "rpc": ["https://testnet-rpc.ivarex.com"], + "faucets": ["https://tfaucet.ivarex.com/"], + "nativeCurrency": { "name": "tIvar", "symbol": "tIVAR", "decimals": 18 }, + "infoURL": "https://ivarex.com", + "shortName": "tivar", + "chainId": 16888, + "networkId": 16888, + "explorers": [ + { + "name": "ivarscan", + "url": "https://testnet.ivarscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Palette Chain Testnet", + "chain": "PLT", + "rpc": ["https://palette-opennet.com:22000"], + "faucets": [], + "nativeCurrency": { + "name": "Palette Token", + "symbol": "PLT", + "decimals": 18 + }, + "features": [], + "infoURL": "https://hashpalette.com/", + "shortName": "PCT", + "chainId": 17180, + "networkId": 17180, + "icon": "PLT", + "explorers": [ + { + "name": "Palettescan", + "url": "https://testnet.palettescan.com", + "icon": "PLT", + "standard": "none" + } + ] + }, + { + "name": "EOS EVM Network", + "chain": "EOS", + "icon": "eos", + "rpc": ["https://api.evm.eosnetwork.com"], + "faucets": [], + "nativeCurrency": { "name": "EOS", "symbol": "EOS", "decimals": 18 }, + "infoURL": "https://eosnetwork.com/eos-evm", + "shortName": "eos", + "chainId": 17777, + "networkId": 17777, + "explorers": [ + { + "name": "EOS EVM Explorer", + "url": "https://explorer.evm.eosnetwork.com", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [ + { "url": "https://bridge.evm.eosnetwork.com" }, + { "url": "https://app.multichain.org" } + ] + } + }, + { + "name": "Frontier of Dreams Testnet", + "chain": "Game Network", + "rpc": ["https://rpc.fod.games/"], + "nativeCurrency": { "name": "ZKST", "symbol": "ZKST", "decimals": 18 }, + "faucets": [], + "shortName": "ZKST", + "chainId": 18000, + "networkId": 18000, + "infoURL": "https://goexosphere.com", + "explorers": [ + { + "name": "Game Network", + "url": "https://explorer.fod.games", + "standard": "EIP3091" + } + ] + }, + { + "name": "Proof Of Memes", + "title": "Proof Of Memes Mainnet", + "chain": "POM", + "icon": "pom", + "rpc": [ + "https://mainnet-rpc.memescan.io", + "https://mainnet-rpc2.memescan.io", + "https://mainnet-rpc3.memescan.io", + "https://mainnet-rpc4.memescan.io" + ], + "faucets": [], + "nativeCurrency": { + "name": "Proof Of Memes", + "symbol": "POM", + "decimals": 18 + }, + "infoURL": "https://proofofmemes.org", + "shortName": "pom", + "chainId": 18159, + "networkId": 18159, + "explorers": [ + { + "name": "explorer-proofofmemes", + "url": "https://memescan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "HOME Verse Mainnet", + "chain": "HOME Verse", + "icon": "home_verse", + "rpc": ["https://rpc.mainnet.oasys.homeverse.games/"], + "faucets": [], + "nativeCurrency": { "name": "OAS", "symbol": "OAS", "decimals": 18 }, + "infoURL": "https://www.homeverse.games/", + "shortName": "HMV", + "chainId": 19011, + "networkId": 19011, + "explorers": [ + { + "name": "HOME Verse Explorer", + "url": "https://explorer.oasys.homeverse.games", + "standard": "EIP3091" + } + ], + "parent": { "type": "L2", "chain": "eip155-248" } + }, + { + "name": "BTCIX Network", + "chain": "BTCIX", + "rpc": ["https://seed.btcix.org/rpc"], + "faucets": [], + "nativeCurrency": { + "name": "BTCIX Network", + "symbol": "BTCIX", + "decimals": 18 + }, + "infoURL": "https://bitcolojix.org", + "shortName": "btcix", + "chainId": 19845, + "networkId": 19845, + "explorers": [ + { + "name": "BTCIXScan", + "url": "https://btcixscan.com", + "standard": "none" + } + ] + }, + { + "name": "Camelark Mainnet", + "chainId": 20001, + "shortName": "Camelark", + "chain": "ETHW", + "icon": "camelark", + "networkId": 20001, + "nativeCurrency": { + "name": "EthereumPoW", + "symbol": "ETHW", + "decimals": 18 + }, + "rpc": ["https://mainnet-http-rpc.camelark.com"], + "faucets": [], + "explorers": [ + { + "name": "CamelarkScan", + "url": "https://scan.camelark.com", + "standard": "EIP3091" + } + ], + "infoURL": "https://www.camelark.com" + }, + { + "name": "Callisto Testnet", + "chain": "CLO", + "rpc": ["https://testnet-rpc.callisto.network/"], + "faucets": ["https://faucet.callisto.network/"], + "nativeCurrency": { "name": "Callisto", "symbol": "CLO", "decimals": 18 }, + "infoURL": "https://callisto.network", + "shortName": "CLOTestnet", + "chainId": 20729, + "networkId": 79 + }, + { + "name": "P12 Chain", + "chain": "P12", + "icon": "p12", + "rpc": ["https://rpc-chain.p12.games"], + "faucets": [], + "nativeCurrency": { "name": "Hooked P2", "symbol": "hP2", "decimals": 18 }, + "infoURL": "https://p12.network", + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "shortName": "p12", + "chainId": 20736, + "networkId": 20736, + "explorers": [ + { + "name": "P12 Chain Explorer", + "url": "https://explorer.p12.games", + "standard": "EIP3091" + } + ] + }, + { + "name": "CENNZnet Azalea", + "chain": "CENNZnet", + "rpc": ["https://cennznet.unfrastructure.io/public"], + "faucets": [], + "nativeCurrency": { "name": "CPAY", "symbol": "CPAY", "decimals": 18 }, + "infoURL": "https://cennz.net", + "shortName": "cennz-a", + "chainId": 21337, + "networkId": 21337, + "icon": "cennz", + "explorers": [ + { + "name": "UNcover", + "url": "https://uncoverexplorer.com", + "standard": "none" + } + ] + }, + { + "name": "omChain Mainnet", + "chain": "OML", + "icon": "omlira", + "rpc": ["https://seed.omchain.io"], + "faucets": [], + "nativeCurrency": { "name": "omChain", "symbol": "OMC", "decimals": 18 }, + "infoURL": "https://omchain.io", + "shortName": "omc", + "chainId": 21816, + "networkId": 21816, + "explorers": [ + { + "name": "omChain Explorer", + "url": "https://explorer.omchain.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Taycan", + "chain": "Taycan", + "rpc": ["https://taycan-rpc.hupayx.io:8545"], + "faucets": [], + "nativeCurrency": { "name": "shuffle", "symbol": "SFL", "decimals": 18 }, + "infoURL": "https://hupayx.io", + "shortName": "SFL", + "chainId": 22023, + "networkId": 22023, + "icon": "shuffle", + "explorers": [ + { + "name": "Taycan Explorer(Blockscout)", + "url": "https://taycan-evmscan.hupayx.io", + "standard": "none", + "icon": "shuffle" + }, + { + "name": "Taycan Cosmos Explorer(BigDipper)", + "url": "https://taycan-cosmoscan.hupayx.io", + "standard": "none", + "icon": "shuffle" + } + ] + }, + { + "name": "AirDAO Testnet", + "chain": "ambnet-test", + "icon": "airdao", + "rpc": ["https://network.ambrosus-test.io"], + "faucets": [], + "nativeCurrency": { "name": "Amber", "symbol": "AMB", "decimals": 18 }, + "infoURL": "https://testnet.airdao.io", + "shortName": "airdao-test", + "chainId": 22040, + "networkId": 22040, + "explorers": [ + { + "name": "AirDAO Network Explorer", + "url": "https://testnet.airdao.io/explorer", + "standard": "none" + } + ] + }, + { + "name": "MAP Mainnet", + "chain": "MAP", + "icon": "map", + "rpc": ["https://rpc.maplabs.io"], + "faucets": [], + "nativeCurrency": { "name": "MAP", "symbol": "MAP", "decimals": 18 }, + "infoURL": "https://maplabs.io", + "shortName": "map", + "chainId": 22776, + "networkId": 22776, + "slip44": 60, + "explorers": [ + { "name": "mapscan", "url": "https://mapscan.io", "standard": "EIP3091" } + ] + }, + { + "name": "Opside Testnet", + "chain": "Opside", + "rpc": ["https://testrpc.opside.network"], + "faucets": ["https://faucet.opside.network"], + "nativeCurrency": { "name": "IDE", "symbol": "IDE", "decimals": 18 }, + "infoURL": "https://opside.network", + "shortName": "opside", + "chainId": 23118, + "networkId": 23118, + "icon": "opside", + "explorers": [ + { + "name": "opsideInfo", + "url": "https://opside.info", + "standard": "EIP3091" + } + ] + }, + { + "name": "Oasis Sapphire", + "chain": "Sapphire", + "icon": "oasis", + "rpc": ["https://sapphire.oasis.io", "wss://sapphire.oasis.io/ws"], + "faucets": [], + "nativeCurrency": { + "name": "Sapphire Rose", + "symbol": "ROSE", + "decimals": 18 + }, + "infoURL": "https://docs.oasis.io/dapp/sapphire", + "shortName": "sapphire", + "chainId": 23294, + "networkId": 23294, + "explorers": [ + { + "name": "Oasis Sapphire Explorer", + "url": "https://explorer.sapphire.oasis.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Oasis Sapphire Testnet", + "chain": "Sapphire", + "icon": "oasis", + "rpc": [ + "https://testnet.sapphire.oasis.dev", + "wss://testnet.sapphire.oasis.dev/ws" + ], + "faucets": [], + "nativeCurrency": { + "name": "Sapphire Test Rose", + "symbol": "TEST", + "decimals": 18 + }, + "infoURL": "https://docs.oasis.io/dapp/sapphire", + "shortName": "sapphire-testnet", + "chainId": 23295, + "networkId": 23295, + "explorers": [ + { + "name": "Oasis Sapphire Testnet Explorer", + "url": "https://testnet.explorer.sapphire.oasis.dev", + "standard": "EIP3091" + } + ] + }, + { + "name": "Webchain", + "chain": "WEB", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Webchain Ether", + "symbol": "WEB", + "decimals": 18 + }, + "infoURL": "https://webchain.network", + "shortName": "web", + "chainId": 24484, + "networkId": 37129, + "slip44": 227 + }, + { + "name": "MintMe.com Coin", + "chain": "MINTME", + "rpc": ["https://node1.mintme.com"], + "faucets": [], + "nativeCurrency": { + "name": "MintMe.com Coin", + "symbol": "MINTME", + "decimals": 18 + }, + "infoURL": "https://www.mintme.com", + "shortName": "mintme", + "chainId": 24734, + "networkId": 37480 + }, + { + "name": "Hammer Chain Mainnet", + "chain": "HammerChain", + "rpc": ["https://www.hammerchain.io/rpc"], + "faucets": [], + "nativeCurrency": { "name": "GOLDT", "symbol": "GOLDT", "decimals": 18 }, + "infoURL": "https://www.hammerchain.io", + "shortName": "GOLDT", + "chainId": 25888, + "networkId": 25888, + "explorers": [ + { + "name": "Hammer Chain Explorer", + "url": "https://www.hammerchain.io", + "standard": "none" + } + ] + }, + { + "name": "Bitkub Chain Testnet", + "chain": "BKC", + "icon": "bkc", + "rpc": [ + "https://rpc-testnet.bitkubchain.io", + "wss://wss-testnet.bitkubchain.io" + ], + "faucets": ["https://faucet.bitkubchain.com"], + "nativeCurrency": { + "name": "Bitkub Coin", + "symbol": "tKUB", + "decimals": 18 + }, + "infoURL": "https://www.bitkubchain.com/", + "shortName": "bkct", + "chainId": 25925, + "networkId": 25925, + "explorers": [ + { + "name": "bkcscan-testnet", + "url": "https://testnet.bkcscan.com", + "standard": "none", + "icon": "bkc" + } + ] + }, + { + "name": "Ferrum Testnet", + "chain": "tFRM", + "rpc": ["http://testnet.dev.svcs.ferrumnetwork.io:9933"], + "faucets": ["https://testnet.faucet.ferrumnetwork.io"], + "nativeCurrency": { "name": "Ferrum", "symbol": "tFRM", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://ferrum.network", + "shortName": "frm", + "chainId": 26026, + "networkId": 26026, + "explorers": [ + { + "name": "polkadotjs", + "url": "https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet.dev.svcs.ferrumnetwork.io#/explorer", + "standard": "none" + } + ] + }, + { + "name": "Hertz Network Mainnet", + "chain": "HTZ", + "rpc": ["https://mainnet-rpc.hertzscan.com"], + "faucets": [], + "nativeCurrency": { "name": "Hertz", "symbol": "HTZ", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://www.hertz-network.com", + "shortName": "HTZ", + "chainId": 26600, + "networkId": 26600, + "icon": "hertz-network", + "explorers": [ + { + "name": "Hertz Scan", + "url": "https://hertzscan.com", + "icon": "hertz-network", + "standard": "EIP3091" + } + ] + }, + { + "name": "OasisChain Mainnet", + "chain": "OasisChain", + "rpc": [ + "https://rpc1.oasischain.io", + "https://rpc2.oasischain.io", + "https://rpc3.oasischain.io" + ], + "faucets": ["http://faucet.oasischain.io"], + "nativeCurrency": { "name": "OAC", "symbol": "OAC", "decimals": 18 }, + "infoURL": "https://scan.oasischain.io", + "shortName": "OAC", + "chainId": 26863, + "networkId": 26863, + "explorers": [ + { + "name": "OasisChain Explorer", + "url": "https://scan.oasischain.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Optimism Bedrock (Goerli Alpha Testnet)", + "chain": "ETH", + "rpc": [ + "https://alpha-1-replica-0.bedrock-goerli.optimism.io", + "https://alpha-1-replica-1.bedrock-goerli.optimism.io", + "https://alpha-1-replica-2.bedrock-goerli.optimism.io", + "https://alpha-1-replica-2.bedrock-goerli.optimism.io" + ], + "faucets": [], + "nativeCurrency": { + "name": "Goerli Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://community.optimism.io/docs/developers/bedrock", + "shortName": "obgor", + "chainId": 28528, + "networkId": 28528, + "explorers": [ + { + "name": "blockscout", + "url": "https://blockscout.com/optimism/bedrock-alpha", + "standard": "EIP3091" + } + ] + }, + { + "name": "Piece testnet", + "chain": "PieceNetwork", + "icon": "piecechain", + "rpc": ["https://testnet-rpc0.piecenetwork.com"], + "faucets": ["https://piecenetwork.com/faucet"], + "nativeCurrency": { "name": "ECE", "symbol": "ECE", "decimals": 18 }, + "infoURL": "https://piecenetwork.com", + "shortName": "Piece", + "chainId": 30067, + "networkId": 30067, + "explorers": [ + { + "name": "Piece Scan", + "url": "https://testnet-scan.piecenetwork.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ethersocial Network", + "chain": "ESN", + "rpc": ["https://api.esn.gonspool.com"], + "faucets": [], + "nativeCurrency": { + "name": "Ethersocial Network Ether", + "symbol": "ESN", + "decimals": 18 + }, + "infoURL": "https://ethersocial.org", + "shortName": "esn", + "chainId": 31102, + "networkId": 1, + "slip44": 31102 + }, + { + "name": "CloudTx Mainnet", + "chain": "CLD", + "icon": "cloudtx", + "rpc": ["https://mainnet-rpc.cloudtx.finance"], + "faucets": [], + "nativeCurrency": { "name": "CloudTx", "symbol": "CLD", "decimals": 18 }, + "infoURL": "https://cloudtx.finance", + "shortName": "CLDTX", + "chainId": 31223, + "networkId": 31223, + "explorers": [ + { + "name": "cloudtxscan", + "url": "https://scan.cloudtx.finance", + "standard": "EIP3091" + } + ] + }, + { + "name": "CloudTx Testnet", + "chain": "CloudTx", + "icon": "cloudtx", + "rpc": ["https://testnet-rpc.cloudtx.finance"], + "faucets": ["https://faucet.cloudtx.finance"], + "nativeCurrency": { "name": "CloudTx", "symbol": "CLD", "decimals": 18 }, + "infoURL": "https://cloudtx.finance/", + "shortName": "CLD", + "chainId": 31224, + "networkId": 31224, + "explorers": [ + { + "name": "cloudtxexplorer", + "url": "https://explorer.cloudtx.finance", + "standard": "EIP3091" + } + ] + }, + { + "name": "GoChain Testnet", + "chain": "GO", + "rpc": ["https://testnet-rpc.gochain.io"], + "faucets": [], + "nativeCurrency": { + "name": "GoChain Coin", + "symbol": "GO", + "decimals": 18 + }, + "infoURL": "https://gochain.io", + "shortName": "got", + "chainId": 31337, + "networkId": 31337, + "slip44": 6060, + "explorers": [ + { + "name": "GoChain Testnet Explorer", + "url": "https://testnet-explorer.gochain.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Filecoin - Wallaby testnet", + "status": "deprecated", + "chain": "FIL", + "icon": "filecoin", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "testnet filecoin", + "symbol": "tFIL", + "decimals": 18 + }, + "infoURL": "https://filecoin.io", + "shortName": "filecoin-wallaby", + "chainId": 31415, + "networkId": 31415, + "slip44": 1, + "explorers": [] + }, + { + "name": "Bitgert Mainnet", + "chain": "Brise", + "rpc": [ + "https://rpc.icecreamswap.com", + "https://mainnet-rpc.brisescan.com", + "https://chainrpc.com", + "https://serverrpc.com" + ], + "faucets": [], + "nativeCurrency": { + "name": "Bitrise Token", + "symbol": "Brise", + "decimals": 18 + }, + "infoURL": "https://bitgert.com/", + "shortName": "Brise", + "chainId": 32520, + "networkId": 32520, + "icon": "brise", + "explorers": [ + { + "name": "Brise Scan", + "url": "https://brisescan.com", + "icon": "brise", + "standard": "EIP3091" + } + ] + }, + { + "name": "Fusion Mainnet", + "chain": "FSN", + "icon": "fusion", + "rpc": [ + "https://mainnet.fusionnetwork.io", + "wss://mainnet.fusionnetwork.io" + ], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "Fusion", "symbol": "FSN", "decimals": 18 }, + "infoURL": "https://fusion.org", + "shortName": "fsn", + "chainId": 32659, + "networkId": 32659, + "slip44": 288, + "explorers": [ + { + "name": "fsnscan", + "url": "https://fsnscan.com", + "icon": "fsnscan", + "standard": "EIP3091" + } + ] + }, + { + "name": "Zilliqa EVM", + "chain": "ZIL", + "rpc": ["https://api.zilliqa.com"], + "faucets": [], + "nativeCurrency": { "name": "Zilliqa", "symbol": "ZIL", "decimals": 18 }, + "infoURL": "https://www.zilliqa.com/", + "shortName": "zil", + "chainId": 32769, + "networkId": 32769, + "icon": "zilliqa", + "explorers": [ + { + "name": "Zilliqa EVM Explorer", + "url": "https://evmx.zilliqa.com", + "standard": "none" + } + ] + }, + { + "name": "Zilliqa EVM Testnet", + "chain": "ZIL", + "rpc": ["https://dev-api.zilliqa.com"], + "faucets": ["https://dev-wallet.zilliqa.com/faucet?network=testnet"], + "nativeCurrency": { "name": "Zilliqa", "symbol": "ZIL", "decimals": 18 }, + "infoURL": "https://www.zilliqa.com/", + "shortName": "zil-testnet", + "chainId": 33101, + "networkId": 33101, + "explorers": [ + { + "name": "Zilliqa EVM Explorer", + "url": "https://evmx.zilliqa.com", + "standard": "none" + } + ] + }, + { + "name": "Aves Mainnet", + "chain": "AVS", + "rpc": ["https://rpc.avescoin.io"], + "faucets": [], + "nativeCurrency": { "name": "Aves", "symbol": "AVS", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://avescoin.io", + "shortName": "avs", + "chainId": 33333, + "networkId": 33333, + "icon": "aves", + "explorers": [ + { + "name": "avescan", + "url": "https://avescan.io", + "icon": "avescan", + "standard": "EIP3091" + } + ] + }, + { + "name": "J2O Taro", + "chain": "TARO", + "rpc": ["https://rpc.j2o.io"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "TARO Coin", "symbol": "taro", "decimals": 18 }, + "infoURL": "https://j2o.io", + "shortName": "j2o", + "chainId": 35011, + "networkId": 35011, + "explorers": [ + { + "name": "J2O Taro Explorer", + "url": "https://exp.j2o.io", + "icon": "j2otaro", + "standard": "EIP3091" + } + ] + }, + { + "name": "Q Mainnet", + "chain": "Q", + "rpc": ["https://rpc.q.org"], + "faucets": [], + "nativeCurrency": { "name": "Q token", "symbol": "Q", "decimals": 18 }, + "infoURL": "https://q.org", + "shortName": "q", + "chainId": 35441, + "networkId": 35441, + "icon": "q", + "explorers": [ + { + "name": "Q explorer", + "url": "https://explorer.q.org", + "icon": "q", + "standard": "EIP3091" + } + ] + }, + { + "name": "Q Testnet", + "chain": "Q", + "rpc": ["https://rpc.qtestnet.org"], + "faucets": [], + "nativeCurrency": { "name": "Q token", "symbol": "Q", "decimals": 18 }, + "infoURL": "https://q.org/", + "shortName": "q-testnet", + "chainId": 35443, + "networkId": 35443, + "icon": "q", + "explorers": [ + { + "name": "Q explorer", + "url": "https://explorer.qtestnet.org", + "icon": "q", + "standard": "EIP3091" + } + ] + }, + { + "name": "Energi Mainnet", + "chain": "NRG", + "rpc": ["https://nodeapi.energi.network"], + "faucets": [], + "nativeCurrency": { "name": "Energi", "symbol": "NRG", "decimals": 18 }, + "infoURL": "https://www.energi.world/", + "shortName": "nrg", + "chainId": 39797, + "networkId": 39797, + "slip44": 39797 + }, + { + "name": "OHO Mainnet", + "chain": "OHO", + "rpc": ["https://mainnet.oho.ai"], + "faucets": [], + "nativeCurrency": { "name": "OHO", "symbol": "OHO", "decimals": 18 }, + "infoURL": "https://oho.ai", + "shortName": "oho", + "chainId": 39815, + "networkId": 39815, + "icon": "oho", + "explorers": [ + { + "name": "ohoscan", + "url": "https://ohoscan.com", + "icon": "ohoscan", + "standard": "EIP3091" + } + ] + }, + { + "name": "Opulent-X BETA", + "chainId": 41500, + "shortName": "ox-beta", + "chain": "Opulent-X", + "networkId": 41500, + "nativeCurrency": { "name": "Oxyn Gas", "symbol": "OXYN", "decimals": 18 }, + "rpc": ["https://connect.opulent-x.com"], + "faucets": [], + "infoURL": "https://beta.opulent-x.com", + "explorers": [ + { + "name": "Opulent-X BETA Explorer", + "url": "https://explorer.opulent-x.com", + "standard": "none" + } + ] + }, + { + "name": "pegglecoin", + "chain": "42069", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "pegglecoin", + "symbol": "peggle", + "decimals": 18 + }, + "infoURL": "https://teampeggle.com", + "shortName": "PC", + "chainId": 42069, + "networkId": 42069 + }, + { + "name": "Arbitrum One", + "chainId": 42161, + "shortName": "arb1", + "chain": "ETH", + "networkId": 42161, + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "rpc": [ + "https://arbitrum-mainnet.infura.io/v3/${INFURA_API_KEY}", + "https://arb-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}", + "https://arb1.arbitrum.io/rpc" + ], + "faucets": [], + "explorers": [ + { + "name": "Arbiscan", + "url": "https://arbiscan.io", + "standard": "EIP3091" + }, + { + "name": "Arbitrum Explorer", + "url": "https://explorer.arbitrum.io", + "standard": "EIP3091" + } + ], + "infoURL": "https://arbitrum.io", + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://bridge.arbitrum.io" }] + } + }, + { + "name": "Arbitrum Nova", + "chainId": 42170, + "shortName": "arb-nova", + "chain": "ETH", + "networkId": 42170, + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "rpc": ["https://nova.arbitrum.io/rpc"], + "faucets": [], + "explorers": [ + { + "name": "Arbitrum Nova Chain Explorer", + "url": "https://nova-explorer.arbitrum.io", + "icon": "blockscout", + "standard": "EIP3091" + } + ], + "infoURL": "https://arbitrum.io", + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://bridge.arbitrum.io" }] + } + }, + { + "name": "Celo Mainnet", + "chainId": 42220, + "shortName": "celo", + "chain": "CELO", + "networkId": 42220, + "nativeCurrency": { "name": "CELO", "symbol": "CELO", "decimals": 18 }, + "rpc": ["https://forno.celo.org", "wss://forno.celo.org/ws"], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], + "infoURL": "https://docs.celo.org/", + "explorers": [ + { + "name": "Celoscan", + "url": "https://celoscan.io", + "standard": "EIP3091" + }, + { + "name": "blockscout", + "url": "https://explorer.celo.org", + "standard": "none" + } + ] + }, + { + "name": "Oasis Emerald Testnet", + "chain": "Emerald", + "icon": "oasis", + "rpc": [ + "https://testnet.emerald.oasis.dev/", + "wss://testnet.emerald.oasis.dev/ws" + ], + "faucets": ["https://faucet.testnet.oasis.dev/"], + "nativeCurrency": { + "name": "Emerald Rose", + "symbol": "ROSE", + "decimals": 18 + }, + "infoURL": "https://docs.oasis.io/dapp/emerald", + "shortName": "emerald-testnet", + "chainId": 42261, + "networkId": 42261, + "explorers": [ + { + "name": "Oasis Emerald Testnet Explorer", + "url": "https://testnet.explorer.emerald.oasis.dev", + "standard": "EIP3091" + } + ] + }, + { + "name": "Oasis Emerald", + "chain": "Emerald", + "icon": "oasis", + "rpc": ["https://emerald.oasis.dev", "wss://emerald.oasis.dev/ws"], + "faucets": [], + "nativeCurrency": { + "name": "Emerald Rose", + "symbol": "ROSE", + "decimals": 18 + }, + "infoURL": "https://docs.oasis.io/dapp/emerald", + "shortName": "emerald", + "chainId": 42262, + "networkId": 42262, + "explorers": [ + { + "name": "Oasis Emerald Explorer", + "url": "https://explorer.emerald.oasis.dev", + "standard": "EIP3091" + } + ] + }, + { + "name": "Athereum", + "chain": "ATH", + "rpc": ["https://ava.network:21015/ext/evm/rpc"], + "faucets": ["http://athfaucet.ava.network//?address=${ADDRESS}"], + "nativeCurrency": { + "name": "Athereum Ether", + "symbol": "ATH", + "decimals": 18 + }, + "infoURL": "https://athereum.ava.network", + "shortName": "avaeth", + "chainId": 43110, + "networkId": 43110 + }, + { + "name": "Avalanche Fuji Testnet", + "chain": "AVAX", + "icon": "avax", + "rpc": [ + "https://api.avax-test.network/ext/bc/C/rpc", + "https://avalanche-fuji-c-chain.publicnode.com" + ], + "faucets": ["https://faucet.avax-test.network/"], + "nativeCurrency": { "name": "Avalanche", "symbol": "AVAX", "decimals": 18 }, + "infoURL": "https://cchain.explorer.avax-test.network", + "shortName": "Fuji", + "chainId": 43113, + "networkId": 1, + "explorers": [ + { + "name": "snowtrace", + "url": "https://testnet.snowtrace.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Avalanche C-Chain", + "chain": "AVAX", + "icon": "avax", + "rpc": [ + "https://api.avax.network/ext/bc/C/rpc", + "https://avalanche-c-chain.publicnode.com" + ], + "features": [{ "name": "EIP1559" }], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], + "nativeCurrency": { "name": "Avalanche", "symbol": "AVAX", "decimals": 18 }, + "infoURL": "https://www.avax.network/", + "shortName": "avax", + "chainId": 43114, + "networkId": 43114, + "slip44": 9005, + "explorers": [ + { + "name": "snowtrace", + "url": "https://snowtrace.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Boba Avax", + "chain": "Boba Avax", + "rpc": [ + "https://avax.boba.network", + "wss://wss.avax.boba.network", + "https://replica.avax.boba.network", + "wss://replica-wss.avax.boba.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://docs.boba.network/for-developers/network-avalanche", + "shortName": "bobaavax", + "chainId": 43288, + "networkId": 43288, + "explorers": [ + { + "name": "Boba Avax Explorer", + "url": "https://blockexplorer.avax.boba.network", + "standard": "none" + } + ] + }, + { + "name": "Frenchain", + "chain": "fren", + "rpc": ["https://rpc-02.frenscan.io"], + "faucets": [], + "nativeCurrency": { "name": "FREN", "symbol": "FREN", "decimals": 18 }, + "infoURL": "https://frenchain.app", + "shortName": "FREN", + "chainId": 44444, + "networkId": 44444, + "icon": "fren", + "explorers": [ + { + "name": "blockscout", + "url": "https://frenscan.io", + "icon": "fren", + "standard": "EIP3091" + } + ] + }, + { + "name": "Celo Alfajores Testnet", + "chainId": 44787, + "shortName": "ALFA", + "chain": "CELO", + "networkId": 44787, + "nativeCurrency": { "name": "CELO", "symbol": "CELO", "decimals": 18 }, + "rpc": [ + "https://alfajores-forno.celo-testnet.org", + "wss://alfajores-forno.celo-testnet.org/ws" + ], + "faucets": [ + "https://celo.org/developers/faucet", + "https://cauldron.pretoriaresearchlab.io/alfajores-faucet" + ], + "infoURL": "https://docs.celo.org/", + "explorers": [ + { + "name": "Celoscan", + "url": "https://celoscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Autobahn Network", + "chain": "TXL", + "rpc": ["https://rpc.autobahn.network"], + "faucets": [], + "nativeCurrency": { "name": "TXL", "symbol": "TXL", "decimals": 18 }, + "infoURL": "https://autobahn.network", + "shortName": "AutobahnNetwork", + "chainId": 45000, + "networkId": 45000, + "icon": "autobahn", + "explorers": [ + { + "name": "autobahn explorer", + "url": "https://explorer.autobahn.network", + "icon": "autobahn", + "standard": "EIP3091" + } + ] + }, + { + "name": "Fusion Testnet", + "chain": "FSN", + "icon": "fusion", + "rpc": [ + "https://testnet.fusionnetwork.io", + "wss://testnet.fusionnetwork.io" + ], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { + "name": "Testnet Fusion", + "symbol": "T-FSN", + "decimals": 18 + }, + "infoURL": "https://fusion.org", + "shortName": "tfsn", + "chainId": 46688, + "networkId": 46688, + "slip44": 288, + "explorers": [ + { + "name": "fsnscan", + "url": "https://testnet.fsnscan.com", + "icon": "fsnscan", + "standard": "EIP3091" + } + ] + }, + { + "name": "REI Network", + "chain": "REI", + "rpc": ["https://rpc.rei.network", "wss://rpc.rei.network"], + "faucets": [], + "nativeCurrency": { "name": "REI", "symbol": "REI", "decimals": 18 }, + "infoURL": "https://rei.network/", + "shortName": "REI", + "chainId": 47805, + "networkId": 47805, + "explorers": [ + { + "name": "rei-scan", + "url": "https://scan.rei.network", + "standard": "none" + } + ] + }, + { + "name": "Wireshape Floripa Testnet", + "title": "Wireshape Floripa Testnet", + "chain": "Wireshape", + "icon": "wireshape", + "rpc": [ + "https://rpc-floripa.wireshape.org", + "https://wireshape-floripa-testnet.rpc.thirdweb.com" + ], + "faucets": [], + "nativeCurrency": { "name": "WIRE", "symbol": "WIRE", "decimals": 18 }, + "infoURL": "https://wireshape.org", + "shortName": "floripa", + "chainId": 49049, + "networkId": 49049, + "explorers": [ + { + "name": "Wire Explorer", + "url": "https://floripa-explorer.wireshape.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bifrost Testnet", + "title": "The Bifrost Testnet network", + "chain": "BFC", + "rpc": [ + "https://public-01.testnet.thebifrost.io/rpc", + "https://public-02.testnet.thebifrost.io/rpc" + ], + "faucets": [], + "nativeCurrency": { "name": "Bifrost", "symbol": "BFC", "decimals": 18 }, + "infoURL": "https://thebifrost.io", + "shortName": "tbfc", + "chainId": 49088, + "networkId": 49088, + "icon": "bifrost", + "explorers": [ + { + "name": "explorer-thebifrost", + "url": "https://explorer.testnet.thebifrost.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Energi Testnet", + "chain": "NRG", + "rpc": ["https://nodeapi.test.energi.network"], + "faucets": [], + "nativeCurrency": { "name": "Energi", "symbol": "NRG", "decimals": 18 }, + "infoURL": "https://www.energi.world/", + "shortName": "tnrg", + "chainId": 49797, + "networkId": 49797, + "slip44": 49797 + }, + { + "name": "Liveplex OracleEVM", + "chain": "Liveplex OracleEVM Network", + "rpc": ["https://rpc.oracle.liveplex.io"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "", + "shortName": "LOE", + "chainId": 50001, + "networkId": 50001, + "explorers": [] + }, + { + "name": "GTON Testnet", + "chain": "GTON Testnet", + "rpc": ["https://testnet.gton.network/"], + "faucets": [], + "nativeCurrency": { "name": "GCD", "symbol": "GCD", "decimals": 18 }, + "infoURL": "https://gton.capital", + "shortName": "tgton", + "chainId": 50021, + "networkId": 50021, + "explorers": [ + { + "name": "GTON Testnet Network Explorer", + "url": "https://explorer.testnet.gton.network", + "standard": "EIP3091" + } + ], + "parent": { "type": "L2", "chain": "eip155-3" } + }, + { + "name": "Opside Testnet Pre-Alpha", + "chain": "ETH", + "rpc": [ + "https://pre-alpha-us-http-geth.opside.network", + "https://pre-alpha-hk-http-geth.opside.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "IDE Test Token", + "symbol": "IDE", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://opsi.de/", + "shortName": "Opside-Testnet", + "chainId": 51178, + "networkId": 51178, + "icon": "opside-new", + "explorers": [ + { + "name": "OpsideTestnetInfo", + "url": "https://pre-alpha.opside.info", + "icon": "opside-new", + "standard": "EIP3091" + } + ] + }, + { + "name": "Sardis Mainnet", + "chain": "SRDX", + "icon": "sardis", + "rpc": ["https://mainnet-rpc.sardisnetwork.com"], + "faucets": ["https://faucet.sardisnetwork.com"], + "nativeCurrency": { "name": "Sardis", "symbol": "SRDX", "decimals": 18 }, + "infoURL": "https://mysardis.com", + "shortName": "SRDXm", + "chainId": 51712, + "networkId": 51712, + "explorers": [ + { + "name": "Sardis", + "url": "https://contract-mainnet.sardisnetwork.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "DFK Chain", + "chain": "DFK", + "icon": "dfk", + "rpc": ["https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Jewel", "symbol": "JEWEL", "decimals": 18 }, + "infoURL": "https://defikingdoms.com", + "shortName": "DFK", + "chainId": 53935, + "networkId": 53935, + "explorers": [ + { + "name": "ethernal", + "url": "https://explorer.dfkchain.com", + "icon": "ethereum", + "standard": "none" + } + ] + }, + { + "name": "Haqq Chain Testnet", + "chain": "TestEdge2", + "rpc": ["https://rpc.eth.testedge2.haqq.network"], + "faucets": ["https://testedge2.haqq.network"], + "nativeCurrency": { + "name": "Islamic Coin", + "symbol": "ISLMT", + "decimals": 18 + }, + "infoURL": "https://islamiccoin.net", + "shortName": "ISLMT", + "chainId": 54211, + "networkId": 54211, + "explorers": [ + { + "name": "TestEdge HAQQ Explorer", + "url": "https://explorer.testedge2.haqq.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Titan", + "chain": "ETH", + "rpc": [ + "https://rpc.titan.tokamak.network", + "wss://rpc.titan.tokamak.network/ws" + ], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://tokamak.network", + "shortName": "teth", + "chainId": 55004, + "networkId": 55004, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.titan.tokamak.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "REI Chain Mainnet", + "chain": "REI", + "icon": "reichain", + "rpc": ["https://rei-rpc.moonrhythm.io"], + "faucets": ["http://kururu.finance/faucet?chainId=55555"], + "nativeCurrency": { "name": "Rei", "symbol": "REI", "decimals": 18 }, + "infoURL": "https://reichain.io", + "shortName": "reichain", + "chainId": 55555, + "networkId": 55555, + "explorers": [ + { "name": "reiscan", "url": "https://reiscan.com", "standard": "EIP3091" } + ] + }, + { + "name": "REI Chain Testnet", + "chain": "REI", + "icon": "reichain", + "rpc": ["https://rei-testnet-rpc.moonrhythm.io"], + "faucets": ["http://kururu.finance/faucet?chainId=55556"], + "nativeCurrency": { "name": "tRei", "symbol": "tREI", "decimals": 18 }, + "infoURL": "https://reichain.io", + "shortName": "trei", + "chainId": 55556, + "networkId": 55556, + "explorers": [ + { + "name": "reiscan", + "url": "https://testnet.reiscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Boba BNB Mainnet", + "chain": "Boba BNB Mainnet", + "rpc": [ + "https://bnb.boba.network", + "wss://wss.bnb.boba.network", + "https://replica.bnb.boba.network", + "wss://replica-wss.bnb.boba.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "BobaBnb", + "chainId": 56288, + "networkId": 56288, + "explorers": [ + { + "name": "Boba BNB block explorer", + "url": "https://blockexplorer.bnb.boba.network", + "standard": "none" + } + ] + }, + { + "name": "Rollux Testnet", + "chain": "SYS", + "rpc": [ + "https://rpc-tanenbaum.rollux.com", + "https://rpc.ankr.com/rollux_testnet/${ANKR_API_KEY}", + "wss://rpc-tanenbaum.rollux.com/wss" + ], + "faucets": ["https://rollux.id/faucetapp"], + "nativeCurrency": { + "name": "Testnet Syscoin", + "symbol": "TSYS", + "decimals": 18 + }, + "infoURL": "https://rollux.com", + "shortName": "tsys-rollux", + "chainId": 57000, + "networkId": 57000, + "explorers": [ + { + "name": "Rollux Testnet Explorer", + "url": "https://rollux.tanenbaum.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Linea Testnet", + "title": "Linea Goerli Testnet", + "chain": "ETH", + "rpc": [ + "https://rpc.goerli.linea.build", + "wss://rpc.goerli.linea.build", + "https://linea-goerli.infura.io/v3/${INFURA_API_KEY}", + "wss://linea-goerli.infura.io/v3/${INFURA_API_KEY}" + ], + "faucets": ["https://faucetlink.to/goerli"], + "nativeCurrency": { + "name": "Linea Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://linea.build", + "shortName": "linea-testnet", + "chainId": 59140, + "networkId": 59140, + "icon": "linea", + "parent": { + "type": "L2", + "chain": "eip155-5", + "bridges": [ + { + "url": "https://goerli.hop.exchange/#/send?token=ETH&sourceNetwork=ethereum&destNetwork=linea" + } + ] + }, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.goerli.linea.build", + "standard": "EIP3091", + "icon": "linea" + } + ], + "status": "active" + }, + { + "name": "Thinkium Testnet Chain 0", + "chain": "Thinkium", + "rpc": ["https://test.thinkiumrpc.net/"], + "faucets": ["https://www.thinkiumdev.net/faucet"], + "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, + "infoURL": "https://thinkium.net/", + "shortName": "TKM-test0", + "chainId": 60000, + "networkId": 60000, + "explorers": [ + { + "name": "thinkiumscan", + "url": "https://test0.thinkiumscan.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Thinkium Testnet Chain 1", + "chain": "Thinkium", + "rpc": ["https://test1.thinkiumrpc.net/"], + "faucets": ["https://www.thinkiumdev.net/faucet"], + "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, + "infoURL": "https://thinkium.net/", + "shortName": "TKM-test1", + "chainId": 60001, + "networkId": 60001, + "explorers": [ + { + "name": "thinkiumscan", + "url": "https://test1.thinkiumscan.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Thinkium Testnet Chain 2", + "chain": "Thinkium", + "rpc": ["https://test2.thinkiumrpc.net/"], + "faucets": ["https://www.thinkiumdev.net/faucet"], + "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, + "infoURL": "https://thinkium.net/", + "shortName": "TKM-test2", + "chainId": 60002, + "networkId": 60002, + "explorers": [ + { + "name": "thinkiumscan", + "url": "https://test2.thinkiumscan.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Thinkium Testnet Chain 103", + "chain": "Thinkium", + "rpc": ["https://test103.thinkiumrpc.net/"], + "faucets": ["https://www.thinkiumdev.net/faucet"], + "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, + "infoURL": "https://thinkium.net/", + "shortName": "TKM-test103", + "chainId": 60103, + "networkId": 60103, + "explorers": [ + { + "name": "thinkiumscan", + "url": "https://test103.thinkiumscan.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "AxelChain Dev-Net", + "chain": "AXEL", + "rpc": ["https://aium-rpc-dev.viacube.com"], + "faucets": [], + "nativeCurrency": { "name": "Axelium", "symbol": "AIUM", "decimals": 18 }, + "infoURL": "https://www.axel.org", + "shortName": "aium-dev", + "chainId": 61800, + "networkId": 61800, + "icon": "axelium", + "explorers": [ + { + "name": "AxelChain Dev-Net Explorer", + "url": "https://devexplorer2.viacube.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Etica Mainnet", + "chain": "Etica Protocol (ETI/EGAZ)", + "icon": "etica", + "rpc": [ + "https://eticamainnet.eticascan.org", + "https://eticamainnet.eticaprotocol.org" + ], + "faucets": ["http://faucet.etica-stats.org/"], + "nativeCurrency": { "name": "EGAZ", "symbol": "EGAZ", "decimals": 18 }, + "infoURL": "https://eticaprotocol.org", + "shortName": "Etica", + "chainId": 61803, + "networkId": 61803, + "explorers": [ + { + "name": "eticascan", + "url": "https://eticascan.org", + "standard": "EIP3091" + }, + { + "name": "eticastats", + "url": "http://explorer.etica-stats.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "DoKEN Super Chain Mainnet", + "chain": "DoKEN Super Chain", + "rpc": [ + "https://sgrpc.doken.dev", + "https://nyrpc.doken.dev", + "https://ukrpc.doken.dev" + ], + "faucets": [], + "nativeCurrency": { "name": "DoKEN", "symbol": "DKN", "decimals": 18 }, + "infoURL": "https://doken.dev/", + "shortName": "DoKEN", + "chainId": 61916, + "networkId": 61916, + "icon": "doken", + "explorers": [ + { + "name": "DSC Scan", + "url": "https://explore.doken.dev", + "icon": "doken", + "standard": "EIP3091" + } + ] + }, + { + "name": "Celo Baklava Testnet", + "chainId": 62320, + "shortName": "BKLV", + "chain": "CELO", + "networkId": 62320, + "nativeCurrency": { "name": "CELO", "symbol": "CELO", "decimals": 18 }, + "rpc": ["https://baklava-forno.celo-testnet.org"], + "faucets": [ + "https://docs.google.com/forms/d/e/1FAIpQLSdfr1BwUTYepVmmvfVUDRCwALejZ-TUva2YujNpvrEmPAX2pg/viewform", + "https://cauldron.pretoriaresearchlab.io/baklava-faucet" + ], + "infoURL": "https://docs.celo.org/" + }, + { + "name": "MultiVAC Mainnet", + "chain": "MultiVAC", + "icon": "multivac", + "rpc": ["https://rpc.mtv.ac", "https://rpc-eu.mtv.ac"], + "faucets": [], + "nativeCurrency": { "name": "MultiVAC", "symbol": "MTV", "decimals": 18 }, + "infoURL": "https://mtv.ac", + "shortName": "mtv", + "chainId": 62621, + "networkId": 62621, + "explorers": [ + { + "name": "MultiVAC Explorer", + "url": "https://e.mtv.ac", + "standard": "none" + } + ] + }, + { + "name": "eCredits Mainnet", + "chain": "ECS", + "rpc": ["https://rpc.ecredits.com"], + "faucets": [], + "nativeCurrency": { "name": "eCredits", "symbol": "ECS", "decimals": 18 }, + "infoURL": "https://ecredits.com", + "shortName": "ecs", + "chainId": 63000, + "networkId": 63000, + "icon": "ecredits", + "explorers": [ + { + "name": "eCredits MainNet Explorer", + "url": "https://explorer.ecredits.com", + "icon": "ecredits", + "standard": "EIP3091" + } + ] + }, + { + "name": "eCredits Testnet", + "chain": "ECS", + "rpc": ["https://rpc.tst.ecredits.com"], + "faucets": ["https://faucet.tst.ecredits.com"], + "nativeCurrency": { "name": "eCredits", "symbol": "ECS", "decimals": 18 }, + "infoURL": "https://ecredits.com", + "shortName": "ecs-testnet", + "chainId": 63001, + "networkId": 63001, + "icon": "ecredits", + "explorers": [ + { + "name": "eCredits TestNet Explorer", + "url": "https://explorer.tst.ecredits.com", + "icon": "ecredits", + "standard": "EIP3091" + } + ] + }, + { + "name": "Scolcoin Mainnet", + "chain": "SCOLWEI", + "rpc": ["https://mainnet-rpc.scolcoin.com"], + "faucets": [], + "nativeCurrency": { "name": "Scolcoin", "symbol": "SCOL", "decimals": 18 }, + "infoURL": "https://scolcoin.com", + "shortName": "SRC", + "chainId": 65450, + "networkId": 65450, + "icon": "scolcoin", + "explorers": [ + { + "name": "Scolscan Explorer", + "url": "https://explorer.scolcoin.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "SiriusNet", + "chain": "SIN", + "status": "deprecated", + "rpc": [ + "https://u0tnafcv6j:o2T045sxuCNXL878RDQLp5__Zj-es2cvdjtgkl4etn0@u0v7kwtvtg-u0wj114sve-rpc.us0-aws.kaleido.io/" + ], + "faucets": [], + "nativeCurrency": { "name": "MCD", "symbol": "MCD", "decimals": 18 }, + "infoURL": "https://macaucasinolisboa.xyz", + "shortName": "mcl", + "chainId": 67390, + "networkId": 67390, + "explorers": [ + { + "name": "siriusnetscan", + "url": "https://siriusnet.tryethernal.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Cosmic Chain", + "chain": "COSMIC", + "rpc": ["http://testnet.cosmicchain.site:3344"], + "faucets": [], + "nativeCurrency": { + "name": "Cosmic Chain", + "symbol": "COSMIC", + "decimals": 18 + }, + "infoURL": "https://cosmicchain.site", + "shortName": "Cosmic", + "chainId": 67588, + "networkId": 3344 + }, + { + "name": "Condrieu", + "title": "Ethereum Verkle Testnet Condrieu", + "chain": "ETH", + "rpc": ["https://rpc.condrieu.ethdevops.io:8545"], + "faucets": ["https://faucet.condrieu.ethdevops.io"], + "nativeCurrency": { + "name": "Condrieu Testnet Ether", + "symbol": "CTE", + "decimals": 18 + }, + "infoURL": "https://condrieu.ethdevops.io", + "shortName": "cndr", + "chainId": 69420, + "networkId": 69420, + "explorers": [ + { + "name": "Condrieu explorer", + "url": "https://explorer.condrieu.ethdevops.io", + "standard": "none" + } + ] + }, + { + "name": "Thinkium Mainnet Chain 0", + "chain": "Thinkium", + "rpc": ["https://proxy.thinkiumrpc.net/"], + "faucets": [], + "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, + "infoURL": "https://thinkium.net/", + "shortName": "TKM0", + "chainId": 70000, + "networkId": 70000, + "explorers": [ + { + "name": "thinkiumscan", + "url": "https://chain0.thinkiumscan.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Thinkium Mainnet Chain 1", + "chain": "Thinkium", + "rpc": ["https://proxy1.thinkiumrpc.net/"], + "faucets": [], + "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, + "infoURL": "https://thinkium.net/", + "shortName": "TKM1", + "chainId": 70001, + "networkId": 70001, + "explorers": [ + { + "name": "thinkiumscan", + "url": "https://chain1.thinkiumscan.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Thinkium Mainnet Chain 2", + "chain": "Thinkium", + "rpc": ["https://proxy2.thinkiumrpc.net/"], + "faucets": [], + "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, + "infoURL": "https://thinkium.net/", + "shortName": "TKM2", + "chainId": 70002, + "networkId": 70002, + "explorers": [ + { + "name": "thinkiumscan", + "url": "https://chain2.thinkiumscan.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Thinkium Mainnet Chain 103", + "chain": "Thinkium", + "rpc": ["https://proxy103.thinkiumrpc.net/"], + "faucets": [], + "nativeCurrency": { "name": "TKM", "symbol": "TKM", "decimals": 18 }, + "infoURL": "https://thinkium.net/", + "shortName": "TKM103", + "chainId": 70103, + "networkId": 70103, + "explorers": [ + { + "name": "thinkiumscan", + "url": "https://chain103.thinkiumscan.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "GuapcoinX", + "chain": "GuapcoinX", + "rpc": [ + "https://rpc-mainnet.guapcoinx.com/", + "https://rpc-mainnet-1.guapcoinx.com/", + "https://rpc-mainnet-2.guapcoinx.com/" + ], + "faucets": [], + "nativeCurrency": { + "name": "GuapcoinX", + "symbol": "GuapX", + "decimals": 18 + }, + "infoURL": "https://guapcoin.org/", + "shortName": "GuapX", + "chainId": 71111, + "networkId": 71111, + "icon": "guapcoinx", + "explorers": [ + { + "name": "GuapcoinX Explorer", + "url": "http://explorer.guapcoinx.com", + "standard": "none", + "icon": "guapcoinx" + } + ] + }, + { + "name": "Polyjuice Testnet", + "chain": "CKB", + "icon": "polyjuice", + "rpc": [ + "https://godwoken-testnet-web3-rpc.ckbapp.dev", + "ws://godwoken-testnet-web3-rpc.ckbapp.dev/ws" + ], + "faucets": ["https://faucet.nervos.org/"], + "nativeCurrency": { "name": "CKB", "symbol": "CKB", "decimals": 8 }, + "infoURL": "https://github.com/nervosnetwork/godwoken", + "shortName": "ckb", + "chainId": 71393, + "networkId": 1 + }, + { + "name": "Godwoken Testnet v1", + "chain": "GWT", + "rpc": [ + "https://godwoken-testnet-v1.ckbapp.dev", + "https://v1.testnet.godwoken.io/rpc" + ], + "faucets": ["https://testnet.bridge.godwoken.io"], + "nativeCurrency": { "name": "pCKB", "symbol": "pCKB", "decimals": 18 }, + "infoURL": "https://www.nervos.org", + "shortName": "gw-testnet-v1", + "chainId": 71401, + "networkId": 71401, + "explorers": [ + { + "name": "GWScan Block Explorer", + "url": "https://v1.testnet.gwscan.com", + "standard": "none" + } + ] + }, + { + "name": "Godwoken Mainnet", + "chain": "GWT", + "rpc": ["https://v1.mainnet.godwoken.io/rpc"], + "faucets": [], + "nativeCurrency": { "name": "pCKB", "symbol": "pCKB", "decimals": 18 }, + "infoURL": "https://www.nervos.org", + "shortName": "gw-mainnet-v1", + "chainId": 71402, + "networkId": 71402, + "explorers": [ + { + "name": "GWScan Block Explorer", + "url": "https://v1.gwscan.com", + "standard": "none" + } + ] + }, + { + "name": "Energy Web Volta Testnet", + "chain": "Volta", + "rpc": [ + "https://volta-rpc.energyweb.org", + "wss://volta-rpc.energyweb.org/ws" + ], + "faucets": ["https://voltafaucet.energyweb.org"], + "nativeCurrency": { "name": "Volta Token", "symbol": "VT", "decimals": 18 }, + "infoURL": "https://energyweb.org", + "shortName": "vt", + "chainId": 73799, + "networkId": 73799 + }, + { + "name": "Mixin Virtual Machine", + "chain": "MVM", + "rpc": ["https://geth.mvm.dev"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://mvm.dev", + "shortName": "mvm", + "chainId": 73927, + "networkId": 73927, + "icon": "mvm", + "explorers": [ + { + "name": "mvmscan", + "url": "https://scan.mvm.dev", + "icon": "mvm", + "standard": "EIP3091" + } + ] + }, + { + "name": "ResinCoin Mainnet", + "chain": "RESIN", + "icon": "resincoin", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "RESIN", "decimals": 18 }, + "infoURL": "https://resincoin.dev", + "shortName": "resin", + "chainId": 75000, + "networkId": 75000, + "explorers": [ + { + "name": "ResinScan", + "url": "https://explorer.resincoin.dev", + "standard": "none" + } + ] + }, + { + "name": "Vention Smart Chain Mainnet", + "chain": "VSC", + "icon": "vention", + "rpc": ["https://mainnet-rpc.vention.network"], + "faucets": ["https://faucet.vention.network"], + "nativeCurrency": { "name": "VNT", "symbol": "VNT", "decimals": 18 }, + "infoURL": "https://ventionscan.io", + "shortName": "vscm", + "chainId": 77612, + "networkId": 77612, + "explorers": [ + { + "name": "ventionscan", + "url": "https://ventionscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Firenze test network", + "chain": "ETH", + "rpc": ["https://ethnode.primusmoney.com/firenze"], + "faucets": [], + "nativeCurrency": { + "name": "Firenze Ether", + "symbol": "FIN", + "decimals": 18 + }, + "infoURL": "https://primusmoney.com", + "shortName": "firenze", + "chainId": 78110, + "networkId": 78110 + }, + { + "name": "Dragonfly Mainnet (Hexapod)", + "chain": "Dragonfly", + "icon": "dragonfly", + "rpc": [ + "https://dragonfly-rpc.switch.ch", + "https://dragonfly-rpc.kore-technologies.ch", + "https://dragonfly-rpc.phoenix-systems.io", + "https://dragonfly-rpc.block-spirit.ch" + ], + "faucets": [], + "nativeCurrency": { "name": "Dragonfly", "symbol": "DFLY", "decimals": 18 }, + "infoURL": "https://hexapod.network", + "shortName": "dfly", + "chainId": 78281, + "networkId": 78281, + "explorers": [ + { + "name": "Dragonfly Blockscout", + "url": "https://blockscout.dragonfly.hexapod.network", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "Gold Smart Chain Testnet", + "chain": "STAND", + "icon": "standTestnet", + "rpc": ["https://rpc-testnet.goldsmartchain.com"], + "faucets": ["https://faucet.goldsmartchain.com"], + "nativeCurrency": { + "name": "Standard in Gold", + "symbol": "STAND", + "decimals": 18 + }, + "infoURL": "https://goldsmartchain.com", + "shortName": "STANDt", + "chainId": 79879, + "networkId": 79879, + "explorers": [ + { + "name": "Gold Smart Chain", + "url": "https://testnet.goldsmartchain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Mumbai", + "title": "Polygon Testnet Mumbai", + "chain": "Polygon", + "icon": "polygon", + "rpc": [ + "https://matic-mumbai.chainstacklabs.com", + "https://rpc-mumbai.maticvigil.com", + "https://matic-testnet-archive-rpc.bwarelabs.com", + "https://polygon-mumbai-bor.publicnode.com" + ], + "faucets": ["https://faucet.polygon.technology/"], + "nativeCurrency": { "name": "MATIC", "symbol": "MATIC", "decimals": 18 }, + "infoURL": "https://polygon.technology/", + "shortName": "maticmum", + "chainId": 80001, + "networkId": 80001, + "explorers": [ + { + "name": "polygonscan", + "url": "https://mumbai.polygonscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Amana Testnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Amana Testnet", + "symbol": "MEER-T", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "amanatest", + "icon": "meer", + "chainId": 81341, + "networkId": 81341, + "status": "incubating" + }, + { + "name": "Amana Mixnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Amana Mixnet", + "symbol": "MEER-M", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "amanamix", + "icon": "meer", + "chainId": 81342, + "networkId": 81342, + "status": "incubating" + }, + { + "name": "Amana Privnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Amana Privnet", + "symbol": "MEER-P", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "amanapriv", + "icon": "meer", + "chainId": 81343, + "networkId": 81343, + "status": "incubating" + }, + { + "name": "Flana Testnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Flana Testnet", + "symbol": "MEER-T", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "flanatest", + "icon": "meer", + "chainId": 81351, + "networkId": 81351, + "status": "incubating" + }, + { + "name": "Flana Mixnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Flana Mixnet", + "symbol": "MEER-M", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "flanamix", + "icon": "meer", + "chainId": 81352, + "networkId": 81352, + "status": "incubating" + }, + { + "name": "Flana Privnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Flana Privnet", + "symbol": "MEER-P", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "flanapriv", + "icon": "meer", + "chainId": 81353, + "networkId": 81353, + "status": "incubating" + }, + { + "name": "Mizana Testnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Mizana Testnet", + "symbol": "MEER-T", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "mizanatest", + "icon": "meer", + "chainId": 81361, + "networkId": 81361, + "status": "incubating" + }, + { + "name": "Mizana Mixnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Mizana Mixnet", + "symbol": "MEER-M", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "mizanamix", + "icon": "meer", + "chainId": 81362, + "networkId": 81362, + "status": "incubating" + }, + { + "name": "Mizana Privnet", + "chain": "MEER", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Mizana Privnet", + "symbol": "MEER-P", + "decimals": 18 + }, + "infoURL": "https://github.com/Qitmeer", + "shortName": "mizanapriv", + "icon": "meer", + "chainId": 81363, + "networkId": 81363, + "status": "incubating" + }, + { + "name": "Base Goerli Testnet", + "chain": "ETH", + "rpc": ["https://goerli.base.org"], + "faucets": ["https://www.coinbase.com/faucets/base-ethereum-goerli-faucet"], + "nativeCurrency": { + "name": "Goerli Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://base.org", + "shortName": "basegor", + "chainId": 84531, + "networkId": 84531, + "explorers": [ + { + "name": "basescan", + "url": "https://goerli.basescan.org", + "standard": "none" + }, + { + "name": "basescout", + "url": "https://base-goerli.blockscout.com", + "standard": "none" + } + ] + }, + { + "name": "CYBERTRUST", + "chain": "CYBER", + "rpc": ["http://testnet.cybertrust.space:48501"], + "faucets": [], + "nativeCurrency": { + "name": "Cyber Trust", + "symbol": "CYBER", + "decimals": 18 + }, + "infoURL": "https://cybertrust.space", + "shortName": "Cyber", + "chainId": 85449, + "networkId": 48501 + }, + { + "name": "Chiliz Scoville Testnet", + "chain": "CHZ", + "rpc": ["https://scoville-rpc.chiliz.com"], + "faucets": ["https://scoville-faucet.chiliz.com"], + "nativeCurrency": { "name": "Chiliz", "symbol": "CHZ", "decimals": 18 }, + "icon": "chiliz", + "infoURL": "https://www.chiliz.com/en/chain", + "shortName": "chz", + "chainId": 88880, + "networkId": 88880, + "explorers": [ + { + "name": "scoville-explorer", + "url": "https://scoville-explorer.chiliz.com", + "standard": "none" + } + ] + }, + { + "name": "IVAR Chain Mainnet", + "chain": "IVAR", + "icon": "ivar", + "rpc": ["https://mainnet-rpc.ivarex.com"], + "faucets": ["https://faucet.ivarex.com/"], + "nativeCurrency": { "name": "Ivar", "symbol": "IVAR", "decimals": 18 }, + "infoURL": "https://ivarex.com", + "shortName": "ivar", + "chainId": 88888, + "networkId": 88888, + "explorers": [ + { + "name": "ivarscan", + "url": "https://ivarscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Beverly Hills", + "title": "Ethereum multi-client Verkle Testnet Beverly Hills", + "chain": "ETH", + "rpc": ["https://rpc.beverlyhills.ethdevops.io:8545"], + "faucets": ["https://faucet.beverlyhills.ethdevops.io"], + "nativeCurrency": { + "name": "Beverly Hills Testnet Ether", + "symbol": "BVE", + "decimals": 18 + }, + "infoURL": "https://beverlyhills.ethdevops.io", + "shortName": "bvhl", + "chainId": 90210, + "networkId": 90210, + "status": "incubating", + "explorers": [ + { + "name": "Beverly Hills explorer", + "url": "https://explorer.beverlyhills.ethdevops.io", + "standard": "none" + } + ] + }, + { + "name": "Nautilus Chain", + "title": "Nautilus Trition Testnet", + "chain": "ETH", + "icon": "nautilus", + "rpc": ["https://triton.api.nautchain.xyz"], + "faucets": ["https://faucet.eclipse.builders"], + "nativeCurrency": { + "name": "Nautilus Zebec Testnet Tokens", + "symbol": "tZBC", + "decimals": 18 + }, + "infoURL": "https://docs.nautchain.xyz", + "shortName": "NAUT", + "chainId": 91002, + "networkId": 91002, + "explorers": [ + { + "name": "Nautscan", + "url": "https://triton.nautscan.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Lambda Testnet", + "chain": "Lambda", + "rpc": ["https://evm.lambda.top/"], + "faucets": ["https://faucet.lambda.top"], + "nativeCurrency": { "name": "test-Lamb", "symbol": "LAMB", "decimals": 18 }, + "infoURL": "https://lambda.im", + "shortName": "lambda-testnet", + "chainId": 92001, + "networkId": 92001, + "icon": "lambda", + "explorers": [ + { + "name": "Lambda EVM Explorer", + "url": "https://explorer.lambda.top", + "standard": "EIP3091", + "icon": "lambda" + } + ] + }, + { + "name": "Mantis Testnet (Hexapod)", + "chain": "Mantis", + "icon": "mantis", + "rpc": [ + "https://mantis-rpc.switch.ch", + "https://mantis-rpc.kore-technologies.ch", + "https://mantis-rpc.phoenix-systems.io" + ], + "faucets": [ + "https://mantis.switch.ch/faucet", + "https://mantis.kore-technologies.ch/faucet", + "https://mantis.phoenix-systems.io/faucet", + "https://mantis.block-spirit.ch/faucet" + ], + "nativeCurrency": { "name": "Mantis", "symbol": "MANTIS", "decimals": 18 }, + "infoURL": "https://hexapod.network", + "shortName": "mantis", + "chainId": 96970, + "networkId": 96970, + "explorers": [ + { + "name": "Mantis Blockscout", + "url": "https://blockscout.mantis.hexapod.network", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "Boba BNB Mainnet Old", + "chain": "Boba BNB Mainnet", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Boba Token", + "symbol": "BOBA", + "decimals": 18 + }, + "infoURL": "https://boba.network", + "shortName": "BobaBnbOld", + "chainId": 97288, + "networkId": 97288, + "explorers": [ + { + "name": "Boba BNB block explorer", + "url": "https://blockexplorer.bnb.boba.network", + "standard": "none" + } + ], + "status": "deprecated" + }, + { + "name": "UB Smart Chain(testnet)", + "chain": "USC", + "rpc": ["https://testnet.rpc.uschain.network"], + "faucets": [], + "nativeCurrency": { "name": "UBC", "symbol": "UBC", "decimals": 18 }, + "infoURL": "https://www.ubchain.site", + "shortName": "usctest", + "chainId": 99998, + "networkId": 99998 + }, + { + "name": "UB Smart Chain", + "chain": "USC", + "rpc": ["https://rpc.uschain.network"], + "faucets": [], + "nativeCurrency": { "name": "UBC", "symbol": "UBC", "decimals": 18 }, + "infoURL": "https://www.ubchain.site/", + "shortName": "usc", + "chainId": 99999, + "networkId": 99999 + }, + { + "name": "QuarkChain Mainnet Root", + "chain": "QuarkChain", + "rpc": ["http://jrpc.mainnet.quarkchain.io:38391"], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-r", + "chainId": 100000, + "networkId": 100000 + }, + { + "name": "QuarkChain Mainnet Shard 0", + "chain": "QuarkChain", + "rpc": [ + "https://mainnet-s0-ethapi.quarkchain.io", + "http://eth-jrpc.mainnet.quarkchain.io:39000" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-s0", + "chainId": 100001, + "networkId": 100001, + "parent": { "chain": "eip155-100000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-mainnet", + "url": "https://mainnet.quarkchain.io/0", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Mainnet Shard 1", + "chain": "QuarkChain", + "rpc": [ + "https://mainnet-s1-ethapi.quarkchain.io", + "http://eth-jrpc.mainnet.quarkchain.io:39001" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-s1", + "chainId": 100002, + "networkId": 100002, + "parent": { "chain": "eip155-100000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-mainnet", + "url": "https://mainnet.quarkchain.io/1", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Mainnet Shard 2", + "chain": "QuarkChain", + "rpc": [ + "https://mainnet-s2-ethapi.quarkchain.io", + "http://eth-jrpc.mainnet.quarkchain.io:39002" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-s2", + "chainId": 100003, + "networkId": 100003, + "parent": { "chain": "eip155-100000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-mainnet", + "url": "https://mainnet.quarkchain.io/2", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Mainnet Shard 3", + "chain": "QuarkChain", + "rpc": [ + "https://mainnet-s3-ethapi.quarkchain.io", + "http://eth-jrpc.mainnet.quarkchain.io:39003" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-s3", + "chainId": 100004, + "networkId": 100004, + "parent": { "chain": "eip155-100000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-mainnet", + "url": "https://mainnet.quarkchain.io/3", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Mainnet Shard 4", + "chain": "QuarkChain", + "rpc": [ + "https://mainnet-s4-ethapi.quarkchain.io", + "http://eth-jrpc.mainnet.quarkchain.io:39004" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-s4", + "chainId": 100005, + "networkId": 100005, + "parent": { "chain": "eip155-100000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-mainnet", + "url": "https://mainnet.quarkchain.io/4", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Mainnet Shard 5", + "chain": "QuarkChain", + "rpc": [ + "https://mainnet-s5-ethapi.quarkchain.io", + "http://eth-jrpc.mainnet.quarkchain.io:39005" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-s5", + "chainId": 100006, + "networkId": 100006, + "parent": { "chain": "eip155-100000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-mainnet", + "url": "https://mainnet.quarkchain.io/5", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Mainnet Shard 6", + "chain": "QuarkChain", + "rpc": [ + "https://mainnet-s6-ethapi.quarkchain.io", + "http://eth-jrpc.mainnet.quarkchain.io:39006" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-s6", + "chainId": 100007, + "networkId": 100007, + "parent": { "chain": "eip155-100000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-mainnet", + "url": "https://mainnet.quarkchain.io/6", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Mainnet Shard 7", + "chain": "QuarkChain", + "rpc": [ + "https://mainnet-s7-ethapi.quarkchain.io", + "http://eth-jrpc.mainnet.quarkchain.io:39007" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-s7", + "chainId": 100008, + "networkId": 100008, + "parent": { "chain": "eip155-100000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-mainnet", + "url": "https://mainnet.quarkchain.io/7", + "standard": "EIP3091" + } + ] + }, + { + "name": "VeChain", + "chain": "VeChain", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "VeChain", "symbol": "VET", "decimals": 18 }, + "infoURL": "https://vechain.org", + "shortName": "vechain", + "chainId": 100009, + "networkId": 100009, + "explorers": [ + { + "name": "VeChain Stats", + "url": "https://vechainstats.com", + "standard": "none" + }, + { + "name": "VeChain Explorer", + "url": "https://explore.vechain.org", + "standard": "none" + } + ] + }, + { + "name": "VeChain Testnet", + "chain": "VeChain", + "rpc": [], + "faucets": ["https://faucet.vecha.in"], + "nativeCurrency": { "name": "VeChain", "symbol": "VET", "decimals": 18 }, + "infoURL": "https://vechain.org", + "shortName": "vechain-testnet", + "chainId": 100010, + "networkId": 100010, + "explorers": [ + { + "name": "VeChain Explorer", + "url": "https://explore-testnet.vechain.org", + "standard": "none" + } + ] + }, + { + "name": "Deprecated CHI", + "chain": "CHI1", + "icon": "gnosis", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Chiado xDAI", + "symbol": "xDAI", + "decimals": 18 + }, + "infoURL": "https://docs.gnosischain.com", + "shortName": "chi1", + "chainId": 100100, + "networkId": 100100, + "explorers": [], + "status": "deprecated" + }, + { + "name": "Soverun Testnet", + "chain": "SVRN", + "icon": "soverunTestnet", + "rpc": ["https://testnet-rpc.soverun.com"], + "faucets": ["https://faucet.soverun.com"], + "nativeCurrency": { "name": "Soverun", "symbol": "SVRN", "decimals": 18 }, + "infoURL": "https://soverun.com", + "shortName": "SVRNt", + "chainId": 101010, + "networkId": 101010, + "explorers": [ + { + "name": "Soverun", + "url": "https://testnet.soverun.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Crystaleum", + "chain": "crystal", + "rpc": ["https://evm.cryptocurrencydevs.org", "https://rpc.crystaleum.org"], + "faucets": [], + "nativeCurrency": { "name": "CRFI", "symbol": "â—ˆ", "decimals": 18 }, + "infoURL": "https://crystaleum.org", + "shortName": "CRFI", + "chainId": 103090, + "networkId": 1, + "icon": "crystal", + "explorers": [ + { + "name": "blockscout", + "url": "https://scan.crystaleum.org", + "icon": "crystal", + "standard": "EIP3091" + } + ] + }, + { + "name": "BROChain Mainnet", + "chain": "BRO", + "rpc": [ + "https://rpc.brochain.org", + "http://rpc.brochain.org", + "https://rpc.brochain.org/mainnet", + "http://rpc.brochain.org/mainnet" + ], + "faucets": [], + "nativeCurrency": { "name": "Brother", "symbol": "BRO", "decimals": 18 }, + "infoURL": "https://brochain.org", + "shortName": "bro", + "chainId": 108801, + "networkId": 108801, + "explorers": [ + { + "name": "BROChain Explorer", + "url": "https://explorer.brochain.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Devnet Root", + "chain": "QuarkChain", + "rpc": ["http://jrpc.devnet.quarkchain.io:38391"], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-r", + "chainId": 110000, + "networkId": 110000 + }, + { + "name": "QuarkChain Devnet Shard 0", + "chain": "QuarkChain", + "rpc": [ + "https://devnet-s0-ethapi.quarkchain.io", + "http://eth-jrpc.devnet.quarkchain.io:39900" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-s0", + "chainId": 110001, + "networkId": 110001, + "parent": { "chain": "eip155-110000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-devnet", + "url": "https://devnet.quarkchain.io/0", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Devnet Shard 1", + "chain": "QuarkChain", + "rpc": [ + "https://devnet-s1-ethapi.quarkchain.io", + "http://eth-jrpc.devnet.quarkchain.io:39901" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-s1", + "chainId": 110002, + "networkId": 110002, + "parent": { "chain": "eip155-110000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-devnet", + "url": "https://devnet.quarkchain.io/1", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Devnet Shard 2", + "chain": "QuarkChain", + "rpc": [ + "https://devnet-s2-ethapi.quarkchain.io", + "http://eth-jrpc.devnet.quarkchain.io:39902" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-s2", + "chainId": 110003, + "networkId": 110003, + "parent": { "chain": "eip155-110000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-devnet", + "url": "https://devnet.quarkchain.io/2", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Devnet Shard 3", + "chain": "QuarkChain", + "rpc": [ + "https://devnet-s3-ethapi.quarkchain.io", + "http://eth-jrpc.devnet.quarkchain.io:39903" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-s3", + "chainId": 110004, + "networkId": 110004, + "parent": { "chain": "eip155-110000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-devnet", + "url": "https://devnet.quarkchain.io/3", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Devnet Shard 4", + "chain": "QuarkChain", + "rpc": [ + "https://devnet-s4-ethapi.quarkchain.io", + "http://eth-jrpc.devnet.quarkchain.io:39904" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-s4", + "chainId": 110005, + "networkId": 110005, + "parent": { "chain": "eip155-110000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-devnet", + "url": "https://devnet.quarkchain.io/4", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Devnet Shard 5", + "chain": "QuarkChain", + "rpc": [ + "https://devnet-s5-ethapi.quarkchain.io", + "http://eth-jrpc.devnet.quarkchain.io:39905" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-s5", + "chainId": 110006, + "networkId": 110006, + "parent": { "chain": "eip155-110000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-devnet", + "url": "https://devnet.quarkchain.io/5", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Devnet Shard 6", + "chain": "QuarkChain", + "rpc": [ + "https://devnet-s6-ethapi.quarkchain.io", + "http://eth-jrpc.devnet.quarkchain.io:39906" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-s6", + "chainId": 110007, + "networkId": 110007, + "parent": { "chain": "eip155-110000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-devnet", + "url": "https://devnet.quarkchain.io/6", + "standard": "EIP3091" + } + ] + }, + { + "name": "QuarkChain Devnet Shard 7", + "chain": "QuarkChain", + "rpc": [ + "https://devnet-s7-ethapi.quarkchain.io", + "http://eth-jrpc.devnet.quarkchain.io:39907" + ], + "faucets": [], + "nativeCurrency": { "name": "QKC", "symbol": "QKC", "decimals": 18 }, + "infoURL": "https://www.quarkchain.io", + "shortName": "qkc-d-s7", + "chainId": 110008, + "networkId": 110008, + "parent": { "chain": "eip155-110000", "type": "shard" }, + "explorers": [ + { + "name": "quarkchain-devnet", + "url": "https://devnet.quarkchain.io/7", + "standard": "EIP3091" + } + ] + }, + { + "name": "Siberium Test Network", + "chain": "SBR", + "rpc": ["https://rpc.test.siberium.net"], + "faucets": [], + "nativeCurrency": { "name": "TestSIBR", "symbol": "SIBR", "decimals": 18 }, + "infoURL": "https://siberium.net", + "shortName": "testsbr", + "chainId": 111000, + "networkId": 111000, + "icon": "siberium", + "explorers": [ + { + "name": "Siberium Testnet Explorer - blockscout", + "url": "https://explorer.test.siberium.net", + "icon": "siberium", + "standard": "EIP3091" + } + ] + }, + { + "name": "Siberium Network", + "chain": "SBR", + "rpc": [ + "https://rpc.main.siberium.net", + "https://rpc.main.siberium.net.ru" + ], + "faucets": [], + "nativeCurrency": { "name": "Siberium", "symbol": "SIBR", "decimals": 18 }, + "infoURL": "https://siberium.net", + "shortName": "sbr", + "chainId": 111111, + "networkId": 111111, + "icon": "siberium", + "explorers": [ + { + "name": "Siberium Mainnet Explorer - blockscout - 1", + "url": "https://explorer.main.siberium.net", + "icon": "siberium", + "standard": "EIP3091" + }, + { + "name": "Siberium Mainnet Explorer - blockscout - 2", + "url": "https://explorer.main.siberium.net.ru", + "icon": "siberium", + "standard": "EIP3091" + } + ] + }, + { + "name": "ADIL Devnet", + "chain": "ADIL", + "icon": "adil", + "rpc": ["https://devnet.adilchain-rpc.io"], + "faucets": [], + "nativeCurrency": { + "name": "Devnet ADIL", + "symbol": "ADIL", + "decimals": 18 + }, + "infoURL": "https://adilchain.io", + "shortName": "dadil", + "chainId": 123456, + "networkId": 123456, + "explorers": [ + { + "name": "ADIL Devnet Explorer", + "url": "https://devnet.adilchain-scan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "ETND Chain Mainnets", + "chain": "ETND", + "rpc": ["https://rpc.node1.etnd.pro/"], + "faucets": [], + "nativeCurrency": { "name": "ETND", "symbol": "ETND", "decimals": 18 }, + "infoURL": "https://www.etnd.pro", + "shortName": "ETND", + "chainId": 131419, + "networkId": 131419, + "icon": "ETND", + "explorers": [ + { + "name": "etndscan", + "url": "https://scan.etnd.pro", + "icon": "ETND", + "standard": "none" + } + ] + }, + { + "name": "ICPlaza Mainnet", + "chain": "ICPlaza", + "icon": "icplaza", + "rpc": ["https://rpcmainnet.ic-plaza.org/"], + "faucets": [], + "nativeCurrency": { "name": "ict", "symbol": "ict", "decimals": 18 }, + "infoURL": "https://docs.ic-plaza.org/", + "shortName": "ICPlaza", + "chainId": 142857, + "networkId": 142857, + "explorers": [ + { + "name": "ICPlaza", + "url": "https://browsemainnet.ic-plaza.org/index", + "standard": "none" + } + ] + }, + { + "name": "Taiko (Alpha-2 Testnet)", + "chain": "ETH", + "status": "deprecated", + "icon": "taiko", + "rpc": ["https://rpc.a2.taiko.xyz"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://taiko.xyz", + "shortName": "taiko-a2", + "chainId": 167004, + "networkId": 167004, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.a2.taiko.xyz", + "standard": "EIP3091" + } + ] + }, + { + "name": "Taiko (Alpha-3 Testnet)", + "chain": "ETH", + "status": "active", + "icon": "taiko", + "rpc": ["https://rpc.test.taiko.xyz"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://taiko.xyz", + "shortName": "taiko-a3", + "chainId": 167005, + "networkId": 167005, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.test.taiko.xyz", + "standard": "EIP3091" + } + ] + }, + { + "name": "Condor Test Network", + "chain": "CONDOR", + "icon": "condor", + "rpc": ["https://testnet.condor.systems/rpc"], + "faucets": ["https://faucet.condor.systems"], + "nativeCurrency": { + "name": "Condor Native Token", + "symbol": "CONDOR", + "decimals": 18 + }, + "infoURL": "https://condor.systems", + "shortName": "condor", + "chainId": 188881, + "networkId": 188881, + "explorers": [ + { + "name": "CondorScan", + "url": "https://explorer.condor.systems", + "standard": "none" + } + ] + }, + { + "name": "Milkomeda C1 Testnet", + "chain": "milkTAda", + "icon": "milkomeda", + "rpc": [ + "https://rpc-devnet-cardano-evm.c1.milkomeda.com", + "wss://rpc-devnet-cardano-evm.c1.milkomeda.com" + ], + "faucets": [], + "nativeCurrency": { "name": "milkTAda", "symbol": "mTAda", "decimals": 18 }, + "infoURL": "https://milkomeda.com", + "shortName": "milkTAda", + "chainId": 200101, + "networkId": 200101, + "explorers": [ + { + "name": "Blockscout", + "url": "https://explorer-devnet-cardano-evm.c1.milkomeda.com", + "standard": "none" + } + ] + }, + { + "name": "Milkomeda A1 Testnet", + "chain": "milkTAlgo", + "icon": "milkomeda", + "rpc": ["https://rpc-devnet-algorand-rollup.a1.milkomeda.com"], + "faucets": [], + "nativeCurrency": { + "name": "milkTAlgo", + "symbol": "mTAlgo", + "decimals": 18 + }, + "infoURL": "https://milkomeda.com", + "shortName": "milkTAlgo", + "chainId": 200202, + "networkId": 200202, + "explorers": [ + { + "name": "Blockscout", + "url": "https://explorer-devnet-algorand-rollup.a1.milkomeda.com", + "standard": "none" + } + ] + }, + { + "name": "Akroma", + "chain": "AKA", + "rpc": ["https://remote.akroma.io"], + "faucets": [], + "nativeCurrency": { + "name": "Akroma Ether", + "symbol": "AKA", + "decimals": 18 + }, + "infoURL": "https://akroma.io", + "shortName": "aka", + "chainId": 200625, + "networkId": 200625, + "slip44": 200625 + }, + { + "name": "Alaya Mainnet", + "chain": "Alaya", + "rpc": [ + "https://openapi.alaya.network/rpc", + "wss://openapi.alaya.network/ws" + ], + "faucets": [], + "nativeCurrency": { "name": "ATP", "symbol": "atp", "decimals": 18 }, + "infoURL": "https://www.alaya.network/", + "shortName": "alaya", + "chainId": 201018, + "networkId": 1, + "icon": "alaya", + "explorers": [ + { + "name": "alaya explorer", + "url": "https://scan.alaya.network", + "standard": "none" + } + ] + }, + { + "name": "Alaya Dev Testnet", + "chain": "Alaya", + "rpc": [ + "https://devnetopenapi.alaya.network/rpc", + "wss://devnetopenapi.alaya.network/ws" + ], + "faucets": [ + "https://faucet.alaya.network/faucet/?id=f93426c0887f11eb83b900163e06151c" + ], + "nativeCurrency": { "name": "ATP", "symbol": "atp", "decimals": 18 }, + "infoURL": "https://www.alaya.network/", + "shortName": "alayadev", + "chainId": 201030, + "networkId": 1, + "icon": "alaya", + "explorers": [ + { + "name": "alaya explorer", + "url": "https://devnetscan.alaya.network", + "standard": "none" + } + ] + }, + { + "name": "Mythical Chain", + "chain": "MYTH", + "rpc": ["https://chain-rpc.mythicalgames.com"], + "faucets": [], + "nativeCurrency": { "name": "Mythos", "symbol": "MYTH", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://mythicalgames.com/", + "shortName": "myth", + "chainId": 201804, + "networkId": 201804, + "icon": "mythical", + "explorers": [ + { + "name": "Mythical Chain Explorer", + "url": "https://explorer.mythicalgames.com", + "icon": "mythical", + "standard": "EIP3091" + } + ] + }, + { + "name": "Decimal Smart Chain Testnet", + "chain": "tDSC", + "rpc": ["https://testnet-val.decimalchain.com/web3"], + "faucets": [], + "nativeCurrency": { "name": "Decimal", "symbol": "tDEL", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://decimalchain.com", + "shortName": "tDSC", + "chainId": 202020, + "networkId": 202020, + "icon": "dsc", + "explorers": [ + { + "name": "DSC Explorer Testnet", + "url": "https://testnet.explorer.decimalchain.com", + "icon": "dsc", + "standard": "EIP3091" + } + ] + }, + { + "name": "Jellie", + "title": "Twala Testnet Jellie", + "shortName": "twl-jellie", + "chain": "ETH", + "chainId": 202624, + "networkId": 202624, + "icon": "twala", + "nativeCurrency": { "name": "Twala Coin", "symbol": "TWL", "decimals": 18 }, + "rpc": ["https://jellie-rpc.twala.io/", "wss://jellie-rpc-wss.twala.io/"], + "faucets": [], + "infoURL": "https://twala.io/", + "explorers": [ + { + "name": "Jellie Blockchain Explorer", + "url": "https://jellie.twala.io", + "standard": "EIP3091", + "icon": "twala" + } + ] + }, + { + "name": "PlatON Mainnet", + "chain": "PlatON", + "rpc": [ + "https://openapi2.platon.network/rpc", + "wss://openapi2.platon.network/ws" + ], + "faucets": [], + "nativeCurrency": { "name": "LAT", "symbol": "lat", "decimals": 18 }, + "infoURL": "https://www.platon.network", + "shortName": "platon", + "chainId": 210425, + "networkId": 1, + "icon": "platon", + "explorers": [ + { + "name": "PlatON explorer", + "url": "https://scan.platon.network", + "standard": "none" + } + ] + }, + { + "name": "Mas Mainnet", + "chain": "MAS", + "rpc": ["http://node.masnet.ai:8545"], + "faucets": [], + "nativeCurrency": { + "name": "Master Bank", + "symbol": "MAS", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://masterbank.org", + "shortName": "mas", + "chainId": 220315, + "networkId": 220315, + "icon": "mas", + "explorers": [ + { + "name": "explorer masnet", + "url": "https://explorer.masnet.ai", + "standard": "EIP3091" + } + ] + }, + { + "name": "Taf ECO Chain Mainnet", + "chain": "Taf ECO Chain", + "icon": "taf", + "rpc": ["https://mainnet.tafchain.com/v1"], + "faucets": [], + "nativeCurrency": { + "name": "Taf ECO Chain Mainnet", + "symbol": "TAFECO", + "decimals": 18 + }, + "infoURL": "https://www.tafchain.com", + "shortName": "TAFECO", + "chainId": 224168, + "networkId": 224168, + "explorers": [ + { + "name": "Taf ECO Chain Mainnet", + "url": "https://ecoscan.tafchain.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "HashKey Chain Testnet", + "chain": "HashKey", + "rpc": ["https://testnet.hashkeychain/rpc"], + "faucets": ["https://testnet.hashkeychain/faucet"], + "nativeCurrency": { + "name": "HashKey Token", + "symbol": "tHSK", + "decimals": 18 + }, + "infoURL": "https://www.hashkey.com", + "shortName": "hsktest", + "chainId": 230315, + "networkId": 230315, + "icon": "hsk", + "explorers": [ + { + "name": "HashKey Chain Testnet Explorer", + "url": "https://testnet.hashkeyscan.io", + "standard": "none" + } + ] + }, + { + "name": "Haymo Testnet", + "chain": "tHYM", + "rpc": ["https://testnet1.haymo.network"], + "faucets": [], + "nativeCurrency": { "name": "HAYMO", "symbol": "HYM", "decimals": 18 }, + "infoURL": "https://haymoswap.web.app/", + "shortName": "hym", + "chainId": 234666, + "networkId": 234666 + }, + { + "name": "ARTIS sigma1", + "chain": "ARTIS", + "rpc": ["https://rpc.sigma1.artis.network"], + "faucets": [], + "nativeCurrency": { + "name": "ARTIS sigma1 Ether", + "symbol": "ATS", + "decimals": 18 + }, + "infoURL": "https://artis.eco", + "shortName": "ats", + "chainId": 246529, + "networkId": 246529, + "slip44": 246529 + }, + { + "name": "ARTIS Testnet tau1", + "chain": "ARTIS", + "rpc": ["https://rpc.tau1.artis.network"], + "faucets": [], + "nativeCurrency": { + "name": "ARTIS tau1 Ether", + "symbol": "tATS", + "decimals": 18 + }, + "infoURL": "https://artis.network", + "shortName": "atstau", + "chainId": 246785, + "networkId": 246785 + }, + { + "name": "Saakuru Testnet", + "chain": "Saakuru", + "icon": "saakuru", + "rpc": ["https://rpc-testnet.saakuru.network"], + "faucets": [], + "nativeCurrency": { "name": "OAS", "symbol": "OAS", "decimals": 18 }, + "infoURL": "https://saakuru.network", + "shortName": "saakuru-testnet", + "chainId": 247253, + "networkId": 247253, + "explorers": [ + { + "name": "saakuru-explorer-testnet", + "url": "https://explorer-testnet.saakuru.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "CMP-Mainnet", + "chain": "CMP", + "rpc": [ + "https://mainnet.block.caduceus.foundation", + "wss://mainnet.block.caduceus.foundation" + ], + "faucets": [], + "nativeCurrency": { + "name": "Caduceus Token", + "symbol": "CMP", + "decimals": 18 + }, + "infoURL": "https://caduceus.foundation/", + "shortName": "cmp-mainnet", + "chainId": 256256, + "networkId": 256256, + "explorers": [ + { + "name": "Mainnet Scan", + "url": "https://mainnet.scan.caduceus.foundation", + "standard": "none" + } + ] + }, + { + "name": "Gear Zero Network Testnet", + "chain": "GearZero", + "rpc": ["https://gzn-test.linksme.info"], + "faucets": [], + "nativeCurrency": { + "name": "Gear Zero Network Native Token", + "symbol": "GZN", + "decimals": 18 + }, + "infoURL": "https://token.gearzero.ca/testnet", + "shortName": "gz-testnet", + "chainId": 266256, + "networkId": 266256, + "slip44": 266256, + "explorers": [] + }, + { + "name": "Social Smart Chain Mainnet", + "chain": "SoChain", + "rpc": ["https://socialsmartchain.digitalnext.business"], + "faucets": [], + "nativeCurrency": { "name": "SoChain", "symbol": "$OC", "decimals": 18 }, + "infoURL": "https://digitalnext.business/SocialSmartChain", + "shortName": "SoChain", + "chainId": 281121, + "networkId": 281121, + "explorers": [] + }, + { + "name": "Filecoin - Calibration testnet", + "chain": "FIL", + "icon": "filecoin", + "rpc": [ + "https://api.calibration.node.glif.io/rpc/v1", + "https://rpc.ankr.com/filecoin_testnet", + "https://filecoin-calibration.chainstacklabs.com/rpc/v1", + "https://filecoin-calibration.chainup.net/rpc/v1" + ], + "faucets": ["https://faucet.calibration.fildev.network/"], + "nativeCurrency": { + "name": "testnet filecoin", + "symbol": "tFIL", + "decimals": 18 + }, + "infoURL": "https://filecoin.io", + "shortName": "filecoin-calibration", + "chainId": 314159, + "networkId": 314159, + "slip44": 1, + "explorers": [ + { + "name": "Filscan - Calibration", + "url": "https://calibration.filscan.io", + "standard": "none" + }, + { + "name": "Filscout - Calibration", + "url": "https://calibration.filscout.com/en", + "standard": "none" + }, + { + "name": "Filfox - Calibration", + "url": "https://calibration.filfox.info", + "standard": "none" + }, + { + "name": "Glif Explorer - Calibration", + "url": "https://explorer.glif.io/?network=calibration", + "standard": "none" + }, + { "name": "Beryx", "url": "https://beryx.zondax.ch", "standard": "none" } + ] + }, + { + "name": "TTcoin Smart Chain Mainnet", + "chain": "TSC", + "icon": "tscscan", + "rpc": ["https://mainnet-rpc.tscscan.com"], + "faucets": ["https://faucet.tscscan.com"], + "nativeCurrency": { "name": "TTcoin", "symbol": "TC", "decimals": 18 }, + "infoURL": "https://ttcoin.info/", + "shortName": "tc", + "chainId": 330844, + "networkId": 330844, + "explorers": [ + { + "name": "TTcoin Smart Chain Explorer", + "url": "https://tscscan.com", + "standard": "EIP3091", + "icon": "tscscan" + } + ] + }, + { + "name": "Aves Testnet", + "chain": "AVST", + "rpc": ["https://test.rpc.avescoin.io"], + "faucets": [], + "nativeCurrency": { "name": "AvesT", "symbol": "AVST", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://ethereum.org", + "shortName": "avst", + "chainId": 333331, + "networkId": 333331, + "icon": "aves", + "explorers": [ + { + "name": "avescan", + "url": "https://testnet.avescoin.io", + "icon": "avescan", + "standard": "EIP3091" + } + ] + }, + { + "name": "Oone Chain Testnet", + "chain": "OONE", + "rpc": ["https://blockchain-test.adigium.world"], + "faucets": ["https://apps-test.adigium.com/faucet"], + "nativeCurrency": { "name": "Oone", "symbol": "tOONE", "decimals": 18 }, + "infoURL": "https://oone.world", + "shortName": "oonetest", + "chainId": 333777, + "networkId": 333777, + "explorers": [ + { + "name": "expedition", + "url": "https://explorer-test.adigium.world", + "standard": "none" + } + ] + }, + { + "name": "Polis Testnet", + "chain": "Sparta", + "icon": "polis", + "rpc": ["https://sparta-rpc.polis.tech"], + "faucets": ["https://faucet.polis.tech"], + "nativeCurrency": { "name": "tPolis", "symbol": "tPOLIS", "decimals": 18 }, + "infoURL": "https://polis.tech", + "shortName": "sparta", + "chainId": 333888, + "networkId": 333888 + }, + { + "name": "Polis Mainnet", + "chain": "Olympus", + "icon": "polis", + "rpc": ["https://rpc.polis.tech"], + "faucets": ["https://faucet.polis.tech"], + "nativeCurrency": { "name": "Polis", "symbol": "POLIS", "decimals": 18 }, + "infoURL": "https://polis.tech", + "shortName": "olympus", + "chainId": 333999, + "networkId": 333999 + }, + { + "name": "Bitfinity Network Testnet", + "chain": "BFT", + "rpc": ["https://testnet.bitfinity.network"], + "faucets": ["https://bitfinity.network/faucet"], + "nativeCurrency": { "name": "BITFINITY", "symbol": "BFT", "decimals": 18 }, + "infoURL": "https://bitfinity.network", + "shortName": "Bitfinity", + "chainId": 355113, + "networkId": 355113, + "explorers": [ + { + "name": "Bitfinity Block Explorer", + "url": "https://explorer.bitfinity.network", + "icon": "bitfinity", + "standard": "EIP3091" + } + ] + }, + { + "name": "HAPchain Testnet", + "chain": "HAPchain", + "rpc": ["https://jsonrpc-test.hap.land"], + "faucets": [], + "nativeCurrency": { "name": "HAP", "symbol": "HAP", "decimals": 18 }, + "infoURL": "https://hap.land", + "shortName": "hap-testnet", + "chainId": 373737, + "networkId": 373737, + "icon": "hap", + "explorers": [ + { + "name": "HAP EVM Explorer (Blockscout)", + "url": "https://blockscout-test.hap.land", + "standard": "none", + "icon": "hap" + } + ] + }, + { + "name": "Metal C-Chain", + "chain": "Metal", + "rpc": ["https://api.metalblockchain.org/ext/bc/C/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Metal", "symbol": "METAL", "decimals": 18 }, + "infoURL": "https://www.metalblockchain.org/", + "shortName": "metal", + "chainId": 381931, + "networkId": 381931, + "slip44": 9005, + "explorers": [ + { + "name": "metalscan", + "url": "https://metalscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Metal Tahoe C-Chain", + "chain": "Metal", + "rpc": ["https://tahoe.metalblockchain.org/ext/bc/C/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Metal", "symbol": "METAL", "decimals": 18 }, + "infoURL": "https://www.metalblockchain.org/", + "shortName": "Tahoe", + "chainId": 381932, + "networkId": 381932, + "slip44": 9005, + "explorers": [ + { + "name": "metalscan", + "url": "https://tahoe.metalscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Tipboxcoin Mainnet", + "chain": "TPBX", + "icon": "tipboxcoinIcon", + "rpc": ["https://mainnet-rpc.tipboxcoin.net"], + "faucets": ["https://faucet.tipboxcoin.net"], + "nativeCurrency": { + "name": "Tipboxcoin", + "symbol": "TPBX", + "decimals": 18 + }, + "infoURL": "https://tipboxcoin.net", + "shortName": "TPBXm", + "chainId": 404040, + "networkId": 404040, + "explorers": [ + { + "name": "Tipboxcoin", + "url": "https://tipboxcoin.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Kekchain", + "chain": "kek", + "rpc": ["https://mainnet.kekchain.com"], + "faucets": [], + "nativeCurrency": { "name": "KEK", "symbol": "KEK", "decimals": 18 }, + "infoURL": "https://kekchain.com", + "shortName": "KEK", + "chainId": 420420, + "networkId": 103090, + "icon": "kek", + "explorers": [ + { + "name": "blockscout", + "url": "https://mainnet-explorer.kekchain.com", + "icon": "kek", + "standard": "EIP3091" + } + ] + }, + { + "name": "Kekchain (kektest)", + "chain": "kek", + "rpc": ["https://testnet.kekchain.com"], + "faucets": [], + "nativeCurrency": { "name": "tKEK", "symbol": "tKEK", "decimals": 18 }, + "infoURL": "https://kekchain.com", + "shortName": "tKEK", + "chainId": 420666, + "networkId": 1, + "icon": "kek", + "explorers": [ + { + "name": "blockscout", + "url": "https://testnet-explorer.kekchain.com", + "icon": "kek", + "standard": "EIP3091" + } + ] + }, + { + "name": "Arbitrum Rinkeby", + "title": "Arbitrum Testnet Rinkeby", + "chainId": 421611, + "shortName": "arb-rinkeby", + "chain": "ETH", + "networkId": 421611, + "nativeCurrency": { + "name": "Arbitrum Rinkeby Ether", + "symbol": "ETH", + "decimals": 18 + }, + "rpc": ["https://rinkeby.arbitrum.io/rpc"], + "faucets": ["http://fauceth.komputing.org?chain=421611&address=${ADDRESS}"], + "infoURL": "https://arbitrum.io", + "explorers": [ + { + "name": "arbiscan-testnet", + "url": "https://testnet.arbiscan.io", + "standard": "EIP3091" + }, + { + "name": "arbitrum-rinkeby", + "url": "https://rinkeby-explorer.arbitrum.io", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-4", + "bridges": [{ "url": "https://bridge.arbitrum.io" }] + } + }, + { + "name": "Arbitrum Goerli", + "title": "Arbitrum Goerli Rollup Testnet", + "chainId": 421613, + "shortName": "arb-goerli", + "chain": "ETH", + "networkId": 421613, + "nativeCurrency": { + "name": "Arbitrum Goerli Ether", + "symbol": "AGOR", + "decimals": 18 + }, + "rpc": ["https://goerli-rollup.arbitrum.io/rpc/"], + "faucets": [], + "infoURL": "https://arbitrum.io/", + "explorers": [ + { + "name": "Arbitrum Goerli Rollup Explorer", + "url": "https://goerli-rollup-explorer.arbitrum.io", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-5", + "bridges": [{ "url": "https://bridge.arbitrum.io/" }] + } + }, + { + "name": "Fastex Chain testnet", + "chain": "FTN", + "title": "Fastex Chain testnet", + "rpc": ["https://rpc.testnet.fastexchain.com"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "FTN", "symbol": "FTN", "decimals": 18 }, + "infoURL": "https://fastex.com", + "shortName": "fastexTestnet", + "chainId": 424242, + "networkId": 424242, + "explorers": [ + { + "name": "blockscout", + "url": "https://testnet.ftnscan.com", + "standard": "none" + } + ] + }, + { + "name": "Markr Go", + "chain": "Unified", + "icon": "markrgo", + "rpc": ["https://rpc.markr.io/ext/"], + "faucets": [], + "nativeCurrency": { "name": "Avalanche", "symbol": "AVAX", "decimals": 18 }, + "infoURL": "https://www.markr.io/", + "shortName": "markr-go", + "chainId": 431140, + "networkId": 431140, + "explorers": [], + "status": "incubating" + }, + { + "name": "Dexalot Subnet Testnet", + "chain": "DEXALOT", + "icon": "dexalot", + "rpc": ["https://subnets.avax.network/dexalot/testnet/rpc"], + "faucets": ["https://faucet.avax.network/?subnet=dexalot"], + "nativeCurrency": { "name": "Dexalot", "symbol": "ALOT", "decimals": 18 }, + "infoURL": "https://dexalot.com", + "shortName": "dexalot-testnet", + "chainId": 432201, + "networkId": 432201, + "explorers": [ + { + "name": "Avalanche Subnet Testnet Explorer", + "url": "https://subnets-test.avax.network/dexalot", + "standard": "EIP3091" + } + ] + }, + { + "name": "Dexalot Subnet", + "chain": "DEXALOT", + "icon": "dexalot", + "rpc": ["https://subnets.avax.network/dexalot/mainnet/rpc"], + "faucets": [], + "nativeCurrency": { "name": "Dexalot", "symbol": "ALOT", "decimals": 18 }, + "infoURL": "https://dexalot.com", + "shortName": "dexalot", + "chainId": 432204, + "networkId": 432204, + "explorers": [ + { + "name": "Avalanche Subnet Explorer", + "url": "https://subnets.avax.network/dexalot", + "standard": "EIP3091" + } + ] + }, + { + "name": "Weelink Testnet", + "chain": "WLK", + "rpc": ["https://weelinknode1c.gw002.oneitfarm.com"], + "faucets": ["https://faucet.weelink.gw002.oneitfarm.com"], + "nativeCurrency": { + "name": "Weelink Chain Token", + "symbol": "tWLK", + "decimals": 18 + }, + "infoURL": "https://weelink.cloud", + "shortName": "wlkt", + "chainId": 444900, + "networkId": 444900, + "explorers": [ + { + "name": "weelink-testnet", + "url": "https://weelink.cloud/#/blockView/overview", + "standard": "none" + } + ] + }, + { + "name": "Patex Sepolia Testnet", + "chain": "ETH", + "rpc": ["https://test-rpc.patex.io/"], + "faucets": [], + "nativeCurrency": { + "name": "Sepolia Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://patex.io/", + "shortName": "psep", + "chainId": 471100, + "networkId": 471100 + }, + { + "name": "OpenChain Mainnet", + "chain": "OpenChain", + "rpc": ["https://baas-rpc.luniverse.io:18545?lChainId=1641349324562974539"], + "faucets": [], + "nativeCurrency": { "name": "OpenCoin", "symbol": "OPC", "decimals": 10 }, + "infoURL": "https://www.openchain.live", + "shortName": "oc", + "chainId": 474142, + "networkId": 474142, + "explorers": [ + { + "name": "SIDE SCAN", + "url": "https://sidescan.luniverse.io/1641349324562974539", + "standard": "none" + } + ] + }, + { + "name": "CMP-Testnet", + "chain": "CMP", + "rpc": [ + "https://galaxy.block.caduceus.foundation", + "wss://galaxy.block.caduceus.foundation" + ], + "faucets": ["https://dev.caduceus.foundation/testNetwork"], + "nativeCurrency": { + "name": "Caduceus Testnet Token", + "symbol": "CMP", + "decimals": 18 + }, + "infoURL": "https://caduceus.foundation/", + "shortName": "cmp", + "chainId": 512512, + "networkId": 512512, + "explorers": [ + { + "name": "Galaxy Scan", + "url": "https://galaxy.scan.caduceus.foundation", + "standard": "none" + } + ] + }, + { + "name": "ethereum Fair", + "chainId": 513100, + "networkId": 513100, + "shortName": "ethf", + "chain": "ETHF", + "nativeCurrency": { + "name": "EthereumFair", + "symbol": "ETHF", + "decimals": 18 + }, + "rpc": ["https://rpc.etherfair.org"], + "faucets": [], + "explorers": [ + { + "name": "etherfair", + "url": "https://www.oklink.com/ethf", + "standard": "EIP3091" + } + ], + "infoURL": "https://etherfair.org" + }, + { + "name": "Scroll Sepolia Testnet", + "chain": "ETH", + "status": "incubating", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://scroll.io", + "shortName": "scr-sepolia", + "chainId": 534351, + "networkId": 534351, + "explorers": [], + "parent": { "type": "L2", "chain": "eip155-11155111", "bridges": [] } + }, + { + "name": "Scroll", + "chain": "ETH", + "status": "incubating", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://scroll.io", + "shortName": "scr", + "chainId": 534352, + "networkId": 534352, + "explorers": [], + "parent": { "type": "L2", "chain": "eip155-1", "bridges": [] } + }, + { + "name": "Scroll Alpha Testnet", + "chain": "ETH", + "status": "active", + "rpc": ["https://alpha-rpc.scroll.io/l2"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://scroll.io", + "shortName": "scr-alpha", + "chainId": 534353, + "networkId": 534353, + "explorers": [ + { + "name": "Scroll Alpha Testnet Block Explorer", + "url": "https://blockscout.scroll.io", + "standard": "EIP3091" + }, + { + "name": "Scroll Alpha Testnet Block Explorer", + "url": "https://scrollscan.co", + "standard": "EIP3091" + } + ], + "parent": { "type": "L2", "chain": "eip155-5", "bridges": [] } + }, + { + "name": "Scroll Pre-Alpha Testnet", + "chain": "ETH", + "status": "deprecated", + "rpc": ["https://prealpha-rpc.scroll.io/l2"], + "faucets": ["https://prealpha.scroll.io/faucet"], + "nativeCurrency": { "name": "Ether", "symbol": "TSETH", "decimals": 18 }, + "infoURL": "https://scroll.io", + "shortName": "scr-prealpha", + "chainId": 534354, + "networkId": 534354, + "explorers": [ + { + "name": "Scroll L2 Block Explorer", + "url": "https://l2scan.scroll.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "BeanEco SmartChain", + "title": "BESC Mainnet", + "chain": "BESC", + "rpc": ["https://mainnet-rpc.bescscan.io"], + "faucets": ["faucet.bescscan.ion"], + "nativeCurrency": { + "name": "BeanEco SmartChain", + "symbol": "BESC", + "decimals": 18 + }, + "infoURL": "besceco.finance", + "shortName": "BESC", + "chainId": 535037, + "networkId": 535037, + "explorers": [ + { + "name": "bescscan", + "url": "https://Bescscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Bear Network Chain Mainnet", + "chain": "BRNKC", + "icon": "brnkc", + "rpc": [ + "https://brnkc-mainnet.bearnetwork.net", + "https://brnkc-mainnet1.bearnetwork.net" + ], + "faucets": [], + "nativeCurrency": { + "name": "Bear Network Chain Native Token", + "symbol": "BRNKC", + "decimals": 18 + }, + "infoURL": "https://bearnetwork.net", + "shortName": "BRNKC", + "chainId": 641230, + "networkId": 641230, + "explorers": [ + { + "name": "brnkscan", + "url": "https://brnkscan.bearnetwork.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "Vision - Vpioneer Test Chain", + "chain": "Vision-Vpioneer", + "rpc": ["https://vpioneer.infragrid.v.network/ethereum/compatible"], + "faucets": ["https://vpioneerfaucet.visionscan.org"], + "nativeCurrency": { "name": "VS", "symbol": "VS", "decimals": 18 }, + "infoURL": "https://visionscan.org", + "shortName": "vpioneer", + "chainId": 666666, + "networkId": 666666, + "slip44": 60 + }, + { + "name": "Bear Network Chain Testnet", + "chain": "BRNKCTEST", + "icon": "brnkc", + "rpc": ["https://brnkc-test.bearnetwork.net"], + "faucets": ["https://faucet.bearnetwork.net"], + "nativeCurrency": { + "name": "Bear Network Chain Testnet Token", + "symbol": "tBRNKC", + "decimals": 18 + }, + "infoURL": "https://bearnetwork.net", + "shortName": "BRNKCTEST", + "chainId": 751230, + "networkId": 751230, + "explorers": [ + { + "name": "brnktestscan", + "url": "https://brnktest-scan.bearnetwork.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "OctaSpace", + "chain": "OCTA", + "rpc": ["https://rpc.octa.space", "wss://rpc.octa.space"], + "faucets": [], + "nativeCurrency": { "name": "OctaSpace", "symbol": "OCTA", "decimals": 18 }, + "infoURL": "https://octa.space", + "shortName": "octa", + "chainId": 800001, + "networkId": 800001, + "icon": "octaspace", + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.octa.space", + "icon": "blockscout", + "standard": "EIP3091" + } + ] + }, + { + "name": "CURVE Mainnet", + "chain": "CURVE", + "icon": "curveIcon", + "rpc": ["https://mainnet-rpc.curvescan.io"], + "faucets": [], + "nativeCurrency": { "name": "Curve", "symbol": "CURVE", "decimals": 18 }, + "infoURL": "https://curvescan.io", + "shortName": "CURVEm", + "chainId": 827431, + "networkId": 827431, + "explorers": [ + { + "name": "CURVE Mainnet", + "url": "https://curvescan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "4GoodNetwork", + "chain": "4GN", + "rpc": ["https://chain.deptofgood.com"], + "faucets": [], + "nativeCurrency": { "name": "APTA", "symbol": "APTA", "decimals": 18 }, + "infoURL": "https://bloqs4good.com", + "shortName": "bloqs4good", + "chainId": 846000, + "networkId": 846000 + }, + { + "name": "Vision - Mainnet", + "chain": "Vision", + "rpc": ["https://infragrid.v.network/ethereum/compatible"], + "faucets": [], + "nativeCurrency": { "name": "VS", "symbol": "VS", "decimals": 18 }, + "infoURL": "https://www.v.network", + "explorers": [ + { + "name": "Visionscan", + "url": "https://www.visionscan.org", + "standard": "EIP3091" + } + ], + "shortName": "vision", + "chainId": 888888, + "networkId": 888888, + "slip44": 60 + }, + { + "name": "Posichain Mainnet Shard 0", + "chain": "PSC", + "rpc": ["https://api.posichain.org", "https://api.s0.posichain.org"], + "faucets": ["https://faucet.posichain.org/"], + "nativeCurrency": { + "name": "Posichain Native Token", + "symbol": "POSI", + "decimals": 18 + }, + "infoURL": "https://posichain.org", + "shortName": "psc-s0", + "chainId": 900000, + "networkId": 900000, + "explorers": [ + { + "name": "Posichain Explorer", + "url": "https://explorer.posichain.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Posichain Testnet Shard 0", + "chain": "PSC", + "rpc": ["https://api.s0.t.posichain.org"], + "faucets": ["https://faucet.posichain.org/"], + "nativeCurrency": { + "name": "Posichain Native Token", + "symbol": "POSI", + "decimals": 18 + }, + "infoURL": "https://posichain.org", + "shortName": "psc-t-s0", + "chainId": 910000, + "networkId": 910000, + "explorers": [ + { + "name": "Posichain Explorer Testnet", + "url": "https://explorer-testnet.posichain.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Posichain Devnet Shard 0", + "chain": "PSC", + "rpc": ["https://api.s0.d.posichain.org"], + "faucets": ["https://faucet.posichain.org/"], + "nativeCurrency": { + "name": "Posichain Native Token", + "symbol": "POSI", + "decimals": 18 + }, + "infoURL": "https://posichain.org", + "shortName": "psc-d-s0", + "chainId": 920000, + "networkId": 920000, + "explorers": [ + { + "name": "Posichain Explorer Devnet", + "url": "https://explorer-devnet.posichain.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Posichain Devnet Shard 1", + "chain": "PSC", + "rpc": ["https://api.s1.d.posichain.org"], + "faucets": ["https://faucet.posichain.org/"], + "nativeCurrency": { + "name": "Posichain Native Token", + "symbol": "POSI", + "decimals": 18 + }, + "infoURL": "https://posichain.org", + "shortName": "psc-d-s1", + "chainId": 920001, + "networkId": 920001, + "explorers": [ + { + "name": "Posichain Explorer Devnet", + "url": "https://explorer-devnet.posichain.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "FNCY Testnet", + "chain": "FNCY", + "rpc": ["https://fncy-testnet-seed.fncy.world"], + "faucets": ["https://faucet-testnet.fncy.world"], + "nativeCurrency": { "name": "FNCY", "symbol": "FNCY", "decimals": 18 }, + "infoURL": "https://fncyscan-testnet.fncy.world", + "shortName": "tFNCY", + "chainId": 923018, + "networkId": 923018, + "icon": "fncy", + "explorers": [ + { + "name": "fncy scan testnet", + "url": "https://fncyscan-testnet.fncy.world", + "icon": "fncy", + "standard": "EIP3091" + } + ] + }, + { + "name": "Eluvio Content Fabric", + "chain": "Eluvio", + "rpc": [ + "https://host-76-74-28-226.contentfabric.io/eth/", + "https://host-76-74-28-232.contentfabric.io/eth/", + "https://host-76-74-29-2.contentfabric.io/eth/", + "https://host-76-74-29-8.contentfabric.io/eth/", + "https://host-76-74-29-34.contentfabric.io/eth/", + "https://host-76-74-29-35.contentfabric.io/eth/", + "https://host-154-14-211-98.contentfabric.io/eth/", + "https://host-154-14-192-66.contentfabric.io/eth/", + "https://host-60-240-133-202.contentfabric.io/eth/", + "https://host-64-235-250-98.contentfabric.io/eth/" + ], + "faucets": [], + "nativeCurrency": { "name": "ELV", "symbol": "ELV", "decimals": 18 }, + "infoURL": "https://eluv.io", + "shortName": "elv", + "chainId": 955305, + "networkId": 955305, + "slip44": 1011, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.eluv.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Etho Protocol", + "chain": "ETHO", + "rpc": ["https://rpc.ethoprotocol.com"], + "faucets": [], + "nativeCurrency": { + "name": "Etho Protocol", + "symbol": "ETHO", + "decimals": 18 + }, + "infoURL": "https://ethoprotocol.com", + "shortName": "etho", + "chainId": 1313114, + "networkId": 1313114, + "slip44": 1313114, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.ethoprotocol.com", + "standard": "none" + } + ] + }, + { + "name": "Xerom", + "chain": "XERO", + "rpc": ["https://rpc.xerom.org"], + "faucets": [], + "nativeCurrency": { + "name": "Xerom Ether", + "symbol": "XERO", + "decimals": 18 + }, + "infoURL": "https://xerom.org", + "shortName": "xero", + "chainId": 1313500, + "networkId": 1313500 + }, + { + "name": "Kintsugi", + "title": "Kintsugi merge testnet", + "chain": "ETH", + "rpc": ["https://rpc.kintsugi.themerge.dev"], + "faucets": [ + "http://fauceth.komputing.org?chain=1337702&address=${ADDRESS}", + "https://faucet.kintsugi.themerge.dev" + ], + "nativeCurrency": { + "name": "kintsugi Ethere", + "symbol": "kiETH", + "decimals": 18 + }, + "infoURL": "https://kintsugi.themerge.dev/", + "shortName": "kintsugi", + "chainId": 1337702, + "networkId": 1337702, + "explorers": [ + { + "name": "kintsugi explorer", + "url": "https://explorer.kintsugi.themerge.dev", + "standard": "EIP3091" + } + ] + }, + { + "name": "Kiln", + "chain": "ETH", + "rpc": ["https://rpc.kiln.themerge.dev"], + "faucets": [ + "https://faucet.kiln.themerge.dev", + "https://kiln-faucet.pk910.de", + "https://kilnfaucet.com" + ], + "nativeCurrency": { + "name": "Testnet ETH", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://kiln.themerge.dev/", + "shortName": "kiln", + "chainId": 1337802, + "networkId": 1337802, + "icon": "ethereum", + "explorers": [ + { + "name": "Kiln Explorer", + "url": "https://explorer.kiln.themerge.dev", + "icon": "ethereum", + "standard": "EIP3091" + } + ] + }, + { + "name": "Zhejiang", + "chain": "ETH", + "rpc": ["https://rpc.zhejiang.ethpandaops.io"], + "faucets": [ + "https://faucet.zhejiang.ethpandaops.io", + "https://zhejiang-faucet.pk910.de" + ], + "nativeCurrency": { + "name": "Testnet ETH", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://zhejiang.ethpandaops.io", + "shortName": "zhejiang", + "chainId": 1337803, + "networkId": 1337803, + "icon": "ethereum", + "explorers": [ + { + "name": "Zhejiang Explorer", + "url": "https://zhejiang.beaconcha.in", + "icon": "ethereum", + "standard": "EIP3091" + } + ] + }, + { + "name": "Plian Mainnet Main", + "chain": "Plian", + "rpc": ["https://mainnet.plian.io/pchain"], + "faucets": [], + "nativeCurrency": { "name": "Plian Token", "symbol": "PI", "decimals": 18 }, + "infoURL": "https://plian.org/", + "shortName": "plian-mainnet", + "chainId": 2099156, + "networkId": 2099156, + "explorers": [ + { + "name": "piscan", + "url": "https://piscan.plian.org/pchain", + "standard": "EIP3091" + } + ] + }, + { + "name": "PlatON Dev Testnet Deprecated", + "chain": "PlatON", + "rpc": [ + "https://devnetopenapi2.platon.network/rpc", + "wss://devnetopenapi2.platon.network/ws" + ], + "faucets": ["https://devnet2faucet.platon.network/faucet"], + "nativeCurrency": { "name": "LAT", "symbol": "lat", "decimals": 18 }, + "infoURL": "https://www.platon.network", + "shortName": "platondev", + "chainId": 2203181, + "networkId": 1, + "icon": "platon", + "status": "deprecated", + "explorers": [ + { + "name": "PlatON explorer", + "url": "https://devnetscan.platon.network", + "standard": "none" + } + ] + }, + { + "name": "PlatON Dev Testnet2", + "chain": "PlatON", + "rpc": [ + "https://devnet2openapi.platon.network/rpc", + "wss://devnet2openapi.platon.network/ws" + ], + "faucets": ["https://devnet2faucet.platon.network/faucet"], + "nativeCurrency": { "name": "LAT", "symbol": "lat", "decimals": 18 }, + "infoURL": "https://www.platon.network", + "shortName": "platondev2", + "chainId": 2206132, + "networkId": 1, + "icon": "platon", + "explorers": [ + { + "name": "PlatON explorer", + "url": "https://devnet2scan.platon.network", + "standard": "none" + } + ] + }, + { + "name": "Filecoin - Butterfly testnet", + "chain": "FIL", + "status": "incubating", + "rpc": [], + "faucets": ["https://faucet.butterfly.fildev.network"], + "nativeCurrency": { + "name": "testnet filecoin", + "symbol": "tFIL", + "decimals": 18 + }, + "infoURL": "https://filecoin.io", + "shortName": "filecoin-butterfly", + "icon": "filecoin", + "chainId": 3141592, + "networkId": 3141592, + "slip44": 1, + "explorers": [] + }, + { + "name": "Worlds Caldera", + "chain": "WCal", + "rpc": ["https://worlds-test.calderachain.xyz/http"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://caldera.xyz/", + "shortName": "worldscal", + "chainId": 4281033, + "networkId": 4281033, + "icon": "ethereum", + "explorers": [] + }, + { + "name": "MXC Wannsee zkEVM Testnet", + "chain": "MXC zkEVM", + "icon": "mxc", + "rpc": ["https://wannsee-rpc.mxc.com"], + "faucets": [], + "nativeCurrency": { + "name": "MXC Wannsee zkEVM Testnet", + "symbol": "MXC", + "decimals": 18 + }, + "infoURL": "https://wannsee.mxc.com/docs/intro", + "shortName": "MXC", + "chainId": 5167003, + "networkId": 5167003, + "explorers": [ + { + "name": "MXC Wannsee zkEVM Testnet", + "url": "https://wannsee-explorer.mxc.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Imversed Mainnet", + "chain": "Imversed", + "rpc": [ + "https://jsonrpc.imversed.network", + "https://ws-jsonrpc.imversed.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Imversed Token", + "symbol": "IMV", + "decimals": 18 + }, + "infoURL": "https://imversed.com", + "shortName": "imversed", + "chainId": 5555555, + "networkId": 5555555, + "icon": "imversed", + "explorers": [ + { + "name": "Imversed EVM explorer (Blockscout)", + "url": "https://txe.imversed.network", + "icon": "imversed", + "standard": "EIP3091" + }, + { + "name": "Imversed Cosmos Explorer (Big Dipper)", + "url": "https://tex-c.imversed.com", + "icon": "imversed", + "standard": "none" + } + ] + }, + { + "name": "Imversed Testnet", + "chain": "Imversed", + "rpc": [ + "https://jsonrpc-test.imversed.network", + "https://ws-jsonrpc-test.imversed.network" + ], + "faucets": [], + "nativeCurrency": { + "name": "Imversed Token", + "symbol": "IMV", + "decimals": 18 + }, + "infoURL": "https://imversed.com", + "shortName": "imversed-testnet", + "chainId": 5555558, + "networkId": 5555558, + "icon": "imversed", + "explorers": [ + { + "name": "Imversed EVM Explorer (Blockscout)", + "url": "https://txe-test.imversed.network", + "icon": "imversed", + "standard": "EIP3091" + }, + { + "name": "Imversed Cosmos Explorer (Big Dipper)", + "url": "https://tex-t.imversed.com", + "icon": "imversed", + "standard": "none" + } + ] + }, + { + "name": "Saakuru Mainnet", + "chain": "Saakuru", + "icon": "saakuru", + "rpc": ["https://rpc.saakuru.network"], + "faucets": [], + "nativeCurrency": { "name": "OAS", "symbol": "OAS", "decimals": 18 }, + "infoURL": "https://saakuru.network", + "shortName": "saakuru", + "chainId": 7225878, + "networkId": 7225878, + "explorers": [ + { + "name": "saakuru-explorer", + "url": "https://explorer.saakuru.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "OpenVessel", + "chain": "VSL", + "icon": "vsl", + "rpc": ["https://mainnet-external.openvessel.io"], + "faucets": [], + "nativeCurrency": { + "name": "Vessel ETH", + "symbol": "VETH", + "decimals": 18 + }, + "infoURL": "https://www.openvessel.io", + "shortName": "vsl", + "chainId": 7355310, + "networkId": 7355310, + "explorers": [ + { + "name": "openvessel-mainnet", + "url": "https://mainnet-explorer.openvessel.io", + "standard": "none" + } + ] + }, + { + "name": "QL1 Testnet", + "chain": "QOM", + "status": "incubating", + "rpc": ["https://rpc.testnet.qom.one"], + "faucets": ["https://faucet.qom.one"], + "nativeCurrency": { + "name": "Shiba Predator", + "symbol": "QOM", + "decimals": 18 + }, + "infoURL": "https://qom.one", + "shortName": "tqom", + "chainId": 7668378, + "networkId": 7668378, + "icon": "qom", + "explorers": [ + { + "name": "QL1 Testnet Explorer", + "url": "https://testnet.qom.one", + "icon": "qom", + "standard": "EIP3091" + } + ] + }, + { + "name": "Musicoin", + "chain": "MUSIC", + "rpc": ["https://mewapi.musicoin.tw"], + "faucets": [], + "nativeCurrency": { "name": "Musicoin", "symbol": "MUSIC", "decimals": 18 }, + "infoURL": "https://musicoin.tw", + "shortName": "music", + "chainId": 7762959, + "networkId": 7762959, + "slip44": 184 + }, + { + "name": "Zora", + "chain": "ETH", + "rpc": ["https://rpc.zora.co/"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://zora.co", + "shortName": "zora", + "chainId": 7777777, + "networkId": 7777777, + "explorers": [ + { + "name": "Zora Network Explorer", + "url": "https://explorer.zora.co", + "standard": "EIP3091" + } + ] + }, + { + "name": "Plian Mainnet Subchain 1", + "chain": "Plian", + "rpc": ["https://mainnet.plian.io/child_0"], + "faucets": [], + "nativeCurrency": { "name": "Plian Token", "symbol": "PI", "decimals": 18 }, + "infoURL": "https://plian.org", + "shortName": "plian-mainnet-l2", + "chainId": 8007736, + "networkId": 8007736, + "explorers": [ + { + "name": "piscan", + "url": "https://piscan.plian.org/child_0", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-2099156", "type": "L2" } + }, + { + "name": "HAPchain", + "chain": "HAPchain", + "rpc": ["https://jsonrpc.hap.land"], + "faucets": [], + "nativeCurrency": { "name": "HAP", "symbol": "HAP", "decimals": 18 }, + "infoURL": "https://hap.land", + "shortName": "hap", + "chainId": 8794598, + "networkId": 8794598, + "icon": "hap", + "explorers": [ + { + "name": "HAP EVM Explorer (Blockscout)", + "url": "https://blockscout.hap.land", + "standard": "none", + "icon": "hap" + } + ] + }, + { + "name": "Quarix Testnet", + "chain": "Quarix", + "status": "incubating", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Q", "symbol": "Q", "decimals": 18 }, + "infoURL": "", + "shortName": "quarix-testnet", + "chainId": 8888881, + "networkId": 8888881, + "icon": "quarix", + "explorers": [] + }, + { + "name": "Quarix", + "chain": "Quarix", + "status": "incubating", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Q", "symbol": "Q", "decimals": 18 }, + "infoURL": "", + "shortName": "quarix", + "chainId": 8888888, + "networkId": 8888888, + "icon": "quarix", + "explorers": [] + }, + { + "name": "Plian Testnet Subchain 1", + "chain": "Plian", + "rpc": ["https://testnet.plian.io/child_test"], + "faucets": [], + "nativeCurrency": { + "name": "Plian Token", + "symbol": "TPI", + "decimals": 18 + }, + "infoURL": "https://plian.org/", + "shortName": "plian-testnet-l2", + "chainId": 10067275, + "networkId": 10067275, + "explorers": [ + { + "name": "piscan", + "url": "https://testnet.plian.org/child_test", + "standard": "EIP3091" + } + ], + "parent": { "chain": "eip155-16658437", "type": "L2" } + }, + { + "name": "Soverun Mainnet", + "chain": "SVRN", + "icon": "soverun", + "rpc": ["https://mainnet-rpc.soverun.com"], + "faucets": ["https://faucet.soverun.com"], + "nativeCurrency": { "name": "Soverun", "symbol": "SVRN", "decimals": 18 }, + "infoURL": "https://soverun.com", + "shortName": "SVRNm", + "chainId": 10101010, + "networkId": 10101010, + "explorers": [ + { + "name": "Soverun", + "url": "https://explorer.soverun.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "Sepolia", + "title": "Ethereum Testnet Sepolia", + "chain": "ETH", + "rpc": [ + "https://rpc.sepolia.org", + "https://rpc2.sepolia.org", + "https://rpc-sepolia.rockx.com" + ], + "faucets": [ + "http://fauceth.komputing.org?chain=11155111&address=${ADDRESS}" + ], + "nativeCurrency": { + "name": "Sepolia Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://sepolia.otterscan.io", + "shortName": "sep", + "chainId": 11155111, + "networkId": 11155111, + "explorers": [ + { + "name": "etherscan-sepolia", + "url": "https://sepolia.etherscan.io", + "standard": "EIP3091" + }, + { + "name": "otterscan-sepolia", + "url": "https://sepolia.otterscan.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "PepChain Churchill", + "chain": "PEP", + "rpc": ["https://churchill-rpc.pepchain.io"], + "faucets": [], + "nativeCurrency": { + "name": "PepChain Churchill Ether", + "symbol": "TPEP", + "decimals": 18 + }, + "infoURL": "https://pepchain.io", + "shortName": "tpep", + "chainId": 13371337, + "networkId": 13371337 + }, + { + "name": "Anduschain Mainnet", + "chain": "anduschain", + "rpc": ["https://rpc.anduschain.io/rpc", "wss://rpc.anduschain.io/ws"], + "faucets": [], + "nativeCurrency": { "name": "DAON", "symbol": "DEB", "decimals": 18 }, + "infoURL": "https://anduschain.io/", + "shortName": "anduschain-mainnet", + "chainId": 14288640, + "networkId": 14288640, + "explorers": [ + { + "name": "anduschain explorer", + "url": "https://explorer.anduschain.io", + "icon": "daon", + "standard": "none" + } + ] + }, + { + "name": "Plian Testnet Main", + "chain": "Plian", + "rpc": ["https://testnet.plian.io/testnet"], + "faucets": [], + "nativeCurrency": { + "name": "Plian Testnet Token", + "symbol": "TPI", + "decimals": 18 + }, + "infoURL": "https://plian.org", + "shortName": "plian-testnet", + "chainId": 16658437, + "networkId": 16658437, + "explorers": [ + { + "name": "piscan", + "url": "https://testnet.plian.org/testnet", + "standard": "EIP3091" + } + ] + }, + { + "name": "IOLite", + "chain": "ILT", + "rpc": ["https://net.iolite.io"], + "faucets": [], + "nativeCurrency": { + "name": "IOLite Ether", + "symbol": "ILT", + "decimals": 18 + }, + "infoURL": "https://iolite.io", + "shortName": "ilt", + "chainId": 18289463, + "networkId": 18289463 + }, + { + "name": "SmartMesh Mainnet", + "chain": "Spectrum", + "rpc": ["https://jsonapi1.smartmesh.cn"], + "faucets": [], + "nativeCurrency": { + "name": "SmartMesh Native Token", + "symbol": "SMT", + "decimals": 18 + }, + "infoURL": "https://smartmesh.io", + "shortName": "spectrum", + "chainId": 20180430, + "networkId": 1, + "explorers": [ + { "name": "spectrum", "url": "https://spectrum.pub", "standard": "none" } + ] + }, + { + "name": "quarkblockchain", + "chain": "QKI", + "rpc": ["https://hz.rpc.qkiscan.cn", "https://jp.rpc.qkiscan.io"], + "faucets": [], + "nativeCurrency": { + "name": "quarkblockchain Native Token", + "symbol": "QKI", + "decimals": 18 + }, + "infoURL": "https://quarkblockchain.org/", + "shortName": "qki", + "chainId": 20181205, + "networkId": 20181205 + }, + { + "name": "Excelon Mainnet", + "chain": "XLON", + "icon": "xlon", + "rpc": ["https://edgewallet1.xlon.org/"], + "faucets": [], + "nativeCurrency": { "name": "Excelon", "symbol": "xlon", "decimals": 18 }, + "infoURL": "https://xlon.org", + "shortName": "xlon", + "chainId": 22052002, + "networkId": 22052002, + "explorers": [ + { + "name": "Excelon explorer", + "url": "https://explorer.excelon.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Excoincial Chain Volta-Testnet", + "chain": "TEXL", + "icon": "exl", + "rpc": ["https://testnet-rpc.exlscan.com"], + "faucets": ["https://faucet.exlscan.com"], + "nativeCurrency": { "name": "TExlcoin", "symbol": "TEXL", "decimals": 18 }, + "infoURL": "", + "shortName": "exlvolta", + "chainId": 27082017, + "networkId": 27082017, + "explorers": [ + { + "name": "exlscan", + "url": "https://testnet-explorer.exlscan.com", + "icon": "exl", + "standard": "EIP3091" + } + ] + }, + { + "name": "Excoincial Chain Mainnet", + "chain": "EXL", + "icon": "exl", + "rpc": ["https://rpc.exlscan.com"], + "faucets": [], + "nativeCurrency": { "name": "Exlcoin", "symbol": "EXL", "decimals": 18 }, + "infoURL": "", + "shortName": "exl", + "chainId": 27082022, + "networkId": 27082022, + "explorers": [ + { + "name": "exlscan", + "url": "https://exlscan.com", + "icon": "exl", + "standard": "EIP3091" + } + ] + }, + { + "name": "Auxilium Network Mainnet", + "chain": "AUX", + "rpc": ["https://rpc.auxilium.global"], + "faucets": [], + "nativeCurrency": { + "name": "Auxilium coin", + "symbol": "AUX", + "decimals": 18 + }, + "infoURL": "https://auxilium.global", + "shortName": "auxi", + "chainId": 28945486, + "networkId": 28945486, + "slip44": 344 + }, + { + "name": "Flachain Mainnet", + "chain": "FLX", + "icon": "flacoin", + "rpc": ["https://flachain.flaexchange.top/"], + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "faucets": [], + "nativeCurrency": { "name": "Flacoin", "symbol": "FLA", "decimals": 18 }, + "infoURL": "https://www.flaexchange.top", + "shortName": "fla", + "chainId": 29032022, + "networkId": 29032022, + "explorers": [ + { + "name": "FLXExplorer", + "url": "https://explorer.flaexchange.top", + "standard": "EIP3091" + } + ] + }, + { + "name": "Filecoin - Local testnet", + "chain": "FIL", + "status": "incubating", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "testnet filecoin", + "symbol": "tFIL", + "decimals": 18 + }, + "infoURL": "https://filecoin.io", + "shortName": "filecoin-local", + "icon": "filecoin", + "chainId": 31415926, + "networkId": 31415926, + "slip44": 1, + "explorers": [] + }, + { + "name": "Joys Digital Mainnet", + "chain": "JOYS", + "rpc": ["https://node.joys.digital"], + "faucets": [], + "nativeCurrency": { "name": "JOYS", "symbol": "JOYS", "decimals": 18 }, + "infoURL": "https://joys.digital", + "shortName": "JOYS", + "chainId": 35855456, + "networkId": 35855456 + }, + { + "name": "maistestsubnet", + "chain": "MAI", + "rpc": [ + "http://174.138.9.169:9650/ext/bc/VUKSzFZKckx4PoZF9gX5QAqLPxbLzvu1vcssPG5QuodaJtdHT/rpc" + ], + "faucets": [], + "nativeCurrency": { + "name": "maistestsubnet", + "symbol": "MAI", + "decimals": 18 + }, + "infoURL": "", + "shortName": "mais", + "chainId": 43214913, + "networkId": 43214913, + "explorers": [ + { + "name": "maistesntet", + "url": "http://174.138.9.169:3006/?network=maistesntet", + "standard": "none" + } + ] + }, + { + "name": "Aquachain", + "chain": "AQUA", + "rpc": ["https://c.onical.org", "https://tx.aquacha.in/api"], + "faucets": ["https://aquacha.in/faucet"], + "nativeCurrency": { + "name": "Aquachain Ether", + "symbol": "AQUA", + "decimals": 18 + }, + "infoURL": "https://aquachain.github.io", + "shortName": "aqua", + "chainId": 61717561, + "networkId": 61717561, + "slip44": 61717561 + }, + { + "name": "Autonity Bakerloo (Thames) Testnet", + "chain": "AUT", + "rpc": [ + "https://rpc1.bakerloo.autonity.org/", + "wss://rpc1.bakerloo.autonity.org/ws/" + ], + "faucets": ["https://faucet.autonity.org/"], + "nativeCurrency": { + "name": "Bakerloo Auton", + "symbol": "ATN", + "decimals": 18 + }, + "infoURL": "https://autonity.org/", + "shortName": "bakerloo-0", + "chainId": 65010000, + "networkId": 65010000, + "icon": "autonity", + "explorers": [ + { + "name": "autonity-blockscout", + "url": "https://bakerloo.autonity.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Autonity Piccadilly (Thames) Testnet", + "chain": "AUT", + "rpc": [ + "https://rpc1.piccadilly.autonity.org/", + "wss://rpc1.piccadilly.autonity.org/ws/" + ], + "faucets": ["https://faucet.autonity.org/"], + "nativeCurrency": { + "name": "Piccadilly Auton", + "symbol": "ATN", + "decimals": 18 + }, + "infoURL": "https://autonity.org/", + "shortName": "piccadilly-0", + "chainId": 65100000, + "networkId": 65100000, + "icon": "autonity", + "explorers": [ + { + "name": "autonity-blockscout", + "url": "https://piccadilly.autonity.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "T.E.A.M Blockchain", + "chain": "TEAM", + "icon": "team", + "rpc": ["https://rpc.teamblockchain.team"], + "faucets": [], + "nativeCurrency": { "name": "TEAM", "symbol": "$TEAM", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://teamblockchain.team", + "shortName": "team", + "chainId": 88888888, + "networkId": 88888888, + "explorers": [ + { + "name": "teamscan", + "url": "https://teamblockchain.team", + "standard": "EIP3091" + } + ] + }, + { + "name": "Joys Digital TestNet", + "chain": "TOYS", + "rpc": ["https://toys.joys.cash/"], + "faucets": ["https://faucet.joys.digital/"], + "nativeCurrency": { "name": "TOYS", "symbol": "TOYS", "decimals": 18 }, + "infoURL": "https://joys.digital", + "shortName": "TOYS", + "chainId": 99415706, + "networkId": 99415706 + }, + { + "name": "Gather Mainnet Network", + "chain": "GTH", + "rpc": ["https://mainnet.gather.network"], + "faucets": [], + "nativeCurrency": { "name": "Gather", "symbol": "GTH", "decimals": 18 }, + "infoURL": "https://gather.network", + "shortName": "GTH", + "chainId": 192837465, + "networkId": 192837465, + "icon": "gather", + "explorers": [ + { + "name": "Blockscout", + "url": "https://explorer.gather.network", + "icon": "gather", + "standard": "none" + } + ] + }, + { + "name": "Kanazawa", + "title": "Meld Testnet Kanazawa", + "chain": "Kanazawa", + "rpc": ["https://subnets.avax.network/meld/testnet/rpc"], + "faucets": [], + "features": [], + "nativeCurrency": { "name": "gMeld", "symbol": "gMELD", "decimals": 18 }, + "icon": "meld", + "infoURL": "https://meld.com", + "shortName": "kanazawa", + "chainId": 222000222, + "networkId": 222000222, + "explorers": [ + { + "name": "explorer", + "url": "https://subnets-test.avax.network/meld", + "icon": "meld", + "standard": "EIP3091" + } + ] + }, + { + "name": "Neon EVM DevNet", + "chain": "Solana", + "rpc": ["https://devnet.neonevm.org"], + "faucets": ["https://neonfaucet.org"], + "icon": "neon", + "nativeCurrency": { "name": "Neon", "symbol": "NEON", "decimals": 18 }, + "infoURL": "https://neon-labs.org", + "shortName": "neonevm-devnet", + "chainId": 245022926, + "networkId": 245022926, + "explorers": [ + { + "name": "native", + "url": "https://devnet.explorer.neon-labs.org", + "standard": "EIP3091" + }, + { + "name": "neonscan", + "url": "https://devnet.neonscan.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Neon EVM MainNet", + "chain": "Solana", + "rpc": ["https://mainnet.neonevm.org"], + "faucets": [], + "icon": "neon", + "nativeCurrency": { "name": "Neon", "symbol": "NEON", "decimals": 18 }, + "infoURL": "https://neon-labs.org", + "shortName": "neonevm-mainnet", + "chainId": 245022934, + "networkId": 245022934, + "explorers": [ + { + "name": "native", + "url": "https://mainnet.explorer.neon-labs.org", + "standard": "EIP3091" + }, + { + "name": "neonscan", + "url": "https://mainnet.neonscan.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Neon EVM TestNet", + "chain": "Solana", + "rpc": ["https://testnet.neonevm.org"], + "faucets": [], + "icon": "neon", + "nativeCurrency": { "name": "Neon", "symbol": "NEON", "decimals": 18 }, + "infoURL": "https://neon-labs.org", + "shortName": "neonevm-testnet", + "chainId": 245022940, + "networkId": 245022940, + "explorers": [ + { + "name": "native", + "url": "https://testnet.explorer.neon-labs.org", + "standard": "EIP3091" + }, + { + "name": "neonscan", + "url": "https://testnet.neonscan.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Razor Skale Chain", + "chain": "Razor Schain", + "icon": "razornetwork", + "rpc": ["https://mainnet.skalenodes.com/v1/turbulent-unique-scheat"], + "faucets": ["https://faucet.razorscan.io/"], + "nativeCurrency": { "name": "sFuel", "symbol": "SFUEL", "decimals": 18 }, + "infoURL": "https://razor.network", + "shortName": "razor", + "chainId": 278611351, + "networkId": 278611351, + "explorers": [ + { + "name": "turbulent-unique-scheat", + "url": "https://turbulent-unique-scheat.explorer.mainnet.skalenodes.com", + "standard": "EIP3091" + } + ] + }, + { + "name": "OneLedger Mainnet", + "chain": "OLT", + "icon": "oneledger", + "rpc": ["https://mainnet-rpc.oneledger.network"], + "faucets": [], + "nativeCurrency": { "name": "OLT", "symbol": "OLT", "decimals": 18 }, + "infoURL": "https://oneledger.io", + "shortName": "oneledger", + "chainId": 311752642, + "networkId": 311752642, + "explorers": [ + { + "name": "OneLedger Block Explorer", + "url": "https://mainnet-explorer.oneledger.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Meld", + "title": "Meld Mainnet", + "chain": "MELD", + "rpc": ["https://subnets.avax.network/meld/mainnet/rpc"], + "faucets": [], + "features": [], + "nativeCurrency": { "name": "gMeld", "symbol": "gMELD", "decimals": 18 }, + "icon": "meld", + "infoURL": "https://meld.com", + "shortName": "meld", + "chainId": 333000333, + "networkId": 333000333, + "explorers": [ + { + "name": "explorer", + "url": "https://subnets.avax.network/meld", + "icon": "meld", + "standard": "EIP3091" + } + ] + }, + { + "name": "Calypso NFT Hub (SKALE Testnet)", + "title": "Calypso NFT Hub Testnet", + "chain": "staging-utter-unripe-menkar", + "rpc": ["https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar"], + "faucets": ["https://sfuel.dirtroad.dev/staging"], + "nativeCurrency": { "name": "sFUEL", "symbol": "sFUEL", "decimals": 18 }, + "infoURL": "https://calypsohub.network/", + "shortName": "calypso-testnet", + "chainId": 344106930, + "networkId": 344106930, + "explorers": [ + { + "name": "Blockscout", + "url": "https://staging-utter-unripe-menkar.explorer.staging-v3.skalenodes.com", + "icon": "calypso", + "standard": "EIP3091" + } + ] + }, + { + "name": "Gather Testnet Network", + "chain": "GTH", + "rpc": ["https://testnet.gather.network"], + "faucets": [], + "nativeCurrency": { "name": "Gather", "symbol": "GTH", "decimals": 18 }, + "infoURL": "https://gather.network", + "shortName": "tGTH", + "chainId": 356256156, + "networkId": 356256156, + "icon": "gather", + "explorers": [ + { + "name": "Blockscout", + "url": "https://testnet-explorer.gather.network", + "icon": "gather", + "standard": "none" + } + ] + }, + { + "name": "Gather Devnet Network", + "chain": "GTH", + "rpc": ["https://devnet.gather.network"], + "faucets": [], + "nativeCurrency": { "name": "Gather", "symbol": "GTH", "decimals": 18 }, + "infoURL": "https://gather.network", + "shortName": "dGTH", + "chainId": 486217935, + "networkId": 486217935, + "explorers": [ + { + "name": "Blockscout", + "url": "https://devnet-explorer.gather.network", + "standard": "none" + } + ] + }, + { + "name": "Nebula Staging", + "chain": "staging-faint-slimy-achird", + "rpc": [ + "https://staging-v3.skalenodes.com/v1/staging-faint-slimy-achird", + "wss://staging-v3.skalenodes.com/v1/ws/staging-faint-slimy-achird" + ], + "faucets": [], + "nativeCurrency": { "name": "sFUEL", "symbol": "sFUEL", "decimals": 18 }, + "infoURL": "https://nebulachain.io/", + "shortName": "nebula-staging", + "chainId": 503129905, + "networkId": 503129905, + "explorers": [ + { + "name": "nebula", + "url": "https://staging-faint-slimy-achird.explorer.staging-v3.skalenodes.com", + "icon": "nebula", + "standard": "EIP3091" + } + ] + }, + { + "name": "IPOS Network", + "chain": "IPOS", + "rpc": ["https://rpc.iposlab.com", "https://rpc2.iposlab.com"], + "faucets": [], + "nativeCurrency": { + "name": "IPOS Network Ether", + "symbol": "IPOS", + "decimals": 18 + }, + "infoURL": "https://iposlab.com", + "shortName": "ipos", + "chainId": 1122334455, + "networkId": 1122334455 + }, + { + "name": "CyberdeckNet", + "chain": "cyberdeck", + "rpc": ["http://cybeth1.cyberdeck.eu:8545"], + "faucets": [], + "nativeCurrency": { "name": "Cyb", "symbol": "CYB", "decimals": 18 }, + "infoURL": "https://cyberdeck.eu", + "shortName": "cyb", + "chainId": 1146703430, + "networkId": 1146703430, + "icon": "cyberdeck", + "status": "active", + "explorers": [ + { + "name": "CybEthExplorer", + "url": "http://cybeth1.cyberdeck.eu:8000", + "icon": "cyberdeck", + "standard": "none" + } + ] + }, + { + "name": "HUMAN Protocol", + "title": "HUMAN Protocol", + "chain": "wan-red-ain", + "rpc": ["https://mainnet.skalenodes.com/v1/wan-red-ain"], + "faucets": ["https://dashboard.humanprotocol.org/faucet"], + "nativeCurrency": { "name": "sFUEL", "symbol": "sFUEL", "decimals": 18 }, + "infoURL": "https://www.humanprotocol.org", + "shortName": "human-mainnet", + "chainId": 1273227453, + "networkId": 1273227453, + "explorers": [ + { + "name": "Blockscout", + "url": "https://wan-red-ain.explorer.mainnet.skalenodes.com", + "icon": "human", + "standard": "EIP3091" + } + ] + }, + { + "name": "Aurora Mainnet", + "chain": "NEAR", + "rpc": ["https://mainnet.aurora.dev"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://aurora.dev", + "shortName": "aurora", + "chainId": 1313161554, + "networkId": 1313161554, + "explorers": [ + { + "name": "aurorascan.dev", + "url": "https://aurorascan.dev", + "standard": "EIP3091" + } + ] + }, + { + "name": "Aurora Testnet", + "chain": "NEAR", + "rpc": ["https://testnet.aurora.dev/"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://aurora.dev", + "shortName": "aurora-testnet", + "chainId": 1313161555, + "networkId": 1313161555, + "explorers": [ + { + "name": "aurorascan.dev", + "url": "https://testnet.aurorascan.dev", + "standard": "EIP3091" + } + ] + }, + { + "name": "Aurora Betanet", + "chain": "NEAR", + "rpc": [], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://aurora.dev", + "shortName": "aurora-betanet", + "chainId": 1313161556, + "networkId": 1313161556 + }, + { + "name": "Chaos (SKALE Testnet)", + "title": "Chaos Testnet", + "chain": "staging-fast-active-bellatrix", + "rpc": [ + "https://staging-v3.skalenodes.com/v1/staging-fast-active-bellatrix" + ], + "faucets": ["https://sfuel.skale.network/staging/chaos"], + "nativeCurrency": { "name": "sFUEL", "symbol": "sFUEL", "decimals": 18 }, + "infoURL": "https://docs.skale.network/develop/", + "shortName": "chaos-tenet", + "chainId": 1351057110, + "networkId": 1351057110, + "explorers": [ + { + "name": "Blockscout", + "url": "https://staging-fast-active-bellatrix.explorer.staging-v3.skalenodes.com", + "icon": "chaos", + "standard": "EIP3091" + } + ] + }, + { + "name": "RaptorChain", + "chain": "RPTR", + "rpc": ["https://rpc.raptorchain.io/web3"], + "faucets": [], + "nativeCurrency": { "name": "Raptor", "symbol": "RPTR", "decimals": 18 }, + "features": [{ "name": "EIP155" }], + "infoURL": "https://raptorchain.io", + "shortName": "rptr", + "chainId": 1380996178, + "networkId": 1380996178, + "icon": "raptorchain", + "explorers": [ + { + "name": "RaptorChain Explorer", + "url": "https://explorer.raptorchain.io", + "icon": "raptorchain_explorer", + "standard": "EIP3091" + } + ] + }, + { + "name": "Nebula Mainnet", + "chain": "green-giddy-denebola", + "rpc": [ + "https://mainnet.skalenodes.com/v1/green-giddy-denebola", + "wss://mainnet-proxy.skalenodes.com/v1/ws/green-giddy-denebola" + ], + "faucets": [], + "nativeCurrency": { "name": "sFUEL", "symbol": "sFUEL", "decimals": 18 }, + "infoURL": "https://nebulachain.io/", + "shortName": "nebula-mainnet", + "chainId": 1482601649, + "networkId": 1482601649, + "explorers": [ + { + "name": "nebula", + "url": "https://green-giddy-denebola.explorer.mainnet.skalenodes.com", + "icon": "nebula", + "standard": "EIP3091" + } + ] + }, + { + "name": "Calypso NFT Hub (SKALE)", + "title": "Calypso NFT Hub Mainnet", + "chain": "honorable-steel-rasalhague", + "rpc": ["https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague"], + "faucets": ["https://sfuel.dirtroad.dev"], + "nativeCurrency": { "name": "sFUEL", "symbol": "sFUEL", "decimals": 18 }, + "infoURL": "https://calypsohub.network/", + "shortName": "calypso-mainnet", + "chainId": 1564830818, + "networkId": 1564830818, + "explorers": [ + { + "name": "Blockscout", + "url": "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com", + "icon": "calypso", + "standard": "EIP3091" + } + ] + }, + { + "name": "Harmony Mainnet Shard 0", + "chain": "Harmony", + "rpc": ["https://api.harmony.one", "https://api.s0.t.hmny.io"], + "faucets": ["https://free-online-app.com/faucet-for-eth-evm-chains/"], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-s0", + "chainId": 1666600000, + "networkId": 1666600000, + "explorers": [ + { + "name": "Harmony Block Explorer", + "url": "https://explorer.harmony.one", + "standard": "EIP3091" + } + ] + }, + { + "name": "Harmony Mainnet Shard 1", + "chain": "Harmony", + "rpc": ["https://api.s1.t.hmny.io"], + "faucets": [], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-s1", + "chainId": 1666600001, + "networkId": 1666600001 + }, + { + "name": "Harmony Mainnet Shard 2", + "chain": "Harmony", + "rpc": ["https://api.s2.t.hmny.io"], + "faucets": [], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-s2", + "chainId": 1666600002, + "networkId": 1666600002 + }, + { + "name": "Harmony Mainnet Shard 3", + "chain": "Harmony", + "rpc": ["https://api.s3.t.hmny.io"], + "faucets": [], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-s3", + "chainId": 1666600003, + "networkId": 1666600003 + }, + { + "name": "Harmony Testnet Shard 0", + "chain": "Harmony", + "rpc": ["https://api.s0.b.hmny.io"], + "faucets": ["https://faucet.pops.one"], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-b-s0", + "chainId": 1666700000, + "networkId": 1666700000, + "explorers": [ + { + "name": "Harmony Testnet Block Explorer", + "url": "https://explorer.pops.one", + "standard": "EIP3091" + } + ] + }, + { + "name": "Harmony Testnet Shard 1", + "chain": "Harmony", + "rpc": ["https://api.s1.b.hmny.io"], + "faucets": [], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-b-s1", + "chainId": 1666700001, + "networkId": 1666700001 + }, + { + "name": "Harmony Testnet Shard 2", + "chain": "Harmony", + "rpc": ["https://api.s2.b.hmny.io"], + "faucets": [], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-b-s2", + "chainId": 1666700002, + "networkId": 1666700002 + }, + { + "name": "Harmony Testnet Shard 3", + "chain": "Harmony", + "rpc": ["https://api.s3.b.hmny.io"], + "faucets": [], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-b-s3", + "chainId": 1666700003, + "networkId": 1666700003 + }, + { + "name": "Harmony Devnet Shard 0", + "chain": "Harmony", + "rpc": ["https://api.s1.ps.hmny.io", "https://api.s1.ps.hmny.io"], + "faucets": ["http://dev.faucet.easynode.one/"], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-ps-s0", + "chainId": 1666900000, + "networkId": 1666900000, + "explorers": [ + { + "name": "Harmony Block Explorer", + "url": "https://explorer.ps.hmny.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "DataHopper", + "chain": "HOP", + "rpc": ["https://23.92.21.121:8545"], + "faucets": [], + "nativeCurrency": { + "name": "DataHoppers", + "symbol": "HOP", + "decimals": 18 + }, + "infoURL": "https://www.DataHopper.com", + "shortName": "hop", + "chainId": 2021121117, + "networkId": 2021121117 + }, + { + "name": "Europa SKALE Chain", + "chain": "europa", + "icon": "europa", + "rpc": [ + "https://mainnet.skalenodes.com/v1/elated-tan-skat", + "wss://mainnet.skalenodes.com/v1/elated-tan-skat" + ], + "faucets": [ + "https://ruby.exchange/faucet.html", + "https://sfuel.mylilius.com/" + ], + "nativeCurrency": { "name": "sFUEL", "symbol": "sFUEL", "decimals": 18 }, + "infoURL": "https://europahub.network/", + "shortName": "europa", + "chainId": 2046399126, + "networkId": 2046399126, + "explorers": [ + { + "name": "Blockscout", + "url": "https://elated-tan-skat.explorer.mainnet.skalenodes.com", + "standard": "EIP3091" + } + ], + "parent": { + "type": "L2", + "chain": "eip155-1", + "bridges": [{ "url": "https://ruby.exchange/bridge.html" }] + } + }, + { + "name": "Pirl", + "chain": "PIRL", + "rpc": ["https://wallrpc.pirl.io"], + "faucets": [], + "nativeCurrency": { + "name": "Pirl Ether", + "symbol": "PIRL", + "decimals": 18 + }, + "infoURL": "https://pirl.io", + "shortName": "pirl", + "chainId": 3125659152, + "networkId": 3125659152, + "slip44": 164 + }, + { + "name": "OneLedger Testnet Frankenstein", + "chain": "OLT", + "icon": "oneledger", + "rpc": ["https://frankenstein-rpc.oneledger.network"], + "faucets": ["https://frankenstein-faucet.oneledger.network"], + "nativeCurrency": { "name": "OLT", "symbol": "OLT", "decimals": 18 }, + "infoURL": "https://oneledger.io", + "shortName": "frankenstein", + "chainId": 4216137055, + "networkId": 4216137055, + "explorers": [ + { + "name": "OneLedger Block Explorer", + "url": "https://frankenstein-explorer.oneledger.network", + "standard": "EIP3091" + } + ] + }, + { + "name": "Palm Testnet", + "chain": "Palm", + "icon": "palm", + "rpc": ["https://palm-testnet.infura.io/v3/${INFURA_API_KEY}"], + "faucets": [], + "nativeCurrency": { "name": "PALM", "symbol": "PALM", "decimals": 18 }, + "infoURL": "https://palm.io", + "shortName": "tpalm", + "chainId": 11297108099, + "networkId": 11297108099, + "explorers": [ + { + "name": "Palm Testnet Explorer", + "url": "https://explorer.palm-uat.xyz", + "standard": "EIP3091" + } + ] + }, + { + "name": "Palm", + "chain": "Palm", + "icon": "palm", + "rpc": ["https://palm-mainnet.infura.io/v3/${INFURA_API_KEY}"], + "faucets": [], + "nativeCurrency": { "name": "PALM", "symbol": "PALM", "decimals": 18 }, + "infoURL": "https://palm.io", + "shortName": "palm", + "chainId": 11297108109, + "networkId": 11297108109, + "explorers": [ + { + "name": "Palm Explorer", + "url": "https://explorer.palm.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Alphabet Mainnet", + "chain": "Alphabet Network", + "icon": "alphabetnetwork", + "rpc": [ + "https://londonpublic.alphabetnetwork.org", + "wss://londonpublic.alphabetnetwork.org/ws/", + "https://main-rpc.com", + "wss://main-rpc.com/ws/" + ], + "faucets": [], + "nativeCurrency": { "name": "ALT", "symbol": "ALT", "decimals": 18 }, + "infoURL": "https://alphabetnetwork.org", + "shortName": "alphabet", + "chainId": 111222333444, + "networkId": 111222333444, + "explorers": [ + { + "name": "Alphabet Explorer", + "url": "https://scan.alphabetnetwork.org", + "standard": "EIP3091" + } + ] + }, + { + "name": "Ntity Mainnet", + "chain": "Ntity", + "rpc": ["https://rpc.ntity.io"], + "faucets": [], + "nativeCurrency": { "name": "Ntity", "symbol": "NTT", "decimals": 18 }, + "infoURL": "https://ntity.io", + "shortName": "ntt", + "chainId": 197710212030, + "networkId": 197710212030, + "icon": "ntity", + "explorers": [ + { + "name": "Ntity Blockscout", + "url": "https://blockscout.ntity.io", + "icon": "ntity", + "standard": "EIP3091" + } + ] + }, + { + "name": "Haradev Testnet", + "chain": "Ntity", + "rpc": ["https://blockchain.haradev.com"], + "faucets": [], + "nativeCurrency": { + "name": "Ntity Haradev", + "symbol": "NTTH", + "decimals": 18 + }, + "infoURL": "https://ntity.io", + "shortName": "ntt-haradev", + "chainId": 197710212031, + "networkId": 197710212031, + "icon": "ntity", + "explorers": [ + { + "name": "Ntity Haradev Blockscout", + "url": "https://blockscout.haradev.com", + "icon": "ntity", + "standard": "EIP3091" + } + ] + }, + { + "name": "Zeniq", + "chain": "ZENIQ", + "rpc": ["https://smart.zeniq.network:9545"], + "faucets": ["https://faucet.zeniq.net/"], + "nativeCurrency": { "name": "Zeniq", "symbol": "ZENIQ", "decimals": 18 }, + "infoURL": "https://www.zeniq.dev/", + "shortName": "zeniq", + "chainId": 383414847825, + "networkId": 383414847825, + "explorers": [ + { + "name": "zeniq-smart-chain-explorer", + "url": "https://smart.zeniq.net", + "standard": "EIP3091" + } + ] + }, + { + "name": "PDC Mainnet", + "chain": "IPDC", + "rpc": ["https://mainnet.ipdc.io/"], + "faucets": [], + "nativeCurrency": { "name": "PDC", "symbol": "PDC", "decimals": 18 }, + "infoURL": "https://ipdc.io", + "shortName": "ipdc", + "chainId": 666301171999, + "networkId": 666301171999, + "explorers": [ + { + "name": "ipdcscan", + "url": "https://scan.ipdc.io", + "standard": "EIP3091" + } + ] + }, + { + "name": "Molereum Network", + "chain": "ETH", + "rpc": ["https://molereum.jdubedition.com"], + "faucets": [], + "nativeCurrency": { + "name": "Molereum Ether", + "symbol": "MOLE", + "decimals": 18 + }, + "infoURL": "https://github.com/Jdubedition/molereum", + "shortName": "mole", + "chainId": 6022140761023, + "networkId": 6022140761023 + }, + { + "name": "Godwoken Testnet (V1)", + "chain": "GWT", + "rpc": ["https://godwoken-testnet-web3-v1-rpc.ckbapp.dev"], + "faucets": ["https://homura.github.io/light-godwoken"], + "nativeCurrency": { "name": "CKB", "symbol": "CKB", "decimals": 8 }, + "infoURL": "https://www.nervos.org", + "shortName": "gw-testnet-v1-deprecated", + "chainId": 868455272153094, + "networkId": 868455272153094, + "status": "deprecated", + "explorers": [ + { + "name": "GWScan Block Explorer", + "url": "https://v1.aggron.gwscan.com", + "standard": "none" + } + ] + } +] diff --git a/src/common/EventManager.ts b/src/common/EventManager.ts new file mode 100644 index 000000000..d171ff123 --- /dev/null +++ b/src/common/EventManager.ts @@ -0,0 +1,34 @@ +type ArgumentTypes = F extends (...args: infer A) => any ? A : never; + +type Arrayify = { + [K in keyof T]: Array; +}; + +export type GenericEvents = { + "*": (...args: any) => any; + [index: string]: (...args: any) => any; +}; + +export class EventManager { + listeners: Arrayify; + constructor(init: Arrayify) { + this.listeners = init; + } + on(event: T, listener: Arrayify[T]) { + const listeners = this.listeners[event]; + this.listeners[event] = listeners.concat(listener) as Arrayify[T]; + } + trigger[T][any]>( + event: T, + ...args: ArgumentTypes + ): ReturnType[] { + if (this.listeners["*"]) { + this.listeners["*"].map((listener: any) => + listener(event, ...(args as Array)) + ); + } + return this.listeners[event]?.map((listener: any) => + listener(...(args as Array)) + ); + } +} diff --git a/src/common/SourcifyEventManager/SourcifyEventManager.ts b/src/common/SourcifyEventManager/SourcifyEventManager.ts new file mode 100644 index 000000000..ff91ca16c --- /dev/null +++ b/src/common/SourcifyEventManager/SourcifyEventManager.ts @@ -0,0 +1,99 @@ +import { Match } from "@ethereum-sourcify/lib-sourcify"; +import { EventManager, GenericEvents } from "../EventManager"; + +interface Events extends GenericEvents { + "*": (event: string, argument: any) => void; + "Verification.MatchStored": (match: Match) => void; + "Server.SourcifyChains.Warn": (obj: { message: string }) => void; + "Monitor.Error.CantStart": (e: { chainId: string; message: string }) => void; + "Monitor.Started": (obj: { + chainId: string; + lastBlockNumber: number; + startBlock: number; + }) => void; + "Monitor.Stopped": (chainId: string) => void; + "Monitor.ProcessingBlock": (obj: { + blockNumber: number; + chainId: string; + getBlockPause: number; + }) => void; + "Monitor.Verified": (match: Match) => void; + "Monitor.AlreadyVerified": (obj: { + address: string; + chainId: string; + }) => void; + "Monitor.NewContract": (obj: { address: string; chainId: string }) => void; + "Monitor.Error": (obj: { message: string; stack?: string }) => void; + "Monitor.Error.ProcessingBlock": (obj: { + message: string; + stack: string; + blockNumber: number; + chainId: string; + }) => void; + "Monitor.Error.ProcessingBytecode": (obj: { + message: string; + stack: string; + chainId: string; + address: string; + }) => void; + "Monitor.Error.GettingBytecode": (obj: { + message: string; + stack: string; + chainId: string; + address: string; + }) => void; + "Monitor.Error.VerifyError": (obj: { + message: string; + stack: string; + chainId: string; + address: string; + }) => void; + "SourceFetcher.UsingFallback": (obj: { + fetchUrl: string; + fallbackUrl: string; + }) => void; + "SourceFetcher.NewSubscription": (obj: { + fetchUrl: string; + sourceHash: string; + filesPending: number; + subscriptions: number; + }) => void; + "SourceFetcher.Cleanup": (obj: { + fetchUrl: string; + sourceHash: string; + filesPending: number; + subscriptions: number; + }) => void; + "SourceFetcher.FetchFailed": (obj: { + fetchUrl: string; + sourceHash: string; + }) => void; + "SourceFetcher.FetchingSuccessful": (obj: { + fetchUrl: string; + id: string; + subscriberCount: number; + }) => void; +} + +export const SourcifyEventManager = new EventManager({ + "*": [], + "Verification.MatchStored": [], + "Server.SourcifyChains.Warn": [], + "Monitor.Error.CantStart": [], + "Monitor.Started": [], + "Monitor.Stopped": [], + "Monitor.ProcessingBlock": [], + "Monitor.Verified": [], + "Monitor.AlreadyVerified": [], + "Monitor.NewContract": [], + "Monitor.Error": [], + "Monitor.Error.ProcessingBlock": [], + "Monitor.Error.ProcessingBytecode": [], + "Monitor.Error.GettingBytecode": [], + "Monitor.Error.VerifyError": [], + "SourceFetcher.UsingFallback": [], + "SourceFetcher.NewSubscription": [], + "SourceFetcher.Cleanup": [], + "SourceFetcher.FetchFailed": [], + "SourceFetcher.FetchingSuccessful": [], +}); diff --git a/src/common/SourcifyEventManager/listeners/logger.ts b/src/common/SourcifyEventManager/listeners/logger.ts new file mode 100644 index 000000000..5c6584bce --- /dev/null +++ b/src/common/SourcifyEventManager/listeners/logger.ts @@ -0,0 +1,18 @@ +import { SourcifyEventManager } from "../SourcifyEventManager"; +import { logger } from "../../loggerLoki"; + +SourcifyEventManager.on("*", [ + (event: string, argument: any) => { + if (event.includes("Error")) { + logger.error({ + message: argument, + labels: { level: "error", event: event }, + }); + } else { + logger.info({ + message: argument, + labels: { level: "info", event: event }, + }); + } + }, +]); diff --git a/src/common/errors/BadRequestError.ts b/src/common/errors/BadRequestError.ts index 7ebce6b89..2828ad150 100644 --- a/src/common/errors/BadRequestError.ts +++ b/src/common/errors/BadRequestError.ts @@ -4,11 +4,9 @@ import { IResponseError } from "../interfaces"; export class BadRequestError implements IResponseError { code: number; message: string; - log: boolean; - constructor(message?: string, log = true) { + constructor(message?: string) { this.code = StatusCodes.BAD_REQUEST; this.message = message || "Bad request"; - this.log = log; } } diff --git a/src/common/errors/InternalServerError.ts b/src/common/errors/InternalServerError.ts index 4126716ad..4d0690518 100644 --- a/src/common/errors/InternalServerError.ts +++ b/src/common/errors/InternalServerError.ts @@ -4,11 +4,9 @@ import { IResponseError } from "../interfaces"; export class InternalServerError implements IResponseError { code: number; message: string; - log: boolean; - constructor(message?: string, log = true) { + constructor(message?: string) { this.code = StatusCodes.INTERNAL_SERVER_ERROR; this.message = message || "Something went wrong"; - this.log = log; } } diff --git a/src/common/errors/NotFoundError.ts b/src/common/errors/NotFoundError.ts index 2c4a67f9b..4a696edbf 100644 --- a/src/common/errors/NotFoundError.ts +++ b/src/common/errors/NotFoundError.ts @@ -4,11 +4,9 @@ import { IResponseError } from "../interfaces"; export class NotFoundError implements IResponseError { code: number; message: string; - log: boolean; - constructor(message?: string, log = true) { + constructor(message?: string) { this.code = StatusCodes.NOT_FOUND; this.message = message || "Resouce not found"; - this.log = log; } } diff --git a/src/common/errors/PayloadTooLargeError.ts b/src/common/errors/PayloadTooLargeError.ts index d4f4035ba..27ff21561 100644 --- a/src/common/errors/PayloadTooLargeError.ts +++ b/src/common/errors/PayloadTooLargeError.ts @@ -4,11 +4,9 @@ import { IResponseError } from "../interfaces"; export class PayloadTooLargeError implements IResponseError { code: number; message: string; - log: boolean; - constructor(message?: string, log = true) { + constructor(message?: string) { this.code = StatusCodes.REQUEST_TOO_LONG; this.message = message || "Payload too large"; - this.log = log; } } diff --git a/src/common/errors/TooManyRequests.ts b/src/common/errors/TooManyRequests.ts new file mode 100644 index 000000000..203bfc916 --- /dev/null +++ b/src/common/errors/TooManyRequests.ts @@ -0,0 +1,12 @@ +import { StatusCodes } from "http-status-codes"; +import { IResponseError } from "../interfaces"; + +export class TooManyRequests implements IResponseError { + code: number; + message: string; + + constructor(message?: string) { + this.code = StatusCodes.TOO_MANY_REQUESTS; + this.message = message || "Too Many Requests"; + } +} diff --git a/src/common/errors/ValidationError.ts b/src/common/errors/ValidationError.ts index e38a29bbb..3a3f1936d 100644 --- a/src/common/errors/ValidationError.ts +++ b/src/common/errors/ValidationError.ts @@ -4,19 +4,9 @@ import { IResponseError } from "../interfaces"; export class ValidationError implements IResponseError { code: number; message: string; - log: boolean; - errors: any[]; - constructor(validationErrors: any[], log = true) { + constructor(message: string) { this.code = StatusCodes.BAD_REQUEST; - const errorParams = validationErrors.map((e) => e.param); - this.message = `Validation Error: ${errorParams.join(", ")}`; - this.log = log; - this.errors = validationErrors.map((e: any) => { - return { - field: e.param, - message: e.msg, - }; - }); + this.message = message; } } diff --git a/src/common/interfaces.ts b/src/common/interfaces.ts index e6587d2b4..f99132d95 100644 --- a/src/common/interfaces.ts +++ b/src/common/interfaces.ts @@ -6,6 +6,5 @@ export interface IController { export interface IResponseError { code: number; message: string; - log: boolean; errors?: any[]; } diff --git a/src/common/loggerLoki.ts b/src/common/loggerLoki.ts new file mode 100644 index 000000000..a8b96f995 --- /dev/null +++ b/src/common/loggerLoki.ts @@ -0,0 +1,49 @@ +import dotenv from "dotenv"; +import { createLogger, transports, format } from "winston"; +import LokiTransport from "winston-loki"; + +dotenv.config(); + +const loggerInstance = createLogger(); + +// Enable loki only if GRAFANA_LOKI_URL is defined +if (process.env.GRAFANA_LOKI_URL) { + loggerInstance.add( + new LokiTransport({ + host: process.env.GRAFANA_LOKI_URL, + json: true, + format: format.combine( + format((info) => { + const MESSAGE = Symbol.for("message"); + info[MESSAGE as any] = JSON.stringify(info.message); + return info; + })() + ), + }) + ); +} + +const myFormat = format.printf( + (info: { + level: string; + message: string; + timestamp?: string; + labels?: { event: string; level: string }; + }) => { + return `${info.timestamp} [${info.level}]: ${ + info.labels?.event + ? `[${info.labels?.event}] - ${JSON.stringify(info.message)}` + : info.message + }`; + } +); + +if (!process.env.GRAFANA_LOKI_URL) { + loggerInstance.add( + new transports.Console({ + level: process.env.NODE_ENV === "production" ? "info" : "debug", + format: format.combine(format.colorize(), format.timestamp(), myFormat), + }) + ); +} +export const logger = loggerInstance; diff --git a/src/common/validators/validators.ts b/src/common/validators/validators.ts deleted file mode 100644 index e3ff20be0..000000000 --- a/src/common/validators/validators.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { checkChainId } from "@ethereum-sourcify/core"; -import web3 from "web3"; - -export function isValidAddress(address: string) { - return web3.utils.isAddress(address); -} - -export function isValidChain(chain: string): any { - try { - if (checkChainId(chain) !== undefined) { - return true; - } - } catch (err: any) { - undefined; - } - return false; -} diff --git a/src/config.ts b/src/config.ts index 1d18dcdc1..2976cd54d 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,10 +1,20 @@ /* eslint-disable no-useless-escape */ - import * as dotenv from "dotenv"; import path from "path"; +import { SourcifyEventManager } from "./common/SourcifyEventManager/SourcifyEventManager"; +import { logger } from "./common/loggerLoki"; dotenv.config({ path: path.resolve(__dirname, "..", "environments/.env") }); +const setRepositoryPath = () => { + if (process.env.MOCK_REPOSITORY) return process.env.MOCK_REPOSITORY; + if (process.env.REPOSITORY_PATH) + return path.resolve(__dirname, process.env.REPOSITORY_PATH); + logger.warn("REPOSITORY_PATH not set. Using default /tmp/repository."); + return "/tmp/repository"; +}; + +// TODO: Don't use config.ts at all. Since as a module config is evaluated only once, this can cause changed environment variables not to take effect. E.g. if you run a Monitor and a Server with different REPOSITORY_PATHs, the server will have monitor's repo path since this was already evaluated and won't be run again. Instead these should be put in place in constructors etc. export default { monitor: { port: process.env.MONITOR_PORT || 80, @@ -12,13 +22,9 @@ export default { server: { port: process.env.SERVER_PORT || 5000, maxFileSize: 30 * 1024 * 1024, // 30 MB - etherscanAPIKey: process.env.ETHERSCAN_API_KEY, }, repository: { - path: - process.env.MOCK_REPOSITORY || - path.resolve(__dirname, process.env.REPOSITORY_PATH!) || - path.resolve(__dirname, "./repository"), + path: setRepositoryPath(), }, testing: process.env.TESTING || false, tag: process.env.TAG || "latest", @@ -28,7 +34,9 @@ export default { }, session: { secret: process.env.SESSION_SECRET || "session top secret", - maxAge: parseInt(process.env.SESSION_MAX_AGE, 10) || 12 * 60 * 60 * 1000, // 12 hrs in millis + maxAge: + (process.env.SESSION_MAX_AGE && parseInt(process.env.SESSION_MAX_AGE)) || + 12 * 60 * 60 * 1000, // 12 hrs in millis secure: process.env.NODE_ENV === "production" && process.env.TESTING !== "true", // Set Secure in the Set-Cookie header i.e. require https }, @@ -40,3 +48,103 @@ export default { process.env.NODE_ENV === "development" && /^https?:\/\/localhost(?::\d+)?$/, // localhost on any port ], }; + +type EtherscanAPIs = { + [key: string]: { + apiURL: string; + apiKey: string | undefined; + }; +}; + +export const etherscanAPIs: EtherscanAPIs = { + "1": { + apiURL: "https://api.etherscan.io", + apiKey: process.env.ETHERSCAN_API_KEY, + }, + "5": { + apiURL: "https://api-goerli.etherscan.io", + apiKey: process.env.ETHERSCAN_API_KEY, + }, + "11155111": { + apiURL: "https://api-sepolia.etherscan.io", + apiKey: process.env.ETHERSCAN_API_KEY, + }, + "42161": { + apiURL: "https://api.arbiscan.io", + apiKey: process.env.ARBISCAN_API_KEY, + }, + "421613": { + apiURL: "https://api-goerli.arbiscan.io", + apiKey: process.env.ARBISCAN_API_KEY, + }, + "10": { + apiURL: "https://api-optimistic.etherscan.io", + apiKey: process.env.OPTIMISMSCAN_API_KEY, + }, + "420": { + apiURL: "https://api-goerli-optimism.etherscan.io", + apiKey: process.env.OPTIMISMSCAN_API_KEY, + }, + "43114": { + apiURL: "https://api.snowtrace.io", + apiKey: process.env.SNOWTRACE_API_KEY, + }, + "43113": { + apiURL: "https://api-testnet.snowtrace.io", + apiKey: process.env.SNOWTRACE_API_KEY, + }, + "56": { + apiURL: "https://api.bscscan.com", + apiKey: process.env.BSCSCAN_API_KEY, + }, + "97": { + apiURL: "https://api-testnet.bscscan.com", + apiKey: process.env.BSCSCAN_API_KEY, + }, + "137": { + apiURL: "https://api.polygonscan.com", + apiKey: process.env.POLYGONSCAN_API_KEY, + }, + "80001": { + apiURL: "https://api-testnet.polygonscan.com", + apiKey: process.env.POLYGONSCAN_API_KEY, + }, + "42220": { + apiURL: "https://api.celoscan.io", + apiKey: process.env.CELOSCAN_API_KEY, + }, + "44787": { + apiURL: "https://api-alfajores.celoscan.io", + apiKey: process.env.CELOSCAN_API_KEY, + }, + "1284": { + apiURL: "https://api-moonbeam.moonscan.io", + apiKey: process.env.MOONSCAN_MOONBEAM_API_KEY, + }, + "1285": { + apiURL: "https://api-moonriver.moonscan.io", + apiKey: process.env.MOONSCAN_MOONRIVER_API_KEY, + }, + // Does not require API key + "1287": { + apiURL: "https://api-moonbase.moonscan.io", + apiKey: "", + }, + "288": { + apiURL: "https://api.bobascan.com", + apiKey: process.env.BOBASCAN_API_KEY, + }, + "100": { + apiURL: "https://api.gnosisscan.io", + apiKey: process.env.GNOSSISCAN_API_KEY, + }, + "25": { + apiURL: "https://api.cronoscan.com/", + apiKey: process.env.CRONOSCAN_API_KEY, + }, + // Does not require API key + "84531": { + apiURL: "https://api-goerli.basescan.org/", + apiKey: "", + }, +}; diff --git a/src/monitor/gateway.ts b/src/monitor/gateway.ts index 02907d4fa..9516b34ae 100644 --- a/src/monitor/gateway.ts +++ b/src/monitor/gateway.ts @@ -3,7 +3,7 @@ import { SourceOrigin } from "./util"; export declare interface IGateway { worksWith: (origin: SourceOrigin) => boolean; createUrl: (fetchId: string) => string; - createFallbackUrl: (fetchId: string) => string; + createFallbackUrl: (fetchId: string) => string | undefined; baseUrl: string; fallbackUrl?: string; } @@ -11,14 +11,10 @@ export declare interface IGateway { export class SimpleGateway implements IGateway { private origins: SourceOrigin[]; baseUrl: string; - fallbackUrl: string; // A backup gateway in case the local ipfs node fails. + fallbackUrl: string | undefined; // A backup gateway in case the local ipfs node fails. - constructor( - origins: SourceOrigin | SourceOrigin[], - baseUrl: string, - fallbackUrl?: string - ) { - this.origins = [].concat(origins); + constructor(origins: SourceOrigin[], baseUrl: string, fallbackUrl?: string) { + this.origins = origins; this.baseUrl = baseUrl; if (fallbackUrl) this.fallbackUrl = fallbackUrl; } @@ -31,7 +27,7 @@ export class SimpleGateway implements IGateway { return this.baseUrl + fetchId; } - createFallbackUrl(fetchId: string): string { + createFallbackUrl(fetchId: string): string | undefined { return this.fallbackUrl && this.fallbackUrl + fetchId; } } diff --git a/src/monitor/monitor.ts b/src/monitor/monitor.ts index cd807c241..c563862f0 100755 --- a/src/monitor/monitor.ts +++ b/src/monitor/monitor.ts @@ -1,35 +1,30 @@ -import { - cborDecode, - getMonitoredChains, - getTestChains, - MonitorConfig, - CheckedContract, - FileService, - Chain, -} from "@ethereum-sourcify/core"; -import { - VerificationService, - IVerificationService, -} from "@ethereum-sourcify/verification"; -import Logger from "bunyan"; -import Web3 from "web3"; -import { Transaction } from "web3-core"; import { SourceAddress } from "./util"; -import { ethers } from "ethers"; +import { TransactionResponse, getCreateAddress } from "ethers"; import SourceFetcher from "./source-fetcher"; -import SystemConfig from "../config"; import assert from "assert"; import { EventEmitter } from "stream"; +import { decode as bytecodeDecode } from "@ethereum-sourcify/bytecode-utils"; +import { SourcifyEventManager } from "../common/SourcifyEventManager/SourcifyEventManager"; +import { + CheckedContract, + SourcifyChain, +} from "@ethereum-sourcify/lib-sourcify"; +import { services } from "../server/services/services"; +import { IRepositoryService } from "../server/services/RepositoryService"; +import { IVerificationService } from "../server/services/VerificationService"; +import { monitoredChainArray } from "../sourcify-chains"; +import { logger } from "../common/loggerLoki"; +import "../common/SourcifyEventManager/listeners/logger"; -const BLOCK_PAUSE_FACTOR = parseInt(process.env.BLOCK_PAUSE_FACTOR) || 1.1; +const BLOCK_PAUSE_FACTOR = + parseInt(process.env.BLOCK_PAUSE_FACTOR || "") || 1.1; assert(BLOCK_PAUSE_FACTOR > 1); const BLOCK_PAUSE_UPPER_LIMIT = - parseInt(process.env.BLOCK_PAUSE_UPPER_LIMIT) || 30 * 1000; // default: 30 seconds + parseInt(process.env.BLOCK_PAUSE_UPPER_LIMIT || "") || 30 * 1000; // default: 30 seconds const BLOCK_PAUSE_LOWER_LIMIT = - parseInt(process.env.BLOCK_PAUSE_LOWER_LIMIT) || 0.5 * 1000; // default: 0.5 seconds -const WEB3_TIMEOUT = parseInt(process.env.WEB3_TIMEOUT) || 3000; + parseInt(process.env.BLOCK_PAUSE_LOWER_LIMIT || "") || 0.5 * 1000; // default: 0.5 seconds -function createsContract(tx: Transaction): boolean { +function createsContract(tx: TransactionResponse): boolean { return !tx.to; } @@ -37,12 +32,10 @@ function createsContract(tx: Transaction): boolean { * A monitor that periodically checks for new contracts on a single chain. */ class ChainMonitor extends EventEmitter { - private chainId: string; - private web3urls: string[]; - private web3provider: Web3; + private sourcifyChain: SourcifyChain; private sourceFetcher: SourceFetcher; - private logger: Logger; private verificationService: IVerificationService; + private repositoryService: IRepositoryService; private running: boolean; private getBytecodeRetryPause: number; @@ -50,70 +43,46 @@ class ChainMonitor extends EventEmitter { private initialGetBytecodeTries: number; constructor( - name: string, - chainId: string, - web3urls: string[], + sourcifyChain: SourcifyChain, sourceFetcher: SourceFetcher, - verificationService: IVerificationService + verificationService: IVerificationService, + repositoryService: IRepositoryService ) { super(); - this.chainId = chainId; - this.web3urls = web3urls; + this.sourcifyChain = sourcifyChain; this.sourceFetcher = sourceFetcher; - this.logger = new Logger({ name }); this.verificationService = verificationService; + this.repositoryService = repositoryService; + this.running = false; this.getBytecodeRetryPause = - parseInt(process.env.GET_BYTECODE_RETRY_PAUSE) || 5 * 1000; - this.getBlockPause = parseInt(process.env.GET_BLOCK_PAUSE) || 10 * 1000; + parseInt(process.env.GET_BYTECODE_RETRY_PAUSE || "") || 5 * 1000; + this.getBlockPause = + parseInt(process.env.GET_BLOCK_PAUSE || "") || 10 * 1000; this.initialGetBytecodeTries = - parseInt(process.env.INITIAL_GET_BYTECODE_TRIES) || 3; + parseInt(process.env.INITIAL_GET_BYTECODE_TRIES || "") || 3; } start = async (): Promise => { this.running = true; - const rawStartBlock = process.env[`MONITOR_START_${this.chainId}`]; - - // iterate over RPCs to find a working one; log the search result - let found = false; - for (const web3url of this.web3urls) { - this.logger.info( - { loc: "[MONITOR:START]", web3url }, - "Attempting to connect" - ); - const opts = { timeout: WEB3_TIMEOUT }; - const web3provider = new Web3( - new Web3.providers.HttpProvider(web3url, opts) - ); - try { - const lastBlockNumber = await web3provider.eth.getBlockNumber(); - this.logger.info( - { loc: "[MONITOR:START]", lastBlockNumber }, - "Found a working chain" - ); - found = true; + const rawStartBlock = + process.env[`MONITOR_START_${this.sourcifyChain.chainId}`]; - this.web3provider = web3provider; + try { + const lastBlockNumber = await this.sourcifyChain.getBlockNumber(); + const startBlock = + rawStartBlock !== undefined ? parseInt(rawStartBlock) : lastBlockNumber; - const startBlock = - rawStartBlock !== undefined - ? parseInt(rawStartBlock) - : lastBlockNumber; - this.processBlock(startBlock); - break; - } catch (err) { - this.logger.error({ - loc: "[MONITOR:START]", - err: "Cannot getBlockNumber", - web3url, - }); - } - } - - if (!found) { - this.logger.error({ - loc: "[MONITOR:START]", - err: "No working chains! Exiting!", + SourcifyEventManager.trigger("Monitor.Started", { + chainId: this.sourcifyChain.chainId.toString(), + lastBlockNumber, + startBlock, + }); + this.processBlock(startBlock); + } catch (err) { + SourcifyEventManager.trigger("Monitor.Error.CantStart", { + chainId: this.sourcifyChain.chainId.toString(), + message: "Couldn't find a working RPC node.", }); } }; @@ -122,47 +91,50 @@ class ChainMonitor extends EventEmitter { * Stops the monitor after executing all pending requests. */ stop = (): void => { - this.logger.info( - { loc: "[MONITOR:STOP]" }, - "Monitor will be stopped after pending calls finish." + SourcifyEventManager.trigger( + "Monitor.Stopped", + this.sourcifyChain.chainId.toString() ); this.running = false; }; private processBlock = (blockNumber: number) => { - this.web3provider.eth + this.sourcifyChain .getBlock(blockNumber, true) .then((block) => { if (!block) { this.adaptBlockPause("increase"); - - const logObject = { - loc: "[PROCESS_BLOCK]", - blockNumber, - getBlockPause: this.getBlockPause, - }; - this.logger.info(logObject, "Waiting for new blocks"); return; } this.adaptBlockPause("decrease"); - for (const tx of block.transactions) { + SourcifyEventManager.trigger("Monitor.ProcessingBlock", { + blockNumber, + chainId: this.sourcifyChain.chainId.toString(), + getBlockPause: this.getBlockPause, + }); + + for (const tx of block.prefetchedTransactions) { if (createsContract(tx)) { - const address = ethers.utils.getContractAddress(tx); + const address = getCreateAddress(tx); if (this.isVerified(address)) { - this.logger.info( - { loc: "[PROCESS_ADDRESS:SKIP]", address }, - "Already verified" + SourcifyEventManager.trigger("Monitor.AlreadyVerified", { + address, + chainId: this.sourcifyChain.chainId.toString(), + }); + this.emit( + "contract-already-verified", + this.sourcifyChain.chainId, + address ); - this.emit("contract-already-verified", this.chainId, address); } else { - this.logger.info( - { loc: "[PROCESS_ADDRESS]", address }, - "New contract" - ); + SourcifyEventManager.trigger("Monitor.NewContract", { + address, + chainId: this.sourcifyChain.chainId.toString(), + }); this.processBytecode( - tx.input, + tx.hash, address, this.initialGetBytecodeTries ); @@ -173,10 +145,12 @@ class ChainMonitor extends EventEmitter { blockNumber++; }) .catch((err) => { - this.logger.error( - { loc: "[PROCESS_BLOCK:FAILED]", blockNumber }, - err.message - ); + SourcifyEventManager.trigger("Monitor.Error.ProcessingBlock", { + message: err.message, + stack: err.stack, + chainId: this.sourcifyChain.chainId.toString(), + blockNumber, + }); }) .finally(() => { this.mySetTimeout(this.processBlock, this.getBlockPause, blockNumber); @@ -184,9 +158,9 @@ class ChainMonitor extends EventEmitter { }; private isVerified(address: string): boolean { - const foundArr = this.verificationService.findByAddress( + const foundArr = this.repositoryService.checkByChainAndAddress( address, - this.chainId + this.sourcifyChain.chainId.toString() ); return !!foundArr.length; } @@ -200,7 +174,7 @@ class ChainMonitor extends EventEmitter { }; private processBytecode = ( - creationData: string, + creatorTxHash: string, address: string, retriesLeft: number ): void => { @@ -208,77 +182,82 @@ class ChainMonitor extends EventEmitter { return; } - this.web3provider.eth - .getCode(address) + this.sourcifyChain + .getBytecode(address) .then((bytecode) => { if (bytecode === "0x") { - this.logger.info( - { loc: "[PROCESS_BYTECODE]", address, retriesLeft }, - "Empty bytecode" - ); this.mySetTimeout( this.processBytecode, this.getBytecodeRetryPause, - creationData, + creatorTxHash, address, retriesLeft ); return; } - const numericBytecode = Web3.utils.hexToBytes(bytecode); try { - const cborData = cborDecode(numericBytecode); + const cborData = bytecodeDecode(bytecode); const metadataAddress = SourceAddress.fromCborData(cborData); - this.sourceFetcher.assemble(metadataAddress, (contract) => - this.inject(contract, bytecode, creationData, address) + this.sourceFetcher.assemble( + metadataAddress, + (contract: CheckedContract) => { + this.verifyAndStore(contract, address, creatorTxHash); + } ); } catch (err: any) { - this.logger.error( - { loc: "[GET_BYTECODE:METADATA_READING]", address }, - err.message - ); + SourcifyEventManager.trigger("Monitor.Error.ProcessingBytecode", { + message: err.message, + stack: err.stack, + chainId: this.sourcifyChain.chainId.toString(), + address, + }); } }) .catch((err) => { - this.logger.error( - { loc: "[GET_BYTECODE]", address, retriesLeft }, - err.message - ); + SourcifyEventManager.trigger("Monitor.Error.GettingBytecode", { + message: err.message, + stack: err.stack, + chainId: this.sourcifyChain.chainId.toString(), + address, + }); this.mySetTimeout( this.processBytecode, this.getBytecodeRetryPause, - creationData, + creatorTxHash, address, retriesLeft ); }); }; - private inject = ( + private verifyAndStore = async ( contract: CheckedContract, - bytecode: string, - creationData: string, - address: string + address: string, + creatorTxHash: string ) => { - const logObject = { - loc: "[MONITOR:INJECT]", - contract: contract.name, - address, - }; - this.verificationService - .inject({ + try { + const match = await this.verificationService.verifyDeployed( contract, - bytecode, - creationData, - chain: this.chainId, - addresses: [address], - }) - .then(() => { - this.logger.info(logObject, "Successfully injected"); - this.emit("contract-verified-successfully", this.chainId, address); - }) - .catch((err) => this.logger.error(logObject, err.message)); + this.sourcifyChain.chainId.toString(), + address, + /* undefined, */ + creatorTxHash + ); + await this.repositoryService.storeMatch(contract, match); + this.emit( + "contract-verified-successfully", + this.sourcifyChain.chainId, + address + ); + } catch (err: any) { + SourcifyEventManager.trigger("Monitor.Error.VerifyError", { + message: err.message, + stack: err.stack, + chainId: this.sourcifyChain.chainId.toString(), + address, + }); + } }; private mySetTimeout = ( @@ -299,22 +278,18 @@ export default class Monitor extends EventEmitter { private chainMonitors: ChainMonitor[]; private sourceFetcher = new SourceFetcher(); - constructor(config: MonitorConfig = {}) { + constructor(chainsToMonitor?: SourcifyChain[]) { super(); - const repositoryPath = config.repository || SystemConfig.repository.path; - - const chains = config.testing ? getTestChains() : getMonitoredChains(); - this.chainMonitors = chains.map( - (chain: Chain) => + chainsToMonitor = chainsToMonitor?.length + ? chainsToMonitor + : monitoredChainArray; // default to all monitored chains + this.chainMonitors = chainsToMonitor.map( + (sourcifyChain) => new ChainMonitor( - chain.name, - chain.chainId.toString(), - chain.rpc, + sourcifyChain, this.sourceFetcher, - new VerificationService( - new FileService(repositoryPath), - new Logger({ name: "Monitor" }) - ) + services.verification, + services.repository ) ); this.chainMonitors.forEach((cm) => { diff --git a/src/monitor/pending-contract.ts b/src/monitor/pending-contract.ts index 0f0eb4478..5d3f9003e 100644 --- a/src/monitor/pending-contract.ts +++ b/src/monitor/pending-contract.ts @@ -1,9 +1,13 @@ -import { StringMap } from "@ethereum-sourcify/core"; import SourceFetcher from "./source-fetcher"; import { SourceAddress } from "./util"; -import Logger from "bunyan"; -import Web3 from "web3"; -import { CheckedContract, isEmpty } from "@ethereum-sourcify/core"; +import { + CheckedContract, + isEmpty, + Metadata, + StringMap, +} from "@ethereum-sourcify/lib-sourcify"; +import { SourcifyEventManager } from "../common/SourcifyEventManager/SourcifyEventManager"; +import { id as keccak256str } from "ethers"; type PendingSource = { keccak256: string; @@ -14,15 +18,13 @@ type PendingSource = { interface PendingSourceMap { [keccak256: string]: PendingSource; } -type Metadata = { sources: PendingSourceMap }; export default class PendingContract { - private metadata: Metadata; - private pendingSources: PendingSourceMap; + private metadata: Metadata | undefined; + private pendingSources: PendingSourceMap = {}; private fetchedSources: StringMap = {}; private sourceFetcher: SourceFetcher; private callback: (contract: CheckedContract) => void; - private logger = new Logger({ name: "Pending Contract" }); constructor( sourceFetcher: SourceFetcher, @@ -42,23 +44,19 @@ export default class PendingContract { } private addMetadata = (rawMetadata: string) => { - this.metadata = JSON.parse(rawMetadata); - this.pendingSources = {}; - const loc = "[PENDING_CONTRACT:ADD_METADATA]"; - - const count = Object.keys(this.metadata.sources).length; - this.logger.info({ loc, count }, "New pending files"); + this.metadata = JSON.parse(rawMetadata) as Metadata; for (const name in this.metadata.sources) { - const source = this.metadata.sources[name]; + const source = JSON.parse(JSON.stringify(this.metadata.sources[name])); source.name = name; if (source.content) { this.fetchedSources[name] = source.content; continue; } else if (!source.keccak256) { - const err = "The source provides neither content nor keccak256"; - this.logger.error({ loc, name, err }); + SourcifyEventManager.trigger("Monitor.Error", { + message: `Source ${name} has no keccak256 nor content`, + }); break; } this.pendingSources[source.keccak256] = source; @@ -67,10 +65,9 @@ export default class PendingContract { for (const url of source.urls) { const sourceAddress = SourceAddress.fromUrl(url); if (!sourceAddress) { - this.logger.error( - { loc, url, name }, - "Could not determine source file location" - ); + SourcifyEventManager.trigger("Monitor.Error", { + message: `Could not determine source file location for ${name} at ${url}`, + }); continue; } sourceAddresses.push(sourceAddress); @@ -92,7 +89,7 @@ export default class PendingContract { }; private addFetchedSource = (sourceContent: string) => { - const hash = Web3.utils.keccak256(sourceContent); + const hash = keccak256str(sourceContent); const source = this.pendingSources[hash]; if (!source || source.name in this.fetchedSources) { @@ -102,7 +99,7 @@ export default class PendingContract { delete this.pendingSources[hash]; this.fetchedSources[source.name] = sourceContent; - if (isEmpty(this.pendingSources)) { + if (isEmpty(this.pendingSources) && this.metadata) { const contract = new CheckedContract(this.metadata, this.fetchedSources); this.callback(contract); } diff --git a/src/monitor/source-fetcher.ts b/src/monitor/source-fetcher.ts index 2812a4b37..1dfab0edf 100644 --- a/src/monitor/source-fetcher.ts +++ b/src/monitor/source-fetcher.ts @@ -1,7 +1,7 @@ -import { CheckedContract } from "@ethereum-sourcify/core"; -import Logger from "bunyan"; +import { CheckedContract } from "@ethereum-sourcify/lib-sourcify"; import { StatusCodes } from "http-status-codes"; import nodeFetch from "node-fetch"; +import { SourcifyEventManager } from "../common/SourcifyEventManager/SourcifyEventManager"; import { IGateway, SimpleGateway } from "./gateway"; import PendingContract from "./pending-contract"; import { SourceAddress, FetchedFileCallback } from "./util"; @@ -12,7 +12,7 @@ const NO_PAUSE = 0; class Subscription { sourceAddress: SourceAddress; fetchUrl: string; - fallbackFetchUrl: string; + fallbackFetchUrl: string | undefined; beingProcessed = false; subscribers: Array = []; @@ -27,7 +27,7 @@ class Subscription { } useFallbackUrl() { - this.fetchUrl = this.fallbackFetchUrl; + this.fetchUrl = this.fallbackFetchUrl || this.fetchUrl; } } @@ -48,7 +48,7 @@ export default class SourceFetcher { gatewayFetchers = [ new GatewayFetcher( new SimpleGateway( - "ipfs", + ["ipfs"], process.env.IPFS_GATEWAY || "https://ipfs.io/ipfs/", "https://cloudflare-ipfs.com/ipfs/" ) @@ -62,7 +62,7 @@ export default class SourceFetcher { ]; /** - * Tells the fetcher not to make new requests. Does not affect pending requests. + * Tells the fetcher not to make new requests. Doesn't affect pending requests. */ stop(): void { this.gatewayFetchers.forEach((gatewayFetcher) => gatewayFetcher.stop()); @@ -118,7 +118,6 @@ export default class SourceFetcher { class GatewayFetcher { private subscriptions: SubscriptionMap = {}; private timestamps: TimestampMap = {}; - private logger = new Logger({ name: "SourceFetcher" }); private fileCounter = 0; private subscriptionCounter = 0; private running = true; @@ -132,10 +131,11 @@ class GatewayFetcher { constructor(gateway: IGateway) { this.gateway = gateway; this.fetchTimeout = - parseInt(process.env.MONITOR_FETCH_TIMEOUT) || 5 * 60 * 1000; - this.fetchPause = parseInt(process.env.MONITOR_FETCH_PAUSE) || 1 * 1000; + parseInt(process.env.MONITOR_FETCH_TIMEOUT || "") || 5 * 60 * 1000; + this.fetchPause = + parseInt(process.env.MONITOR_FETCH_PAUSE || "") || 1 * 1000; this.cleanupTime = - parseInt(process.env.MONITOR_CLEANUP_PERIOD) || 30 * 60 * 1000; + parseInt(process.env.MONITOR_CLEANUP_PERIOD || "") || 30 * 60 * 1000; this.fetch([], STARTING_INDEX); } @@ -168,68 +168,35 @@ class GatewayFetcher { resp.text().then((text) => { if (resp.status === StatusCodes.OK) { this.notifySubscribers(sourceHash, text); - } else { - this.logger.error( - { - loc: "[SOURCE_FETCHER:FETCH_FAILED]", - fetchUrl: subscription.fetchUrl, - status: resp.status, - statusText: resp.statusText, - sourceHash, - }, - text - ); } }); }) .catch((err) => { - this.logger.error( - { - loc: "[SOURCE_FETCHER:FETCH_FAILED]", - fetchUrl: subscription.fetchUrl, - }, - err.message - ); if (!subscription.fallbackFetchUrl) { return Promise.resolve(); } + SourcifyEventManager.trigger("SourceFetcher.UsingFallback", { + fetchUrl: subscription.fetchUrl, + fallbackUrl: subscription.fallbackFetchUrl, + }); // fall back to external ipfs gateway subscription.useFallbackUrl(); - this.logger.info( - { - loc: "[SOURCE_FETCHER:FALLBACK]", - fetchUrl: subscription.fetchUrl, - id: sourceHash, - subscribers: subscription.subscribers.length, - }, - "Using the fallback gateway" - ); + return nodeFetch(subscription.fetchUrl, { timeout: this.fetchTimeout, }).then((resp) => { resp.text().then((text) => { if (resp.status === StatusCodes.OK) { this.notifySubscribers(sourceHash, text); - } else { - this.logger.error( - { - loc: "[SOURCE_FETCHER:FETCH_FAILED]", - fetchUrl: subscription.fetchUrl, - status: resp.status, - statusText: resp.statusText, - sourceHash, - }, - text - ); } }); }); }) .catch((err) => - this.logger.error( - { loc: "[SOURCE_FETCHER]", fetchUrl: subscription.fetchUrl }, - err.message - ) + SourcifyEventManager.trigger("SourceFetcher.FetchFailed", { + fetchUrl: subscription.fetchUrl, + sourceHash, + }) ) .finally(() => { subscription.beingProcessed = false; @@ -256,15 +223,11 @@ class GatewayFetcher { const subscription = this.subscriptions[id]; this.cleanup(id); - this.logger.info( - { - loc: "[SOURCE_FETCHER:NOTIFY]", - fetchUrl: subscription.fetchUrl, - id, - subscribers: subscription.subscribers.length, - }, - "Fetching successful" - ); + SourcifyEventManager.trigger("SourceFetcher.FetchingSuccessful", { + fetchUrl: subscription.fetchUrl, + id, + subscriberCount: subscription.subscribers.length, + }); subscription.subscribers.forEach((callback) => callback(file)); } @@ -292,8 +255,7 @@ class GatewayFetcher { this.subscriptions[sourceHash].subscribers.push(callback); this.subscriptionCounter++; - this.logger.info({ - loc: "[SOURCE_FETCHER:NEW_SUBSCRIPTION]", + SourcifyEventManager.trigger("SourceFetcher.NewSubscription", { fetchUrl: this.subscriptions[sourceHash].fetchUrl, sourceHash, filesPending: this.fileCounter, @@ -321,8 +283,7 @@ class GatewayFetcher { this.fileCounter--; this.subscriptionCounter -= subscriptionsDelta; - this.logger.info({ - loc: "[SOURCE_FETCHER:CLEANUP]", + SourcifyEventManager.trigger("SourceFetcher.Cleanup", { fetchUrl: fetchUrl, sourceHash, filesPending: this.fileCounter, diff --git a/src/monitor/util.ts b/src/monitor/util.ts index e6ffcf035..00a8fb339 100644 --- a/src/monitor/util.ts +++ b/src/monitor/util.ts @@ -1,7 +1,3 @@ -import Web3 from "web3"; -// eslint-disable-next-line @typescript-eslint/no-var-requires -const multihashes = require("multihashes"); - export type SourceOrigin = "ipfs" | "bzzr1" | "bzzr0"; export type FetchedFileCallback = (fetchedFile: string) => any; @@ -16,16 +12,7 @@ const PREFIXES: Prefix[] = [ { origin: "bzzr1", regex: /bzz-raw:\/{1,2}/ }, ]; -interface CborProcessor { - origin: SourceOrigin; - process: (bytes: number[]) => string; -} - -const CBOR_PROCESSORS: CborProcessor[] = [ - { origin: "ipfs", process: multihashes.toB58String }, - { origin: "bzzr0", process: (data) => Web3.utils.bytesToHex(data).slice(2) }, - { origin: "bzzr1", process: (data) => Web3.utils.bytesToHex(data).slice(2) }, -]; +const CBOR_SOURCES: SourceOrigin[] = ["ipfs", "bzzr0", "bzzr1"]; export class SourceAddress { origin: SourceOrigin; @@ -43,23 +30,21 @@ export class SourceAddress { return this.origin + "-" + this.id; } - static fromUrl(url: string): SourceAddress { + static fromUrl(url: string): SourceAddress | null { for (const prefix of PREFIXES) { - const attempt = url.replace(prefix.regex, ""); - if (attempt !== url) { - return new SourceAddress(prefix.origin, attempt); + const hash = url.replace(prefix.regex, ""); + if (hash !== url) { + return new SourceAddress(prefix.origin, hash); } } - return null; } static fromCborData(cborData: any): SourceAddress { - for (const cborProcessor of CBOR_PROCESSORS) { - const bytes = cborData[cborProcessor.origin]; - if (bytes) { - const metadataId = cborProcessor.process(bytes); - return new SourceAddress(cborProcessor.origin, metadataId); + for (const cborSource of CBOR_SOURCES) { + const metadataId = cborData[cborSource]; + if (metadataId) { + return new SourceAddress(cborSource, metadataId); } } diff --git a/src/server/common.ts b/src/server/common.ts new file mode 100644 index 000000000..3a9ba06f0 --- /dev/null +++ b/src/server/common.ts @@ -0,0 +1,99 @@ +import { BadRequestError } from "../common/errors"; +import { checkSourcifyChainId } from "../sourcify-chains"; +import { + CheckedContract, + PathContent, + Status, +} from "@ethereum-sourcify/lib-sourcify"; +import { getAddress, isAddress } from "ethers"; + +export const validateSingleAddress = (address: string): boolean => { + if (!isAddress(address)) { + throw new BadRequestError(`Invalid address: ${address}`); + } + return true; // if it doesn't throw +}; + +export const validateAddresses = (addresses: string): boolean => { + const addressesArray = addresses.split(","); + const invalidAddresses: string[] = []; + for (const i in addressesArray) { + const address = addressesArray[i]; + if (!isAddress(address)) { + invalidAddresses.push(address); + } else { + addressesArray[i] = getAddress(address); + } + } + + if (invalidAddresses.length) { + throw new BadRequestError( + `Invalid addresses: ${invalidAddresses.join(", ")}` + ); + } + return true; // if it doesn't throw +}; + +/** + * Validation function for multiple chainIds + * Note that this checks if a chain exists as a SourcifyChain. + * This is different that checking for verification support i.e. supported: true or monitoring support i.e. monitored: true + */ +export const validateSourcifyChainIds = (chainIds: string) => { + const chainIdsArray = chainIds.split(","); + const validChainIds: string[] = []; + const invalidChainIds: string[] = []; + for (const chainId of chainIdsArray) { + try { + if (chainId === "0") { + // create2 verified contract + validChainIds.push("0"); + } + if (checkSourcifyChainId(chainId)) { + validChainIds.push(chainId); + } + } catch (e) { + invalidChainIds.push(chainId); + } + } + + if (invalidChainIds.length) { + throw new Error(`Invalid chainIds: ${invalidChainIds.join(", ")}`); + } + return true; +}; + +export interface PathContentMap { + [id: string]: PathContent; +} + +export type ContractMeta = { + compiledPath?: string; + name?: string; + address?: string; + chainId?: string; + /* contextVariables?: { + abiEncodedConstructorArguments?: string; + msgSender?: string; + }; */ + creatorTxHash?: string; + status?: Status; + statusMessage?: string; + storageTimestamp?: Date; +}; + +export type ContractWrapper = ContractMeta & { + contract: CheckedContract; +}; + +export interface ContractWrapperMap { + [id: string]: ContractWrapper; +} + +declare module "express-session" { + interface Session { + inputFiles: PathContentMap; + contractWrappers: ContractWrapperMap; + unusedSources: string[]; + } +} diff --git a/src/server/controllers/BaseController.ts b/src/server/controllers/BaseController.ts deleted file mode 100644 index 8ee30e08f..000000000 --- a/src/server/controllers/BaseController.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { InternalServerError } from "../../common/errors"; -import { NextFunction, Request, Response } from "express"; - -type RequestHandler = ( - req: Request, - res: Response, - next: NextFunction -) => Promise; - -export default class BaseController { - safeHandler = (requestHandler: RequestHandler) => { - return async (req: Request, res: Response, next: NextFunction) => { - try { - return await requestHandler(req, res, next); - } catch (err: any) { - next( - typeof err === "object" ? err : new InternalServerError(err.mesage) - ); - } - }; - }; -} diff --git a/src/server/controllers/FileController.ts b/src/server/controllers/FileController.ts deleted file mode 100644 index 010a1ee41..000000000 --- a/src/server/controllers/FileController.ts +++ /dev/null @@ -1,162 +0,0 @@ -import { NextFunction, Request, Response, Router } from "express"; -import BaseController from "./BaseController"; -import { IController } from "../../common/interfaces"; -import { StatusCodes } from "http-status-codes"; -import { - Logger, - IFileService, - MatchLevel, - FilesInfo, - ContractData, -} from "@ethereum-sourcify/core"; -import { param, validationResult } from "express-validator"; -import { - isValidAddress, - isValidChain, -} from "../../common/validators/validators"; -import { NotFoundError, ValidationError } from "../../common/errors"; -import * as bunyan from "bunyan"; - -type RetrieveMethod = ( - chain: string, - address: string, - match: MatchLevel -) => Promise>; -type ConractRetrieveMethod = (chain: string) => Promise; - -export default class FileController - extends BaseController - implements IController -{ - router: Router; - fileService: IFileService; - logger: bunyan; - - constructor(fileService: IFileService) { - super(); - this.router = Router(); - this.fileService = fileService; - this.logger = Logger("FileController"); - } - - createEndpoint( - retrieveMethod: RetrieveMethod, - match: MatchLevel, - successMessage: string, - reportStatus = false - ) { - return async (req: Request, res: Response, next: NextFunction) => { - const validationErrors = validationResult(req); - if (!validationErrors.isEmpty()) { - return next(new ValidationError(validationErrors.array())); - } - let retrieved: FilesInfo; - try { - retrieved = await retrieveMethod( - req.params.chain, - req.params.address, - match - ); - if (retrieved.files.length === 0) - return next(new NotFoundError("Files have not been found!")); - } catch (err: any) { - return next(new NotFoundError(err.message)); - } - this.logger.info( - { - chainId: req.params.chain, - address: req.params.address, - }, - successMessage - ); - return res - .status(StatusCodes.OK) - .json(reportStatus ? retrieved : retrieved.files); - }; - } - - createContractEndpoint( - contractRetrieveMethod: ConractRetrieveMethod, - successMessage: string - ) { - return async (req: Request, res: Response, next: NextFunction) => { - const validationErrors = validationResult(req); - if (!validationErrors.isEmpty()) { - return next(new ValidationError(validationErrors.array())); - } - let retrieved: ContractData; - try { - retrieved = await contractRetrieveMethod(req.params.chain); - if (retrieved.full.length === 0 && retrieved.partial.length === 0) - return next(new NotFoundError("Contracts have not been found!")); - } catch (err: any) { - return next(new NotFoundError(err.message)); - } - this.logger.info( - { - chainId: req.params.chain, - }, - successMessage - ); - return res.status(StatusCodes.OK).json(retrieved); - }; - } - - registerRoutes = (): Router => { - [ - { - prefix: "/tree/any", - method: this.createEndpoint( - this.fileService.getTree, - "any_match", - "getTree any_match success", - true - ), - }, - { - prefix: "/any", - method: this.createEndpoint( - this.fileService.getContent, - "any_match", - "getContent any_match success", - true - ), - }, - { - prefix: "/tree", - method: this.createEndpoint( - this.fileService.getTree, - "full_match", - "getTree full_match success" - ), - }, - { - prefix: "/contracts", - method: this.createContractEndpoint( - this.fileService.getContracts, - "getContracts success" - ), - }, - { - prefix: "", - method: this.createEndpoint( - this.fileService.getContent, - "full_match", - "getContent full_match success" - ), - }, - ].forEach((pair) => { - const validators = [param("chain").custom(isValidChain)]; - if (pair.prefix != "/contracts") - validators.push(param("address").custom(isValidAddress)); - this.router - .route( - pair.prefix != "/contracts" - ? pair.prefix + "/:chain/:address" - : pair.prefix + "/:chain" - ) - .get(validators, this.safeHandler(pair.method)); - }); - return this.router; - }; -} diff --git a/src/server/controllers/TestArtifactsController.ts b/src/server/controllers/TestArtifactsController.ts deleted file mode 100644 index 27fc472c4..000000000 --- a/src/server/controllers/TestArtifactsController.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { Request, Response, Router } from "express"; -import BaseController from "./BaseController"; -import fetch from "node-fetch"; -import { IController } from "../../common/interfaces"; -import { StatusCodes } from "http-status-codes"; - -// Returns the test artifacts and URLs of the latest test-chains-regularly workflow in CircleCI. -// Moved server side due to CORS. -export default class TestArtifactsController - extends BaseController - implements IController -{ - router: Router; - - constructor() { - super(); - this.router = Router(); - } - - /** - * Function to find the latest run of the test-chains-regularly workflow. Fetches the identifiers of the run. Also fetches the artifact .json of the run. Returns the artifact and the identifiers. - * - * See API docs: https://circleci.com/docs/api/v2 - * - * @returns the testReport artifact, jobNumber, workflowId, and the pipelineNumber of the last run of the workflow. - */ - findLatestChainTest = async (req: Request, res: Response) => { - const CIRCLE_PROJECT_ID = process.env.CIRCLE_PROJECT_ID || 183183290; - const WORKFLOWS_URL = `https://circleci.com/api/v2/insights/gh/ethereum/sourcify/workflows/test-chains-regularly?branch=master`; - // Fetch last runs of the chain test workflow: https://circleci.com/docs/api/v2/#operation/getProjectWorkflowRuns - const workflowResponse = await (await fetch(WORKFLOWS_URL)).json(); - if (workflowResponse.items.length === 0) { - return res - .status(StatusCodes.NOT_FOUND) - .json({ error: "No workflows returned from " + WORKFLOWS_URL }); - } - const workflowId = workflowResponse.items[0].id; - - const LAST_WORKFLOW_URL = `https://circleci.com/api/v2/workflow/${workflowId}`; - const JOB_URL = `https://circleci.com/api/v2/workflow/${workflowId}/job`; - - // Run requests in parallel. - const [lastWorkflowResponse, jobResponse] = await Promise.all([ - // Fetch the last workflow object to get the pipeline number - (await fetch(LAST_WORKFLOW_URL)).json(), - // Fetch the job of the last workflow for the job number - (await fetch(JOB_URL)).json(), - ]); - const pipelineNumber = lastWorkflowResponse.pipeline_number; - const jobNumber = jobResponse.items[0].job_number; - const jobId = jobResponse.items[0].id; - // Fetch the test report .json artifact - const ARTIFACT_URL = `https://dl.circleci.com/private/output/job/${jobId}/artifacts/0/chain-tests-report/report.json`; - const artifactResponse = await fetch(ARTIFACT_URL); - const artifactResponseJson = await artifactResponse.json(); - if (!artifactResponse.ok) { - return res.status(artifactResponse.status).json(artifactResponseJson); - } - - return res.json({ - testReport: artifactResponseJson, - workflowId, - pipelineNumber, - jobNumber, - jobId, - CIRCLE_PROJECT_ID, - }); - }; - - registerRoutes = (): Router => { - this.router.route(["/"]).get(this.safeHandler(this.findLatestChainTest)); - return this.router; - }; -} diff --git a/src/server/controllers/VerificationController-util.ts b/src/server/controllers/VerificationController-util.ts deleted file mode 100644 index 4a3cf4531..000000000 --- a/src/server/controllers/VerificationController-util.ts +++ /dev/null @@ -1,176 +0,0 @@ -import { Request } from "express"; -import { Session } from "express-session"; -import { - PathContent, - CheckedContract, - isEmpty, - StringMap, - PathBuffer, - Status, -} from "@ethereum-sourcify/core"; -import Web3 from "web3"; -import { MissingSources } from "@ethereum-sourcify/core"; -import { InvalidSources } from "@ethereum-sourcify/core"; -import QueryString from "qs"; -import { BadRequestError } from "../../common/errors"; -import fetch from "node-fetch"; -export interface PathContentMap { - [id: string]: PathContent; -} - -export type ContractLocation = { - chain: string; - address: string; -}; - -export type ContractMeta = { - compiledPath?: string; - name?: string; - address?: string; - chainId?: string; - status?: Status; - statusMessage?: string; - storageTimestamp?: Date; -}; - -export type ContractWrapper = ContractMeta & { - contract: CheckedContract; -}; -export interface ContractWrapperMap { - [id: string]: ContractWrapper; -} - -export type SessionMaps = { - inputFiles: PathContentMap; - contractWrappers: ContractWrapperMap; -}; - -export type MySession = Session & - SessionMaps & { - unusedSources: string[]; - }; - -export type MyRequest = Request & { - addresses: string[]; - chain: string; - chosenContract: number; -}; - -export type SendableContract = ContractMeta & { - files: { - found: string[]; - missing: MissingSources; - invalid: InvalidSources; - }; - verificationId?: string; -}; - -export type EtherscanResult = { - SourceCode: string; - ABI: string; - ContractName: string; - CompilerVersion: string; - OptimizationUsed: string; - Runs: string; - ConstructorArguments: string; - EVMVersion: string; - Library: string; - LicenseType: string; - Proxy: string; - Implementation: string; - SwarmSource: string; -}; - -export function isVerifiable(contractWrapper: ContractWrapper) { - const contract = contractWrapper.contract; - return ( - isEmpty(contract.missing) && - isEmpty(contract.invalid) && - Boolean(contractWrapper.address) && - Boolean(contractWrapper.chainId) - ); -} - -function getSendableContract( - contractWrapper: ContractWrapper, - verificationId: string -): SendableContract { - const contract = contractWrapper.contract; - - return { - verificationId, - compiledPath: contract.compiledPath, - name: contract.name, - address: contractWrapper.address, - chainId: contractWrapper.chainId, - files: { - found: Object.keys(contract.solidity), // Source paths - missing: contract.missing, - invalid: contract.invalid, - }, - status: contractWrapper.status || "error", - statusMessage: contractWrapper.statusMessage, - storageTimestamp: contractWrapper.storageTimestamp, - }; -} - -export function getSessionJSON(session: MySession) { - const contractWrappers = session.contractWrappers || {}; - const contracts: SendableContract[] = []; - for (const id in contractWrappers) { - const sendableContract = getSendableContract(contractWrappers[id], id); - contracts.push(sendableContract); - } - - const files: string[] = []; - for (const id in session.inputFiles) { - files.push(session.inputFiles[id].path); - } - const unused = session.unusedSources || []; - return { contracts, unused, files }; -} - -export async function addRemoteFile( - query: QueryString.ParsedQs -): Promise { - if (typeof query.url !== "string") { - throw new BadRequestError("Query url must be a string"); - } - let res; - try { - res = await fetch(query.url); - } catch (err) { - throw new BadRequestError("Couldn't fetch from " + query.url); - } - if (!res.ok) throw new BadRequestError("Couldn't fetch from " + query.url); - // Save with the fileName exists on server response header. - const fileName = - res.headers.get("Content-Disposition")?.split("filename=")[1] || - query.url.substring(query.url.lastIndexOf("/") + 1) || - "file"; - const buffer = await res.buffer(); - return [ - { - path: fileName, - buffer, - }, - ]; -} - -export function generateId(obj: any): string { - return Web3.utils.keccak256(JSON.stringify(obj)); -} - -export function updateUnused(unused: string[], session: MySession) { - if (!session.unusedSources) { - session.unusedSources = []; - } - session.unusedSources = unused; -} - -export function contractHasMultipleFiles(sourceCodeObject: string) { - if (sourceCodeObject.startsWith("{{")) { - return true; - } - return false; -} diff --git a/src/server/controllers/VerificationController.ts b/src/server/controllers/VerificationController.ts deleted file mode 100644 index b1a08e308..000000000 --- a/src/server/controllers/VerificationController.ts +++ /dev/null @@ -1,858 +0,0 @@ -import { Request, Response, Router } from "express"; -import BaseController from "./BaseController"; -import { IController } from "../../common/interfaces"; -import { IVerificationService } from "@ethereum-sourcify/verification"; -import { - InputData, - checkChainId, - Logger, - PathBuffer, - CheckedContract, - isEmpty, - PathContent, - Match, - Metadata, - JsonInput, -} from "@ethereum-sourcify/core"; -import { - BadRequestError, - NotFoundError, - PayloadTooLargeError, - ValidationError, -} from "../../common/errors"; -import { IValidationService } from "@ethereum-sourcify/validation"; -import * as bunyan from "bunyan"; -import fileUpload from "express-fileupload"; -import { isValidAddress } from "../../common/validators/validators"; -import { - MySession, - getSessionJSON, - generateId, - isVerifiable, - SendableContract, - ContractWrapperMap, - updateUnused, - MyRequest, - addRemoteFile, - contractHasMultipleFiles, - EtherscanResult, -} from "./VerificationController-util"; -import { StatusCodes } from "http-status-codes"; -import { body, query, validationResult } from "express-validator"; -import web3utils from "web3-utils"; -import cors from "cors"; -import config from "../../config"; -import fetch from "node-fetch"; - -const FILE_ENCODING = "base64"; - -export default class VerificationController - extends BaseController - implements IController -{ - router: Router; - verificationService: IVerificationService; - validationService: IValidationService; - logger: bunyan; - - static readonly MAX_SESSION_SIZE = 50 * 1024 * 1024; // 50 MiB - - constructor( - verificationService: IVerificationService, - validationService: IValidationService - ) { - super(); - this.router = Router(); - this.verificationService = verificationService; - this.validationService = validationService; - this.logger = Logger("VerificationService"); - } - - private validateAddresses(addresses: string): string[] { - const addressesArray = addresses.split(","); - const invalidAddresses: string[] = []; - for (const i in addressesArray) { - const address = addressesArray[i]; - if (!isValidAddress(address)) { - invalidAddresses.push(address); - } else { - addressesArray[i] = web3utils.toChecksumAddress(address); - } - } - - if (invalidAddresses.length) { - throw new Error(`Invalid addresses: ${invalidAddresses.join(", ")}`); - } - return addressesArray; - } - - private validateSingleChainId(chainId: string): string { - return checkChainId(chainId); - } - - private validateChainIds(chainIds: string): string[] { - const chainIdsArray = chainIds.split(","); - const validChainIds: string[] = []; - const invalidChainIds: string[] = []; - for (const chainId of chainIdsArray) { - try { - validChainIds.push(checkChainId(chainId)); - } catch (e) { - invalidChainIds.push(chainId); - } - } - - if (invalidChainIds.length) { - throw new Error(`Invalid chainIds: ${invalidChainIds.join(", ")}`); - } - return validChainIds; - } - - private stringifyInvalidAndMissing(contract: CheckedContract) { - const errors = Object.keys(contract.invalid).concat( - Object.keys(contract.missing) - ); - return `${contract.name} (${errors.join(", ")})`; - } - - private getMappedSourcesFromJsonInput = (jsonInput: JsonInput) => { - const mappedSources: any = {}; - for (const name in jsonInput.sources) { - const source = jsonInput.sources[name]; - if (source.content) { - mappedSources[name] = source.content; - } - } - return mappedSources; - }; - - private getEtherscanApiHostFromChainId = (chainId: string): string => { - switch (chainId) { - case "1": - return `https://api.etherscan.io`; - case "5": - return `https://api-goerli.etherscan.io`; - case "42": - return `https://api-kovan.etherscan.io`; - case "4": - return `https://api-rinkeby.etherscan.io`; - case "3": - return `https://api-ropsten.etherscan.io`; - case "11155111": - return `https://api-sepolia.etherscan.io`; - } - }; - - private getSolcJsonInputFromEtherscanResult = ( - etherscanResult: EtherscanResult, - contractPath: string - ): JsonInput => { - const generatedSettings = { - optimizer: { - enabled: etherscanResult.OptimizationUsed === "1", - runs: parseInt(etherscanResult.Runs), - }, - outputSelection: { - "*": { - "*": ["metadata"], - }, - }, - evmVersion: - etherscanResult.EVMVersion.toLowerCase() !== "default" - ? etherscanResult.EVMVersion - : undefined, - libraries: {}, // TODO: Check the library format - }; - const solcJsonInput = { - language: "Solidity", - sources: { - [contractPath]: { - content: etherscanResult.SourceCode, - }, - }, - settings: generatedSettings, - }; - return solcJsonInput; - }; - - // Output has multiple curly braces {{...}} - private parseMultipleFilesContract = (sourceCodeObject: string) => { - return JSON.parse(sourceCodeObject.slice(1, -1)); - }; - - private processRequestFromEtherscan = async ( - chain: string, - address: string - ): Promise => { - const url = `${this.getEtherscanApiHostFromChainId( - chain - )}/api?module=contract&action=getsourcecode&address=${address}&apikey=${ - config.server.etherscanAPIKey - }`; - - const response = await fetch(url); - const resultJson = await response.json(); - if ( - resultJson.message === "NOTOK" && - resultJson.result.includes("Max rate limit reached") - ) { - throw new BadRequestError("Etherscan API rate limit reached, try later"); - } - if (resultJson.result[0].SourceCode === "") { - throw new BadRequestError("This contract is not verified on Etherscan"); - } - const contractResultJson = resultJson.result[0]; - const sourceCodeObject = contractResultJson.SourceCode; - const compilerVersion = - contractResultJson.CompilerVersion.charAt(0) === "v" - ? contractResultJson.CompilerVersion.slice(1) - : contractResultJson.CompilerVersion; - const contractName = contractResultJson.ContractName; - - let solcJsonInput; - // SourceCode can be the Solidity code if there is only one contract file, or the json object if there are multiple files - if (contractHasMultipleFiles(sourceCodeObject)) { - solcJsonInput = this.parseMultipleFilesContract(sourceCodeObject); - // Tell compiler to output metadata - solcJsonInput.settings.outputSelection["*"]["*"] = ["metadata"]; - } else { - const contractPath = contractResultJson.ContractName + ".sol"; - solcJsonInput = this.getSolcJsonInputFromEtherscanResult( - contractResultJson, - contractPath - ); - } - - const metadata = await this.verificationService.getMetadataFromJsonInput( - compilerVersion, - contractName, - solcJsonInput - ); - return { - metadata, - solcJsonInput, - }; - }; - - private verifyFromEtherscan = async ( - origReq: Request, - res: Response - ): Promise => { - const req = origReq as MyRequest; - this.validateRequest(req); - - const chain = req.body.chainId as string; - const address = req.body.address; - - const { metadata, solcJsonInput } = await this.processRequestFromEtherscan( - chain, - address - ); - - const mappedSources = this.getMappedSourcesFromJsonInput(solcJsonInput); - const checkedContract = new CheckedContract(metadata, mappedSources); - - const inputData: InputData = { - chain, - addresses: [address], - contract: checkedContract, - }; - const result = await this.verificationService.inject(inputData); - - res.send({ result: [result] }); - }; - - private stringToBase64 = (str: string): string => { - return Buffer.from(str, "utf8").toString("base64"); - }; - - private verifyFromEtherscanWithSession = async ( - origReq: Request, - res: Response - ): Promise => { - // 1. generate metadata - const req = origReq as MyRequest; - this.validateRequest(req); - - const chain = req.body.chainId as string; - const address = req.body.address; - - const processedRequest = await this.processRequestFromEtherscan( - chain, - address - ); - const metadata = processedRequest.metadata; - const solcJsonInput = processedRequest.solcJsonInput; - - // 2. save the files in the session - const pathContents: PathContent[] = Object.keys(solcJsonInput.sources).map( - (path) => { - return { - path: path, - content: this.stringToBase64(solcJsonInput.sources[path].content), - }; - } - ); - pathContents.push({ - path: "metadata.json", - content: this.stringToBase64(JSON.stringify(metadata)), - }); - const session = req.session as MySession; - const newFilesCount = this.saveFiles(pathContents, session); - if (newFilesCount === 0) { - throw new BadRequestError("The contract didn't add any new file"); - } - - // 3. create the contractwrappers from the files - await this.validateContracts(session); - if (!session.contractWrappers) { - throw new BadRequestError( - "Unknown error during the Etherscan verification process" - ); - return; - } - - // 4. set the chainid and address for the contract - const verifiable: ContractWrapperMap = {}; - for (const id of Object.keys(session.contractWrappers)) { - const contractWrapper = session.contractWrappers[id]; - if (contractWrapper) { - if (!contractWrapper.address) { - contractWrapper.address = address; - contractWrapper.chainId = chain; - } - if (isVerifiable(contractWrapper)) { - verifiable[id] = contractWrapper; - } - } - } - - // 5. verify - await this.verifyValidated(verifiable, session); - res.send(getSessionJSON(session)); - }; - - private legacyVerifyEndpoint = async ( - origReq: Request, - res: Response - ): Promise => { - const req = origReq as MyRequest; - this.validateRequest(req); - - for (const address of req.addresses) { - const result = this.verificationService.findByAddress(address, req.chain); - if (result.length != 0) { - return res.send({ result }); - } - } - - const inputFiles = this.extractFiles(req); - if (!inputFiles) { - const msg = - "The contract at the provided address and chain has not yet been sourcified."; - throw new NotFoundError(msg); - } - - let validatedContracts: CheckedContract[]; - try { - validatedContracts = await this.validationService.checkFiles(inputFiles); - } catch (error: any) { - throw new BadRequestError(error.message); - } - - const errors = validatedContracts - .filter((contract) => !CheckedContract.isValid(contract, true)) - .map(this.stringifyInvalidAndMissing); - if (errors.length) { - throw new BadRequestError( - "Invalid or missing sources in:\n" + errors.join("\n"), - false - ); - } - - if (validatedContracts.length !== 1 && !req.body.chosenContract) { - const contractNames = validatedContracts.map((c) => c.name).join(", "); - const msg = `Detected ${validatedContracts.length} contracts (${contractNames}), but can only verify 1 at a time. Please choose a main contract and click Verify again.`; - const contractsToChoose = validatedContracts.map((contract) => ({ - name: contract.name, - path: contract.compiledPath, - })); - return res - .status(StatusCodes.BAD_REQUEST) - .send({ error: msg, contractsToChoose }); - } - - const contract: CheckedContract = req.body.chosenContract - ? validatedContracts[req.body.chosenContract] - : validatedContracts[0]; - if (!contract.compilerVersion) { - throw new BadRequestError( - "Metadata file not specifying a compiler version." - ); - } - - const inputData: InputData = { - contract, - addresses: req.addresses, - chain: req.chain, - }; - try { - const result = await this.verificationService.inject(inputData); - // Send to verification again with all source files. - if (result.status === "extra-file-input-bug") { - const contractWithAllSources = - await this.validationService.useAllSources(contract, inputFiles); - const tempResult = await this.verificationService.inject({ - ...inputData, - contract: contractWithAllSources, - }); - if (tempResult.status === "perfect") { - res.send({ result: [tempResult] }); - } - } - res.send({ result: [result] }); // array is an old expected behavior (e.g. by frontend) - } catch (error: any) { - res - .status(StatusCodes.INTERNAL_SERVER_ERROR) - .send({ error: error.message }); - } - }; - - private checkAllByAddresses = async (req: any, res: Response) => { - this.validateRequest(req); - const map: Map = new Map(); - for (const address of req.addresses) { - for (const chainId of req.chainIds) { - try { - const found: Match[] = this.verificationService.findAllByAddress( - address, - chainId - ); - if (found.length != 0) { - if (!map.has(address)) { - map.set(address, { address, chainIds: [] }); - } - - map - .get(address) - .chainIds.push({ chainId, status: found[0].status }); - } - } catch (error) { - // ignore - } - } - if (!map.has(address)) { - map.set(address, { - address: address, - status: "false", - }); - } - } - const resultArray = Array.from(map.values()); - res.send(resultArray); - }; - - private checkByAddresses = async (req: any, res: Response) => { - this.validateRequest(req); - const map: Map = new Map(); - for (const address of req.addresses) { - for (const chainId of req.chainIds) { - try { - const found: Match[] = this.verificationService.findByAddress( - address, - chainId - ); - if (found.length != 0) { - if (!map.has(address)) { - map.set(address, { address, status: "perfect", chainIds: [] }); - } - - map.get(address).chainIds.push(chainId); - } - } catch (error) { - // ignore - } - } - if (!map.has(address)) { - map.set(address, { - address: address, - status: "false", - }); - } - } - const resultArray = Array.from(map.values()); - res.send(resultArray); - }; - - private validateContracts = async (session: MySession) => { - const pathBuffers: PathBuffer[] = []; - for (const id in session.inputFiles) { - const pathContent = session.inputFiles[id]; - pathBuffers.push({ - path: pathContent.path, - buffer: Buffer.from(pathContent.content, FILE_ENCODING), - }); - } - - try { - const unused: string[] = []; - const contracts = await this.validationService.checkFiles( - pathBuffers, - unused - ); - - const newPendingContracts: ContractWrapperMap = {}; - for (const contract of contracts) { - newPendingContracts[generateId(contract.metadataRaw)] = { contract }; - } - - session.contractWrappers ||= {}; - for (const newId in newPendingContracts) { - const newContractWrapper = newPendingContracts[newId]; - const oldContractWrapper = session.contractWrappers[newId]; - if (oldContractWrapper) { - for (const path in newContractWrapper.contract.solidity) { - oldContractWrapper.contract.solidity[path] = - newContractWrapper.contract.solidity[path]; - delete oldContractWrapper.contract.missing[path]; - } - oldContractWrapper.contract.solidity = - newContractWrapper.contract.solidity; - oldContractWrapper.contract.missing = - newContractWrapper.contract.missing; - } else { - session.contractWrappers[newId] = newContractWrapper; - } - } - updateUnused(unused, session); - } catch (error) { - const paths = pathBuffers.map((pb) => pb.path); - updateUnused(paths, session); - } - }; - - private verifyValidatedEndpoint = async (req: Request, res: Response) => { - const session = req.session as MySession; - if (!session.contractWrappers || isEmpty(session.contractWrappers)) { - throw new BadRequestError("There are currently no pending contracts."); - } - - const receivedContracts: SendableContract[] = req.body.contracts; - - const verifiable: ContractWrapperMap = {}; - for (const receivedContract of receivedContracts) { - const id = receivedContract.verificationId; - const contractWrapper = session.contractWrappers[id]; - if (contractWrapper) { - contractWrapper.address = receivedContract.address; - contractWrapper.chainId = receivedContract.chainId; - if (isVerifiable(contractWrapper)) { - verifiable[id] = contractWrapper; - } - } - } - - await this.verifyValidated(verifiable, session); - res.send(getSessionJSON(session)); - }; - - private async verifyValidated( - contractWrappers: ContractWrapperMap, - session: MySession - ): Promise { - for (const id in contractWrappers) { - const contractWrapper = contractWrappers[id]; - - await this.checkAndFetchMissing(contractWrapper.contract); - - if (!isVerifiable(contractWrapper)) { - continue; - } - const inputData: InputData = { - addresses: [contractWrapper.address], - chain: contractWrapper.chainId, - contract: contractWrapper.contract, - }; - - const found = this.verificationService.findByAddress( - contractWrapper.address, - contractWrapper.chainId - ); - let match: Match; - if (found.length) { - match = found[0]; - } else { - try { - match = await this.verificationService.inject(inputData); - // Send to verification again with all source files. - if (match.status === "extra-file-input-bug") { - // Session inputFiles are encoded base64. Why? - const pathBufferInputFiles: PathBuffer[] = Object.values( - session.inputFiles - ).map((base64file) => ({ - path: base64file.path, - buffer: Buffer.from(base64file.content, FILE_ENCODING), - })); - const contractWithAllSources = - await this.validationService.useAllSources( - contractWrapper.contract, - pathBufferInputFiles - ); - const tempMatch = await this.verificationService.inject({ - ...inputData, - contract: contractWithAllSources, - }); - if ( - tempMatch.status === "perfect" || - tempMatch.status === "partial" - ) { - match = tempMatch; - } - } - } catch (error: any) { - match = { - status: null, - address: null, - message: error.message, - }; - } - } - contractWrapper.status = match.status || "error"; - contractWrapper.statusMessage = match.message; - contractWrapper.storageTimestamp = match.storageTimestamp; - } - } - - private async checkAndFetchMissing(contract: CheckedContract): Promise { - if (!CheckedContract.isValid(contract)) { - const logObject = { - loc: "[VERIFY_VALIDATED_ENDPOINT]", - contract: contract.name, - }; - this.logger.info(logObject, "Attempting fetching of missing sources"); - await CheckedContract.fetchMissing(contract, this.logger).catch((err) => { - this.logger.error(logObject, err); - }); - } - } - - private extractFiles = (req: Request, shouldThrow = false) => { - if (req.is("multipart/form-data") && req.files && req.files.files) { - return this.extractFilesFromForm(req.files.files); - } else if (req.is("application/json") && req.body.files) { - return this.extractFilesFromJSON(req.body.files); - } - - if (shouldThrow) { - throw new ValidationError([ - { param: "files", msg: "There should be files in the field" }, - ]); - } - }; - - private extractFilesFromForm(files: any): PathBuffer[] { - const fileArr: fileUpload.UploadedFile[] = [].concat(files); // ensure an array, regardless of how many files received - return fileArr.map((f) => ({ path: f.name, buffer: f.data })); - } - - private extractFilesFromJSON(files: any): PathBuffer[] { - const inputFiles = []; - for (const name in files) { - const file = files[name]; - const buffer = Buffer.isBuffer(file) ? file : Buffer.from(file); - inputFiles.push({ path: name, buffer }); - } - return inputFiles; - } - - private saveFiles(pathContents: PathContent[], session: MySession): number { - if (!session.inputFiles) { - session.inputFiles = {}; - } - - let inputSize = 0; // shall contain old buffer size + new files size - for (const id in session.inputFiles) { - const pc = session.inputFiles[id]; - inputSize += pc.content.length; - } - - pathContents.forEach((pc) => (inputSize += pc.content.length)); - - if (inputSize > VerificationController.MAX_SESSION_SIZE) { - const msg = - "Too much session memory used. Delete some files or clear the session."; - throw new PayloadTooLargeError(msg); - } - - let newFilesCount = 0; - pathContents.forEach((pc) => { - const newId = generateId(pc.content); - if (!(newId in session.inputFiles)) { - session.inputFiles[newId] = pc; - ++newFilesCount; - } - }); - - return newFilesCount; - } - - private addInputFilesEndpoint = async (req: Request, res: Response) => { - this.validateRequest(req); - let inputFiles: PathBuffer[]; - if (req.query.url) { - inputFiles = await addRemoteFile(req.query); - } else { - inputFiles = this.extractFiles(req, true); - } - const pathContents: PathContent[] = inputFiles.map((pb) => { - return { path: pb.path, content: pb.buffer.toString(FILE_ENCODING) }; - }); - - const session = req.session as MySession; - const newFilesCount = this.saveFiles(pathContents, session); - if (newFilesCount) { - await this.validateContracts(session); - await this.verifyValidated(session.contractWrappers, session); - } - res.send(getSessionJSON(session)); - }; - - private restartSessionEndpoint = async (req: Request, res: Response) => { - req.session.destroy((error: Error) => { - let logMethod: keyof bunyan = null; - let msg = ""; - let statusCode = null; - - const loggerOptions: any = { - loc: "[VERIFICATION_CONTROLER:RESTART]", - id: req.sessionID, - }; - if (error) { - logMethod = "error"; - msg = "Error in clearing session"; - loggerOptions.err = error.message; - statusCode = StatusCodes.INTERNAL_SERVER_ERROR; - } else { - logMethod = "info"; - msg = "Session successfully cleared"; - statusCode = StatusCodes.OK; - } - - this.logger[logMethod](loggerOptions, msg); - res.status(statusCode).send(msg); - }); - }; - - private getSessionDataEndpoint = async (req: Request, res: Response) => { - res.send(getSessionJSON(req.session as MySession)); - }; - - private validateRequest(req: Request) { - const result = validationResult(req); - if (!result.isEmpty()) { - throw new ValidationError(result.array()); - } - } - - registerRoutes = (): Router => { - const corsOpt = { - origin: config.corsAllowedOrigins, - credentials: true, - }; - - this.router.route(["/", "/verify"]).post( - body("address") - .exists() - .bail() - .custom( - (address, { req }) => - (req.addresses = this.validateAddresses(address)) - ), - body("chain") - .exists() - .bail() - .custom( - (chain, { req }) => (req.chain = this.validateSingleChainId(chain)) - ), - this.safeHandler(this.legacyVerifyEndpoint) - ); - - this.router.route(["/verify/etherscan"]).post( - // TODO: add validation - this.safeHandler(this.verifyFromEtherscan) - ); - - this.router.route(["/check-all-by-addresses", "/checkAllByAddresses"]).get( - query("addresses") - .exists() - .bail() - .custom( - (addresses, { req }) => - (req.addresses = this.validateAddresses(addresses)) - ), - query("chainIds") - .exists() - .bail() - .custom( - (chainIds, { req }) => - (req.chainIds = this.validateChainIds(chainIds)) - ), - this.safeHandler(this.checkAllByAddresses) - ); - - this.router.route(["/check-by-addresses", "/checkByAddresses"]).get( - query("addresses") - .exists() - .bail() - .custom( - (addresses, { req }) => - (req.addresses = this.validateAddresses(addresses)) - ), - query("chainIds") - .exists() - .bail() - .custom( - (chainIds, { req }) => - (req.chainIds = this.validateChainIds(chainIds)) - ), - this.safeHandler(this.checkByAddresses) - ); - - // Session APIs with session cookies require non "*" CORS - this.router - .route(["/session-data", "/session/data"]) - .all(cors(corsOpt)) - .get(cors(corsOpt), this.safeHandler(this.getSessionDataEndpoint)); - - this.router - .route(["/input-files", "/session/input-files"]) - .all(cors(corsOpt)) - .post(cors(corsOpt), this.safeHandler(this.addInputFilesEndpoint)); - - this.router - .route(["/restart-session", "/session/clear"]) - .all(cors(corsOpt)) - .post(cors(corsOpt), this.safeHandler(this.restartSessionEndpoint)); - - this.router - .route(["/verify-validated", "/session/verify-validated"]) - .all(cors(corsOpt)) - .post( - body("contracts").isArray(), - cors(corsOpt), - this.safeHandler(this.verifyValidatedEndpoint) - ); - - this.router - .route(["/session/verify/etherscan"]) - .all(cors(corsOpt)) - .post( - body("address").exists(), - body("chainId").exists(), - cors(corsOpt), - this.safeHandler(this.verifyFromEtherscanWithSession) - ); - - return this.router; - }; -} diff --git a/src/server/controllers/controllers.common.ts b/src/server/controllers/controllers.common.ts new file mode 100644 index 000000000..c6406e201 --- /dev/null +++ b/src/server/controllers/controllers.common.ts @@ -0,0 +1,12 @@ +import { NextFunction, RequestHandler, Request, Response } from "express"; +import { InternalServerError } from "../../common/errors"; + +export const safeHandler = (requestHandler: RequestHandler) => { + return async (req: Request, res: Response, next: NextFunction) => { + try { + return await requestHandler(req, res as any, next); + } catch (err: any) { + next(typeof err === "object" ? err : new InternalServerError(err.mesage)); + } + }; +}; diff --git a/src/server/controllers/repository/check-all-by-addresses.stateless.paths.yaml b/src/server/controllers/repository/check-all-by-addresses.stateless.paths.yaml new file mode 100644 index 000000000..7eec4885d --- /dev/null +++ b/src/server/controllers/repository/check-all-by-addresses.stateless.paths.yaml @@ -0,0 +1,80 @@ +openapi: "3.0.0" + +paths: + /check-all-by-addresses: + get: + summary: Check if contracts are verified (perfect or partial match) by addresses + description: Checks if contract with the desired chain and address is verified and in the repository. It will search for both perfect and partial matches. + tags: + - Repository + parameters: + - name: addresses + in: query + description: Comma seperated string of addresses to check for. + required: true + schema: + type: string + format: comma-separated-addresses + - name: chainIds + in: query + description: Comma separated string of chain IDs. + required: true + schema: + type: string + format: comma-separated-sourcify-chainIds + responses: + "200": + description: OK. Also returns `200` with status `false` when not found + content: + application/json: + schema: + type: array + items: + type: object + properties: + address: + type: string + chainIds: + type: array + items: + type: object + properties: + chainId: + type: string + status: + type: string + examples: + multiple results: + value: + - address: "0x6F1D75a53a8805DcA5347aE5F3eDE035CAE3CBC1" + chainIds: + - chainId: "5" + status: "perfect" + - chainId: "10" + status: "partial" + - chainId: "11155111" + status: "perfect" + - address: "0x751D7C0Cf91a9b7704541b44E5fF7BeC3D2caA6F" + chainIds: + - chainId: "5" + status: "partial" + - chainId: "10" + status: "perfect" + - address: "0x8D2548A5f641b00Cf0f5B693d4A72D8c0aE24d31" + chainIds: + - chainId: "5" + status: "perfect" + - address: "0x1f9cA631AE0C4890F99b38634C969b7E4f8719F0" + status: "false" + single result: + value: + - address: "0xEb30853fc616Bbb8f1444451A3c202cbcd08Fb47" + chainIds: + - chainId: "43114" + status: "perfect" + not found: + value: + - address: "0x1f9cA631AE0C4890F99b38634C969b7E4f8719F0" + status: "false" + - address: "0x8D2548A5f641b00Cf0f5B693d4A72D8c0aE24d31" + statues: "false" \ No newline at end of file diff --git a/src/server/controllers/repository/check-by-addresses.stateless.paths.yaml b/src/server/controllers/repository/check-by-addresses.stateless.paths.yaml new file mode 100644 index 000000000..a8951fc7c --- /dev/null +++ b/src/server/controllers/repository/check-by-addresses.stateless.paths.yaml @@ -0,0 +1,45 @@ +openapi: "3.0.0" + +paths: + /check-by-addresses: + get: + summary: Check by addresses (full match) + description: Checks if contract with the desired chain and address is verified and in the repository. + tags: + - Repository + parameters: + - name: addresses + in: query + description: The addresses of the contracts. + required: true + schema: + type: string + format: comma-separated-addresses + - name: chainIds + in: query + description: The IDs of the chains. + required: true + schema: + type: string + format: comma-separated-sourcify-chainIds + responses: + "200": + description: OK + content: + application/json: + schema: + type: array + items: + type: object + properties: + address: + type: string + example: "0xEb30853fc616Bbb8f1444451A3c202cbcd08Fb47" + status: + type: string + example: "perfect" + chainIds: + type: array + items: + type: string + example: ["43114", "137"] diff --git a/src/server/controllers/repository/get-contract-addresses-all.stateless.paths.yaml b/src/server/controllers/repository/get-contract-addresses-all.stateless.paths.yaml new file mode 100644 index 000000000..311d98cd7 --- /dev/null +++ b/src/server/controllers/repository/get-contract-addresses-all.stateless.paths.yaml @@ -0,0 +1,52 @@ +openapi: "3.0.0" + +paths: + /files/contracts/{chain}: + get: + summary: Get contract addresses (full or partial match) + description: Returns all verified contracts from the repository for the desired chain. Searches for full and partial matches. + tags: + - Repository + parameters: + - name: chain + in: path + required: true + schema: + type: string + format: sourcify-chainId + responses: + "200": + description: Chain is available as a full match or partial match in the repository + content: + application/json: + schema: + type: object + properties: + full: + type: array + items: + type: string + example: + [ + "0x1fE5d745beABA808AAdF52057Dd7AAA47b42cFD0", + "0xE9c31091868d68598Ac881738D159A63532d12f9", + ] + partial: + type: array + items: + type: string + example: + [ + "0x0000A906D248Cc99FB8CB296C8Ad8C6Df05431c9", + "0xE9c31091868d68598Ac881738D159A63532d12f9", + ] + "404": + description: Chain is not available as both full match or partial match in the repository + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "Contracts have not been found!" diff --git a/src/server/controllers/repository/get-file-static.stateless.paths.yaml b/src/server/controllers/repository/get-file-static.stateless.paths.yaml new file mode 100644 index 000000000..6a75994df --- /dev/null +++ b/src/server/controllers/repository/get-file-static.stateless.paths.yaml @@ -0,0 +1,42 @@ +openapi: "3.0.0" + +paths: + /contracts/{full_match | partial_match}/{chain}/{address}/{filePath}: + get: + summary: Get file from /repository + description: Retrieve statically served files over the server. + tags: + - Repository + parameters: + - name: Match type `full_match` or `partial_match` + in: path + required: true + schema: + type: string + format: match-type + - name: chain + in: path + required: true + schema: + type: string + format: sourcify-chainId + - name: address + in: path + required: true + schema: + type: string + format: address + - name: filePath + in: path + required: true + schema: + type: string + responses: + "200": + description: The file is found at the path + content: + text/plain: {} + "404": + description: The file is not found at the path + content: + text/plain: {} diff --git a/src/server/controllers/repository/get-file-tree-all.stateless.paths.yaml b/src/server/controllers/repository/get-file-tree-all.stateless.paths.yaml new file mode 100644 index 000000000..584767a26 --- /dev/null +++ b/src/server/controllers/repository/get-file-tree-all.stateless.paths.yaml @@ -0,0 +1,51 @@ +openapi: "3.0.0" + +paths: + /files/tree/any/{chain}/{address}: + get: + summary: Get file tree + description: Returns repository URLs for every file in the source tree for the desired chain and address. Searches for full and partial matches. + tags: + - Repository + parameters: + - name: chain + in: path + required: true + schema: + type: string + format: sourcify-chainId + - name: address + in: path + required: true + schema: + type: string + format: address + responses: + "200": + description: Contract is available + content: + application/json: + schema: + type: object + properties: + status: + type: string + example: "full" + files: + type: array + items: + type: string + example: + [ + "https://contractrepostaging.komputing.org/contracts/full_match/5/0x32a5d2240a60dcF7Af8EfAE6d886ec8BeD5f71bA/metadata.json", + ] + "404": + description: Contract is not available + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "Files have not been found!" diff --git a/src/server/controllers/repository/get-file-tree-full.stateless.paths.yaml b/src/server/controllers/repository/get-file-tree-full.stateless.paths.yaml new file mode 100644 index 000000000..a63f1988f --- /dev/null +++ b/src/server/controllers/repository/get-file-tree-full.stateless.paths.yaml @@ -0,0 +1,45 @@ +openapi: "3.0.0" + +paths: + /files/tree/{chain}/{address}: + get: + summary: Get file tree (full match) + description: Returns repository URLs for every file in the source tree for the desired chain and address. Searches only for full matches. + tags: + - Repository + parameters: + - name: chain + in: path + required: true + schema: + type: string + format: sourcify-chainId + - name: address + in: path + required: true + schema: + type: string + format: address + responses: + "200": + description: Contract is available + content: + application/json: + schema: + type: array + items: + type: string + example: + [ + "https://repo.sourcify.dev/contracts/full_match/5/0x1fE5d745beABA808AAdF52057Dd7AAA47b42cFD0/metadata.json", + ] + "404": + description: Contract is not available + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "Files have not been found!" diff --git a/src/server/controllers/repository/get-source-files-all.stateless.paths.yaml b/src/server/controllers/repository/get-source-files-all.stateless.paths.yaml new file mode 100644 index 000000000..27060df56 --- /dev/null +++ b/src/server/controllers/repository/get-source-files-all.stateless.paths.yaml @@ -0,0 +1,56 @@ +openapi: "3.0.0" + +paths: + /files/any/{chain}/{address}: + get: + summary: Get file tree + description: Returns repository URLs for every file in the source tree for the desired chain and address. Searches for full and partial matches. + tags: + - Repository + parameters: + - name: chain + in: path + required: true + schema: + type: string + format: sourcify-chainId + - name: address + in: path + required: true + schema: + type: string + format: address + responses: + "200": + description: Contract is available + content: + application/json: + schema: + type: object + properties: + status: + type: string + example: "full" + files: + type: array + items: + type: object + properties: + name: + type: string + example: "metadata.json" + path: + type: string + example: "/home/data/repository/contracts/full_match/3/0x0000A906D248Cc99FB8CB296C8Ad8C6Df05431c9/metadata.json" + content: + type: string + "404": + description: Contract is not available + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "Files have not been found!" diff --git a/src/server/controllers/repository/get-source-files-full.stateless.paths.yaml b/src/server/controllers/repository/get-source-files-full.stateless.paths.yaml new file mode 100644 index 000000000..2fc58d35d --- /dev/null +++ b/src/server/controllers/repository/get-source-files-full.stateless.paths.yaml @@ -0,0 +1,50 @@ +openapi: "3.0.0" + +paths: + /files/{chain}/{address}: + get: + summary: Get source files (full match) + description: Returns all verified sources from the repository for the desired contract address and chain, including `metadata.json`. Searches only for full matches. + tags: + - Repository + parameters: + - name: chain + in: path + required: true + schema: + type: string + format: sourcify-chainId + - name: address + in: path + required: true + schema: + type: string + format: address + responses: + "200": + description: Contract is available in the repository + content: + application/json: + schema: + type: array + items: + type: object + properties: + name: + type: string + example: "metadata.json" + path: + type: string + example: "/home/data/repository/contracts/full_match/3/0x0000A906D248Cc99FB8CB296C8Ad8C6Df05431c9/metadata.json" + content: + type: string + "404": + description: Contract is not available in the repository + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "Files have not been found!" diff --git a/src/server/controllers/repository/repository.handlers.ts b/src/server/controllers/repository/repository.handlers.ts new file mode 100644 index 000000000..2c38168e8 --- /dev/null +++ b/src/server/controllers/repository/repository.handlers.ts @@ -0,0 +1,123 @@ +import { Response, Request, NextFunction } from "express"; +import { StatusCodes } from "http-status-codes"; +import { ContractData, FilesInfo, MatchLevel } from "../../types"; +import { NotFoundError } from "../../../common/errors"; +import { Match } from "@ethereum-sourcify/lib-sourcify"; +import { services } from "../../services/services"; + +type RetrieveMethod = ( + chain: string, + address: string, + match: MatchLevel +) => Promise>; +type ConractRetrieveMethod = (chain: string) => Promise; + +export function createEndpoint( + retrieveMethod: RetrieveMethod, + match: MatchLevel, + reportMatchStatus = false +) { + return async (req: Request, res: Response, next: NextFunction) => { + let retrieved: FilesInfo; + try { + retrieved = await retrieveMethod( + req.params.chain, + req.params.address, + match + ); + if (retrieved.files.length === 0) + return next(new NotFoundError("Files have not been found!")); + } catch (err: any) { + return next(new NotFoundError(err.message)); + } + return res + .status(StatusCodes.OK) + .json(reportMatchStatus ? retrieved : retrieved.files); + }; +} + +export function createContractEndpoint( + contractRetrieveMethod: ConractRetrieveMethod +) { + return async (req: Request, res: Response, next: NextFunction) => { + let retrieved: ContractData; + try { + retrieved = await contractRetrieveMethod(req.params.chain); + if (retrieved.full.length === 0 && retrieved.partial.length === 0) + return next(new NotFoundError("Contracts have not been found!")); + } catch (err: any) { + return next(new NotFoundError(err.message)); + } + return res.status(StatusCodes.OK).json(retrieved); + }; +} + +export function checkAllByChainAndAddressEndpoint(req: any, res: Response) { + const map: Map = new Map(); + const addresses = req.query.addresses.split(","); + const chainIds = req.query.chainIds.split(","); + for (const address of addresses) { + for (const chainId of chainIds) { + try { + const found: Match[] = services.repository.checkAllByChainAndAddress( + address, + chainId + ); + if (found.length != 0) { + if (!map.has(address)) { + map.set(address, { + address, + create2Args: found[0].create2Args, + chainIds: [], + }); + } + + map.get(address).chainIds.push({ chainId, status: found[0].status }); + } + } catch (error) { + // ignore + } + } + if (!map.has(address)) { + map.set(address, { + address: address, + status: "false", + }); + } + } + const resultArray = Array.from(map.values()); + res.send(resultArray); +} + +export function checkByChainAndAddressesEnpoint(req: any, res: Response) { + const map: Map = new Map(); + const addresses = req.query.addresses.split(","); + const chainIds = req.query.chainIds.split(","); + for (const address of addresses) { + for (const chainId of chainIds) { + try { + const found: Match[] = services.repository.checkByChainAndAddress( + address, + chainId + ); + if (found.length != 0) { + if (!map.has(address)) { + map.set(address, { address, status: "perfect", chainIds: [] }); + } + + map.get(address).chainIds.push(chainId); + } + } catch (error) { + // ignore + } + } + if (!map.has(address)) { + map.set(address, { + address: address, + status: "false", + }); + } + } + const resultArray = Array.from(map.values()); + res.send(resultArray); +} diff --git a/src/server/controllers/repository/repository.routes.ts b/src/server/controllers/repository/repository.routes.ts new file mode 100644 index 000000000..591f2d1dc --- /dev/null +++ b/src/server/controllers/repository/repository.routes.ts @@ -0,0 +1,67 @@ +import { Router, Response } from "express"; +import { services } from "../../services/services"; + +import { + createEndpoint, + createContractEndpoint, + checkAllByChainAndAddressEndpoint, + checkByChainAndAddressesEnpoint, +} from "./repository.handlers"; +import { safeHandler } from "../controllers.common"; + +const REPOSITORY_CONTROLLER_PREFIX = "/files"; + +const router: Router = Router(); + +[ + { + prefix: "/tree/any", + method: createEndpoint(services.repository.getTree, "any_match", true), + }, + { + prefix: "/any", + method: createEndpoint(services.repository.getContent, "any_match", true), + }, + { + prefix: "/tree", + method: createEndpoint(services.repository.getTree, "full_match"), + }, + { + prefix: "/contracts", + method: createContractEndpoint(services.repository.getContracts), + }, + { + prefix: "", + method: createEndpoint(services.repository.getContent, "full_match"), + }, +].forEach((pair) => { + router + .route( + pair.prefix != "/contracts" + ? REPOSITORY_CONTROLLER_PREFIX + pair.prefix + "/:chain/:address" + : REPOSITORY_CONTROLLER_PREFIX + pair.prefix + "/:chain" + ) + .get(safeHandler(pair.method)); +}); + +// check(All)ByAddresses endpoints have different format then the ones above. check(All)ByAddresses take query params instead of path params. +router + .route("/check-all-by-addresses") + .get(safeHandler(checkAllByChainAndAddressEndpoint)); + +router + .route("/check-by-addresses") + .get(safeHandler(checkByChainAndAddressesEnpoint)); + +export const deprecatedRoutesRepository = { + "/checkAllByAddresses": { + method: "get", + path: "/check-all-by-addresses", + }, + "/checkByAddresses": { + method: "get", + path: "/check-by-addresses", + }, +}; + +export default router; diff --git a/src/server/controllers/testartifacts/testartifacts.handlers.ts b/src/server/controllers/testartifacts/testartifacts.handlers.ts new file mode 100644 index 000000000..579081332 --- /dev/null +++ b/src/server/controllers/testartifacts/testartifacts.handlers.ts @@ -0,0 +1,52 @@ +import { Response, Request } from "express"; +import { StatusCodes } from "http-status-codes"; + +/** + * Function to find the latest run of the test-chains-regularly workflow. Fetches the identifiers of the run. Also fetches the artifact .json of the run. Returns the artifact and the identifiers. + * + * See API docs: https://circleci.com/docs/api/v2 + * + * @returns the testReport artifact, jobNumber, workflowId, and the pipelineNumber of the last run of the workflow. + */ +export async function findLatestChainTest(req: Request, res: Response) { + const CIRCLE_PROJECT_ID = process.env.CIRCLE_PROJECT_ID || 183183290; + const WORKFLOWS_URL = `https://circleci.com/api/v2/insights/gh/ethereum/sourcify/workflows/test-chains-regularly?branch=master`; + // Fetch last runs of the chain test workflow: https://circleci.com/docs/api/v2/#operation/getProjectWorkflowRuns + const workflowResponse = await (await fetch(WORKFLOWS_URL)).json(); + if (workflowResponse.items.length === 0) { + return res + .status(StatusCodes.NOT_FOUND) + .json({ error: "No workflows returned from " + WORKFLOWS_URL }); + } + const workflowId = workflowResponse.items[0].id; + + const LAST_WORKFLOW_URL = `https://circleci.com/api/v2/workflow/${workflowId}`; + const JOB_URL = `https://circleci.com/api/v2/workflow/${workflowId}/job`; + + // Run requests in parallel. + const [lastWorkflowResponse, jobResponse] = await Promise.all([ + // Fetch the last workflow object to get the pipeline number + (await fetch(LAST_WORKFLOW_URL)).json(), + // Fetch the job of the last workflow for the job number + (await fetch(JOB_URL)).json(), + ]); + const pipelineNumber = lastWorkflowResponse.pipeline_number; + const jobNumber = jobResponse.items[0].job_number; + const jobId = jobResponse.items[0].id; + // Fetch the test report .json artifact + const ARTIFACT_URL = `https://dl.circleci.com/private/output/job/${jobId}/artifacts/0/chain-tests-report/report.json`; + const artifactResponse = await fetch(ARTIFACT_URL); + const artifactResponseJson = await artifactResponse.json(); + if (!artifactResponse.ok) { + return res.status(artifactResponse.status).json(artifactResponseJson); + } + + return res.json({ + testReport: artifactResponseJson, + workflowId, + pipelineNumber, + jobNumber, + jobId, + CIRCLE_PROJECT_ID, + }); +} diff --git a/src/server/controllers/testartifacts/testartifacts.routes.ts b/src/server/controllers/testartifacts/testartifacts.routes.ts new file mode 100644 index 000000000..8f68440fe --- /dev/null +++ b/src/server/controllers/testartifacts/testartifacts.routes.ts @@ -0,0 +1,9 @@ +import { Router } from "express"; +import { findLatestChainTest } from "./testartifacts.handlers"; +import { safeHandler } from "../controllers.common"; + +const router: Router = Router(); + +router.route(["/"]).get(safeHandler(findLatestChainTest)); + +export default router; diff --git a/src/server/controllers/verification/create2/create2.common.ts b/src/server/controllers/verification/create2/create2.common.ts new file mode 100644 index 000000000..d0386bda7 --- /dev/null +++ b/src/server/controllers/verification/create2/create2.common.ts @@ -0,0 +1,28 @@ +import { Request } from "express"; + +type Create2RequestBody = { + deployerAddress: string; + salt: string; + abiEncodedConstructorArguments?: string; + files: { + [key: string]: string; + }; + create2Address: string; + clientToken?: string; +}; + +export interface Create2VerifyRequest extends Request { + body: Create2RequestBody; +} + +export interface SessionCreate2VerifyRequest extends Request { + body: Create2RequestBody & { + verificationId: string; + }; +} + +export interface SessionCreate2VerifyRequest extends Request { + body: Create2RequestBody & { + verificationId: string; + }; +} diff --git a/src/server/controllers/verification/create2/create2.routes.ts b/src/server/controllers/verification/create2/create2.routes.ts new file mode 100644 index 000000000..63023bfd8 --- /dev/null +++ b/src/server/controllers/verification/create2/create2.routes.ts @@ -0,0 +1,11 @@ +import create2StatelessRoutes from "./stateless/create2.stateless.routes"; +import create2SessionRoutes from "./session/create2.session.routes"; + +import { Router } from "express"; + +const router = Router(); + +router.use("/", create2StatelessRoutes); +router.use("/", create2SessionRoutes); + +export default router; diff --git a/src/server/controllers/verification/create2/session/compile.create2.session.paths.yaml b/src/server/controllers/verification/create2/session/compile.create2.session.paths.yaml new file mode 100644 index 000000000..673c23f8f --- /dev/null +++ b/src/server/controllers/verification/create2/session/compile.create2.session.paths.yaml @@ -0,0 +1,79 @@ +openapi: "3.0.0" + +paths: + /session/verify/create2/compile: + post: + summary: Precompile a checked contract for create2 verification + tags: + - Session Verification + requestBody: + content: + application/json: + schema: + type: object + properties: + verificationId: + type: string + description: The verificationId of the checkedContract + required: + - verificationId + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + properties: + contracts: + type: array + items: + type: object + properties: + verificationId: + type: string + example: "0x8e2d0b6fef24d782a7c47e67ddfd2f5ca9cace335ce42bd10701ebba609e1244" + constructorArgumentsArray: + type: array + items: + type: object + properties: + internalType: + type: string + name: + type: string + type: + type: string + creationBytecode: + type: string + example: "0x608060405234801561001057600080fd5b5060405161020638038061020683398181016040528101906100329190610054565b80600081905550506100a7565b60008151905061004e81610090565b92915050565b60006020828403121561006a5761006961008b565b5b60006100788482850161003f565b91505092915050565b6000819050919050565b600080fd5b61009981610081565b81146100a457600080fd5b50565b610150806100b66000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100d9565b60405180910390f35b610073600480360381019061006e919061009d565b61007e565b005b60008054905090565b8060008190555050565b60008135905061009781610103565b92915050565b6000602082840312156100b3576100b26100fe565b5b60006100c184828501610088565b91505092915050565b6100d3816100f4565b82525050565b60006020820190506100ee60008301846100ca565b92915050565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea26469706673582212201d279c878911e1b98344e0d39ca1fe4c6aa7b9c649951e3abc365183e0e1695964736f6c63430008070033" + compiledPath: + type: string + example: "contracts/SingleFile.sol" + name: + type: string + example: "Storage" + files: + type: object + properties: + found: + type: array + items: + type: string + example: "contracts/SingleFile.sol" + missing: + type: object + invalid: + type: object + status: + type: string + example: "error" + unused: + type: array + items: + type: string + files: + type: array + items: + type: string + example: "metadata.json" diff --git a/src/server/controllers/verification/create2/session/create2.session.handlers.ts b/src/server/controllers/verification/create2/session/create2.session.handlers.ts new file mode 100644 index 000000000..ff9079201 --- /dev/null +++ b/src/server/controllers/verification/create2/session/create2.session.handlers.ts @@ -0,0 +1,81 @@ +import { Response, Request } from "express"; +import { services } from "../../../../services/services"; +import { getSessionJSON } from "../../verification.common"; +import { + CheckedContract, + isEmpty, + verifyCreate2, +} from "@ethereum-sourcify/lib-sourcify"; +import { BadRequestError } from "../../../../../common/errors"; +import { SessionCreate2VerifyRequest } from "../create2.common"; + +export async function sessionVerifyCreate2( + req: SessionCreate2VerifyRequest, + res: Response +) { + const session = req.session; + if (!session.contractWrappers || isEmpty(session.contractWrappers)) { + throw new BadRequestError("There are currently no pending contracts."); + } + + const { + deployerAddress, + salt, + abiEncodedConstructorArguments, + verificationId, + create2Address, + } = req.body; + + const contractWrapper = session.contractWrappers[verificationId]; + + const contract = new CheckedContract( + contractWrapper.contract.metadata, + contractWrapper.contract.solidity, + contractWrapper.contract.missing, + contractWrapper.contract.invalid + ); + + const match = await verifyCreate2( + contract, + deployerAddress, + salt, + create2Address, + abiEncodedConstructorArguments + ); + + contractWrapper.status = match.status || "error"; + contractWrapper.statusMessage = match.message; + contractWrapper.storageTimestamp = match.storageTimestamp; + contractWrapper.address = match.address; + contractWrapper.chainId = "0"; + + if (match.status) { + await services.repository.storeMatch(contract, match); + } + + res.send(getSessionJSON(session)); +} + +export async function sessionPrecompileContract(req: Request, res: Response) { + const session = req.session; + if (!session.contractWrappers || isEmpty(session.contractWrappers)) { + throw new BadRequestError("There are currently no pending contracts."); + } + + const verificationId = req.body.verificationId; + const contractWrapper = session.contractWrappers[verificationId]; + + const checkedContract = new CheckedContract( + contractWrapper.contract.metadata, + contractWrapper.contract.solidity, + contractWrapper.contract.missing, + contractWrapper.contract.invalid + ); + + const compilationResult = await checkedContract.recompile(); + + contractWrapper.contract.creationBytecode = + compilationResult.creationBytecode; + + res.send(getSessionJSON(session)); +} diff --git a/src/server/controllers/verification/create2/session/create2.session.paths.yaml b/src/server/controllers/verification/create2/session/create2.session.paths.yaml new file mode 100644 index 000000000..9d70a962b --- /dev/null +++ b/src/server/controllers/verification/create2/session/create2.session.paths.yaml @@ -0,0 +1,108 @@ +openapi: "3.0.0" + +paths: + /session/verify/create2: + post: + summary: Verify create2 + tags: + - Session Verification + requestBody: + content: + application/json: + schema: + type: object + properties: + clientToken: + type: string + description: Mandatory client token to call this api + deployerAddress: + type: string + format: address + description: The deployer addresses + salt: + oneOf: + - type: string + - type: number + description: Salt + abiEncodedConstructorArguments: + type: string + description: ABI encoded constructor arguments + create2Address: + type: string + format: address + description: The create2 addresses + verificationId: + type: string + description: The verificationId of the checkedContract + required: + - deployerAddress + - verificationId + - create2Address + - salt + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + properties: + contracts: + type: array + items: + type: object + properties: + verificationId: + type: string + example: "0x8e2d0b6fef24d782a7c47e67ddfd2f5ca9cace335ce42bd10701ebba609e1244" + constructorArgumentsArray: + type: array + items: + type: object + properties: + internalType: + type: string + name: + type: string + type: + type: string + creationBytecode: + type: string + example: "0x608060405234801561001057600080fd5b5060405161020638038061020683398181016040528101906100329190610054565b80600081905550506100a7565b60008151905061004e81610090565b92915050565b60006020828403121561006a5761006961008b565b5b60006100788482850161003f565b91505092915050565b6000819050919050565b600080fd5b61009981610081565b81146100a457600080fd5b50565b610150806100b66000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100d9565b60405180910390f35b610073600480360381019061006e919061009d565b61007e565b005b60008054905090565b8060008190555050565b60008135905061009781610103565b92915050565b6000602082840312156100b3576100b26100fe565b5b60006100c184828501610088565b91505092915050565b6100d3816100f4565b82525050565b60006020820190506100ee60008301846100ca565b92915050565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea26469706673582212201d279c878911e1b98344e0d39ca1fe4c6aa7b9c649951e3abc365183e0e1695964736f6c63430008070033" + compiledPath: + type: string + example: "contracts/SingleFile.sol" + name: + type: string + example: "Storage" + address: + type: string + example: "0x4e3953cfaf4e3cc4e98d024aa1ec690733588e10" + files: + type: object + properties: + found: + type: array + items: + type: string + example: "contracts/SingleFile.sol" + missing: + type: object + invalid: + type: object + status: + type: string + example: "perfect" + storageTimestamp: + type: string + format: date-time + example: "2022-10-26T15:08:14.320Z" + unused: + type: array + items: + type: string + files: + type: array + items: + type: string + example: "metadata.json" diff --git a/src/server/controllers/verification/create2/session/create2.session.routes.ts b/src/server/controllers/verification/create2/session/create2.session.routes.ts new file mode 100644 index 000000000..825fdf32e --- /dev/null +++ b/src/server/controllers/verification/create2/session/create2.session.routes.ts @@ -0,0 +1,19 @@ +import { Router } from "express"; +import { + sessionVerifyCreate2, + sessionPrecompileContract, +} from "./create2.session.handlers"; +import { authenticatedRequest } from "../../verification.common"; +import { safeHandler } from "../../../controllers.common"; + +const router: Router = Router(); + +router + .route("/session/verify/create2") + .post(authenticatedRequest, safeHandler(sessionVerifyCreate2)); + +router + .route(["/session/verify/create2/compile"]) + .post(safeHandler(sessionPrecompileContract)); + +export default router; diff --git a/src/server/controllers/verification/create2/stateless/create2.stateless.handlers.ts b/src/server/controllers/verification/create2/stateless/create2.stateless.handlers.ts new file mode 100644 index 000000000..e81dff8a8 --- /dev/null +++ b/src/server/controllers/verification/create2/stateless/create2.stateless.handlers.ts @@ -0,0 +1,64 @@ +import { Response } from "express"; +import { services } from "../../../../services/services"; +import { + extractFilesFromJSON, + stringifyInvalidAndMissing, +} from "../../verification.common"; +import { + CheckedContract, + checkFiles, + verifyCreate2, +} from "@ethereum-sourcify/lib-sourcify"; +import { BadRequestError } from "../../../../../common/errors"; +import { Create2VerifyRequest } from "../create2.common"; + +export async function verifyCreate2Handler( + req: Create2VerifyRequest, + res: Response +) { + const { + deployerAddress, + salt, + abiEncodedConstructorArguments, + files, + create2Address, + } = req.body; + + const inputFiles = extractFilesFromJSON(files); + if (!inputFiles) { + throw new BadRequestError("No files found"); + } + + let checkedContracts: CheckedContract[]; + try { + checkedContracts = await checkFiles(inputFiles); + } catch (error) { + if (error instanceof Error) throw new BadRequestError(error.message); + throw error; + } + + const errors = checkedContracts + .filter((contract) => !CheckedContract.isValid(contract, true)) + .map(stringifyInvalidAndMissing); + if (errors.length) { + throw new BadRequestError( + "Invalid or missing sources in:\n" + errors.join("\n") + ); + } + + const contract: CheckedContract = checkedContracts[0]; + + const match = await verifyCreate2( + contract, + deployerAddress, + salt, + create2Address, + abiEncodedConstructorArguments + ); + + if (match.status) { + await services.repository.storeMatch(contract, match); + } + + res.send({ result: [match] }); +} diff --git a/src/server/controllers/verification/create2/stateless/create2.stateless.paths.yaml b/src/server/controllers/verification/create2/stateless/create2.stateless.paths.yaml new file mode 100644 index 000000000..4d9000d7b --- /dev/null +++ b/src/server/controllers/verification/create2/stateless/create2.stateless.paths.yaml @@ -0,0 +1,148 @@ +openapi: "3.0.0" + +paths: + /verify/create2: + post: + summary: Verify create2 + tags: + - Stateless Verification + requestBody: + content: + application/json: + schema: + type: object + properties: + clientToken: + type: string + description: Mandatory client token to call this api + example: "" + deployerAddress: + type: string + format: address + description: The deployer addresses + example: "0x7dBA08Bdc233B28e2c99723c402Fc8F4e35AB55B" + salt: + oneOf: + - type: string + - type: number + example: "0x00" + abiEncodedConstructorArguments: + type: string + description: ABI encoded constructor arguments + example: "00000000000000000000000006595656b93ce14834f0d22b7bbda4382d5ab51000000000000000000000000000000000000000000000000d8d726b7177a8000" + files: + type: object + additionalProperties: + type: string + description: An array of files + example: + value: + metadata.json: "{...}" + SimpleStorage.sol: "// file" + create2Address: + type: string + format: address + description: The create2 address + example: "0x07880D44b0f7b75464ad18fc2b980049c40A8bc3" + required: + - deployerAddress + - files + - create2Address + - salt + responses: + "200": + description: The contract has been successfully checked or sourcified + content: + application/json: + schema: + type: object + properties: + result: + type: array + items: + type: object + properties: + address: + type: string + chainId: + type: string + status: + type: string + message: + type: string + libraryMap: + type: object + examples: + Perfect Match: + value: + result: + - address: "0x123f681646d4a755815f9cb19e1acc8565a0c2ac" + chainId: "1" + status: "perfect" + libraryMap: + lib1: "0x3f681646d4a755815f9cb19e1acc8565a0c2ac" + lib2: "0x4f681646d4a755815f9cb19e1acc8565a0c2ac" + Partial Match: + value: + result: + - address: "0x123f681646d4a755815f9cb19e1acc8565a0c2ac" + chainId: "1" + status: "partial" + libraryMap: + lib1: "0x3f681646d4a755815f9cb19e1acc8565a0c2ac" + lib2: "0x4f681646d4a755815f9cb19e1acc8565a0c2ac" + Not Deployed: + value: + result: + - address: "0x123f681646d4a755815f9cb19e1acc8565a0c2ac" + chainId: "1" + status: "null" + message: "Chain #1 does not have a contract deployed at 0x...." + "400": + description: Bad Request + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + Metadata not found: + value: + error: 'Metadata file not found. Did you include "metadata.json"?' + Bad Formatted Json: + value: + error: "Unexpected token ' in JSON at position 107" + "404": + description: Not Found + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + File Not Found: + value: + error: "Couldn't extract files from the request. Please make sure you have added files" + "500": + description: Internal Server Error + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + Resource Missing: + value: + error: "Resource missing; unsuccessful fetching: contracts/SingleFile.sol" + Create2 Address Mismatch: + value: + error: "The provided create2 address doesn't match server's generated one. Expected: 0xcC06e7a66dA666d75870a37B838749894136e0fA ; Received: 0x7dBA08Bdc233B28e2c99723c402Fc8F4e35AB55B ;" + Deployed and recompiled mismatch: + value: + error: "The deployed and recompiled bytecode don't match." diff --git a/src/server/controllers/verification/create2/stateless/create2.stateless.routes.ts b/src/server/controllers/verification/create2/stateless/create2.stateless.routes.ts new file mode 100644 index 000000000..2133938e5 --- /dev/null +++ b/src/server/controllers/verification/create2/stateless/create2.stateless.routes.ts @@ -0,0 +1,12 @@ +import { Router } from "express"; +import { verifyCreate2Handler } from "./create2.stateless.handlers"; +import { authenticatedRequest } from "../../verification.common"; +import { safeHandler } from "../../../controllers.common"; + +const router: Router = Router(); + +router + .route("/verify/create2") + .post(authenticatedRequest, safeHandler(verifyCreate2Handler)); + +export default router; diff --git a/src/server/controllers/verification/etherscan/etherscan.common.ts b/src/server/controllers/verification/etherscan/etherscan.common.ts new file mode 100644 index 000000000..4e70eaa08 --- /dev/null +++ b/src/server/controllers/verification/etherscan/etherscan.common.ts @@ -0,0 +1,191 @@ +import { etherscanAPIs } from "../../../../config"; +import { BadRequestError } from "../../../../common/errors"; +import { + JsonInput, + Metadata, + findContractPathFromContractName, + useCompiler, +} from "@ethereum-sourcify/lib-sourcify"; +import { TooManyRequests } from "../../../../common/errors/TooManyRequests"; + +export type EtherscanResult = { + SourceCode: string; + ABI: string; + ContractName: string; + CompilerVersion: string; + OptimizationUsed: string; + Runs: string; + ConstructorArguments: string; + EVMVersion: string; + Library: string; + LicenseType: string; + Proxy: string; + Implementation: string; + SwarmSource: string; +}; + +export const parseSolcJsonInput = (sourceCodeObject: string) => { + return JSON.parse(sourceCodeObject.slice(1, -1)); +}; + +export const isEtherscanMultipleFilesObject = (sourceCodeObject: string) => { + try { + return Object.keys(JSON.parse(sourceCodeObject)).length > 0; + } catch (e) { + return false; + } +}; + +export const isEtherscanSolcJsonInput = (sourceCodeObject: string) => { + if (sourceCodeObject.startsWith("{{")) { + return true; + } + return false; +}; + +export const getSolcJsonInputFromEtherscanResult = ( + etherscanResult: EtherscanResult, + sources: any +): JsonInput => { + const generatedSettings = { + optimizer: { + enabled: etherscanResult.OptimizationUsed === "1", + runs: parseInt(etherscanResult.Runs), + }, + outputSelection: { + "*": { + "*": ["metadata", "evm.deployedBytecode.object"], + }, + }, + evmVersion: + etherscanResult.EVMVersion.toLowerCase() !== "default" + ? etherscanResult.EVMVersion + : undefined, + libraries: {}, // TODO: Check the library format + }; + const solcJsonInput = { + language: "Solidity", + sources, + settings: generatedSettings, + }; + return solcJsonInput; +}; + +export const processRequestFromEtherscan = async ( + chain: string, + address: string +): Promise => { + if (Object.keys(etherscanAPIs).includes(chain) === false) { + throw new BadRequestError( + `Requested chain ${chain} is not supported for importing from Etherscan` + ); + } + + const url = `${etherscanAPIs[chain].apiURL}/api?module=contract&action=getsourcecode&address=${address}&apikey=${etherscanAPIs[chain].apiKey}`; + + const response = await fetch(url); + const resultJson = await response.json(); + if ( + resultJson.message === "NOTOK" && + resultJson.result.includes("Max rate limit reached") + ) { + throw new TooManyRequests("Etherscan API rate limit reached, try later"); + } + + if (resultJson.message === "NOTOK") { + throw new BadRequestError( + "Error in Etherscan API response. Result message: " + resultJson.message + ); + } + if (resultJson.result[0].SourceCode === "") { + throw new BadRequestError("This contract is not verified on Etherscan"); + } + const contractResultJson = resultJson.result[0]; + const sourceCodeObject = contractResultJson.SourceCode; + const compilerVersion = + contractResultJson.CompilerVersion.charAt(0) === "v" + ? contractResultJson.CompilerVersion.slice(1) + : contractResultJson.CompilerVersion; + // TODO: this is not used by lib-sourcify's useCompiler + const contractName = contractResultJson.ContractName; + + let solcJsonInput: JsonInput; + // SourceCode can be the Solidity code if there is only one contract file, or the json object if there are multiple files + if (isEtherscanSolcJsonInput(sourceCodeObject)) { + solcJsonInput = parseSolcJsonInput(sourceCodeObject); + + if (solcJsonInput?.settings) { + // Tell compiler to output metadata and bytecode + solcJsonInput.settings.outputSelection["*"]["*"] = [ + "metadata", + "evm.deployedBytecode.object", + ]; + } + } else if (isEtherscanMultipleFilesObject(sourceCodeObject)) { + solcJsonInput = getSolcJsonInputFromEtherscanResult( + contractResultJson, + JSON.parse(sourceCodeObject) + ); + } else { + const contractPath = contractResultJson.ContractName + ".sol"; + const sources = { + [contractPath]: { + content: sourceCodeObject, + }, + }; + solcJsonInput = getSolcJsonInputFromEtherscanResult( + contractResultJson, + sources + ); + } + + if (!solcJsonInput) { + throw new BadRequestError( + "Sourcify cannot generate the solcJsonInput from Etherscan result" + ); + } + + return { + compilerVersion, + solcJsonInput, + contractName, + }; +}; + +export const getMetadataFromCompiler = async ( + compilerVersion: string, + solcJsonInput: JsonInput, + contractName: string +): Promise => { + const compilationResult = await useCompiler(compilerVersion, solcJsonInput); + + const contractPath = findContractPathFromContractName( + compilationResult.contracts, + contractName + ); + + if (!contractPath) { + throw new BadRequestError( + "This contract was verified with errors on Etherscan" + ); + } + + return JSON.parse( + compilationResult.contracts[contractPath][contractName].metadata + ); +}; + +export const getMappedSourcesFromJsonInput = (jsonInput: JsonInput) => { + const mappedSources: any = {}; + for (const name in jsonInput.sources) { + const source = jsonInput.sources[name]; + if (source.content) { + mappedSources[name] = source.content; + } + } + return mappedSources; +}; + +export const stringToBase64 = (str: string): string => { + return Buffer.from(str, "utf8").toString("base64"); +}; diff --git a/src/server/controllers/verification/etherscan/etherscan.routes.ts b/src/server/controllers/verification/etherscan/etherscan.routes.ts new file mode 100644 index 000000000..c23ca962b --- /dev/null +++ b/src/server/controllers/verification/etherscan/etherscan.routes.ts @@ -0,0 +1,11 @@ +import etherscanStatelessRoutes from "./stateless/etherscan.stateless.routes"; +import etherscanSessionRoutes from "./session/etherscan.session.routes"; + +import { Router } from "express"; + +const router = Router(); + +router.use("/", etherscanStatelessRoutes); +router.use("/", etherscanSessionRoutes); + +export default router; diff --git a/src/server/controllers/verification/etherscan/session/etherscan.session.handlers.ts b/src/server/controllers/verification/etherscan/session/etherscan.session.handlers.ts new file mode 100644 index 000000000..de5014d4b --- /dev/null +++ b/src/server/controllers/verification/etherscan/session/etherscan.session.handlers.ts @@ -0,0 +1,82 @@ +import { Response, Request } from "express"; +import { services } from "../../../../services/services"; +import { + ContractWrapperMap, + checkContractsInSession, + getSessionJSON, + isVerifiable, + saveFiles, + verifyContractsInSession, +} from "../../verification.common"; +import { PathContent } from "@ethereum-sourcify/lib-sourcify"; +import { BadRequestError } from "../../../../../common/errors"; +import { + getMetadataFromCompiler, + processRequestFromEtherscan, + stringToBase64, +} from "../etherscan.common"; +import { checkSupportedChainId } from "../../../../../sourcify-chains"; + +export async function sessionVerifyFromEtherscan(req: Request, res: Response) { + checkSupportedChainId(req.body.chain); + + const chain = req.body.chain as string; + const address = req.body.address; + + const { compilerVersion, solcJsonInput, contractName } = + await processRequestFromEtherscan(chain, address); + + const metadata = await getMetadataFromCompiler( + compilerVersion, + solcJsonInput, + contractName + ); + + const pathContents: PathContent[] = Object.keys(solcJsonInput.sources).map( + (path) => { + return { + path: path, + content: stringToBase64(solcJsonInput.sources[path].content), + }; + } + ); + pathContents.push({ + path: "metadata.json", + content: stringToBase64(JSON.stringify(metadata)), + }); + const session = req.session; + const newFilesCount = saveFiles(pathContents, session); + if (newFilesCount === 0) { + throw new BadRequestError("The contract didn't add any new file"); + } + + await checkContractsInSession(session); + if (!session.contractWrappers) { + throw new BadRequestError( + "Unknown error during the Etherscan verification process" + ); + return; + } + + const verifiable: ContractWrapperMap = {}; + for (const id of Object.keys(session.contractWrappers)) { + const contractWrapper = session.contractWrappers[id]; + if (contractWrapper) { + if (!contractWrapper.address) { + contractWrapper.address = address; + contractWrapper.chainId = chain; + } + if (isVerifiable(contractWrapper)) { + verifiable[id] = contractWrapper; + } + } + } + + await verifyContractsInSession( + verifiable, + session, + services.verification, + services.repository + ); + res.send(getSessionJSON(session)); +} diff --git a/src/server/controllers/verification/etherscan/session/etherscan.session.paths.yaml b/src/server/controllers/verification/etherscan/session/etherscan.session.paths.yaml new file mode 100644 index 000000000..d17008792 --- /dev/null +++ b/src/server/controllers/verification/etherscan/session/etherscan.session.paths.yaml @@ -0,0 +1,102 @@ +openapi: "3.0.0" + +paths: + /session/verify/etherscan: + post: + summary: Verify create2 + tags: + - Session Verification + requestBody: + content: + application/json: + schema: + type: object + properties: + address: + type: string + format: address + chainId: + type: string + format: supported-chainId + required: + - address + - chainId + multipart/form-data: + schema: + type: object + required: + - address + - chain + properties: + address: + type: string + format: address + chain: + type: string + format: supported-chainId + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + properties: + contracts: + type: array + items: + type: object + properties: + verificationId: + type: string + example: "0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe" + compiledPath: + type: string + example: "browser/1_Storage.sol" + name: + type: string + example: "Storage" + compilerVersion: + type: string + example: "0.6.6+commit.6c089d02" + address: + type: string + example: "0x656d0062eC89c940213E3F3170EA8b2add1c0143" + chainId: + type: string + example: "100" + files: + type: object + properties: + found: + type: array + items: + type: string + example: "browser/1_Storage.sol" + missing: + type: array + items: + type: string + status: + type: string + example: "perfect" + storageTimestamp: + type: string + format: date-time + example: "2021-01-12T15:41:56.502Z" + unused: + type: array + items: + type: string + "429": + description: Bad Request + content: + application/json: + schema: + type: object + properties: + error: + type: string + oneOf: + - example: "Etherscan API rate limit reached, try later" + - example: "This contract is not verified on Etherscan" diff --git a/src/server/controllers/verification/etherscan/session/etherscan.session.routes.ts b/src/server/controllers/verification/etherscan/session/etherscan.session.routes.ts new file mode 100644 index 000000000..7001ae4da --- /dev/null +++ b/src/server/controllers/verification/etherscan/session/etherscan.session.routes.ts @@ -0,0 +1,11 @@ +import { Router } from "express"; +import { sessionVerifyFromEtherscan } from "./etherscan.session.handlers"; +import { safeHandler } from "../../../controllers.common"; + +const router: Router = Router(); + +router + .route(["/session/verify/etherscan"]) + .post(safeHandler(sessionVerifyFromEtherscan)); + +export default router; diff --git a/src/server/controllers/verification/etherscan/stateless/etherscan.stateless.handlers.ts b/src/server/controllers/verification/etherscan/stateless/etherscan.stateless.handlers.ts new file mode 100644 index 000000000..45bb6ecb0 --- /dev/null +++ b/src/server/controllers/verification/etherscan/stateless/etherscan.stateless.handlers.ts @@ -0,0 +1,38 @@ +import { Response, Request } from "express"; +import { services } from "../../../../services/services"; +import { CheckedContract } from "@ethereum-sourcify/lib-sourcify"; +import { + getMappedSourcesFromJsonInput, + getMetadataFromCompiler, + processRequestFromEtherscan, +} from "../etherscan.common"; +import { checkSupportedChainId } from "../../../../../sourcify-chains"; + +export async function verifyFromEtherscan(req: Request, res: Response) { + checkSupportedChainId(req.body.chain); + + const chain = req.body.chain as string; + const address = req.body.address; + + const { compilerVersion, solcJsonInput, contractName } = + await processRequestFromEtherscan(chain, address); + + const metadata = await getMetadataFromCompiler( + compilerVersion, + solcJsonInput, + contractName + ); + + const mappedSources = getMappedSourcesFromJsonInput(solcJsonInput); + const checkedContract = new CheckedContract(metadata, mappedSources); + + const match = await services.verification.verifyDeployed( + checkedContract, + chain, + address + ); + + await services.repository.storeMatch(checkedContract, match); + + res.send({ result: [match] }); +} diff --git a/src/server/controllers/verification/etherscan/stateless/etherscan.stateless.paths.yaml b/src/server/controllers/verification/etherscan/stateless/etherscan.stateless.paths.yaml new file mode 100644 index 000000000..c1598efc3 --- /dev/null +++ b/src/server/controllers/verification/etherscan/stateless/etherscan.stateless.paths.yaml @@ -0,0 +1,119 @@ +openapi: "3.0" + +paths: + /verify/etherscan: + post: + summary: Verify an Etherscan verified contract + tags: + - Stateless Verification + requestBody: + content: + application/json: + schema: + type: object + properties: + address: + type: string + format: address + example: "0x07880D44b0f7b75464ad18fc2b980049c40A8bc3" + chainId: + type: string + format: supported-chainId + example: "1" + required: + - address + - chainId + multipart/form-data: + schema: + type: object + properties: + address: + type: string + format: address + chain: + type: string + format: supported-chainId + required: + - address + - chain + responses: + "200": + description: The contract has been successfully checked or sourcified + content: + application/json: + schema: + type: object + properties: + result: + type: array + items: + type: object + properties: + address: + type: string + chainId: + type: string + status: + type: string + message: + type: string + libraryMap: + type: object + examples: + Perfect Match: + value: + result: + - address: "0x123f681646d4a755815f9cb19e1acc8565a0c2ac" + chainId: "1" + status: "perfect" + libraryMap: + lib1: "0x3f681646d4a755815f9cb19e1acc8565a0c2ac" + lib2: "0x4f681646d4a755815f9cb19e1acc8565a0c2ac" + Partial Match: + value: + result: + - address: "0x123f681646d4a755815f9cb19e1acc8565a0c2ac" + chainId: "1" + status: "partial" + libraryMap: + lib1: "0x3f681646d4a755815f9cb19e1acc8565a0c2ac" + lib2: "0x4f681646d4a755815f9cb19e1acc8565a0c2ac" + Not Deployed: + value: + result: + - address: "0x123f681646d4a755815f9cb19e1acc8565a0c2ac" + chainId: "1" + status: "null" + message: "Chain #1 does not have a contract deployed at 0x...." + "429": + description: Too Many Requests sent through Sourcify's own API key + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + Etherscan API rate: + value: + error: "Etherscan API rate limit reached, try later" + Bad Formatted Json: + value: + error: "Unexpected token ' in JSON at position 107" + "500": + description: Internal Server Error + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + Resource Missing: + value: + error: "Resource missing; unsuccessful fetching: contracts/SingleFile.sol" + Deployed and recompiled mismatch: + value: + error: "The deployed and recompiled bytecode don't match." diff --git a/src/server/controllers/verification/etherscan/stateless/etherscan.stateless.routes.ts b/src/server/controllers/verification/etherscan/stateless/etherscan.stateless.routes.ts new file mode 100644 index 000000000..d42422b4e --- /dev/null +++ b/src/server/controllers/verification/etherscan/stateless/etherscan.stateless.routes.ts @@ -0,0 +1,9 @@ +import { Router } from "express"; +import { verifyFromEtherscan } from "./etherscan.stateless.handlers"; +import { safeHandler } from "../../../controllers.common"; + +const router: Router = Router(); + +router.route("/verify/etherscan").post(safeHandler(verifyFromEtherscan)); + +export default router; diff --git a/src/server/controllers/verification/session-state/clear.session-state.paths.yaml b/src/server/controllers/verification/session-state/clear.session-state.paths.yaml new file mode 100644 index 000000000..6d788f279 --- /dev/null +++ b/src/server/controllers/verification/session-state/clear.session-state.paths.yaml @@ -0,0 +1,26 @@ +openapi: "3.0.0" + +paths: + /session/clear: + post: + summary: Clear session data + tags: + - Session Verification + responses: + "200": + description: OK + content: + text/plain: + schema: + type: string + example: "Session successfully cleared" + "500": + description: Internal Server Error + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "Error in clearing session" diff --git a/src/server/controllers/verification/session-state/data.session-state.paths.yaml b/src/server/controllers/verification/session-state/data.session-state.paths.yaml new file mode 100644 index 000000000..70fe2b02f --- /dev/null +++ b/src/server/controllers/verification/session-state/data.session-state.paths.yaml @@ -0,0 +1,52 @@ +openapi: "3.0.0" + +paths: + /session/data: + get: + summary: Get session data + tags: + - Session Verification + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + properties: + contracts: + type: array + items: + type: object + properties: + verificationId: + type: string + example: "0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe" + compiledPath: + type: string + example: "browser/1_Storage.sol" + name: + type: string + example: "Storage" + compilerVersion: + type: string + example: "0.6.6+commit.6c089d02" + files: + type: object + properties: + found: + type: array + items: + type: string + missing: + type: array + items: + type: string + example: "browser/1_Storage.sol" + status: + type: string + example: "error" + unused: + type: array + items: + type: string diff --git a/src/server/controllers/verification/session-state/input-contract.session-state.paths.yaml b/src/server/controllers/verification/session-state/input-contract.session-state.paths.yaml new file mode 100644 index 000000000..23ef5e5c3 --- /dev/null +++ b/src/server/controllers/verification/session-state/input-contract.session-state.paths.yaml @@ -0,0 +1,90 @@ +openapi: "3.0.0" + +paths: + /session/input-contract: + post: + summary: Import deployed contract trying to fetch metadata and files form IPFS + tags: + - Session Verification + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - address + - chainId + properties: + address: + type: string + format: address + chainId: + type: string + format: supported-chainId + multipart/form-data: + schema: + type: object + required: + - address + - chainId + properties: + address: + type: string + format: address + chainId: + type: string + format: supported-chainId + responses: + "200": + description: Response is sent when the upload is successful under different conditions. + content: + application/json: + schema: + type: object + properties: + contracts: + type: array + items: + type: object + properties: + compiledPath: + type: string + example: "browser/1_Storage.sol" + name: + type: string + example: "Storage" + compilerVersion: + type: string + example: "0.6.6+commit.6c089d02" + files: + type: object + properties: + found: + type: array + items: + type: string + missing: + type: array + items: + type: string + verificationId: + type: string + example: "0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe" + status: + type: string + enum: ["perfect", "partial", "error"] + unused: + type: array + items: + type: string + "413": + description: Payload Too Large + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "Too much session memory used. Delete some files or clear the session." diff --git a/src/server/controllers/verification/session-state/input-files.session-state.paths.yaml b/src/server/controllers/verification/session-state/input-files.session-state.paths.yaml new file mode 100644 index 000000000..61cf21672 --- /dev/null +++ b/src/server/controllers/verification/session-state/input-files.session-state.paths.yaml @@ -0,0 +1,94 @@ +openapi: "3.0.0" + +paths: + /session/input-files: + post: + summary: Add input files + tags: + - Session Verification + requestBody: + content: + application/json: + schema: + type: object + properties: + files: + type: object + multipart/form-data: + schema: + type: object + properties: + files: + description: This field is required + oneOf: + - type: string + - type: array + items: + type: string + - type: string + format: binary + - type: array + items: + type: string + format: binary + parameters: + - name: url + in: query + schema: + type: string + format: uri + description: Remote file URL + required: false + responses: + "200": + description: Response is sent when the upload is successful under different conditions. + content: + application/json: + schema: + type: object + properties: + contracts: + type: array + items: + type: object + properties: + compiledPath: + type: string + example: "browser/1_Storage.sol" + name: + type: string + example: "Storage" + compilerVersion: + type: string + example: "0.6.6+commit.6c089d02" + files: + type: object + properties: + found: + type: array + items: + type: string + missing: + type: array + items: + type: string + verificationId: + type: string + example: "0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe" + status: + type: string + enum: ["perfect", "partial", "error"] + unused: + type: array + items: + type: string + "413": + description: Payload Too Large + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "Too much session memory used. Delete some files or clear the session." diff --git a/src/server/controllers/verification/session-state/session-state.handlers.ts b/src/server/controllers/verification/session-state/session-state.handlers.ts new file mode 100644 index 000000000..da503112c --- /dev/null +++ b/src/server/controllers/verification/session-state/session-state.handlers.ts @@ -0,0 +1,119 @@ +import { Response, Request } from "express"; +import { + ContractWrapperMap, + FILE_ENCODING, + SendableContract, + addRemoteFile, + checkContractsInSession, + extractFiles, + getSessionJSON, + isVerifiable, + saveFiles, + verifyContractsInSession, +} from "../verification.common"; +import { + PathBuffer, + PathContent, + getIpfsGateway, + isEmpty, + performFetch, +} from "@ethereum-sourcify/lib-sourcify"; +import { BadRequestError, ValidationError } from "../../../../common/errors"; +import { services } from "../../../services/services"; + +import { StatusCodes } from "http-status-codes"; +import { decode as bytecodeDecode } from "@ethereum-sourcify/bytecode-utils"; + +export async function getSessionDataEndpoint(req: Request, res: Response) { + res.send(getSessionJSON(req.session)); +} + +export async function addInputFilesEndpoint(req: Request, res: Response) { + let inputFiles: PathBuffer[] | undefined; + if (req.query.url) { + inputFiles = await addRemoteFile(req.query); + } else { + inputFiles = extractFiles(req, true); + } + if (!inputFiles) throw new ValidationError("No files found"); + const pathContents: PathContent[] = inputFiles.map((pb) => { + return { path: pb.path, content: pb.buffer.toString(FILE_ENCODING) }; + }); + + const session = req.session; + const newFilesCount = saveFiles(pathContents, session); + if (newFilesCount) { + await checkContractsInSession(session); + await verifyContractsInSession( + session.contractWrappers, + session, + services.verification, + services.repository + ); + } + res.send(getSessionJSON(session)); +} + +export async function restartSessionEndpoint(req: Request, res: Response) { + req.session.destroy((error: Error) => { + let msg = ""; + let statusCode = null; + + if (error) { + msg = "Error in clearing session"; + statusCode = StatusCodes.INTERNAL_SERVER_ERROR; + } else { + msg = "Session successfully cleared"; + statusCode = StatusCodes.OK; + } + + res.status(statusCode).send(msg); + }); +} + +export async function addInputContractEndpoint(req: Request, res: Response) { + const address: string = req.body.address; + const chainId: string = req.body.chainId; + + const sourcifyChain = services.verification.supportedChainsMap[chainId]; + + const bytecode = await sourcifyChain.getBytecode(address); + + const { ipfs: metadataIpfsCid } = bytecodeDecode(bytecode); + + if (!metadataIpfsCid) { + throw new BadRequestError("The contract doesn't have a metadata IPFS CID"); + } + + const ipfsUrl = `${getIpfsGateway()}${metadataIpfsCid}`; + const metadataFileName = "metadata.json"; + const retrievedMetadataText = await performFetch(ipfsUrl); + + if (!retrievedMetadataText) + throw new Error(`Could not retrieve metadata from ${ipfsUrl}`); + const pathContents: PathContent[] = []; + + const retrievedMetadataBase64 = Buffer.from(retrievedMetadataText).toString( + "base64" + ); + + pathContents.push({ + path: metadataFileName, + content: retrievedMetadataBase64, + }); + + const session = req.session; + + const newFilesCount = saveFiles(pathContents, session); + if (newFilesCount) { + await checkContractsInSession(session); + // verifyValidated fetches missing files from the contract + await verifyContractsInSession( + session.contractWrappers, + session, + services.verification, + services.repository + ); + } + res.send(getSessionJSON(session)); +} diff --git a/src/server/controllers/verification/session-state/session-state.routes.ts b/src/server/controllers/verification/session-state/session-state.routes.ts new file mode 100644 index 000000000..3101d3b12 --- /dev/null +++ b/src/server/controllers/verification/session-state/session-state.routes.ts @@ -0,0 +1,34 @@ +import { Router } from "express"; +import { + getSessionDataEndpoint, + addInputFilesEndpoint, + restartSessionEndpoint, + addInputContractEndpoint, +} from "./session-state.handlers"; +import { safeHandler } from "../../controllers.common"; + +const router: Router = Router(); + +router.route("/session/data").get(safeHandler(getSessionDataEndpoint)); +router.route("/session/input-files").post(safeHandler(addInputFilesEndpoint)); +router.route("/session/clear").post(safeHandler(restartSessionEndpoint)); +router + .route("/session/input-contract") + .post(safeHandler(addInputContractEndpoint)); + +export const deprecatedRoutesSessionState = { + "/session-data": { + method: "get", + path: "/session/data", + }, + "/input-files": { + method: "post", + path: "/session/input-files", + }, + "/restart-session": { + method: "post", + path: "/session/clear", + }, +}; + +export default router; diff --git a/src/server/controllers/verification/solc-json/session/solc-json.session.handlers.ts b/src/server/controllers/verification/solc-json/session/solc-json.session.handlers.ts new file mode 100644 index 000000000..d778303e2 --- /dev/null +++ b/src/server/controllers/verification/solc-json/session/solc-json.session.handlers.ts @@ -0,0 +1,47 @@ +import { Response, Request } from "express"; +import { + FILE_ENCODING, + checkContractsInSession, + extractFiles, + getSessionJSON, + saveFiles, +} from "../../verification.common"; +import { + PathContent, + getAllMetadataAndSourcesFromSolcJson, +} from "@ethereum-sourcify/lib-sourcify"; +import { BadRequestError, ValidationError } from "../../../../../common/errors"; + +export async function addInputSolcJsonEndpoint(req: Request, res: Response) { + const inputFiles = extractFiles(req, true); + if (!inputFiles) throw new ValidationError("No files found"); + + const compilerVersion = req.body.compilerVersion; + + for (const inputFile of inputFiles) { + let solcJson; + try { + solcJson = JSON.parse(inputFile.buffer.toString()); + } catch (error: any) { + throw new BadRequestError( + `Couldn't parse JSON ${inputFile.path}. Make sure the contents of the file are syntaxed correctly.` + ); + } + + const metadataAndSources = await getAllMetadataAndSourcesFromSolcJson( + solcJson, + compilerVersion + ); + const metadataAndSourcesPathContents: PathContent[] = + metadataAndSources.map((pb) => { + return { path: pb.path, content: pb.buffer.toString(FILE_ENCODING) }; + }); + + const session = req.session; + const newFilesCount = saveFiles(metadataAndSourcesPathContents, session); + if (newFilesCount) { + await checkContractsInSession(session); + } + res.send(getSessionJSON(session)); + } +} diff --git a/src/server/controllers/verification/solc-json/session/solc-json.session.paths.yaml b/src/server/controllers/verification/solc-json/session/solc-json.session.paths.yaml new file mode 100644 index 000000000..d65e20016 --- /dev/null +++ b/src/server/controllers/verification/solc-json/session/solc-json.session.paths.yaml @@ -0,0 +1,110 @@ +openapi: "3.0.0" + +paths: + /session/input-solc-json: + post: + summary: Verify solc-json + tags: + - Session Verification + requestBody: + content: + application/json: + schema: + type: object + properties: + files: + type: object + additionalProperties: + type: string + description: 'Files to upload {"path/filename": "content"}' + compilerVersion: + type: string + description: Compiler version + required: + - compilerVersion + - files + multipart/form-data: + schema: + type: object + properties: + files: + oneOf: + - type: string + - type: array + items: + type: string + - type: string + format: binary + - type: array + items: + type: string + format: binary + compilerVersion: + type: string + description: Compiler version + required: + - compilerVersion + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + properties: + contracts: + type: array + items: + type: object + properties: + verificationId: + type: string + example: "0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe" + compiledPath: + type: string + example: "browser/1_Storage.sol" + name: + type: string + example: "Storage" + compilerVersion: + type: string + example: "0.6.6+commit.6c089d02" + address: + type: string + example: "0x656d0062eC89c940213E3F3170EA8b2add1c0143" + chainId: + type: string + example: "100" + files: + type: object + properties: + found: + type: array + items: + type: string + example: "browser/1_Storage.sol" + missing: + type: array + items: + type: string + status: + type: string + example: "perfect" + storageTimestamp: + type: string + format: date-time + example: "2021-01-12T15:41:56.502Z" + unused: + type: array + items: + type: string + "400": + description: Bad Request + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "There are currently no pending contracts." diff --git a/src/server/controllers/verification/solc-json/session/solc-json.session.routes.ts b/src/server/controllers/verification/solc-json/session/solc-json.session.routes.ts new file mode 100644 index 000000000..787fe33ff --- /dev/null +++ b/src/server/controllers/verification/solc-json/session/solc-json.session.routes.ts @@ -0,0 +1,11 @@ +import { Router } from "express"; +import { addInputSolcJsonEndpoint } from "./solc-json.session.handlers"; +import { safeHandler } from "../../../controllers.common"; + +const router: Router = Router(); + +router + .route("/session/input-solc-json") + .post(safeHandler(addInputSolcJsonEndpoint)); + +export default router; diff --git a/src/server/controllers/verification/solc-json/solc-json.routes.ts b/src/server/controllers/verification/solc-json/solc-json.routes.ts new file mode 100644 index 000000000..1d20dbda6 --- /dev/null +++ b/src/server/controllers/verification/solc-json/solc-json.routes.ts @@ -0,0 +1,11 @@ +import solcJsonStatelessRoutes from "./stateless/solc-json.stateless.routes"; +import solcJsonSessionRoutes from "./session/solc-json.session.routes"; + +import { Router } from "express"; + +const router = Router(); + +router.use("/", solcJsonStatelessRoutes); +router.use("/", solcJsonSessionRoutes); + +export default router; diff --git a/src/server/controllers/verification/solc-json/stateless/solc-json.stateless.handlers.ts b/src/server/controllers/verification/solc-json/stateless/solc-json.stateless.handlers.ts new file mode 100644 index 000000000..972678597 --- /dev/null +++ b/src/server/controllers/verification/solc-json/stateless/solc-json.stateless.handlers.ts @@ -0,0 +1,74 @@ +import { Response, Request } from "express"; +import { services } from "../../../../services/services"; +import { extractFiles } from "../../verification.common"; +import { + checkFiles, + getAllMetadataAndSourcesFromSolcJson, + useAllSources, +} from "@ethereum-sourcify/lib-sourcify"; +import { BadRequestError, ValidationError } from "../../../../../common/errors"; + +export async function verifySolcJsonEndpoint(req: Request, res: Response) { + const inputFiles = extractFiles(req, true); + if (!inputFiles) throw new ValidationError("No files found"); + if (inputFiles.length !== 1) + throw new BadRequestError( + "Only one Solidity JSON Input file at a time is allowed" + ); + + let solcJson; + try { + solcJson = JSON.parse(inputFiles[0].buffer.toString()); + } catch (error: any) { + throw new BadRequestError( + `Couldn't parse JSON ${inputFiles[0].path}. Make sure the contents of the file are syntaxed correctly.` + ); + } + const compilerVersion = req.body.compilerVersion; + const contractName = req.body.contractName; + const chain = req.body.chain; + const address = req.body.address; + + const metadataAndSourcesPathBuffers = + await getAllMetadataAndSourcesFromSolcJson(solcJson, compilerVersion); + + const checkedContracts = await checkFiles(metadataAndSourcesPathBuffers); + const contractToVerify = checkedContracts.find( + (c) => c.name === contractName + ); + if (!contractToVerify) { + throw new BadRequestError( + `Couldn't find contract ${contractName} in the provided Solidity JSON Input file.` + ); + } + + const match = await services.verification.verifyDeployed( + contractToVerify, + chain, + address, + // req.body.contextVariables, + req.body.creatorTxHash + ); + // Send to verification again with all source files. + if (match.status === "extra-file-input-bug") { + const contractWithAllSources = await useAllSources( + contractToVerify, + metadataAndSourcesPathBuffers + ); + const tempMatch = await services.verification.verifyDeployed( + contractWithAllSources, + chain, + address, // Due to the old API taking an array of addresses. + // req.body.contextVariables, + req.body.creatorTxHash + ); + if (tempMatch.status === "perfect") { + await services.repository.storeMatch(contractToVerify, tempMatch); + return res.send({ result: [tempMatch] }); + } + } + if (match.status) { + await services.repository.storeMatch(contractToVerify, match); + } + return res.send({ result: [match] }); // array is an old expected behavior (e.g. by frontend) +} diff --git a/src/server/controllers/verification/solc-json/stateless/solc-json.stateless.paths.yaml b/src/server/controllers/verification/solc-json/stateless/solc-json.stateless.paths.yaml new file mode 100644 index 000000000..00c974a8f --- /dev/null +++ b/src/server/controllers/verification/solc-json/stateless/solc-json.stateless.paths.yaml @@ -0,0 +1,179 @@ +openapi: "3.0.0" + +paths: + /verify/solc-json: + post: + summary: Verify solc-json + tags: + - Stateless Verification + requestBody: + content: + application/json: + schema: + type: object + properties: + address: + type: string + format: address + description: Contract address + example: "0x07880D44b0f7b75464ad18fc2b980049c40A8bc3" + chain: + type: string + format: supported-chainId + description: Chain to check + example: "1" + files: + type: object + additionalProperties: + type: string + description: 'Files to upload {"path/filename": "content"}' + example: + value: + SolcJsonInput.json: "{...}" + compilerVersion: + type: string + description: Compiler version + example: "0.8.4+commit.c7e474f2" + contractName: + type: string + description: Name of the contract + example: "Storage" + creatorTxHash: + type: string + description: Creator transaction hash + example: "0xb7efb33c736b1e8ea97e356467f99d99221343f077ce31a3e3ac1d2e0636df1d" + required: + - address + - chain + - compilerVersion + - contractName + - files + multipart/form-data: + schema: + type: object + properties: + address: + type: string + format: address + description: Contract address + chain: + type: string + format: supported-chainId + description: Chain to check + files: + oneOf: + - type: string + format: binary + - type: array + items: + type: string + format: binary + description: File content for upload + compilerVersion: + type: string + description: Compiler version + contractName: + type: string + description: Name of the contract + creatorTxHash: + type: string + description: Creator transaction hash + required: + - address + - chain + - compilerVersion + - contractName + responses: + "200": + description: The contract has been successfully checked or sourcified + content: + application/json: + schema: + type: object + properties: + result: + type: array + items: + type: object + properties: + address: + type: string + chainId: + type: string + status: + type: string + message: + type: string + libraryMap: + type: object + examples: + Perfect Match: + value: + result: + - address: "0x123f681646d4a755815f9cb19e1acc8565a0c2ac" + chainId: "1" + status: "perfect" + libraryMap: + lib1: "0x3f681646d4a755815f9cb19e1acc8565a0c2ac" + lib2: "0x4f681646d4a755815f9cb19e1acc8565a0c2ac" + Partial Match: + value: + result: + - address: "0x123f681646d4a755815f9cb19e1acc8565a0c2ac" + chainId: "1" + status: "partial" + libraryMap: + lib1: "0x3f681646d4a755815f9cb19e1acc8565a0c2ac" + lib2: "0x4f681646d4a755815f9cb19e1acc8565a0c2ac" + Not Deployed: + value: + result: + - address: "0x123f681646d4a755815f9cb19e1acc8565a0c2ac" + chainId: "1" + status: "null" + message: "Chain #1 does not have a contract deployed at 0x...." + "400": + description: Bad Request + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + One SolidityJSON at a time: + value: + error: "Only one Solidity JSON Input file at a time is allowed" + Bad Formatted Json: + value: + error: "Unexpected token ' in JSON at position 107" + "404": + description: Not Found + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + File Not Found: + value: + error: "Couldn't extract files from the request. Please make sure you have added files" + "500": + description: Internal Server Error + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + Resource Missing: + value: + error: "Resource missing; unsuccessful fetching: contracts/SingleFile.sol" + Deployed and recompiled mismatch: + value: + error: "The deployed and recompiled bytecode don't match." diff --git a/src/server/controllers/verification/solc-json/stateless/solc-json.stateless.routes.ts b/src/server/controllers/verification/solc-json/stateless/solc-json.stateless.routes.ts new file mode 100644 index 000000000..657a1552e --- /dev/null +++ b/src/server/controllers/verification/solc-json/stateless/solc-json.stateless.routes.ts @@ -0,0 +1,9 @@ +import { Router } from "express"; +import { verifySolcJsonEndpoint } from "./solc-json.stateless.handlers"; +import { safeHandler } from "../../../controllers.common"; + +const router: Router = Router(); + +router.route("/verify/solc-json").post(safeHandler(verifySolcJsonEndpoint)); + +export default router; diff --git a/src/server/controllers/verification/verification.common.ts b/src/server/controllers/verification/verification.common.ts new file mode 100644 index 000000000..a35c89535 --- /dev/null +++ b/src/server/controllers/verification/verification.common.ts @@ -0,0 +1,405 @@ +import { NextFunction, Request, RequestHandler, Response } from "express"; +import { + BadRequestError, + InternalServerError, + PayloadTooLargeError, + ValidationError, +} from "../../../common/errors"; +import { + CheckedContract, + InvalidSources, + Match, + MissingSources, + PathContent, + Status, + checkFiles, + isEmpty, + useAllSources, +} from "@ethereum-sourcify/lib-sourcify"; +import { Session } from "express-session"; +import { AbiConstructor, AbiParameter } from "abitype"; +import QueryString from "qs"; +import fetch from "node-fetch"; +import { IVerificationService } from "../../services/VerificationService"; +import { IRepositoryService } from "../../services/RepositoryService"; +import { ContractMeta, ContractWrapper } from "../../common"; +import { id as keccak256str } from "ethers"; + +type PathBuffer = { + path: string; + buffer: Buffer; +}; + +export type LegacyVerifyRequest = Request & { + body: { + addresses: string[]; + chain: string; + chosenContract: number; + /* contextVariables?: { + abiEncodedConstructorArguments?: string; + msgSender?: string; + }; */ + }; +}; + +export const extractFiles = (req: Request, shouldThrow = false) => { + if (req.is("multipart/form-data") && (req.files as any)?.files) { + return extractFilesFromForm((req.files as any).files); + } else if (req.is("application/json") && req.body.files) { + return extractFilesFromJSON(req.body.files); + } + + if (shouldThrow) { + throw new ValidationError("There should be files in the field"); + } +}; + +const extractFilesFromForm = (files: any): PathBuffer[] => { + if (!Array.isArray(files)) { + files = [files]; + } + return files.map((f: any) => ({ path: f.name, buffer: f.data })); +}; + +export const extractFilesFromJSON = (files: { + [key: string]: string; +}): PathBuffer[] => { + const inputFiles: PathBuffer[] = []; + for (const name in files) { + const file = files[name]; + const buffer = Buffer.isBuffer(file) ? file : Buffer.from(file); + inputFiles.push({ path: name, buffer }); + } + return inputFiles; +}; + +export const stringifyInvalidAndMissing = (contract: CheckedContract) => { + const errors = Object.keys(contract.invalid).concat( + Object.keys(contract.missing) + ); + return `${contract.name} (${errors.join(", ")})`; +}; + +export const FILE_ENCODING = "base64"; +export const MAX_SESSION_SIZE = 50 * 1024 * 1024; // 50 MiB + +export function generateId(obj: any): string { + return keccak256str(JSON.stringify(obj)); +} +export const saveFiles = ( + pathContents: PathContent[], + session: Session +): number => { + if (!session.inputFiles) { + session.inputFiles = {}; + } + + let inputSize = 0; // shall contain old buffer size + new files size + for (const id in session.inputFiles) { + const pc = session.inputFiles[id]; + inputSize += pc.content.length; + } + + pathContents.forEach((pc) => (inputSize += pc.content.length)); + + if (inputSize > MAX_SESSION_SIZE) { + const msg = + "Too much session memory used. Delete some files or clear the session."; + throw new PayloadTooLargeError(msg); + } + + let newFilesCount = 0; + pathContents.forEach((pc) => { + const newId = generateId(pc.content); + if (!(newId in session.inputFiles)) { + session.inputFiles[newId] = pc; + ++newFilesCount; + } + }); + + return newFilesCount; +}; + +type Mutable = { + -readonly [Key in keyof Type]: Type[Key]; +}; + +// Contract object in the server response. +export type SendableContract = ContractMeta & { + files: { + found: string[]; + missing: MissingSources; + invalid: InvalidSources; + }; + verificationId: string; + constructorArgumentsArray?: Mutable; + creationBytecode?: string; +}; + +function getSendableContract( + contractWrapper: ContractWrapper, + verificationId: string +): SendableContract { + const contract = contractWrapper.contract; + + return { + verificationId, + constructorArgumentsArray: ( + contract?.metadata?.output?.abi?.find( + (abi) => abi.type === "constructor" + ) as AbiConstructor + )?.inputs as Mutable, + creationBytecode: contract?.creationBytecode, + compiledPath: contract.compiledPath, + name: contract.name, + address: contractWrapper.address, + chainId: contractWrapper.chainId, + files: { + found: Object.keys(contract.solidity), // Source paths + missing: contract.missing, + invalid: contract.invalid, + }, + status: contractWrapper.status || "error", + statusMessage: contractWrapper.statusMessage, + storageTimestamp: contractWrapper.storageTimestamp, + }; +} + +export function getSessionJSON(session: Session) { + const contractWrappers = session.contractWrappers || {}; + const contracts: SendableContract[] = []; + for (const id in contractWrappers) { + const sendableContract = getSendableContract(contractWrappers[id], id); + contracts.push(sendableContract); + } + + const files: string[] = []; + for (const id in session.inputFiles) { + files.push(session.inputFiles[id].path); + } + const unused = session.unusedSources || []; + return { contracts, unused, files }; +} + +export interface ContractWrapperMap { + [id: string]: ContractWrapper; +} + +export function updateUnused(unused: string[], session: Session) { + if (!session.unusedSources) { + session.unusedSources = []; + } + session.unusedSources = unused; +} + +export const checkContractsInSession = async (session: Session) => { + const pathBuffers: PathBuffer[] = []; + for (const id in session.inputFiles) { + const pathContent = session.inputFiles[id]; + pathBuffers.push({ + path: pathContent.path, + buffer: Buffer.from(pathContent.content, FILE_ENCODING), + }); + } + + try { + const unused: string[] = []; + const contracts = await checkFiles(pathBuffers, unused); + + const newPendingContracts: ContractWrapperMap = {}; + for (const contract of contracts) { + newPendingContracts[generateId(JSON.stringify(contract.metadataRaw))] = { + contract, + }; + } + + session.contractWrappers ||= {}; + for (const newId in newPendingContracts) { + const newContractWrapper = newPendingContracts[newId]; + const oldContractWrapper = session.contractWrappers[newId]; + if (oldContractWrapper) { + for (const path in newContractWrapper.contract.solidity) { + oldContractWrapper.contract.solidity[path] = + newContractWrapper.contract.solidity[path]; + delete oldContractWrapper.contract.missing[path]; + } + oldContractWrapper.contract.solidity = + newContractWrapper.contract.solidity; + oldContractWrapper.contract.missing = + newContractWrapper.contract.missing; + } else { + session.contractWrappers[newId] = newContractWrapper; + } + } + updateUnused(unused, session); + } catch (error) { + const paths = pathBuffers.map((pb) => pb.path); + updateUnused(paths, session); + } +}; + +export async function addRemoteFile( + query: QueryString.ParsedQs +): Promise { + if (typeof query.url !== "string") { + throw new BadRequestError("Query url must be a string"); + } + let res; + try { + res = await fetch(query.url); + } catch (err) { + throw new BadRequestError("Couldn't fetch from " + query.url); + } + if (!res.ok) throw new BadRequestError("Couldn't fetch from " + query.url); + // Save with the fileName exists on server response header. + const fileName = + res.headers.get("Content-Disposition")?.split("filename=")[1] || + query.url.substring(query.url.lastIndexOf("/") + 1) || + "file"; + const buffer = await res.buffer(); + return [ + { + path: fileName, + buffer, + }, + ]; +} + +export const checkAndFetchMissing = async ( + contract: CheckedContract +): Promise => { + if (!CheckedContract.isValid(contract)) { + try { + // Try to fetch missing files + await CheckedContract.fetchMissing(contract); + } catch (e) { + // There's no need to throw inside fetchMissing if we're going to do an empty catch. This would cause not being able to catch other potential errors inside the function. TODO: Don't throw inside `fetchMissing` and remove the try/catch block. + // Missing files are accessible from the contract.missingFiles array. + // No need to throw an error + } + } +}; + +export function isVerifiable(contractWrapper: ContractWrapper) { + const contract = contractWrapper.contract; + return ( + isEmpty(contract.missing) && + isEmpty(contract.invalid) && + Boolean(contractWrapper.address) && + Boolean(contractWrapper.chainId) + ); +} + +export const verifyContractsInSession = async ( + contractWrappers: ContractWrapperMap, + session: Session, + verificationService: IVerificationService, + repositoryService: IRepositoryService +): Promise => { + for (const id in contractWrappers) { + const contractWrapper = contractWrappers[id]; + + // Check if contract is already verified + if (Boolean(contractWrapper.address) && Boolean(contractWrapper.chainId)) { + const found = repositoryService.checkByChainAndAddress( + contractWrapper.address as string, + contractWrapper.chainId as string + ); + + if (found.length) { + contractWrapper.status = found[0].status || "error"; + contractWrapper.statusMessage = found[0].message; + contractWrapper.storageTimestamp = found[0].storageTimestamp; + continue; + } + } + + await checkAndFetchMissing(contractWrapper.contract); + + if (!isVerifiable(contractWrapper)) { + continue; + } + + const { + address, + chainId, + contract, + /* contextVariables, */ creatorTxHash, + } = contractWrapper; + + // The session saves the CheckedContract as a simple object, so we need to reinstantiate it + const checkedContract = new CheckedContract( + contract.metadata, + contract.solidity, + contract.missing, + contract.invalid + ); + + let match: Match; + try { + match = await verificationService.verifyDeployed( + checkedContract, + chainId as string, + address as string, + /* contextVariables, */ + creatorTxHash + ); + // Send to verification again with all source files. + if (match.status === "extra-file-input-bug") { + // Session inputFiles are encoded base64. Why? + const pathBufferInputFiles: PathBuffer[] = Object.values( + session.inputFiles + ).map((base64file) => ({ + path: base64file.path, + buffer: Buffer.from(base64file.content, FILE_ENCODING), + })); + const contractWithAllSources = await useAllSources( + contractWrapper.contract, + pathBufferInputFiles + ); + const tempMatch = await verificationService.verifyDeployed( + contractWithAllSources, + chainId as string, + address as string + /* contextVariables */ + ); + if (tempMatch.status === "perfect" || tempMatch.status === "partial") { + match = tempMatch; + } + } + } catch (error: any) { + match = { + chainId: contractWrapper.chainId as string, + status: null, + address: contractWrapper.address as string, + message: error.message, + }; + } + + contractWrapper.status = match.status || "error"; + contractWrapper.statusMessage = match.message; + contractWrapper.storageTimestamp = match.storageTimestamp; + if (match.status) { + await repositoryService.storeMatch(checkedContract, match); + } + } +}; + +export function authenticatedRequest( + req: Request, + res: Response, + next: NextFunction +) { + const sourcifyClientTokensRaw = process.env.CREATE2_CLIENT_TOKENS; + if (sourcifyClientTokensRaw?.length) { + const sourcifyClientTokens = sourcifyClientTokensRaw.split(","); + const clientToken = req.body.clientToken; + if (!clientToken) { + throw new BadRequestError("This API is protected by a client token"); + } + if (!sourcifyClientTokens.includes(clientToken)) { + throw new BadRequestError("The client token you provided is not valid"); + } + } + next(); +} diff --git a/src/server/controllers/verification/verify/session/verify.session.handlers.ts b/src/server/controllers/verification/verify/session/verify.session.handlers.ts new file mode 100644 index 000000000..71442dadd --- /dev/null +++ b/src/server/controllers/verification/verify/session/verify.session.handlers.ts @@ -0,0 +1,46 @@ +import { Response, Request } from "express"; +import { + ContractWrapperMap, + SendableContract, + getSessionJSON, + isVerifiable, + verifyContractsInSession, +} from "../../verification.common"; +import { isEmpty } from "@ethereum-sourcify/lib-sourcify"; +import { BadRequestError } from "../../../../../common/errors"; +import { services } from "../../../../services/services"; + +export async function verifyContractsInSessionEndpoint( + req: Request, + res: Response +) { + const session = req.session; + if (!session.contractWrappers || isEmpty(session.contractWrappers)) { + throw new BadRequestError("There are currently no pending contracts."); + } + + const receivedContracts: SendableContract[] = req.body.contracts; + + const verifiable: ContractWrapperMap = {}; + for (const receivedContract of receivedContracts) { + const id = receivedContract.verificationId; + const contractWrapper = session.contractWrappers[id]; + if (contractWrapper) { + contractWrapper.address = receivedContract.address; + contractWrapper.chainId = receivedContract.chainId; + /* contractWrapper.contextVariables = receivedContract.contextVariables; */ + contractWrapper.creatorTxHash = receivedContract.creatorTxHash; + if (isVerifiable(contractWrapper)) { + verifiable[id] = contractWrapper; + } + } + } + + await verifyContractsInSession( + verifiable, + session, + services.verification, + services.repository + ); + res.send(getSessionJSON(session)); +} diff --git a/src/server/controllers/verification/verify/session/verify.session.paths.yaml b/src/server/controllers/verification/verify/session/verify.session.paths.yaml new file mode 100644 index 000000000..e8773c9f2 --- /dev/null +++ b/src/server/controllers/verification/verify/session/verify.session.paths.yaml @@ -0,0 +1,97 @@ +openapi: "3.0.0" + +paths: + /session/verify-checked: + post: + summary: Verify checked contract in session + tags: + - Session Verification + requestBody: + content: + application/json: + schema: + type: object + properties: + contracts: + type: array + items: + type: object + properties: + address: + type: string + example: "0x656d0062eC89c940213E3F3170EA8b2add1c0143" + format: address + chainId: + type: string + example: "100" + format: supported-chainId + creatorTxHash: + type: string + nullable: true + verificationId: + type: string + example: "0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe" + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + properties: + contracts: + type: array + items: + type: object + properties: + verificationId: + type: string + example: "0x3f67e9f57515bb1e7195c7c5af1eff630091567c0bb65ba3dece57a56da766fe" + compiledPath: + type: string + example: "browser/1_Storage.sol" + name: + type: string + example: "Storage" + compilerVersion: + type: string + example: "0.6.6+commit.6c089d02" + address: + type: string + example: "0x656d0062eC89c940213E3F3170EA8b2add1c0143" + chainId: + type: string + example: "100" + files: + type: object + properties: + found: + type: array + items: + type: string + example: "browser/1_Storage.sol" + missing: + type: array + items: + type: string + status: + type: string + example: "perfect" + storageTimestamp: + type: string + format: date-time + example: "2021-01-12T15:41:56.502Z" + unused: + type: array + items: + type: string + "400": + description: Bad Request + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "There are currently no pending contracts." diff --git a/src/server/controllers/verification/verify/session/verify.session.routes.ts b/src/server/controllers/verification/verify/session/verify.session.routes.ts new file mode 100644 index 000000000..6ced3e60e --- /dev/null +++ b/src/server/controllers/verification/verify/session/verify.session.routes.ts @@ -0,0 +1,22 @@ +import { Router } from "express"; +import { verifyContractsInSessionEndpoint } from "./verify.session.handlers"; +import { safeHandler } from "../../../controllers.common"; + +const router: Router = Router(); + +router + .route("/session/verify-checked") + .post(safeHandler(verifyContractsInSessionEndpoint)); + +export const deprecatedRoutesVerifySession = { + "/session/verify-validated": { + method: "post", + path: "/session/verify-checked", + }, + "/verify-validated": { + method: "post", + path: "/session/verify-checked", + }, +}; + +export default router; diff --git a/src/server/controllers/verification/verify/stateless/verify.stateless.handlers.ts b/src/server/controllers/verification/verify/stateless/verify.stateless.handlers.ts new file mode 100644 index 000000000..785daac5a --- /dev/null +++ b/src/server/controllers/verification/verify/stateless/verify.stateless.handlers.ts @@ -0,0 +1,98 @@ +import { Response } from "express"; +import { services } from "../../../../services/services"; +import { + LegacyVerifyRequest, + extractFiles, + stringifyInvalidAndMissing, +} from "../../verification.common"; +import { + CheckedContract, + checkFiles, + useAllSources, +} from "@ethereum-sourcify/lib-sourcify"; +import { BadRequestError, NotFoundError } from "../../../../../common/errors"; +import { StatusCodes } from "http-status-codes"; + +export async function legacyVerifyEndpoint( + req: LegacyVerifyRequest, + res: Response +): Promise { + const result = services.repository.checkByChainAndAddress( + req.body.address, + req.body.chain + ); + if (result.length != 0) { + return res.send({ result }); + } + + const inputFiles = extractFiles(req); + if (!inputFiles) { + const msg = + "Couldn't extract files from the request. Please make sure you have added files"; + throw new NotFoundError(msg); + } + + let checkedContracts: CheckedContract[]; + try { + checkedContracts = await checkFiles(inputFiles); + } catch (error: any) { + throw new BadRequestError(error.message); + } + + const errors = checkedContracts + .filter((contract) => !CheckedContract.isValid(contract, true)) + .map(stringifyInvalidAndMissing); + if (errors.length) { + throw new BadRequestError( + "Invalid or missing sources in:\n" + errors.join("\n") + ); + } + + if (checkedContracts.length !== 1 && !req.body.chosenContract) { + const contractNames = checkedContracts.map((c) => c.name).join(", "); + const msg = `Detected ${checkedContracts.length} contracts (${contractNames}), but can only verify 1 at a time. Please choose a main contract and click Verify again.`; + const contractsToChoose = checkedContracts.map((contract) => ({ + name: contract.name, + path: contract.compiledPath, + })); + return res + .status(StatusCodes.BAD_REQUEST) + .send({ error: msg, contractsToChoose }); + } + + const contract: CheckedContract = req.body.chosenContract + ? checkedContracts[req.body.chosenContract] + : checkedContracts[0]; + + try { + const match = await services.verification.verifyDeployed( + contract, + req.body.chain, + req.body.address, + /* req.body.contextVariables, */ + req.body.creatorTxHash + ); + // Send to verification again with all source files. + if (match.status === "extra-file-input-bug") { + const contractWithAllSources = await useAllSources(contract, inputFiles); + const tempMatch = await services.verification.verifyDeployed( + contractWithAllSources, + req.body.chain, + req.body.address, + req.body.creatorTxHash + ); + if (tempMatch.status === "perfect") { + await services.repository.storeMatch(contract, tempMatch); + return res.send({ result: [tempMatch] }); + } + } + if (match.status) { + await services.repository.storeMatch(contract, match); + } + return res.send({ result: [match] }); // array is an old expected behavior (e.g. by frontend) + } catch (error: any) { + res + .status(StatusCodes.INTERNAL_SERVER_ERROR) + .send({ error: error.message }); + } +} diff --git a/src/server/controllers/verification/verify/stateless/verify.stateless.paths.yaml b/src/server/controllers/verification/verify/stateless/verify.stateless.paths.yaml new file mode 100644 index 000000000..0bfd9c5cf --- /dev/null +++ b/src/server/controllers/verification/verify/stateless/verify.stateless.paths.yaml @@ -0,0 +1,162 @@ +openapi: "3.0.0" + +paths: + /verify: + post: + description: | + Sends provided files for verification + tags: + - Stateless Verification + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - address + - chain + - files + properties: + address: + type: string + format: address + example: "0x00000000219ab540356cBB839Cbe05303d7705Fa" + chain: + type: string + format: supported-chainId + example: "1" + files: + type: object + example: + value: + metadata.json: "{...}" + SimpleStorage.sol: "// file" + creatorTxHash: + type: string + chosenContract: + type: string + multipart/form-data: + schema: + type: object + required: + - address + - chain + properties: + address: + type: string + format: address + chain: + type: string + format: supported-chainId + files: + description: This field is required + oneOf: + - type: string + - type: array + items: + type: string + - type: string + format: binary + - type: array + items: + type: string + format: binary + creatorTxHash: + type: string + chosenContract: + type: string + responses: + "200": + description: The contract has been successfully checked or sourcified + content: + application/json: + schema: + type: object + properties: + result: + type: array + items: + type: object + properties: + address: + type: string + chainId: + type: string + status: + type: string + message: + type: string + libraryMap: + type: object + examples: + Perfect Match: + value: + result: + - address: "0x123f681646d4a755815f9cb19e1acc8565a0c2ac" + chainId: "1" + status: "perfect" + libraryMap: + lib1: "0x3f681646d4a755815f9cb19e1acc8565a0c2ac" + lib2: "0x4f681646d4a755815f9cb19e1acc8565a0c2ac" + Partial Match: + value: + result: + - address: "0x123f681646d4a755815f9cb19e1acc8565a0c2ac" + chainId: "1" + status: "partial" + libraryMap: + lib1: "0x3f681646d4a755815f9cb19e1acc8565a0c2ac" + lib2: "0x4f681646d4a755815f9cb19e1acc8565a0c2ac" + Not Deployed: + value: + result: + - address: "0x123f681646d4a755815f9cb19e1acc8565a0c2ac" + chainId: "1" + status: "null" + message: "Chain #1 does not have a contract deployed at 0x...." + "400": + description: Bad Request + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + Metadata not found: + value: + error: 'Metadata file not found. Did you include "metadata.json"?' + Bad Formatted Json: + value: + error: "Unexpected token ' in JSON at position 107" + "404": + description: Not Found + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + File Not Found: + value: + error: "Couldn't extract files from the request. Please make sure you have added files" + "500": + description: Internal Server Error + content: + application/json: + schema: + type: object + properties: + error: + type: string + examples: + Resource Missing: + value: + error: "Resource missing; unsuccessful fetching: contracts/SingleFile.sol" + Deployed and recompiled mismatch: + value: + error: "The deployed and recompiled bytecode don't match." diff --git a/src/server/controllers/verification/verify/stateless/verify.stateless.routes.ts b/src/server/controllers/verification/verify/stateless/verify.stateless.routes.ts new file mode 100644 index 000000000..34e176b4f --- /dev/null +++ b/src/server/controllers/verification/verify/stateless/verify.stateless.routes.ts @@ -0,0 +1,16 @@ +import { Router } from "express"; +import { legacyVerifyEndpoint } from "./verify.stateless.handlers"; +import { safeHandler } from "../../../controllers.common"; + +const router: Router = Router(); + +router.route("/verify").post(safeHandler(legacyVerifyEndpoint)); + +export const deprecatedRoutesVerifyStateless = { + "/": { + method: "post", + path: "/verify", + }, +}; + +export default router; diff --git a/src/server/controllers/verification/verify/verify.routes.ts b/src/server/controllers/verification/verify/verify.routes.ts new file mode 100644 index 000000000..b413c73d9 --- /dev/null +++ b/src/server/controllers/verification/verify/verify.routes.ts @@ -0,0 +1,11 @@ +import verifyStatelessRoutes from "./stateless/verify.stateless.routes"; +import verifySessionRoutes from "./session/verify.session.routes"; + +import { Router } from "express"; + +const router = Router(); + +router.use("/", verifyStatelessRoutes); +router.use("/", verifySessionRoutes); + +export default router; diff --git a/src/server/deprecated.routes.ts b/src/server/deprecated.routes.ts new file mode 100644 index 000000000..9c4483dfd --- /dev/null +++ b/src/server/deprecated.routes.ts @@ -0,0 +1,39 @@ +import express, { Response, Request, NextFunction } from "express"; +import { deprecatedRoutesVerifyStateless } from "./controllers/verification/verify/stateless/verify.stateless.routes"; +import { deprecatedRoutesVerifySession } from "./controllers/verification/verify/session/verify.session.routes"; +import { deprecatedRoutesSessionState } from "./controllers/verification/session-state/session-state.routes"; +import { deprecatedRoutesRepository } from "./controllers/repository/repository.routes"; + +type HTTPMethod = + | "get" + | "post" + | "put" + | "delete" + | "patch" + | "options" + | "head"; + +export const deprecatedRoutes: { + [index: string]: { path: string; method: string }; +} = { + ...deprecatedRoutesVerifyStateless, + ...deprecatedRoutesVerifySession, + ...deprecatedRoutesSessionState, + ...deprecatedRoutesRepository, +}; + +// Replace req.url and req.originalUrl allowing OpenApiValidator to handle deprecated routes +// otherwise creating an openapi declaration file for each deprecated route is necessary +export function initDeprecatedRoutes(app: express.Application) { + Object.keys(deprecatedRoutes).forEach((deprecatedRoute: string) => { + const { path, method } = deprecatedRoutes[deprecatedRoute]; + app[method as HTTPMethod]( + deprecatedRoute, + (req: Request, res: Response, next: NextFunction) => { + req.url = path; + req.originalUrl = path; + next(); + } + ); + }); +} diff --git a/src/server/middlewares/GenericErrorHandler.ts b/src/server/middlewares/GenericErrorHandler.ts index 217fe091f..d5d1463a3 100644 --- a/src/server/middlewares/GenericErrorHandler.ts +++ b/src/server/middlewares/GenericErrorHandler.ts @@ -1,28 +1,26 @@ import * as HttpStatus from "http-status-codes"; import { Request, Response } from "express"; -import { Logger } from "@ethereum-sourcify/core"; -import * as bunyan from "bunyan"; +import { SourcifyEventManager } from "../../common/SourcifyEventManager/SourcifyEventManager"; export default function genericErrorHandler( err: any, _req: Request, res: Response, + // Next function is required for Express to recognize this as an error handler. Error handlers must have 4 parameters. _next: any ): void { - if (err.log) { - const logger: bunyan = Logger("Error"); - logger.error(`Error: ${JSON.stringify(err)}`); - } + const errorCode = +err.code || err.status || 500; if (err.errors) { - res.status(err.code).json({ + // This is a validation error + res.status(errorCode).json({ message: err.message, errors: err.errors, }); return; } - const errorCode = +err.code || err.status || 500; res.status(errorCode).json({ - error: err.message || HttpStatus.getStatusText(errorCode), + error: err.message || HttpStatus.getStatusText(errorCode), // Need to keep this for backward compatibility, but ideally we should respond with `message` only + message: err.message || HttpStatus.getStatusText(errorCode), }); } diff --git a/src/server/middlewares/NotFoundError.ts b/src/server/middlewares/NotFoundError.ts index f939c5ad0..bf6df0e32 100644 --- a/src/server/middlewares/NotFoundError.ts +++ b/src/server/middlewares/NotFoundError.ts @@ -1,7 +1,5 @@ import * as HttpStatus from "http-status-codes"; import { Request, Response } from "express"; -import { Logger } from "@ethereum-sourcify/core"; -import * as bunyan from "bunyan"; export default function notFoundError( err: any, @@ -9,11 +7,6 @@ export default function notFoundError( res: Response, _next: any ): void { - if (err.log) { - const logger: bunyan = Logger("Error"); - logger.error(`Error: ${JSON.stringify(err)}`); - } - res.status(HttpStatus.StatusCodes.NOT_FOUND).json({ error: HttpStatus.getStatusText(err.message), }); diff --git a/src/server/routes.ts b/src/server/routes.ts index b0adbaa99..b0d9c6840 100644 --- a/src/server/routes.ts +++ b/src/server/routes.ts @@ -1,27 +1,22 @@ import { Router } from "express"; -import config from "../config"; -import { Logger, FileService } from "@ethereum-sourcify/core"; -import { VerificationService } from "@ethereum-sourcify/verification"; -import { ValidationService } from "@ethereum-sourcify/validation"; -import FileController from "./controllers/FileController"; -import VerificationController from "./controllers/VerificationController"; -import TestArtifactsController from "./controllers/TestArtifactsController"; +import testArtifactsRoutes from "./controllers/testartifacts/testartifacts.routes"; +import repositoryRoutes from "./controllers/repository/repository.routes"; +import sessionStateRoutes from "./controllers/verification/session-state/session-state.routes"; +import verifyRoutes from "./controllers/verification/verify/verify.routes"; +import solcJsonRoutes from "./controllers/verification/solc-json/solc-json.routes"; +import create2Routes from "./controllers/verification/create2/create2.routes"; +import etherscanRoutes from "./controllers/verification/etherscan/etherscan.routes"; const router: Router = Router(); -const fileService = new FileService(config.repository.path); -const validationService: ValidationService = new ValidationService( - Logger("ValidationService") -); -const verificationService = new VerificationService(fileService); +router.use("/chain-tests", testArtifactsRoutes); -const testArtifactsController = new TestArtifactsController(); -const fileController = new FileController(fileService); -const verificationController: VerificationController = - new VerificationController(verificationService, validationService); +router.use("/", repositoryRoutes); -router.use("/chain-tests", testArtifactsController.registerRoutes()); -router.use("/files/", fileController.registerRoutes()); -router.use("/", verificationController.registerRoutes()); +router.use("/", sessionStateRoutes); +router.use("/", verifyRoutes); +router.use("/", solcJsonRoutes); +router.use("/", create2Routes); +router.use("/", etherscanRoutes); export default router; diff --git a/src/server/server.ts b/src/server/server.ts index 6532ff868..3d1ff8617 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -1,28 +1,99 @@ import express from "express"; import serveIndex from "serve-index"; -import fileUpload from "express-fileupload"; import cors from "cors"; import routes from "./routes"; import bodyParser from "body-parser"; -import config from "../config"; -import { Logger, getSourcifyChains } from "@ethereum-sourcify/core"; -import bunyan from "bunyan"; +import config, { etherscanAPIs } from "../config"; +import { SourcifyEventManager } from "../common/SourcifyEventManager/SourcifyEventManager"; +import "../common/SourcifyEventManager/listeners/logger"; import genericErrorHandler from "./middlewares/GenericErrorHandler"; import notFoundHandler from "./middlewares/NotFoundError"; import session from "express-session"; import createMemoryStore from "memorystore"; import util from "util"; +import { + checkSourcifyChainId, + checkSupportedChainId, + sourcifyChainsArray, +} from "../sourcify-chains"; +import { + validateAddresses, + validateSingleAddress, + validateSourcifyChainIds, +} from "./common"; +import * as OpenApiValidator from "express-openapi-validator"; +import swaggerUi from "swagger-ui-express"; +import yamljs from "yamljs"; +import { resolveRefs } from "json-refs"; +import { initDeprecatedRoutes } from "./deprecated.routes"; +import { getAddress } from "ethers"; +import { logger } from "../common/loggerLoki"; +import { setLibSourcifyLogger } from "@ethereum-sourcify/lib-sourcify"; +// eslint-disable-next-line @typescript-eslint/no-var-requires +const fileUpload = require("express-fileupload"); + const MemoryStore = createMemoryStore(session); -export const logger: bunyan = Logger("Server"); +// here we override the standard LibSourcify's Logger with a custom one +setLibSourcifyLogger({ + // No need to set again the logger level because it's set here + logLevel: process.env.NODE_ENV === "production" ? 3 : 4, + setLevel(level: number) { + this.logLevel = level; + }, + log(level, msg) { + if (level <= this.logLevel) { + switch (level) { + case 1: + logger.error({ + labels: { event: "LibSourcify", level: "error" }, + message: msg, + }); + break; + case 2: + logger.warn({ + labels: { event: "LibSourcify", level: "warn" }, + message: msg, + }); + break; + case 3: + logger.info({ + labels: { event: "LibSourcify", level: "info" }, + message: msg, + }); + break; + case 4: + logger.debug({ + labels: { event: "LibSourcify", level: "debug" }, + message: msg, + }); + break; + } + } + }, +}); + export class Server { app: express.Application; repository = config.repository.path; - port = config.server.port; + port: string | number; - constructor() { + constructor(port?: string | number) { + this.port = port || config.server.port; this.app = express(); + this.app.use( + bodyParser.urlencoded({ + limit: config.server.maxFileSize, + extended: true, + }) + ); + this.app.use(bodyParser.json({ limit: config.server.maxFileSize })); + + // Init deprecated routes before OpenApiValidator so that it can handle the request with the defined paths. + // initDeprecatedRoutes is a middleware that replaces the deprecated paths with the real ones. + initDeprecatedRoutes(this.app); + this.app.use( fileUpload({ limits: { fileSize: config.server.maxFileSize }, @@ -30,44 +101,145 @@ export class Server { }) ); - this.app.use(bodyParser.json({ limit: config.server.maxFileSize })); + // In every request support both chain and chainId + this.app.use((req: any, res: any, next: any) => { + if (req.body.chainId) { + req.body.chain = req.body.chainId; + } + next(); + }); + this.app.use( - bodyParser.urlencoded({ - limit: config.server.maxFileSize, - extended: true, + OpenApiValidator.middleware({ + apiSpec: "openapi.yaml", + validateRequests: true, + validateResponses: false, + ignoreUndocumented: true, + fileUploader: false, + formats: [ + { + name: "comma-separated-addresses", + type: "string", + validate: (addresses: string) => validateAddresses(addresses), + }, + { + name: "address", + type: "string", + validate: (address: string) => validateSingleAddress(address), + }, + { + name: "comma-separated-sourcify-chainIds", + type: "string", + validate: (chainIds: string) => validateSourcifyChainIds(chainIds), + }, + { + name: "supported-chainId", + type: "string", + validate: (chainId: string) => checkSupportedChainId(chainId), + }, + { + // "Sourcify chainIds" include the chains that are revoked verification support, but can have contracts in the repo. + name: "sourcify-chainId", + type: "string", + validate: (chainId: string) => checkSourcifyChainId(chainId), + }, + { + name: "match-type", + type: "string", + validate: (matchType: string) => + matchType === "full_match" || matchType === "partial_match", + }, + ], }) ); - this.app.set("trust proxy", 1); // trust first proxy, required for secure cookies. - this.app.use(session(getSessionOptions())); - this.app.use( - cors({ + // checksum addresses in every request + this.app.use((req: any, res: any, next: any) => { + // stateless + if (req.body.address) { + req.body.address = getAddress(req.body.address); + } + // session + if (req.body.contracts) { + req.body.contracts.forEach((contract: any) => { + contract.address = getAddress(contract.address); + }); + } + if (req.query.addresses) { + req.query.addresses = req.query.addresses + .split(",") + .map((address: string) => getAddress(address)) + .join(","); + } + if (req.params.address) { + req.params.address = getAddress(req.params.address); + } + next(); + }); + + // Session API endpoints require non "*" origins because of the session cookies + const sessionPaths = [ + "/session", // all paths /session/verify /session/input-files etc. + // legacy endpoint naming below + "/input-files", + "/restart-session", + "/verify-validated", + ]; + this.app.use((req, res, next) => { + // startsWith to match /session* + if (sessionPaths.some((substr) => req.path.startsWith(substr))) { + return cors({ + origin: config.corsAllowedOrigins, + credentials: true, + })(req, res, next); + } + // * for all non-session paths + return cors({ origin: "*", - // Allow follow-up middleware to override this CORS for options. - // Session API endpoints require non "*" origins because of the session cookies - preflightContinue: true, - }) - ); + })(req, res, next); + }); + + // Need this for secure cookies to work behind a proxy. See https://expressjs.com/en/guide/behind-proxies.html + // true means the leftmost IP in the X-Forwarded-* header is used. + // Assuming the client ip is 2.2.2.2, reverse proxy 192.168.1.5 + // for the case "X-Forwarded-For: 2.2.2.2, 192.168.1.5", we want 2.2.2.2 to be used + this.app.set("trust proxy", true); + this.app.use(session(getSessionOptions())); + this.app.get("/health", (_req, res) => res.status(200).send("Alive and kicking!") ); this.app.get("/chains", (_req, res) => { - const sourcifyChains = getSourcifyChains().map(({ rpc, ...rest }) => { - // Don't show Alchemy & Infura IDs - rpc = rpc.map((url) => { - if (url.includes("alchemy")) - return url.replace(/\/[^/]*$/, "/{ALCHEMY_ID}"); - else if (url.includes("infura")) - return url.replace(/\/[^/]*$/, "/{INFURA_ID}"); - else return url; - }); - return { - ...rest, - rpc, - }; - }); + const sourcifyChains = sourcifyChainsArray.map( + ({ rpc, name, title, chainId, supported, monitored }) => { + // Don't publish providers + // Don't show Alchemy & Infura IDs + rpc = rpc.map((url) => { + if (typeof url === "string") { + if (url.includes("alchemy")) + return url.replace(/\/[^/]*$/, "/{ALCHEMY_ID}"); + else if (url.includes("infura")) + return url.replace(/\/[^/]*$/, "/{INFURA_ID}"); + else return url; + } else { + // FetchRequest + return url.url; + } + }); + return { + name, + title, + chainId, + rpc, + supported, + monitored, + etherscanAPI: etherscanAPIs[chainId]?.apiURL, // Needed in the UI + }; + } + ); res.status(200).json(sourcifyChains); }); + this.app.use( "/repository", express.static(this.repository), @@ -83,6 +255,26 @@ export class Server { await promisified(this.port); if (callback) callback(); } + + async loadSwagger(root: string) { + const options = { + filter: ["relative", "remote"], + loaderOptions: { + processContent: function (res: any, callback: any) { + callback(null, yamljs.parse(res.text)); + }, + }, + }; + + return resolveRefs(root as any, options).then( + function (results: any) { + return results.resolved; + }, + function (err: any) { + console.log(err.stack); + } + ); + } } function getSessionOptions(): session.SessionOptions { @@ -105,10 +297,22 @@ function getSessionOptions(): session.SessionOptions { if (require.main === module) { const server = new Server(); - server.app.listen(server.port, () => - logger.info( - { loc: "[LISTEN]" }, - `Injector listening on port ${server.port}!` - ) - ); + server + .loadSwagger(yamljs.load("openapi.yaml")) + .then((swaggerDocument: any) => { + server.app.get("/api-docs/swagger.json", (req, res) => + res.json(swaggerDocument) + ); + server.app.use( + "/api-docs", + swaggerUi.serve, + swaggerUi.setup(swaggerDocument, { + customSiteTitle: "Sourcify API", + customfavIcon: "https://sourcify.dev/favicon.ico", + }) + ); + server.app.listen(server.port, () => + logger.info(`Server listening on port ${server.port}`) + ); + }); } diff --git a/src/server/services/RepositoryService.ts b/src/server/services/RepositoryService.ts new file mode 100644 index 000000000..1b44a187d --- /dev/null +++ b/src/server/services/RepositoryService.ts @@ -0,0 +1,632 @@ +import dirTree from "directory-tree"; +import Path from "path"; +import fs from "fs"; +import { + Match, + Status, + Create2Args, + StringMap, + /* ContextVariables, */ + CheckedContract, +} from "@ethereum-sourcify/lib-sourcify"; +import { MatchLevel, RepositoryTag } from "../types"; +import { + create as createIpfsClient, + IPFSHTTPClient, + globSource, +} from "ipfs-http-client"; +import path from "path"; +import config from "../../config"; +import { SourcifyEventManager } from "../../common/SourcifyEventManager/SourcifyEventManager"; +import { logger } from "../../common/loggerLoki"; +import { getAddress } from "ethers"; + +/** + * A type for specifying the match quality of files. + */ +type MatchQuality = "full" | "partial"; + +type FilesInfo = { status: MatchQuality; files: Array }; + +interface FileObject { + name: string; + path: string; + content?: string; +} +type PathConfig = { + matchQuality: MatchQuality; + chainId: string; + address: string; + fileName?: string; + source?: boolean; +}; + +declare interface ContractData { + full: string[]; + partial: string[]; +} + +export interface IRepositoryService { + // getTreeByChainAndAddress( + // chainId: string, + // address: string + // ): Promise>; + // getByChainAndAddress( + // chainId: string, + // address: string + // ): Promise>; + fetchAllFileUrls(chain: string, address: string): Array; + fetchAllFilePaths(chain: string, address: string): Array; + fetchAllFileContents(chain: string, address: string): Array; + checkByChainAndAddress(address: string, chain: string): Match[]; + checkAllByChainAndAddress(address: string, chain: string): Match[]; + save(path: string | PathConfig, file: string): void; + deletePartialIfExists(chain: string, address: string): void; + repositoryPath: string; + getTree( + chainId: string, + address: string, + match: string + ): Promise>; + getContent( + chainId: string, + address: string, + match: string + ): Promise>; + getContracts(chainId: string): Promise; + generateAbsoluteFilePath(pathConfig: PathConfig): string; + generateRelativeFilePath(pathConfig: PathConfig): string; + generateRelativeContractDir(pathConfig: PathConfig): string; + storeMatch(contract: CheckedContract, match: Match): Promise; +} + +export class RepositoryService implements IRepositoryService { + repositoryPath: string; + private ipfsClient?: IPFSHTTPClient; + + constructor(repositoryPath: string) { + this.repositoryPath = repositoryPath; + if (process.env.IPFS_API) { + this.ipfsClient = createIpfsClient({ url: process.env.IPFS_API }); + } else { + logger.warn("IPFS_API not set, IPFS MFS will not be updated"); + } + } + // Not used anywhere + // async getTreeByChainAndAddress( + // chainId: string, + // address: string + // ): Promise { + // chainId = checkChainId(chainId); + // return this.fetchAllFileUrls(chainId, address); + // } + + // Not used anywhere + // async getByChainAndAddress( + // chainId: string, + // address: string + // ): Promise { + // chainId = checkChainId(chainId); + // return this.fetchAllFileContents(chainId, address); + // } + + fetchAllFileUrls( + chain: string, + address: string, + match = "full_match" + ): Array { + const files: Array = this.fetchAllFilePaths( + chain, + address, + match + ); + const urls: Array = []; + files.forEach((file) => { + const relativePath = + "contracts/" + file.path.split("/contracts")[1].substr(1); + urls.push(`${process.env.REPOSITORY_SERVER_URL}/${relativePath}`); + }); + return urls; + } + + /** + * Returns all the files under the given chain and address directory. + * + * @param chain + * @param address + * @param match + * @returns FileObject[] + * + * @example [ + * { name: '0x1234.sol', + * path: '/home/.../repository/contracts/full_match/1/0x1234/0x1234.sol, + * content: "pragma solidity ^0.5.0; contract A { ... }" + * }, + * ... ] + */ + fetchAllFilePaths( + chain: string, + address: string, + match = "full_match" + ): Array { + const fullPath: string = + this.repositoryPath + + `/contracts/${match}/${chain}/${getAddress(address)}/`; + const files: Array = []; + dirTree(fullPath, {}, (item) => { + files.push({ name: item.name, path: item.path }); + }); + return files; + } + + fetchAllFileContents( + chain: string, + address: string, + match = "full_match" + ): Array { + const files = this.fetchAllFilePaths(chain, address, match); + for (const file in files) { + const loadedFile = fs.readFileSync(files[file].path); + files[file].content = loadedFile.toString(); + } + + return files; + } + fetchAllContracts = async (chain: String): Promise => { + const fullPath = this.repositoryPath + `/contracts/full_match/${chain}/`; + const partialPath = + this.repositoryPath + `/contracts/partial_match/${chain}/`; + return { + full: fs.existsSync(fullPath) ? fs.readdirSync(fullPath) : [], + partial: fs.existsSync(partialPath) ? fs.readdirSync(partialPath) : [], + }; + }; + + getTree = async ( + chainId: string, + address: string, + match: MatchLevel + ): Promise> => { + // chainId = checkChainId(chainId); TODO: Valiadate on the controller + const fullMatchesTree = this.fetchAllFileUrls( + chainId, + address, + "full_match" + ); + if (fullMatchesTree.length || match === "full_match") { + return { status: "full", files: fullMatchesTree }; + } + + const files = this.fetchAllFileUrls(chainId, address, "partial_match"); + return { status: "partial", files }; + }; + + getContent = async ( + chainId: string, + address: string, + match: MatchLevel + ): Promise> => { + // chainId = checkChainId(chainId); TODO: Valiadate on the controller + const fullMatchesFiles = this.fetchAllFileContents( + chainId, + address, + "full_match" + ); + if (fullMatchesFiles.length || match === "full_match") { + return { status: "full", files: fullMatchesFiles }; + } + + const files = this.fetchAllFileContents(chainId, address, "partial_match"); + return { status: "partial", files }; + }; + + getContracts = async (chainId: string): Promise => { + const contracts = await this.fetchAllContracts(chainId); + return contracts; + }; + + // /home/user/sourcify/data/repository/contracts/full_match/5/0x00878Ac0D6B8d981ae72BA7cDC967eA0Fae69df4/sources/filename + public generateAbsoluteFilePath(pathConfig: PathConfig) { + return Path.join( + this.repositoryPath, + this.generateRelativeFilePath(pathConfig) + ); + } + + // contracts/full_match/5/0x00878Ac0D6B8d981ae72BA7cDC967eA0Fae69df4/sources/filename + public generateRelativeFilePath(pathConfig: PathConfig) { + return Path.join( + this.generateRelativeContractDir(pathConfig), + pathConfig.source ? "sources" : "", + pathConfig.fileName || "" + ); + } + + // contracts/full_match/5/0x00878Ac0D6B8d981ae72BA7cDC967eA0Fae69df4 + public generateRelativeContractDir(pathConfig: PathConfig) { + return Path.join( + "contracts", + `${pathConfig.matchQuality}_match`, + pathConfig.chainId, + getAddress(pathConfig.address) + ); + } + + fetchCreate2Args(fullContractPath: string): Create2Args | undefined { + try { + return JSON.parse( + fs.readFileSync( + fullContractPath.replace("metadata.json", "create2-args.json"), + "utf8" + ) + ); + } catch (e) { + return undefined; + } + } + + /** + * Checks if path exists and for a particular chain returns the perfect or partial match + * + * @param fullContractPath + * @param partialContractPath + */ + fetchFromStorage( + fullContractPath: string, + partialContractPath: string + ): { time: Date; status: Status; create2Args?: Create2Args } { + if (fs.existsSync(fullContractPath)) { + const create2Args = this.fetchCreate2Args(fullContractPath); + return { + time: fs.statSync(fullContractPath).birthtime, + status: "perfect", + create2Args, + }; + } + + if (fs.existsSync(partialContractPath)) { + return { + time: fs.statSync(partialContractPath).birthtime, + status: "partial", + }; + } + + throw new Error( + `Path not found: ${fullContractPath} or ${partialContractPath}` + ); + } + + // Checks contract existence in repository. + checkByChainAndAddress(address: string, chainId: string): Match[] { + const contractPath = this.generateAbsoluteFilePath({ + matchQuality: "full", + chainId, + address, + fileName: "metadata.json", + }); + + try { + const storageTimestamp = fs.statSync(contractPath).birthtime; + return [ + { + address, + chainId, + status: "perfect", + storageTimestamp, + }, + ]; + } catch (e: any) { + logger.debug( + `Contract (full_match) not found in repository: ${address} - chain: ${chainId}` + ); + return []; + } + } + + // Checks contract existence in repository for full and partial matches. + checkAllByChainAndAddress(address: string, chainId: string): Match[] { + const fullContractPath = this.generateAbsoluteFilePath({ + matchQuality: "full", + chainId, + address, + fileName: "metadata.json", + }); + + const partialContractPath = this.generateAbsoluteFilePath({ + matchQuality: "partial", + chainId, + address, + fileName: "metadata.json", + }); + + try { + const storage = this.fetchFromStorage( + fullContractPath, + partialContractPath + ); + return [ + { + address, + chainId, + status: storage?.status, + storageTimestamp: storage?.time, + create2Args: storage?.create2Args, + }, + ]; + } catch (e: any) { + logger.debug( + `Contract (full & partial match) not found in repository: ${address} - chain: ${chainId}` + ); + return []; + } + } + + /** + * Save file to repository and update the repository tag. The path may include non-existent parent directories. + * + * @param path the path within the repository where the file will be stored + * @param content the content to be stored + */ + save(path: string | PathConfig, content: string) { + const abolsutePath = + typeof path === "string" + ? Path.join(this.repositoryPath, path) + : this.generateAbsoluteFilePath(path); + fs.mkdirSync(Path.dirname(abolsutePath), { recursive: true }); + fs.writeFileSync(abolsutePath, content); + this.updateRepositoryTag(); + } + + public async storeMatch( + contract: CheckedContract, + match: Match + ): Promise { + if ( + match.address && + (match.status === "perfect" || match.status === "partial") + ) { + // Delete the partial matches if we now have a perfect match instead. + if (match.status === "perfect") { + this.deletePartialIfExists(match.chainId, match.address); + } + const matchQuality = this.statusToMatchQuality(match.status); + this.storeSources( + matchQuality, + match.chainId, + match.address, + contract.solidity + ); + + // Store metadata + this.storeJSON( + matchQuality, + match.chainId, + match.address, + "metadata.json", + contract.metadata + ); + + if (match.abiEncodedConstructorArguments) { + this.storeTxt( + matchQuality, + match.chainId, + match.address, + "constructor-args.txt", + match.abiEncodedConstructorArguments + ); + } + + /* if ( + match.contextVariables && + Object.keys(match.contextVariables).length > 0 + ) { + this.storeJSON( + matchQuality, + match.chainId, + match.address, + "context-variables.json", + match.contextVariables + ); + } */ + + if (match.creatorTxHash) { + this.storeTxt( + matchQuality, + match.chainId, + match.address, + "creator-tx-hash.txt", + match.creatorTxHash + ); + } + + if (match.create2Args) { + this.storeJSON( + matchQuality, + match.chainId, + match.address, + "create2-args.json", + match.create2Args + ); + } + + if (match.libraryMap && Object.keys(match.libraryMap).length) { + this.storeJSON( + matchQuality, + match.chainId, + match.address, + "library-map.json", + match.libraryMap + ); + } + + if (match.immutableReferences) { + this.storeJSON( + matchQuality, + match.chainId, + match.address, + "immutable-references.json", + match.immutableReferences + ); + } + + await this.addToIpfsMfs(matchQuality, match.chainId, match.address); + SourcifyEventManager.trigger("Verification.MatchStored", match); + } else if (match.status === "extra-file-input-bug") { + return match; + } else { + throw new Error(`Unknown match status: ${match.status}`); + } + } + + deletePartialIfExists(chainId: string, address: string) { + const pathConfig: PathConfig = { + matchQuality: "partial", + chainId, + address, + fileName: "", + }; + const absolutePath = this.generateAbsoluteFilePath(pathConfig); + + if (fs.existsSync(absolutePath)) { + fs.rmdirSync(absolutePath, { recursive: true }); + } + } + + updateRepositoryTag() { + const filePath: string = Path.join(this.repositoryPath, "manifest.json"); + const timestamp = new Date().getTime(); + const repositoryVersion = process.env.REPOSITORY_VERSION || "0.1"; + const tag: RepositoryTag = { + timestamp: timestamp, + repositoryVersion: repositoryVersion, + }; + fs.writeFileSync(filePath, JSON.stringify(tag)); + } + + /** + * This method exists because many different people have contributed to this code, which has led to the + * lack of unanimous nomenclature + * @param status + * @returns {MatchQuality} matchQuality + */ + private statusToMatchQuality(status: Status): MatchQuality { + if (status === "perfect") return "full"; + if (status === "partial") return status; + throw new Error(`Invalid match status: ${status}`); + } + + private storeSources( + matchQuality: MatchQuality, + chainId: string, + address: string, + sources: StringMap + ) { + for (const sourcePath in sources) { + this.save( + { + matchQuality, + chainId, + address, + source: true, + fileName: this.sanitizePath(sourcePath), + }, + sources[sourcePath] + ); + } + } + + private storeJSON( + matchQuality: MatchQuality, + chainId: string, + address: string, + fileName: string, + contentJSON: any + ) { + this.save( + { + matchQuality, + chainId, + address, + fileName, + }, + JSON.stringify(contentJSON) + ); + } + + private storeTxt( + matchQuality: MatchQuality, + chainId: string, + address: string, + fileName: string, + content: string + ) { + this.save( + { + matchQuality, + chainId, + address, + source: false, + fileName, + }, + content + ); + } + + private async addToIpfsMfs( + matchQuality: MatchQuality, + chainId: string, + address: string + ) { + if (!this.ipfsClient) return; + const contractFolderDir = this.generateAbsoluteFilePath({ + matchQuality, + chainId, + address, + }); + const ipfsMFSDir = + "/" + + this.generateRelativeContractDir({ + matchQuality, + chainId, + address, + }); + const filesAsyncIterable = globSource(contractFolderDir, "**/*"); + for await (const file of filesAsyncIterable) { + if (!file.content) continue; // skip directories + const mfsPath = path.join(ipfsMFSDir, file.path); + await this.ipfsClient.files.mkdir(path.dirname(mfsPath), { + parents: true, + }); + // Readstream to Buffers + const chunks: Uint8Array[] = []; + for await (const chunk of file.content) { + chunks.push(chunk); + } + const fileBuffer = Buffer.concat(chunks); + const addResult = await this.ipfsClient.add(fileBuffer, { + pin: false, + }); + await this.ipfsClient.files.cp(addResult.cid, mfsPath, { parents: true }); + } + } + // This needs to be removed at some point https://github.com/ethereum/sourcify/issues/515 + private sanitizePath(originalPath: string): string { + const parsedPath = path.parse(originalPath); + const sanitizedDir = parsedPath.dir + .split(path.sep) + .filter((segment) => segment !== "..") + .join(path.sep) + .replace(/[^a-z0-9_./-]/gim, "_") + .replace(/(^|\/)[.]+($|\/)/, "_"); + + // Force absolute paths to be relative + if (parsedPath.root) { + parsedPath.root = ""; + parsedPath.dir = sanitizedDir.slice(parsedPath.root.length); + } else { + parsedPath.dir = sanitizedDir; + } + + return path.format(parsedPath); + } +} diff --git a/src/server/services/VerificationService-util.ts b/src/server/services/VerificationService-util.ts new file mode 100644 index 000000000..713913196 --- /dev/null +++ b/src/server/services/VerificationService-util.ts @@ -0,0 +1,126 @@ +import { SourcifyChain } from "@ethereum-sourcify/lib-sourcify"; +import { StatusCodes } from "http-status-codes"; +import fetch from "node-fetch"; +import puppeteer from "puppeteer"; + +/** + * Finds the transaction that created the contract by either scraping a block explorer or querying a provided API. + * + * @param sourcifyChain + * @param address + * @returns + */ +export const getCreatorTx = async ( + sourcifyChain: SourcifyChain, + address: string +): Promise => { + const contractFetchAddressFilled = + sourcifyChain.contractFetchAddress?.replace("${ADDRESS}", address); + const txRegex = sourcifyChain?.txRegex; + + if (!contractFetchAddressFilled) return null; + + // Chains with the new Etherscan API that returns the creation transaction hash + if (contractFetchAddressFilled.includes("action=getcontractcreation")) { + const response = await fetchFromApi(contractFetchAddressFilled); + if (response?.result?.[0]?.txHash) + return response?.result?.[0]?.txHash as string; + } + + // If there's txRegex, scrape block explorers + if (contractFetchAddressFilled && txRegex) { + const creatorTx = await getCreatorTxByScraping( + contractFetchAddressFilled, + txRegex + ); + if (creatorTx) return creatorTx; + } + + // Telos + if (sourcifyChain.chainId == 40 || sourcifyChain.chainId == 41) { + const response = await fetchFromApi(contractFetchAddressFilled); + if (response.creation_trx) return response.creation_trx as string; + } + + // XDC + if (sourcifyChain.chainId == 50 || sourcifyChain.chainId == 51) { + const response = await fetchFromApi(contractFetchAddressFilled); + if (response.fromTxn) return response.fromTxn as string; + } + + // Meter network + if (sourcifyChain.chainId == 83 || sourcifyChain.chainId == 82) { + const response = await fetchFromApi(contractFetchAddressFilled); + if (response?.account?.creationTxHash) + return response.account.creationTxHash as string; + } + + // Avalanche Subnets + if ([11111, 335, 53935, 432201, 432204].includes(sourcifyChain.chainId)) { + const response = await fetchFromApi(contractFetchAddressFilled); + if (response.nativeTransaction?.txHash) + return response.nativeTransaction.txHash as string; + } + + return null; +}; + +/** + * Fetches the block explorer page (Etherscan, Blockscout etc.) of the contract and extracts the transaction hash that created the contract from the page with the provided regex for that explorer. + * + * @param fetchAddress the URL from which to fetch the page to be scrapd + * @param txRegex regex whose first group matches the transaction hash on the page + * @returns a promise of the tx hash that created the contract + */ +async function getCreatorTxByScraping( + fetchAddress: string, + txRegex: string[] +): Promise { + const browser = await puppeteer.launch({ headless: "new" }); + const page = await browser.newPage(); + const response = await page.goto(fetchAddress); + await new Promise((r) => setTimeout(r, 3000)); // Wait for 3 seconds + + const bodyHTML = await page.evaluate(() => document.body.innerHTML); + await browser.close(); + + if (!response) + throw new Error( + "Scraping the creator tx failed. No response from " + fetchAddress + ); + + if (response.status() === StatusCodes.OK) { + for (const regex of txRegex) { + const matched = bodyHTML.match(regex); + if (matched && matched[1]) { + const txHash = matched[1]; + return txHash; + } + } + if (bodyHTML.includes("captcha") || bodyHTML.includes("CAPTCHA")) { + throw new Error( + "Scraping the creator tx failed because of CAPTCHA at ${fetchAddress}" + ); + } + } + if (response.status() === StatusCodes.FORBIDDEN) { + throw new Error( + `Scraping the creator tx failed at ${fetchAddress} because of HTTP status code ${response.status()} (Forbidden) + + Try manually putting the creator tx hash in the "Creator tx hash" field.` + ); + } + return null; +} + +async function fetchFromApi(fetchAddress: string) { + const res = await fetch(fetchAddress); + if (res.status === StatusCodes.OK) { + const response = await res.json(); + return response; + } + + throw new Error( + `Contract creator tx could not be fetched from ${fetchAddress} because of status code ${res.status}` + ); +} diff --git a/src/server/services/VerificationService.ts b/src/server/services/VerificationService.ts new file mode 100644 index 000000000..58897e823 --- /dev/null +++ b/src/server/services/VerificationService.ts @@ -0,0 +1,70 @@ +import { + verifyDeployed, + CheckedContract, + SourcifyChainMap, + Match, + /* ContextVariables, */ +} from "@ethereum-sourcify/lib-sourcify"; +import { SourcifyEventManager } from "../../common/SourcifyEventManager/SourcifyEventManager"; +import { getCreatorTx } from "./VerificationService-util"; +import { supportedChainsMap } from "../../sourcify-chains"; + +export interface IVerificationService { + supportedChainsMap: SourcifyChainMap; + verifyDeployed( + checkedContract: CheckedContract, + chainId: string, + address: string, + /* contextVariables?: ContextVariables, */ + creatorTxHash?: string + ): Promise; +} + +export class VerificationService implements IVerificationService { + supportedChainsMap: SourcifyChainMap; + + constructor(supportedChainsMap: SourcifyChainMap) { + this.supportedChainsMap = supportedChainsMap; + } + + public async verifyDeployed( + checkedContract: CheckedContract, + chainId: string, + address: string, + /* contextVariables?: ContextVariables, */ + creatorTxHash?: string + ): Promise { + const sourcifyChain = this.supportedChainsMap[chainId]; + let match; + try { + match = await verifyDeployed( + checkedContract, + sourcifyChain, + address, + /* contextVariables, */ + creatorTxHash + ); + return match; + } catch (err) { + // Find the creator tx if it wasn't supplied and try verifying again with it. + if ( + !creatorTxHash && + err instanceof Error && + err.message === "The deployed and recompiled bytecode don't match." + ) { + const foundCreatorTxHash = await getCreatorTx(sourcifyChain, address); + if (foundCreatorTxHash) { + match = await verifyDeployed( + checkedContract, + sourcifyChain, + address, + /* contextVariables, */ + foundCreatorTxHash + ); + return match; + } + } + throw err; + } + } +} diff --git a/src/server/services/services.ts b/src/server/services/services.ts new file mode 100644 index 000000000..12de79991 --- /dev/null +++ b/src/server/services/services.ts @@ -0,0 +1,9 @@ +import config from "../../config"; +import { supportedChainsMap } from "../../sourcify-chains"; +import { RepositoryService } from "./RepositoryService"; +import { VerificationService } from "./VerificationService"; + +export const services = { + verification: new VerificationService(supportedChainsMap), + repository: new RepositoryService(config.repository.path), +}; diff --git a/src/server/types.ts b/src/server/types.ts new file mode 100644 index 000000000..3bd7d15c4 --- /dev/null +++ b/src/server/types.ts @@ -0,0 +1,26 @@ +// Types used internally by the server. + +/** + * A type for specfifying the strictness level of querying (only full or any kind of matches) + */ +export type MatchLevel = "full_match" | "any_match"; + +/** + * An array wrapper with info properties. + */ +export type FilesInfo = { status: MatchQuality; files: Array }; + +/** + * A type for specifying the match quality of files. + */ +export type MatchQuality = "full" | "partial"; + +export declare interface ContractData { + full: string[]; + partial: string[]; +} + +export type RepositoryTag = { + timestamp: any; + repositoryVersion: string; +}; diff --git a/src/sourcify-chains.ts b/src/sourcify-chains.ts new file mode 100644 index 000000000..b56c06f5d --- /dev/null +++ b/src/sourcify-chains.ts @@ -0,0 +1,1059 @@ +import * as chainsRaw from "./chains.json"; +import * as dotenv from "dotenv"; +import path from "path"; +import { SourcifyEventManager } from "./common/SourcifyEventManager/SourcifyEventManager"; +import { + SourcifyChain, + SourcifyChainMap, + SourcifyChainExtension, + Chain, +} from "@ethereum-sourcify/lib-sourcify"; +import { etherscanAPIs } from "./config"; +import { ValidationError } from "./common/errors"; +import { logger } from "./common/loggerLoki"; +import { FetchRequest } from "ethers"; + +const allChains = chainsRaw as Chain[]; + +dotenv.config({ + path: path.resolve(__dirname, "..", "..", "..", "environments/.env"), +}); + +const ETHERSCAN_REGEX = ["at txn.*href=.*/tx/(0x.{64})"]; // save as string to be able to return the txRegex in /chains response. If stored as RegExp returns {} +const ETHERSCAN_SUFFIX = "address/${ADDRESS}"; +const ETHERSCAN_API_SUFFIX = `/api?module=contract&action=getcontractcreation&contractaddresses=\${ADDRESS}&apikey=`; +const BLOCKSSCAN_SUFFIX = "api/accounts/${ADDRESS}"; +const BLOCKSCOUT_REGEX_OLD = + 'transaction_hash_link" href="${BLOCKSCOUT_PREFIX}/tx/(.*?)"'; +const BLOCKSCOUT_REGEX_NEW = "at txn.*href.*/tx/(0x.{64}?)"; +const BLOCKSCOUT_SUFFIX = "address/${ADDRESS}/transactions"; +const TELOS_SUFFIX = "v2/evm/get_contract?contract=${ADDRESS}"; +const METER_SUFFIX = "api/accounts/${ADDRESS}"; +const AVALANCHE_SUBNET_SUFFIX = + "contracts/${ADDRESS}/transactions:getDeployment"; + +type ChainName = "eth" | "polygon" | "arb" | "opt"; + +const LOCAL_CHAINS: SourcifyChain[] = [ + new SourcifyChain({ + name: "Ganache Localhost", + shortName: "Ganache", + chainId: 1337, + faucets: [], + infoURL: "localhost", + nativeCurrency: { name: "localETH", symbol: "localETH", decimals: 18 }, + network: "testnet", + networkId: 1337, + rpc: [`http://localhost:8545`], + supported: true, + monitored: true, + }), + new SourcifyChain({ + name: "Hardhat Network Localhost", + shortName: "Hardhat Network", + chainId: 31337, + faucets: [], + infoURL: "localhost", + nativeCurrency: { name: "localETH", symbol: "localETH", decimals: 18 }, + network: "testnet", + networkId: 31337, + rpc: [`http://localhost:8545`], + supported: true, + monitored: true, + }), +]; + +interface SourcifyChainsExtensionsObject { + [chainId: string]: SourcifyChainExtension; +} + +/** + * + * @param chainName - "eth", "polygon" etc. + * @param chainGroup "mainnet", "goerli"... + * @param useOwn Use the local node + * @returns + */ +function buildAlchemyAndCustomRpcURLs( + chainSubName: string, + chainName: ChainName, + useOwn = false +) { + const rpcURLs: SourcifyChain["rpc"] = []; + + if (useOwn) { + const url = process.env[`NODE_URL_${chainSubName.toUpperCase()}`]; + if (url) { + const ethersFetchReq = new FetchRequest(url); + ethersFetchReq.setHeader("Content-Type", "application/json"); + ethersFetchReq.setHeader( + "CF-Access-Client-Id", + process.env.CF_ACCESS_CLIENT_ID || "" + ); + ethersFetchReq.setHeader( + "CF-Access-Client-Secret", + process.env.CF_ACCESS_CLIENT_SECRET || "" + ); + rpcURLs.push(ethersFetchReq); + } else { + SourcifyEventManager.trigger("Server.SourcifyChains.Warn", { + message: `Environment variable NODE_URL_${chainSubName.toUpperCase()} not set!`, + }); + } + } + + let alchemyId; + switch (chainName) { + case "opt": + alchemyId = + process.env["ALCHEMY_ID_OPTIMISM"] || process.env["ALCHEMY_ID"]; + break; + case "arb": + alchemyId = + process.env["ALCHEMY_ID_ARBITRUM"] || process.env["ALCHEMY_ID"]; + break; + default: + alchemyId = process.env["ALCHEMY_ID"]; + break; + } + + if (!alchemyId) { + SourcifyEventManager.trigger("Server.SourcifyChains.Warn", { + message: `Environment variable ALCHEMY_ID not set for ${chainName} ${chainSubName}!`, + }); + } else { + const domain = "g.alchemy.com"; + rpcURLs.push( + `https://${chainName}-${chainSubName}.${domain}/v2/${alchemyId}` + ); + } + + return rpcURLs; +} +// replaces INFURA_API_KEY in https://networkname.infura.io/v3/{INFURA_API_KEY} +function replaceInfuraID(infuraURL: string) { + return infuraURL.replace("{INFURA_API_KEY}", process.env.INFURA_ID || ""); +} +function getBlockscoutRegex(blockscoutPrefix = "") { + const tempBlockscoutOld = BLOCKSCOUT_REGEX_OLD.replace( + "${BLOCKSCOUT_PREFIX}", + blockscoutPrefix + ); + return [tempBlockscoutOld, BLOCKSCOUT_REGEX_NEW]; +} + +// api?module=contract&action=getcontractcreation&contractaddresses=\${ADDRESS}&apikey= +// For chains with the new Etherscan api that has contract creator tx hash endpoint +function generateEtherscanCreatorTxAPI(chainId: string) { + return ( + etherscanAPIs[chainId].apiURL + + ETHERSCAN_API_SUFFIX + + etherscanAPIs[chainId].apiKey + ); +} + +const sourcifyChainsExtensions: SourcifyChainsExtensionsObject = { + "1": { + // Ethereum Mainnet + supported: true, + monitored: true, + contractFetchAddress: generateEtherscanCreatorTxAPI("1"), + rpc: buildAlchemyAndCustomRpcURLs("mainnet", "eth", true), + }, + "5": { + // Ethereum Goerli Testnet + supported: true, + monitored: true, + contractFetchAddress: generateEtherscanCreatorTxAPI("5"), + rpc: buildAlchemyAndCustomRpcURLs("goerli", "eth", true), + }, + "11155111": { + // Ethereum Sepolia Testnet + supported: true, + monitored: true, + rpc: buildAlchemyAndCustomRpcURLs("sepolia", "eth", true), + contractFetchAddress: generateEtherscanCreatorTxAPI("11155111"), + }, + "3": { + // Deprecated + // Ethereum Ropsten Testnet + supported: false, + monitored: false, + contractFetchAddress: "https://ropsten.etherscan.io/" + ETHERSCAN_SUFFIX, + rpc: buildAlchemyAndCustomRpcURLs("ropsten", "eth"), + txRegex: ETHERSCAN_REGEX, + }, + "4": { + // Deprecated + // Ethereum Rinkeby Testnet + supported: false, + monitored: false, + contractFetchAddress: "https://rinkeby.etherscan.io/" + ETHERSCAN_SUFFIX, + rpc: buildAlchemyAndCustomRpcURLs("rinkeby", "eth", true), + txRegex: ETHERSCAN_REGEX, + }, + "42": { + // Deprecated + // Ethereum Kovan Testnet + supported: false, + monitored: false, + contractFetchAddress: "https://kovan.etherscan.io/" + ETHERSCAN_SUFFIX, + rpc: buildAlchemyAndCustomRpcURLs("kovan", "eth"), + txRegex: ETHERSCAN_REGEX, + }, + "51": { + supported: true, + monitored: false, + contractFetchAddress: "https://apothem.blocksscan.io/" + BLOCKSSCAN_SUFFIX, + }, + "56": { + supported: true, + monitored: false, + contractFetchAddress: generateEtherscanCreatorTxAPI("56"), + }, + "61": { + supported: true, + monitored: false, + contractFetchAddress: + "https://blockscout.com/etc/mainnet/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex("/etc/mainnet"), + }, + "77": { + // Turned off as seemingly stale + supported: false, + monitored: false, + contractFetchAddress: + "https://blockscout.com/poa/sokol/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex("/poa/sokol"), + }, + "82": { + // Meter Mainnet + supported: true, + monitored: true, + contractFetchAddress: "https://api.meter.io:8000/" + METER_SUFFIX, + }, + "83": { + // Meter Testnet + supported: true, + monitored: true, + contractFetchAddress: "https://api.meter.io:4000/" + METER_SUFFIX, + }, + "97": { + supported: true, + monitored: false, + contractFetchAddress: "https://testnet.bscscan.com/" + ETHERSCAN_SUFFIX, + txRegex: ETHERSCAN_REGEX, + }, + "100": { + supported: true, + monitored: true, + contractFetchAddress: + "https://blockscout.com/xdai/mainnet/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex("/xdai/mainnet"), + }, + "295": { + // Hedera Mainnet + supported: true, + monitored: false, + contractFetchAddress: "https://hashscan.io/mainnet/" + ETHERSCAN_SUFFIX, + }, + "300": { + // Turned off as seems to be shut down + supported: false, + monitored: false, + contractFetchAddress: + "https://blockscout.com/xdai/optimism/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex("/xdai/optimism"), + }, + "314": { + supported: true, + monitored: false, + }, + "137": { + supported: true, + monitored: true, + contractFetchAddress: generateEtherscanCreatorTxAPI("137"), + rpc: buildAlchemyAndCustomRpcURLs("mainnet", "polygon"), + }, + "534": { + // Turned off as seems to be stale + supported: false, + monitored: false, + contractFetchAddress: "https://candleexplorer.com/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "42220": { + supported: true, + monitored: false, + contractFetchAddress: + "https://explorer.celo.org/mainnet/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex("/mainnet"), + }, + "44787": { + supported: true, + monitored: false, + contractFetchAddress: + "https://explorer.celo.org/alfajores/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex("/alfajores"), + }, + "62320": { + supported: true, + monitored: false, + contractFetchAddress: + "https://baklava-blockscout.celo-testnet.org/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "80001": { + supported: true, + monitored: true, + contractFetchAddress: "https://mumbai.polygonscan.com/" + ETHERSCAN_SUFFIX, + rpc: buildAlchemyAndCustomRpcURLs("mumbai", "polygon"), + txRegex: ETHERSCAN_REGEX, + }, + "42161": { + // Arbitrum One Mainnet + supported: true, + monitored: true, + contractFetchAddress: generateEtherscanCreatorTxAPI("42161"), + rpc: buildAlchemyAndCustomRpcURLs("mainnet", "arb"), + }, + "421613": { + // Arbitrum Goerli Testnet + supported: true, + monitored: true, + contractFetchAddress: generateEtherscanCreatorTxAPI("421613"), + rpc: buildAlchemyAndCustomRpcURLs("goerli", "arb"), + }, + "43113": { + // Avalanche Fuji Testnet + supported: true, + monitored: false, + contractFetchAddress: "https://testnet.snowtrace.io/" + ETHERSCAN_SUFFIX, + txRegex: ETHERSCAN_REGEX, + }, + "43114": { + // Avalanche C-Chain Mainnet + supported: true, + monitored: false, + contractFetchAddress: generateEtherscanCreatorTxAPI("43114"), + }, + "57": { + supported: true, + monitored: false, + contractFetchAddress: "https://explorer.syscoin.org/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "5700": { + supported: true, + monitored: false, + contractFetchAddress: "https://tanenbaum.io/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "570": { + supported: true, + monitored: false, + contractFetchAddress: "https://explorer.rollux.com/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "57000": { + supported: true, + monitored: false, + contractFetchAddress: "https://rollux.tanenbaum.io/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "40": { + supported: true, + monitored: false, + contractFetchAddress: "https://mainnet.telos.net/" + TELOS_SUFFIX, + }, + "41": { + supported: true, + monitored: false, + contractFetchAddress: "https://testnet.telos.net/" + TELOS_SUFFIX, + }, + "8": { + supported: true, + monitored: false, + contractFetchAddress: "https://ubiqscan.io/" + ETHERSCAN_SUFFIX, + txRegex: ETHERSCAN_REGEX, + }, + "311752642": { + supported: true, + monitored: false, + contractFetchAddress: + "https://mainnet-explorer.oneledger.network/" + BLOCKSCOUT_SUFFIX, + rpc: ["https://mainnet-rpc.oneledger.network"], + txRegex: getBlockscoutRegex(), + }, + "4216137055": { + // Turned off due to inactivity + supported: false, + monitored: false, + contractFetchAddress: + "https://frankenstein-explorer.oneledger.network/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "10": { + // Optimism Mainnet + supported: true, + monitored: true, + contractFetchAddress: generateEtherscanCreatorTxAPI("10"), + rpc: buildAlchemyAndCustomRpcURLs("mainnet", "opt"), + }, + "420": { + // Optimism Goerli + supported: true, + monitored: true, + contractFetchAddress: + "https://blockscout.com/optimism/goerli/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex("/optimism/goerli"), + rpc: buildAlchemyAndCustomRpcURLs("goerli", "opt"), + }, + "28": { + // Turned off support as the chains seems shut down + supported: false, + monitored: false, + contractFetchAddress: + "https://blockexplorer.rinkeby.boba.network/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "288": { + supported: true, + monitored: false, + contractFetchAddress: + "https://blockexplorer.boba.network/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "106": { + supported: true, + monitored: false, + contractFetchAddress: "https://evmexplorer.velas.com/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "1313161554": { + supported: true, + monitored: false, + contractFetchAddress: + "https://explorer.mainnet.aurora.dev/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "1313161555": { + supported: true, + monitored: false, + contractFetchAddress: + "https://explorer.testnet.aurora.dev/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "1284": { + // Moonbeam + supported: true, + monitored: false, + contractFetchAddress: generateEtherscanCreatorTxAPI("1284"), + }, + "1285": { + // Moonriver + supported: true, + monitored: false, + contractFetchAddress: generateEtherscanCreatorTxAPI("1285"), + }, + "1287": { + // Moonbase + supported: true, + monitored: false, + }, + "11297108109": { + // Palm + supported: true, + monitored: false, + contractFetchAddress: "https://explorer.palm.io/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + rpc: [ + replaceInfuraID("https://palm-mainnet.infura.io/v3/{INFURA_API_KEY}"), + ], + }, + "11297108099": { + // Palm Testnet + supported: true, + monitored: false, + contractFetchAddress: "https://explorer.palm-uat.xyz/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + rpc: [ + replaceInfuraID("https://palm-testnet.infura.io/v3/{INFURA_API_KEY}"), + ], + }, + "122": { + // Fuse Mainnet + supported: true, + monitored: false, + contractFetchAddress: "https://explorer.fuse.io/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "43": { + // Turned off support + // Darwinia Pangolin Testnet + supported: false, + monitored: false, + }, + "44": { + // Darwinia Crab Mainnet + supported: true, + monitored: false, + }, + "9000": { + // Evmos Testnet + supported: true, + monitored: false, + contractFetchAddress: "https://evm.evmos.dev/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "9001": { + // Evmos Mainnet + supported: true, + monitored: false, + contractFetchAddress: "https://evm.evmos.org/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "62621": { + // MultiVAC Mainnet + supported: true, + monitored: false, + }, + "11111": { + // WAGMI Testnet + supported: true, + monitored: false, + contractFetchAddress: + `https://glacier-api.avax.network/v1/chains/11111/` + + AVALANCHE_SUBNET_SUFFIX, + }, + "192837465": { + // Gather Mainnet + supported: true, + monitored: false, + contractFetchAddress: + "https://explorer.gather.network/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "486217935": { + // Turn off support as the chain seems to be shut down + // Gather Devnet + supported: false, + monitored: false, + contractFetchAddress: + "https://devnet-explorer.gather.network/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "356256156": { + // Gather Testnet + supported: true, + monitored: false, + contractFetchAddress: + "https://testnet-explorer.gather.network/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "335": { + // DFK Chain Testnet + supported: true, + monitored: false, + contractFetchAddress: + `https://glacier-api.avax.network/v1/chains/335/` + + AVALANCHE_SUBNET_SUFFIX, + }, + "53935": { + // DFK Chain Mainnet + supported: true, + monitored: false, + contractFetchAddress: + `https://glacier-api.avax.network/v1/chains/53935/` + + AVALANCHE_SUBNET_SUFFIX, + }, + "73799": { + // Energy Web Volta Testnet + supported: true, + monitored: false, + contractFetchAddress: + "https://volta-explorer.energyweb.org/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "246": { + // Energy Web Chain + supported: true, + monitored: false, + contractFetchAddress: "https://explorer.energyweb.org/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "71401": { + // Godwoken testnet v1.1 + supported: true, + monitored: false, + contractFetchAddress: + "https://gw-testnet-explorer.nervosdao.community/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "71402": { + // Godwoken mainnet v1.1 + supported: true, + monitored: false, + contractFetchAddress: + "https://gw-mainnet-explorer.nervosdao.community/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "432201": { + // Dexalot Testnet + supported: true, + monitored: false, + contractFetchAddress: + `https://glacier-api.avax.network/v1/chains/432201/` + + AVALANCHE_SUBNET_SUFFIX, + }, + "432204": { + // Dexalot Mainnet + supported: true, + monitored: false, + contractFetchAddress: + `https://glacier-api.avax.network/v1/chains/432204/` + + AVALANCHE_SUBNET_SUFFIX, + }, + "103090": { + // Turn off support as the chain seems to be shut down + // Crystaleum Mainnet + supported: false, + monitored: false, + contractFetchAddress: "https://scan.crystaleum.org/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "420666": { + // Kekchain Testnet (kektest) + supported: true, + monitored: false, + contractFetchAddress: + "https://testnet-explorer.kekchain.com/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "420420": { + // Kekchain Main Net (kekistan) + supported: true, + monitored: false, + contractFetchAddress: + "https://mainnet-explorer.kekchain.com/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "7700": { + // Canto Mainnet + supported: true, + monitored: false, + contractFetchAddress: "https://tuber.build/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "7701": { + // Canto Testnet + supported: true, + monitored: false, + contractFetchAddress: "https://testnet.tuber.build/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "99": { + // Turned off support as the chain seems to be shut down + // POA Network Core + supported: false, + monitored: false, + contractFetchAddress: + "https://blockscout.com/poa/core/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex("/poa/core"), + rpc: ["https://core.poa.network"], + }, + "592": { + // Turned off support as RPCs are failing + // Astar (EVM) + supported: false, + monitored: false, + contractFetchAddress: "https://blockscout.com/astar/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex("/astar"), + }, + "10200": { + // Gnosis Chiado Testnet + supported: true, + monitored: false, + contractFetchAddress: + "https://blockscout.chiadochain.net/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "1001": { + // Klaytn Testnet Baobab + supported: true, + monitored: false, + contractFetchAddress: + "https://klaytn-testnet.blockscout.com/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "8217": { + // Klaytn Mainnet Cypress + supported: true, + monitored: false, + contractFetchAddress: + "https://klaytn-mainnet.blockscout.com/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "336": { + // Shiden (EVM) + supported: true, + monitored: false, + contractFetchAddress: "https://blockscout.com/shiden/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex("/shiden"), + }, + "28528": { + // Turned off support as the chain seems to be shut down + // Optimism Bedrock: Goerli Alpha Testnet + supported: false, + monitored: false, + contractFetchAddress: + "https://blockscout.com/optimism/bedrock-alpha/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex("/optimism/bedrock-alpha"), + }, + "7001": { + // ZetaChain: Athens Testnet + supported: true, + monitored: false, + contractFetchAddress: + "https://blockscout.athens2.zetachain.com/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "42262": { + // Oasis Emerald Mainnet + supported: true, + monitored: false, + contractFetchAddress: + "https://explorer.emerald.oasis.dev/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "42261": { + // Oasis Emerald Testnet + supported: true, + monitored: false, + contractFetchAddress: + "https://testnet.explorer.emerald.oasis.dev/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "23294": { + // Oasis Sapphire Mainnet + supported: true, + monitored: false, + contractFetchAddress: + "https://explorer.sapphire.oasis.io/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "23295": { + // Oasis Sapphire Testnet + supported: true, + monitored: false, + contractFetchAddress: + "https://testnet.explorer.sapphire.oasis.dev/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "19": { + // Songbird Canary Network + supported: true, + monitored: false, + contractFetchAddress: + "https://songbird-explorer.flare.network/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "14": { + // Turned off support as RPCs are failing + // Flare Mainnet + supported: false, + monitored: false, + contractFetchAddress: + "https://flare-explorer.flare.network/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "2047": { + // Turned off support as RPCs are failing + // Stratos Testnet + supported: false, + monitored: false, + contractFetchAddress: + "https://web3-testnet-explorer.thestratos.org/" + BLOCKSCOUT_SUFFIX, + rpc: ["https://web3-testnet-rpc.thestratos.org"], + txRegex: getBlockscoutRegex(), + }, + "641230": { + // Bear Network Chain Mainnet + supported: true, + monitored: false, + contractFetchAddress: + "https://brnkscan.bearnetwork.net/" + BLOCKSCOUT_SUFFIX, + rpc: ["https://brnkc-mainnet.bearnetwork.net"], + txRegex: getBlockscoutRegex(), + }, + "84531": { + // Base Goerli Testnet + supported: true, + monitored: true, + contractFetchAddress: "https://goerli.basescan.org/" + ETHERSCAN_SUFFIX, + txRegex: ETHERSCAN_REGEX, + }, + "888": { + // Wanchain Mainnet + supported: true, + monitored: false, + txRegex: ETHERSCAN_REGEX, + }, + "999": { + // Wanchain Testnet + supported: true, + monitored: false, + txRegex: ETHERSCAN_REGEX, + }, + "7668": { + // The Root Network Mainnet + supported: true, + monitored: false, + contractFetchAddress: "https://explorer.rootnet.live/" + ETHERSCAN_SUFFIX, + txRegex: ETHERSCAN_REGEX, + }, + "7672": { + // The Root Network Porcini (Testnet) + supported: true, + monitored: false, + contractFetchAddress: "https://explorer.rootnet.cloud/" + ETHERSCAN_SUFFIX, + txRegex: ETHERSCAN_REGEX, + }, + "421611": { + // Arbitrum Rinkeby Testnet + supported: false, + monitored: false, + graphQLFetchAddress: "https://rinkeby-indexer.arbitrum.io/graphql", + rpc: buildAlchemyAndCustomRpcURLs("rinkeby", "arb"), + }, + "69": { + supported: false, + monitored: false, + contractFetchAddress: + "https://kovan-optimistic.etherscan.io/" + ETHERSCAN_SUFFIX, + txRegex: ETHERSCAN_REGEX, + rpc: buildAlchemyAndCustomRpcURLs("kovan", "opt"), + }, + "1149": { + // Symplexia Smart Chain + supported: true, + monitored: false, + contractFetchAddress: + "https://explorer.plexfinance.us/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "2000": { + // DogeChain Mainnet + supported: true, + monitored: false, + contractFetchAddress: "https://explorer.dogechain.dog/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "25925": { + // Bitkub Chain Testnet + supported: true, + monitored: false, + contractFetchAddress: "https://testnet.bkcscan.com/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "96": { + // Bitkub Chain + supported: true, + monitored: false, + contractFetchAddress: "https://bkcscan.com/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "25": { + // Cronos Mainnet Beta + supported: true, + monitored: false, + contractFetchAddress: "https://cronoscan.com/" + ETHERSCAN_SUFFIX, + txRegex: ETHERSCAN_REGEX, + }, + "1339": { + // Elysium Mainnet Chain + supported: true, + monitored: false, + contractFetchAddress: + "https://blockscout.elysiumchain.tech/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "167005": { + // Taiko Alpha-3 + supported: true, + monitored: false, + }, + "7777777": { + // ZORA + supported: true, + monitored: false, + contractFetchAddress: "https://explorer.zora.co/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "6119": { + // UPTN Mainnet + supported: true, + monitored: false, + contractFetchAddress: + `https://glacier-api.avax.network/v1/chains/6119/` + + AVALANCHE_SUBNET_SUFFIX, + }, + "2222": { + // Kava EVM + supported: true, + monitored: false, + contractFetchAddress: "https://explorer.kava.io/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "32769": { + // Zilliqa EVM + supported: true, + monitored: false, + }, + "33101": { + // Zilliqa EVM Testnet + supported: true, + monitored: false, + }, + "2221": { + // Kava EVM Testnet + supported: true, + monitored: false, + contractFetchAddress: + "https://explorer.testnet.kava.io/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "111000": { + supported: true, + monitored: false, + contractFetchAddress: + "https://http://explorer.test.siberium.net/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, +}; + +const sourcifyChainsMap: SourcifyChainMap = {}; + +// Add test chains too if developing or testing +if (process.env.NODE_ENV !== "production") { + for (const chain of LOCAL_CHAINS) { + sourcifyChainsMap[chain.chainId.toString()] = chain; + } +} + +// iterate over chainid.network's chains.json file and get the chains included in sourcify. +// Merge the chains.json object with the values from sourcify-chains.ts +// Must iterate over all chains because it's not a mapping but an array. +for (const i in allChains) { + const chain = allChains[i]; + const chainId = chain.chainId; + if (chainId in sourcifyChainsMap) { + // Don't throw on local chains in development, override the chain.json item + if ( + process.env.NODE_ENV !== "production" && + LOCAL_CHAINS.map((c) => c.chainId).includes(chainId) + ) { + continue; + } + const err = `Corrupt chains file (chains.json): multiple chains have the same chainId: ${chainId}`; + throw new Error(err); + } + + if (chainId in sourcifyChainsExtensions) { + const sourcifyExtension = sourcifyChainsExtensions[chainId]; + // sourcifyExtension is spread later to overwrite chain values, rpc specifically + const sourcifyChain = new SourcifyChain({ + ...chain, + ...sourcifyExtension, + }); + sourcifyChainsMap[chainId] = sourcifyChain; + } +} + +const sourcifyChainsArray = getSortedChainsArray(sourcifyChainsMap); +const supportedChainsArray = sourcifyChainsArray.filter( + (chain) => chain.supported +); +// convert supportedChainArray to a map where the key is the chainId +const supportedChainsMap = supportedChainsArray.reduce( + (map, chain) => ((map[chain.chainId.toString()] = chain), map), + {} +); +const monitoredChainArray = sourcifyChainsArray.filter( + (chain) => chain.monitored +); +// convert monitoredChainArray to a map where the key is the chainId +const monitoredChainsMap = monitoredChainArray.reduce( + (map, chain) => ((map[chain.chainId.toString()] = chain), map), + {} +); + +// Gets the chainsMap, sorts the chains, returns Chain array. +export function getSortedChainsArray( + chainMap: SourcifyChainMap +): SourcifyChain[] { + function getPrimarySortKey(chain: any) { + return chain.name || chain.title; + } + + const chainsArray = Object.values(chainMap); + // Have Ethereum chains on top. + const ethereumChainIds = [1, 5, 11155111, 3, 4, 42]; + const ethereumChains = ethereumChainIds.map((id) => { + // Use long form name for Ethereum netorks e.g. "Ethereum Testnet Goerli" instead of "Goerli" + chainMap[id].name = chainMap[id].title || chainMap[id].name; + return chainMap[id]; + }); + // Others, sorted alphabetically + const otherChains = chainsArray + .filter((chain) => ![1, 5, 11155111, 3, 4, 42].includes(chain.chainId)) + .sort((a, b) => + getPrimarySortKey(a) > getPrimarySortKey(b) + ? 1 + : getPrimarySortKey(b) > getPrimarySortKey(a) + ? -1 + : 0 + ); + + const sortedChains = ethereumChains.concat(otherChains); + return sortedChains; +} + +/** + * To check if a chain is supported for verification. + * Note that there might be chains not supported for verification anymore but still exist as a SourcifyChain e.g. Ropsten. + */ +export function checkSupportedChainId(chainId: string) { + if (!(chainId in sourcifyChainsMap && sourcifyChainsMap[chainId].supported)) { + throw new ValidationError( + `Chain ${chainId} not supported for verification!` + ); + } + + return true; +} + +/** + * To check if a chain exists as a SourcifyChain. + * Note that there might be chains not supported for verification anymore but still exist as a SourcifyChain e.g. Ropsten. + */ +export function checkSourcifyChainId(chainId: string) { + if ( + !(chainId in sourcifyChainsMap && sourcifyChainsMap[chainId]) && + chainId != "0" + ) { + throw new Error(`Chain ${chainId} is not a Sourcify chain!`); + } + + return true; +} + +export { + sourcifyChainsMap, + sourcifyChainsArray, + supportedChainsMap, + supportedChainsArray, + monitoredChainsMap, + monitoredChainArray, + LOCAL_CHAINS, +}; diff --git a/test/chains/chain-tests.js b/test/chains/chain-tests.js index ca46973d9..7e2af9236 100644 --- a/test/chains/chain-tests.js +++ b/test/chains/chain-tests.js @@ -9,9 +9,8 @@ const fs = require("fs"); const path = require("path"); const util = require("util"); const rimraf = require("rimraf"); -const StatusCodes = require("http-status-codes").StatusCodes; -const ethers = require("ethers"); const addContext = require("mochawesome/addContext"); +const { assertVerification } = require("../helpers/assertions"); const TEST_TIME = 30000; // 30 seconds @@ -20,6 +19,8 @@ const newAddedChainId = process.env.NEW_CHAIN_ID; console.log("newAddedChainId"); console.log(newAddedChainId); +let anyTestsPass = false; // Fail when zero tests passing + chai.use(chaiHttp); describe("Test Supported Chains", function () { @@ -27,6 +28,8 @@ describe("Test Supported Chains", function () { const server = new Server(); let currentResponse = null; // to log server response when test fails + const testedChains = new Set(); // Track tested chains and make sure all "supported = true" chains are tested + before(async function () { const promisified = util.promisify(server.app.listen); await promisified(server.port); @@ -39,6 +42,13 @@ describe("Test Supported Chains", function () { after(() => { rimraf.sync(server.repository); + if (!anyTestsPass && newAddedChainId) { + throw new Error( + "There needs to be at least one passing test. Did you forget to add a test for your new chain with the id " + + newAddedChainId + + "?" + ); + } }); // log server response when test fails @@ -53,6 +63,15 @@ describe("Test Supported Chains", function () { currentResponse = null; }); + // Symplexia Smart Chain + verifyContract( + "0x968fd0BADc643B0A7b088f4b6aA2CE5FA65db622", + "1149", + "Symplexia Smart Chain", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + verifyContract( "0x801f3983c7baBF5E6ae192c84E1257844aDb4b4D", "1", @@ -61,33 +80,13 @@ describe("Test Supported Chains", function () { "1/metadata.json" ); - verifyContractWithImmutables( - "0xd5B284609c4C82D2E23E924522797821b89D5AC6", - "1", - "Ethereum Mainnet", - ["address"], - ["0xc1A5b551eDB9617613fEC59aD7aEA5f6a268d702"], - ["1/immutable/BundleExecutor.sol"], - "1/immutable/metadata.json" - ); - - verifyContract( - "0x1EFFEbE8B0bc20f2Dc504AA16dC76FF1AB2297A3", - "4", - "Rinkeby", - ["shared/1_Storage.sol"], - "shared/1_Storage.metadata.json" - ); - - verifyContractWithImmutables( - "0x656d0062eC89c940213E3F3170EA8b2add1c0143", - "4", - "Rinkeby", - ["uint256"], - [101], - ["shared/WithImmutables.sol"], - "shared/old.withImmutables.metadata.json" - ); + // verifyContract( + // "0x1EFFEbE8B0bc20f2Dc504AA16dC76FF1AB2297A3", + // "4", + // "Rinkeby", + // ["shared/1_Storage.sol"], + // "shared/1_Storage.metadata.json" + // ); verifyContract( "0xc24381dB2a5932B5D1c424f567A95F9966834cE0", @@ -97,16 +96,6 @@ describe("Test Supported Chains", function () { "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0xBdDe4D595F2CDdA92ca274423374E0e1C7286426", - "5", - "Goerli", - ["uint256"], - [2], - ["shared/WithImmutables.sol"], - "shared/old.withImmutables.metadata.json" - ); - verifyContract( "0x8F78b9c92a68DdF719849a40702cFBfa4EB60dD0", "11155111", @@ -115,16 +104,6 @@ describe("Test Supported Chains", function () { "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0xd46fd24ea21F04459407Fb0B518451e54d0b07a1", - "11155111", - "Sepolia", - ["uint256"], - [11155111], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); - verifyContract( "0x7f185202a630F09e05b6C2b51618b4f6Af728c7B", "100", @@ -133,33 +112,13 @@ describe("Test Supported Chains", function () { "100/metadata.json" ); - verifyContractWithImmutables( - "0x3CE1a25376223695284edc4C2b323C3007010C94", - "100", - "xDai", - ["uint256"], - [123], - ["shared/WithImmutables.sol"], - "shared/old.withImmutables.metadata.json" - ); - - verifyContract( - "0x2e4088DcA1aE2e098e322562ab1fEb83b3a303CD", - "300", - "Optimism on Gnosis", - ["shared/1_Storage.sol"], - "shared/1_Storage.metadata.json" - ); - - verifyContractWithImmutables( - "0x70BA4E669259C8f96eCc1aC5D37A91e2413a0173", - "300", - "Optimism on Gnosis", - ["uint256"], - [123], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + // verifyContract( + // "0x2e4088DcA1aE2e098e322562ab1fEb83b3a303CD", + // "300", + // "Optimism on Gnosis", + // ["shared/1_Storage.sol"], + // "shared/1_Storage.metadata.json" + // ); verifyContract( "0x8C3FA94eb5b07c9AF7dBFcC53ea3D2BF7FdF3617", @@ -169,15 +128,6 @@ describe("Test Supported Chains", function () { "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0xCbdD8DD32732ce953efcD56D046294260a01C2D1", - "51", - "XinFin Apothem Testnet", - ["uint256"], - [1], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); verifyContract( "0xED5405Ba038587c06979374f8a595F41F5841216", "56", @@ -185,6 +135,7 @@ describe("Test Supported Chains", function () { ["56/Index.sol"], "56/metadata.json" ); + verifyContract( "0x8F78b9c92a68DdF719849a40702cFBfa4EB60dD0", "44787", @@ -192,15 +143,6 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x66ec3fBf4D7d7B7483Ae4fBeaBDD6022037bfa1a", - "44787", - "Celo Alfajores Testnet", - ["uint256"], - [777], - ["shared/WithImmutables.sol"], - "shared/old.withImmutables.metadata.json" - ); verifyContract( "0xd46fd24ea21F04459407Fb0B518451e54d0b07a1", @@ -210,16 +152,6 @@ describe("Test Supported Chains", function () { "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x68107Fb54f5f29D8e0B3Ac44a99f4444D1F22a68", - "97", - "Binance Smart Chain Testnet", - ["uint256"], - [111], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); - verifyContract( "0x9969150c2AA0140F5109Ae29A51FA109Fe1d1d9C", "137", @@ -228,19 +160,6 @@ describe("Test Supported Chains", function () { "137/metadata.json" ); - verifyContractWithImmutables( - "0xEb30853fc616Bbb8f1444451A3c202cbcd08Fb47", - "137", - "Polygon (Matic)", - ["address", "address"], - [ - "0x35298453c615cd349941ecf54873708538966f7d", - "0x4e56fe4805c21b5347bfb08787fd3e787eb59d7b", - ], - ["137/immutable/StakingWarmup.sol"], - "137/immutable/metadata.json" - ); - verifyContract( "0x5D40b45C202531d040e0CCD51C48554109197cD3", "80001", @@ -249,16 +168,6 @@ describe("Test Supported Chains", function () { "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x9f055673EDf939c29907421d849f4D0f908DE8a7", - "80001", - "Polygon Mumbai Testnet", - ["uint256"], - [222], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); - verifyContract( "0x03943C3ef00d92e130185CeBC0bcc435Def2cC94", "42220", @@ -267,19 +176,6 @@ describe("Test Supported Chains", function () { "42220/metadata.json" ); - verifyContractWithImmutables( - "0x1B18B4A3A3d5535CA5D68b7Ea969676B8Fc76bDC", - "42220", - "Celo Mainnet", - ["address", "address"], - [ - "0xA02F4e8dE9A226E8f2F2fe27B9b207fC85CFEED2", - "0xE685d21b7B0FC7A248a6A8E03b8Db22d013Aa2eE", - ], - ["42220/immutable/StakingHelper.sol"], - "42220/immutable/metadata.json" - ); - verifyContract( "0xdd5FFA1DF887D5A42931a746BaAd62574501A5Aa", "62320", @@ -288,24 +184,6 @@ describe("Test Supported Chains", function () { "62320/0xdd5FFA1DF887D5A42931a746BaAd62574501A5Aa/metadata.json" ); - verifyContractWithImmutables( - "0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e", - "62320", - "Celo Baklava Testnet", - ["address", "bytes32"], - [ - "0xddc9be57f553fe75752d61606b94cbd7e0264ef8", - "0x343f066577633aea3125817c1a919d1af0540bfd6812165ee18954fff9cf648e", - ], - [ - "62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/IERC20.sol", - "62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/MerkleProof.sol", - "62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/IMerkleDistributor.sol", - "62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/MerkleDistributor.sol", - ], - "62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/metadata.json" - ); - verifyContract( "0x03943C3ef00d92e130185CeBC0bcc435Def2cC94", "43114", @@ -314,19 +192,6 @@ describe("Test Supported Chains", function () { "42220/metadata.json" ); - verifyContractWithImmutables( - "0x71dAE4788fD0Ef1f50a53380bD514FBf2fB647f6", - "43114", - "Avalanche Mainnet", - ["address", "address"], - [ - "0x63b527F4f9cAB808b0178282bC1036d4bBe54a45", - "0xd6C5BFa9FeEA5579498EA4b04Fff86A9eB3A1a9d", - ], - ["43114/immutable/StakingHelper.sol"], - "43114/immutable/metadata.json" - ); - verifyContract( "0x35C671Ea8e4Fd1e922157D48EABD5ab6b8CC408E", "43113", @@ -335,16 +200,6 @@ describe("Test Supported Chains", function () { "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x6C367468a828C694ab2E8512a440dD50b37B6867", - "43113", - "Avalanche Fuji Testnet", - ["uint256"], - [222], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); - verifyContract( "0x8F78b9c92a68DdF719849a40702cFBfa4EB60dD0", "41", @@ -353,16 +208,6 @@ describe("Test Supported Chains", function () { "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x68107Fb54f5f29D8e0B3Ac44a99f4444D1F22a68", - "41", - "Telos EVM Testnet", - ["uint256"], - [222], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); - verifyContract( "0x059611daEdBA5Fe0875aC7c76d7cE47FfE5c39C5", "40", @@ -371,59 +216,13 @@ describe("Test Supported Chains", function () { "40/metadata.json" ); - verifyContractWithImmutables( - "0x4c09368a4bccD1675F276D640A0405Efa9CD4944", - "40", - "Telos EVM Mainnet", - ["address", "address", "uint256"], - [ - "0x6f0342157d8cdaa66aa5161b341f23d6ef6d39a8", - "0x7d7e1df7581fc4a39832a16d7ac873d40f875402", - 1646428630, - ], - [ - "40/immutable/Address.sol", - "40/immutable/IERC20.sol", - "40/immutable/SafeERC20.sol", - "40/immutable/TokenTimelock.sol", - ], - "40/immutable/metadata.json" - ); - - verifyContract( - "0x68107Fb54f5f29D8e0B3Ac44a99f4444D1F22a68", - "77", - "Sokol", - ["shared/1_Storage.sol"], - "shared/1_Storage.metadata.json" - ); - - verifyContractWithImmutables( - "0xD222286c59c0B9c8D06Bac42AfB7B8CB153e7Bf7", - "77", - "Sokol", - ["uint256"], - [1234], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); - - verifyContract( - "0xd46fd24ea21F04459407Fb0B518451e54d0b07a1", - "421611", - "Arbitrum Rinkeby", - ["shared/1_Storage.sol"], - "shared/1_Storage.metadata.json" - ); - verifyContractWithImmutables( - "0x84d9eF98bF8a66bfB6ed8383F340C402507CfC15", - "421611", - "Arbitrum Rinkeby", - ["uint256"], - [42], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + // verifyContract( + // "0x68107Fb54f5f29D8e0B3Ac44a99f4444D1F22a68", + // "77", + // "Sokol", + // ["shared/1_Storage.sol"], + // "shared/1_Storage.metadata.json" + // ); verifyContract( "0x0e9b6C08Fe70Aac8fd08a74a076c2B1C9f7c7d14", @@ -432,18 +231,6 @@ describe("Test Supported Chains", function () { ["42161/BalanceFetcher.sol"], "42161/metadata.json" ); - verifyContractWithImmutables( - "0x0bb3F43533FBf16d69dBdccf6AaAef81acd76FAB", - "42161", - "Arbitrum Mainnet", - ["address", "address"], - [ - "0x89832e0dbe3600a7358f2e3ea2d7af5dc7d76e0c", - "0x82af49447d8a07e3bd95bd0d56f35241523fbab1", - ], - ["42161/immutable/crowdsale.sol"], - "42161/immutable/metadata.json" - ); verifyContract( "0xd46fd24ea21F04459407Fb0B518451e54d0b07a1", @@ -452,15 +239,6 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x68107Fb54f5f29D8e0B3Ac44a99f4444D1F22a68", - "421613", - "Arbitrum Görli", - ["uint256"], - [256], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); verifyContract( "0xA25b72DADEB96E166D1a225C61b54CA29C45EBD1", @@ -478,22 +256,14 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x91c9b838B181A34623B213a4a08acE00edEDe430", - "311752642", - "OneLedger Mainnet", - ["uint256"], - [1], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); - verifyContract( - "0x34eC0cBd5E33e7323324333434fe978f1000d9cd", - "4216137055", - "OneLedger Frankenstein Testnet", - ["4216137055/SigmaToken.sol"], - "4216137055/SigmaToken.json" - ); + + // verifyContract( + // "0x34eC0cBd5E33e7323324333434fe978f1000d9cd", + // "4216137055", + // "OneLedger Frankenstein Testnet", + // ["4216137055/SigmaToken.sol"], + // "4216137055/SigmaToken.json" + // ); // Has contracts to be fetched from IPFS verifyContract( @@ -506,11 +276,29 @@ describe("Test Supported Chains", function () { // Has contracts to be fetched from IPFS verifyContract( - "0xB2d0641fc8863514B6533b129fD744200eE17D29", - "57", + "0x68107Fb54f5f29D8e0B3Ac44a99f4444D1F22a68", + "5700", "Syscoin Tanenbaum Testnet", - ["57/Token.sol"], - "57/TestToken.json" + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Rollux Mainnet + verifyContract( + "0x1187124eC74e2A2F420540C338186dD702cF6340", + "570", + "Rollux Mainnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Rollux Tanenbaum (testnet) + verifyContract( + "0x736bfcA6a599bF0C3D499F8a0bC5ab2bA2030AC6", + "57000", + "Rollux Tanenbaum", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" ); verifyContract( @@ -520,23 +308,6 @@ describe("Test Supported Chains", function () { ["10/file.sol"], "10/metadata.json" ); - verifyContractWithImmutables( - "0x271901c3268D0959bbc9543DE4f073D3708C88F7", - "10", - "Optimism Mainnet", - ["address", "address"], - [ - "0xa54074b2cc0e96a43048d4a68472f7f046ac0da8", - "0x4200000000000000000000000000000000000007", - ], - [ - "10/immutable/iOVM_CrossDomainMessenger.sol", - "10/immutable/ITreasury.sol", - "10/immutable/OptimisticTreasury.sol", - "10/immutable/Proprietor.sol", - ], - "10/immutable/metadata.json" - ); verifyContract( "0xB5FAD02EbF6edffbdf206d2C1ad815bcDdb380f8", @@ -545,15 +316,6 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x0a835C6dd361790d2A2F173eBf1BCd7fAa804952", - "420", - "Optimism Goerli Testnet", - ["uint256"], - [123456], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); verifyContract( "0x43f980475B9eb5D93A19dfA84511ECE7b330c226", @@ -562,36 +324,14 @@ describe("Test Supported Chains", function () { ["288/Storage.sol"], "288/metadata.json" ); - verifyContractWithImmutables( - "0x668E7f4d8051511279d3BD6d6854e7D39cc94873", - "288", - "Boba Network", - ["address", "address", "address"], - [ - "0x2f2f9460500f27db68aafbfa0472ceddb168a5a6", - "0x3a60a76acae8feec74d6b5b665d4dbaab2abc406", - "0xff133a6d335b50bdaa6612d19e1352b049a8ae6a", - ], - ["288/immutable/DODOV2RouteHelper.sol"], - "288/immutable/metadata.json" - ); - verifyContract( - "0x8F78b9c92a68DdF719849a40702cFBfa4EB60dD0", - "28", - "Boba Network Rinkeby Testnet", - ["shared/1_Storage.sol"], - "shared/1_Storage.metadata.json" - ); - verifyContractWithImmutables( - "0xd46fd24ea21F04459407Fb0B518451e54d0b07a1", - "28", - "Boba Network Rinkeby Testnet", - ["uint256"], - [123], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + // verifyContract( + // "0x8F78b9c92a68DdF719849a40702cFBfa4EB60dD0", + // "28", + // "Boba Network Rinkeby Testnet", + // ["shared/1_Storage.sol"], + // "shared/1_Storage.metadata.json" + // ); verifyContract( "0xd8A08AFf1B0585Cad0E173Ce0E93551Ac59D3530", @@ -616,15 +356,6 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x89e772941d94Ef4BDA1e4f68E79B4bc5F6096389", - "83", - "Meter Testnet", - ["uint256"], - [666], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); verifyContract( "0xC9BdeEd33CD01541e1eeD10f90519d2C06Fe3feB", @@ -641,15 +372,6 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x68107Fb54f5f29D8e0B3Ac44a99f4444D1F22a68", - "1313161555", - "Aurora Testnet", - ["uint256"], - [123], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); verifyContract( "0x08BB0D7fCe37dD766d13DC19A00c95878ed2E68c", @@ -672,23 +394,16 @@ describe("Test Supported Chains", function () { ["1287/Incrementer.sol"], "1287/metadata.json" ); - // Candle - verifyContract( - "0xaa80bC172F3275B837C0515d3d50AcC4EC0cC96b", - "534", - "Candle Mainnet", - ["shared/1_Storage.sol"], - "shared/1_Storage.metadata.json" - ); - verifyContractWithImmutables( - "0xB1392368b6484Be37c33a0991C70359126F681E4", - "534", - "Candle Mainnet", - ["uint256"], - [20], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + + // // Candle + // verifyContract( + // "0xaa80bC172F3275B837C0515d3d50AcC4EC0cC96b", + // "534", + // "Candle Mainnet", + // ["shared/1_Storage.sol"], + // "shared/1_Storage.metadata.json" + // ); + // Palm verifyContract( "0xd46fd24ea21F04459407Fb0B518451e54d0b07a1", @@ -697,15 +412,7 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x68107Fb54f5f29D8e0B3Ac44a99f4444D1F22a68", - "11297108109", - "Palm Mainnet", - ["uint256"], - [123456], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + // Palm Testnet verifyContract( "0x68107Fb54f5f29D8e0B3Ac44a99f4444D1F22a68", @@ -714,15 +421,7 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0xd46fd24ea21F04459407Fb0B518451e54d0b07a1", - "11297108099", - "Palm Testnet", - ["uint256"], - [123456], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + // Fuse Mainnet verifyContract( "0xCaFC1F87E4cabD59fAB26d02D09207147Aae3F1E", @@ -731,23 +430,16 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x1c1C66cd346c845959ffFD1642395b0adb12349a", - "122", - "Fuse Mainnet", - ["uint256"], - [100000], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); - // Darwinia Pangolin Testnet - verifyContract( - "0x7de04a7596958D44baB52F4e5D0c9e79cB16ef8B", - "43", - "Darwinia Pangolin Testnet", - ["shared/1_Storage.sol"], - "shared/1_Storage.metadata.json" - ); + + // // Darwinia Pangolin Testnet + // verifyContract( + // "0x7de04a7596958D44baB52F4e5D0c9e79cB16ef8B", + // "43", + // "Darwinia Pangolin Testnet", + // ["shared/1_Storage.sol"], + // "shared/1_Storage.metadata.json" + // ); + // Darwinia Crab Mainnet verifyContract( "0xE0E78187F01E026bdD0bd901e5Ae2e10C022366D", @@ -756,6 +448,7 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); + // Evmos Testnet verifyContract( "0x07Eb2490cEfc74bAEb4B13c2dB9119CA0c38959B", @@ -764,15 +457,7 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x697633A48F5832481f570CA6b11d793A5708bA9A", - "9000", - "Evmos Testnet", - ["uint256"], - [3000], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + // Evmos Mainnet verifyContract( "0x1d897A65A4fa98BBdfc2e94ad2357cE051Bf4a21", @@ -781,15 +466,7 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x886035409BCDc11c9824D065143FB5ce981a011a", - "9001", - "Evmos Mainnet", - ["uint256"], - [3000], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + // MultiVAC Mainnet verifyContract( "0x411925A3B2Ed99cD29DF76822D6419163d80858f", @@ -798,6 +475,7 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); + // WAGMI Testnet verifyContract( "0x5974BF3196fc03A20cEB196270307707e0158BbD", @@ -806,15 +484,7 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x92b7E7Ab420BE84E3A7aE4Fd1d99214138b298Ca", - "11111", - "WAGMI", - ["uint256"], - [100000], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + // Gather Mainnet verifyContract( "0x5b470D7B8165D109E3Fd2e2B4E7a30Cb89C051e5", @@ -823,15 +493,7 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0xa125948C93bf2cAefdb350e40671b736716144C7", - "192837465", - "GTH", - ["uint256"], - [3000], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + // Gather Testnet verifyContract( "0x08Da5501c22AE1ce2621724Ca1A03383d6C12c4d", @@ -840,32 +502,16 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x83BF67FcD75Da06d8914725cd57116a347a63Cf4", - "356256156", - "GTH", - ["uint256"], - [3000], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); - // Gather Devnet - verifyContract( - "0xEeE72e2295E181BaB1ef049bFEAaf5fC348998C5", - "486217935", - "GTH", - ["shared/1_Storage.sol"], - "shared/1_Storage.metadata.json" - ); - verifyContractWithImmutables( - "0xE5332e0C5E34187D6030E951Fe791e20864251d4", - "486217935", - "GTH", - ["uint256"], - [3000], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + + // // Gather Devnet + // verifyContract( + // "0xEeE72e2295E181BaB1ef049bFEAaf5fC348998C5", + // "486217935", + // "GTH", + // ["shared/1_Storage.sol"], + // "shared/1_Storage.metadata.json" + // ); + // DFK Chain Testnet verifyContract( "0x276946F2453538E882281d5A36ad6d19BBDfdaA7", @@ -874,15 +520,7 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x40D843D06dAC98b2586fD1DFC5532145208C909F", - "335", - "DFK Chain Testnet", - ["uint256"], - [12345], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + // DFK Chain Mainnet verifyContract( "0xB98EBF39148D39536C7f312E059990Dc59Aa26B5", @@ -891,15 +529,7 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x0185447543C4284e362F1dc4B21569Fe75cD4c2A", - "53935", - "DFK Chain", - ["uint256"], - [12345], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + // Energy Web Volta Testnet verifyContract( "0x4667b7ce62e56B71146885555c68d2DDdf63349A", @@ -908,15 +538,7 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x2EF8DafA9640cfe902B1229DE63F308E24c59EF7", - "73799", - "Energy Web Volta Testnet", - ["uint256"], - [4], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + // Energy Web Chain verifyContract( "0xd07BECd1b2FE97924a2d4A0cF2d96e499ce28cA9", @@ -925,15 +547,7 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0xB601dE691956DC2D5A3030Dd64f08C66Be78700E", - "246", - "Energy Web Chain", - ["uint256"], - [5], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + // Godwoken testnet v1.1 verifyContract( "0xc8D69B4D58bb79D03C0b83DbBAE509DAF3135e74", @@ -942,15 +556,7 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x61FB9329a6c1E8605856C2a66C29fF692bAe2DAa", - "71401", - "Godwoken Testnet (V1.1)", - ["uint256"], - [100000], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + // Godwoken mainnet v1.1 verifyContract( "0x0aEF0854bCD792cb37FA0e75c27a1bC326d11725", @@ -959,15 +565,7 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0xC1FEfe58fA6A60fc34F70d518aF6F192143CAa03", - "71402", - "Godwoken Mainnet", - ["uint256"], - [100000], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + // Dexalot Testnet verifyContract( "0xfa5a1E7788514Ae2B879377cF08a9CF2901d3A21", @@ -976,32 +574,25 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x92924A2591345420542A26035be8bcf4552BeD2b", - "432201", - "Dexalot Testnet", - ["uint256"], - [100], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); - //Crystaleum + + // Dexalot Mainnet verifyContract( - "0x8Ab612E257534b7d5a6E315444f1C45c434eAaCf", - "103090", - "Crystaleum", + "0x1c799C32a6cF228D0656f3B87D60224afaB45903", + "432204", + "Dexalot Subnet", ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0xE32195beC48Dca3adc89b95a6c2f36e68F1A89A0", - "103090", - "Crystaleum", - ["uint256"], - [103090], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" - ); + + // //Crystaleum + // verifyContract( + // "0x8Ab612E257534b7d5a6E315444f1C45c434eAaCf", + // "103090", + // "Crystaleum", + // ["shared/1_Storage.sol"], + // "shared/1_Storage.metadata.json" + // ); + //Kekchain (testnet) verifyContract( "0x6FCe618B0677EdFCca9d38ed48Af89a8c056C938", @@ -1010,15 +601,16 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0x0E8CebF16c5E8f4b9515C69c38d6dAFa54101b6e", - "420666", + + //Kekchain Main Net (kekistan) + verifyContract( + "0xbc0103404476AF674756911553b7A45B55e989e5", + "420420", "Kekchain", - ["uint256"], - [420666], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" ); + // Canto verifyContract( "0x65ec06aF7b8A6cBa7E7226e70dd2eBd117b823Cd", @@ -1027,35 +619,384 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0xaF7Fd0F59255B96a60Eb53a7c680EC0E32bE397f", - "7700", - "Canto", - ["uint256"], - [7700], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" + + // Canto Testnet + verifyContract( + "0x37e12c98b4663DcE9ab1460073D9Fe82A7bFD0d8", + "7701", + "Canto Testnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" ); - // POA Network Core + // // POA Network Core + // verifyContract( + // "0x3b2e3383AeE77A58f252aFB3635bCBd842BaeCB3", + // "99", + // "POA Core", + // ["shared/1_Storage.sol"], + // "shared/1_Storage.metadata.json" + // ); + + // // Astar (EVM) + // verifyContract( + // "0xA7e70Be8A6563DCe75299c30D1566A83fC63BC37", + // "592", + // "Astar (EVM)", + // ["shared/1_Storage.sol"], + // "shared/1_Storage.metadata.json" + // ); + + // Gnosis Chiado Testnet + verifyContract( + "0xd46fd24ea21F04459407Fb0B518451e54d0b07a1", + "10200", + "Gnosis Chiado Testnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Klaytn Testnet Baobab + verifyContract( + "0x662749a392CeB1b5973a90FB2c388a2C18B8812c", + "1001", + "Klaytn Testnet Baobab", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Klaytn Mainnet Cypress verifyContract( "0x3b2e3383AeE77A58f252aFB3635bCBd842BaeCB3", - "99", - "POA Core", + "8217", + "Klaytn Mainnet Cypress", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Shiden (EVM) + verifyContract( + "0x3b2e3383AeE77A58f252aFB3635bCBd842BaeCB3", + "336", + "Shiden (EVM)", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Chain support turned off + // // Optimism Bedrock: Goerli Alpha Testnet + // verifyContract( + // "0xA7e70Be8A6563DCe75299c30D1566A83fC63BC37", + // "28528", + // "Optimism Bedrock: Goerli Alpha Testnet", + // ["shared/1_Storage.sol"], + // "shared/1_Storage.metadata.json" + // ); + + // ZetaChain: Athens Testnet + verifyContract( + "0x52ef49D23630EF439a8177E1e966F1953f37473f", + "7001", + "ZetaChain Athens Testnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Oasis Emerald Mainnet + verifyContract( + "0x7228Ab1F57e6fFd9F85930b9a9C2E9DD2307E4D0", + "42262", + "Oasis Emerald Mainnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Oasis Emerald Testnet + verifyContract( + "0x70D7603cAc831A9f23Fc7cAc301db300D55EA921", + "42261", + "Oasis Emerald Testnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Songbird Canary Network + verifyContract( + "0x024829b4A91fB78437A854380c89A3fFc966c2D1", + "19", + "Songbird Canary Network", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // // Flare Mainnet + // verifyContract( + // "0xbBc2EdeDc9d2d97970eE20d0Dc7216216a27e635", + // "14", + // "Flare Mainnet", + // ["shared/1_Storage.sol"], + // "shared/1_Storage.metadata.json" + // ); + + // Oasis Sapphire Mainnet + verifyContract( + "0xFBcb580DD6D64fbF7caF57FB0439502412324179", + "23294", + "Oasis Sapphire", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Oasis Sapphire Testnet + verifyContract( + "0xFBcb580DD6D64fbF7caF57FB0439502412324179", + "23295", + "Oasis Sapphire Testnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Stratos Testnet + verifyContract( + "0x9082db5F71534984DEAC8E4ed66cFe364d77dd36", + "2047", + "Stratos Testnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Bear Network Chain Mainnet + verifyContract( + "0x0f103813fa15CA19b6C4B46a0Afe99440b81d7C3", + "641230", + "Bear Network Chain Mainnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Base Goerli Testnet + verifyContract( + "0x8F78b9c92a68DdF719849a40702cFBfa4EB60dD0", + "84531", + "Base Goerli Testnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Wanchain Mainnet + verifyContract( + "0xC3649123BCa36c0c38A71bDbd2F508AB4f939f47", + "888", + "Wanchain Mainnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Wanchain Testnet + verifyContract( + "0x500E12a948E9Fc594bC6Fe86B3B270B5a67332D8", + "999", + "Wanchain Testnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // The Root Network Mainnet + verifyContract( + "0x6C0cE8d62F1D81464F6F4DecB62f97aa83B8Df89", + "7668", + "The Root Network Mainnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // The Root Network Porcini (Testnet) + verifyContract( + "0x225F2cD344c61152F8E7200E62e03dEfD683f2c4", + "7672", + "The Root Network Porcini", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Hedera Mainnet + verifyContract( + "0x00000000000000000000000000000000002265bb", + "295", + "Hedera Mainnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // DogeChain Mainnet + verifyContract( + "0x2a35F4AA0d3e417e8896E972f35dba4b39b6305e", + "2000", + "DogeChain Mainnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Bitkub Chain Testnet + verifyContract( + "0x58909Ef2F2b167F52cF46575f1582500287cCE48", + "25925", + "Bitkub Chain Testnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Bitkub Chain + verifyContract( + "0xC75f4D89A0DdA70Ad613908D9976E90dAb42035c", + "96", + "Bitkub Chain", ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - verifyContractWithImmutables( - "0xA7e70Be8A6563DCe75299c30D1566A83fC63BC37", - "99", - "POA Core", - ["uint256"], - [2], - ["shared/WithImmutables.sol"], - "shared/withImmutables.metadata.json" + // Cronos Mainnet Beta + verifyContract( + "0xEdE2053329D203E8261B47A10540Ee4b7a596667", + "25", + "Cronos Mainnet Beta", + ["25/storage.sol"], + "25/metadata.json" ); + // Elysium Mainnet Chain + verifyContract( + "0x20563837F7423465699D7675BCB82f886a761c25", + "1339", + "Elysium Mainnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Taiko Alpha-3 Testnet + verifyContract( + "0x68107Fb54f5f29D8e0B3Ac44a99f4444D1F22a68", + "167005", + "Taiko Alpha-3 Testnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // ZORA Mainnet + verifyContract( + "0x090734f94FA67590702421A9B61892509b7CE80A", + "7777777", + "ZORA MAinnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // UPTN Chain Mainnet + verifyContract( + "0x212F6222fB4937978A806b14FB2725169825078F", + "6119", + "UPTN Chain", + [ + "6119/ERC4906.sol", + "6119/UptnNFTsV1.sol", + "6119/IUPTNAddressValidator.sol", + ], + "6119/UptnNFTsV1.metadata.json" + ); + + // KAVA EVM + verifyContract( + "0xAdFa11e737ec8fA6e91091468aEF33a66Ae0044c", + "2222", + "Kava EVM", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Siberium Testnet + verifyContract( + "0x60E9b3CD8C160Ce6408dD6E2Fa938895cfF7E087", + "111000", + "Siberium Testnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Ethereum Classic Mainnet + verifyContract( + "0x45a82B987a4e5d7D00eD5aB325DF00850cDAbBAC", + "61", + "Ethereum Classic Mainnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Filecoin Mainnet + verifyContract( + "0x23396626F2C9c0b31cC6C2729172103961Ae2A26", + "314", + "Filecoin Mainnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Zilliqa EVM + verifyContract( + "0x6F85669808e20b121980DE8E7a794a0cc90fDc77", + "32769", + "Zilliqa EVM", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + // Zilliqa EVM Testnet + verifyContract( + "0xeb6Ea260eDFb9837ed100B09c559081AfA5b0785", + "33101", + "Zilliqa EVM Testnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // KAVA EVM Testnet + verifyContract( + "0x40b4f95C3bafc8d690B4c3fDD1E8303c4817Cd9C", + "2221", + "Kava EVM Testnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + + // Finally check if all the "supported: true" chains have been tested + it("should have tested all supported chains", function (done) { + if (newAddedChainId) { + // Don't test all chains if it is a pull request for adding new chain support + return this.skip(); + } + chai + .request(server.app) + .get("/chains") + .end((err, res) => { + chai.assert.equal(err, null); + chai.assert.equal(res.status, 200); + const supportedChains = res.body.filter((chain) => chain.supported); + const untestedChains = []; + supportedChains.forEach((chain) => { + if (chain.chainId == 1337 || chain.chainId == 31337) return; // Skip LOCAL_CHAINS: Ganache and Hardhat + if (!testedChains.has(chain.chainId.toString())) { + untestedChains.push(chain); + } + }); + chai.assert( + untestedChains.length == 0, + `There are untested chains!: ${untestedChains + .map((chain) => `${chain.name} (${chain.chainId})`) + .join(",\n")}` + ); + + done(); + }); + }); + ////////////////////// // Helper functions // ////////////////////// @@ -1104,103 +1045,10 @@ describe("Test Supported Chains", function () { files: files, }) .end((err, res) => { - assertions(err, res, done, address); - }); - }); - } - - function verifyContractWithImmutables( - address, - chainId, - chainName, - constructorArgTypes, - constructorArgValues, - relativeSourcePathsArray, - relativeMetadataPath - ) { - // If it is a pull request for adding new chain support, only test the new chain - if (newAddedChainId && newAddedChainId != chainId) return; - it(`should verify a contract with immutables on ${chainName} (${chainId})`, function (done) { - // Context for the test report - addContext(this, { - title: "Test identifier", - value: { - chainId: chainId, - testType: "immutable", - }, - }); - - const metadataPath = path.join( - "test", - "chains", - "sources", - relativeMetadataPath - ); - const sourcePathsArray = relativeSourcePathsArray.map((relSourcePath) => - path.join("test", "chains", "sources", relSourcePath) - ); - const files = { - "metadata.json": fs.readFileSync(metadataPath).toString(), - }; - sourcePathsArray.forEach((sourcePath, i) => { - files[`Source_${i}.sol`] = fs.readFileSync(sourcePath).toString(); - }); - chai - .request(server.app) - .post("/") - .send({ - address: address, - chain: chainId, - files: files, - }) - .end((err, res) => { - assertions(err, res, null, address); - - chai - .request(server.app) - .get( - `/repository/contracts/full_match/${chainId}/${address}/constructor-args.txt` - ) - .buffer() - .parse(binaryParser) - .end((err, res) => { - chai.expect(err).to.be.null; - chai.expect(res.status).to.equal(StatusCodes.OK); - const abiCoder = new ethers.utils.AbiCoder(); - const encodedParameter = abiCoder.encode( - constructorArgTypes, - constructorArgValues - ); - chai.expect(res.body.toString()).to.equal(encodedParameter); - done(); - }); + assertVerification(err, res, done, address, chainId); + anyTestsPass = true; }); }); - } - - function assertions( - err, - res, - done, - expectedAddress, - expectedStatus = "perfect" - ) { - currentResponse = res; - chai.expect(err).to.be.null; - chai.expect(res.status).to.equal(StatusCodes.OK); - chai.expect(res.body).to.haveOwnProperty("result"); - const resultArr = res.body.result; - chai.expect(resultArr).to.have.a.lengthOf(1); - const result = resultArr[0]; - chai.expect(result.address).to.equal(expectedAddress); - chai.expect(result.status).to.equal(expectedStatus); - if (done) done(); - } - - function binaryParser(res, cb) { - res.setEncoding("binary"); - res.data = ""; - res.on("data", (chunk) => (res.data += chunk)); - res.on("end", () => cb(null, Buffer.from(res.data, "binary"))); + testedChains.add(chainId); } }); diff --git a/test/chains/deployContracts.js b/test/chains/deployContracts.js index 17ff33013..0bcc0bdc1 100644 --- a/test/chains/deployContracts.js +++ b/test/chains/deployContracts.js @@ -1,9 +1,8 @@ const { deployFromPrivateKey } = require("../helpers/helpers"); -const Web3 = require("web3"); -const ImmutableArtifact = require("./sources/shared/WithImmutables.json"); const StorageArtifact = require("./sources/shared/1_Storage.json"); -const { getSupportedChains } = require("@ethereum-sourcify/core"); +const { supportedChainsArray } = require("../../dist/sourcify-chains"); const { program } = require("commander"); +const { JsonRpcApiProvider } = require("ethers"); program .description( @@ -13,7 +12,7 @@ program .usage("--chainId= --privateKey=") .requiredOption( "--chainId ", - "Chain ID of the chain to deploy the contract. The chain must be added to services/core/sourcify-chains.ts. Also make sure to build typescript after adding the chain with `npx lerna run build`." + "Chain ID of the chain to deploy the contract. The chain must be added to src/sourcify-chains.ts. Also make sure to build typescript after adding the chain with `npx lerna run build`." ) .requiredOption( "--privateKey ", @@ -23,10 +22,6 @@ program "--immutableValue ", "Value to be stored as the immutable value. " ) - .option( - "--type ", - "Which contract to deploy. Either 'immutable' or 'normal'. If not given, deploys both contracts by default." - ) .showSuggestionAfterError() .showHelpAfterError("(add --help for additional information)"); @@ -34,16 +29,11 @@ program.parse(); const options = program.opts(); if (require.main === module) { - main( - options.chainId, - options.immutableValue, - options.privateKey, - options.type - ); + main(options.chainId, options.privateKey); } -async function main(chainId, immutableValue, privateKey, type) { - const chains = getSupportedChains(); +async function main(chainId, privateKey) { + const chains = supportedChainsArray; const chain = chains.find((chain) => chain.chainId == chainId); if (!chain) { console.error( @@ -51,47 +41,26 @@ async function main(chainId, immutableValue, privateKey, type) { ); return; } - let web3; + let provider; console.log("Using rpc: " + chain.rpc[0]); try { - web3 = new Web3(chain.rpc[0]); + provider = new JsonRpcApiProvider(chain.rpc[0]); } catch (err) { console.log( - `Can't initiate a Web3 instance with the chain: ${chain}. \n\nMake sure the chainId is added to services/core/sourcify-chains.ts and built with npx lerna run build` + `Can't initiate a Provider instance with the chain: ${chain}. \n\nMake sure the chainId is added to src/sourcify-chains.ts and built with npx lerna run build` ); throw new Error(err); } - if (type == "immutable" || type == undefined) { - if (!immutableValue) { - throw new Error( - "Must provide an immutable value with option --immutableValue" - ); - } - console.log("Deploying contract with immutables..."); - const contractAddress1 = await deployFromPrivateKey( - web3, - ImmutableArtifact.abi, - ImmutableArtifact.bytecode, - privateKey, - [immutableValue] - ); - console.log( - `Contract with immutables deployed at ${contractAddress1} and with the immutable costructor argument ${immutableValue} on the chain ${chain.name} (${chain.chainId})` - ); - } - - if (type == "normal" || type == undefined) { - console.log("Deploying normal contract"); - const contractAddress2 = await deployFromPrivateKey( - web3, - StorageArtifact.abi, - StorageArtifact.bytecode, - privateKey, - [] - ); - console.log( - `Contract deployed at ${contractAddress2} on the chain ${chain.name} (${chain.chainId})` - ); - } + console.log("Deploying the contract..."); + const contractAddress2 = await deployFromPrivateKey( + provider, + StorageArtifact.abi, + StorageArtifact.bytecode, + privateKey, + [] + ); + console.log( + `Contract deployed at ${contractAddress2} on the chain ${chain.name} (${chain.chainId})` + ); } diff --git a/test/chains/sources/1/immutable/BundleExecutor.sol b/test/chains/sources/1/immutable/BundleExecutor.sol deleted file mode 100644 index 39954c848..000000000 --- a/test/chains/sources/1/immutable/BundleExecutor.sol +++ /dev/null @@ -1,81 +0,0 @@ -//SPDX-License-Identifier: UNLICENSED -pragma solidity 0.6.12; - -pragma experimental ABIEncoderV2; - -interface IERC20 { - event Approval(address indexed owner, address indexed spender, uint value); - event Transfer(address indexed from, address indexed to, uint value); - - function name() external view returns (string memory); - function symbol() external view returns (string memory); - function decimals() external view returns (uint8); - function totalSupply() external view returns (uint); - function balanceOf(address owner) external view returns (uint); - function allowance(address owner, address spender) external view returns (uint); - - function approve(address spender, uint value) external returns (bool); - function transfer(address to, uint value) external returns (bool); - function transferFrom(address from, address to, uint value) external returns (bool); -} - -interface IWETH is IERC20 { - function deposit() external payable; - function withdraw(uint) external; -} - -// This contract simply calls multiple targets sequentially, ensuring WETH balance before and after - -contract FlashBotsMultiCall { - address private immutable owner; - address private immutable executor; - IWETH private constant WETH = IWETH(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2); - - modifier onlyExecutor() { - require(msg.sender == executor); - _; - } - - modifier onlyOwner() { - require(msg.sender == owner); - _; - } - - constructor(address _executor) public payable { - owner = msg.sender; - executor = _executor; - if (msg.value > 0) { - WETH.deposit{value: msg.value}(); - } - } - - receive() external payable { - } - - function uniswapWeth(uint256 _wethAmountToFirstMarket, uint256 _ethAmountToCoinbase, address[] memory _targets, bytes[] memory _payloads) external onlyExecutor payable { - require (_targets.length == _payloads.length); - uint256 _wethBalanceBefore = WETH.balanceOf(address(this)); - WETH.transfer(_targets[0], _wethAmountToFirstMarket); - for (uint256 i = 0; i < _targets.length; i++) { - (bool _success, bytes memory _response) = _targets[i].call(_payloads[i]); - require(_success); _response; - } - - uint256 _wethBalanceAfter = WETH.balanceOf(address(this)); - require(_wethBalanceAfter > _wethBalanceBefore + _ethAmountToCoinbase); - if (_ethAmountToCoinbase == 0) return; - - uint256 _ethBalance = address(this).balance; - if (_ethBalance < _ethAmountToCoinbase) { - WETH.withdraw(_ethAmountToCoinbase - _ethBalance); - } - block.coinbase.transfer(_ethAmountToCoinbase); - } - - function call(address payable _to, uint256 _value, bytes calldata _data) external onlyOwner payable returns (bytes memory) { - require(_to != address(0)); - (bool _success, bytes memory _result) = _to.call{value: _value}(_data); - require(_success); - return _result; - } -} diff --git a/test/chains/sources/1/immutable/metadata.json b/test/chains/sources/1/immutable/metadata.json deleted file mode 100644 index bf6e7a2da..000000000 --- a/test/chains/sources/1/immutable/metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_executor","type":"address"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"call","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_wethAmountToFirstMarket","type":"uint256"},{"internalType":"uint256","name":"_ethAmountToCoinbase","type":"uint256"},{"internalType":"address[]","name":"_targets","type":"address[]"},{"internalType":"bytes[]","name":"_payloads","type":"bytes[]"}],"name":"uniswapWeth","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"contracts/BundleExecutor.sol":"FlashBotsMultiCall"},"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"contracts/BundleExecutor.sol":{"keccak256":"0xc605ea2381865dde07b39be58bdeb6857f3304a12bfb4d37175b3698a1cb6812","license":"UNLICENSED","urls":["bzz-raw://c32679007a63a5b48b80c71e2ea5ed29ce4caa80f7c2a2a53485a0343cdb5b3a","dweb:/ipfs/QmbeCnHqZKkjxBsUgh9yjbp3wf4m5Ec1ef94ALv9MXBkGy"]}},"version":1} \ No newline at end of file diff --git a/test/chains/sources/10/immutable/ITreasury.sol b/test/chains/sources/10/immutable/ITreasury.sol deleted file mode 100644 index b02810be8..000000000 --- a/test/chains/sources/10/immutable/ITreasury.sol +++ /dev/null @@ -1,83 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.7.5; - -import "./Proprietor.sol"; - -/** - * @title TCAP Treasury - * @author Cryptex.finance - * @notice This contract will hold the assets generated on L2 networks. - */ -contract ITreasury is Proprietor { - /// @notice An event emitted when a transaction is executed - event TransactionExecuted( - address indexed target, - uint256 value, - string signature, - bytes data - ); - - - /** - * @notice Constructor - * @param _owner the owner of the contract - */ - constructor(address _owner) Proprietor(_owner) {} - - /** - * @notice Allows the owner to execute custom transactions - * @param target address - * @param value uint256 - * @param signature string - * @param data bytes - * @dev Only owner can call it - */ - function executeTransaction( - address target, - uint256 value, - string memory signature, - bytes memory data - ) external payable onlyOwner returns (bytes memory) { - bytes memory callData; - if (bytes(signature).length == 0) { - callData = data; - } else { - callData = abi.encodePacked(bytes4(keccak256(bytes(signature))), data); - } - - require( - target != address(0), - "ITreasury::executeTransaction: target can't be zero" - ); - - // solium-disable-next-line security/no-call-value - (bool success, bytes memory returnData) = - target.call{value : value}(callData); - require( - success, - "ITreasury::executeTransaction: Transaction execution reverted." - ); - - emit TransactionExecuted(target, value, signature, data); - (target, value, signature, data); - - return returnData; - } - - /** - * @notice Retrieves the eth stuck on the treasury - * @param _to address - * @dev Only owner can call it - */ - function retrieveETH(address _to) external onlyOwner { - require( - _to != address(0), - "ITreasury::retrieveETH: address can't be zero" - ); - uint256 amount = address(this).balance; - payable(_to).transfer(amount); - } - - /// @notice Allows the contract to receive ETH - receive() external payable {} -} diff --git a/test/chains/sources/10/immutable/OptimisticTreasury.sol b/test/chains/sources/10/immutable/OptimisticTreasury.sol deleted file mode 100644 index a34fc3179..000000000 --- a/test/chains/sources/10/immutable/OptimisticTreasury.sol +++ /dev/null @@ -1,42 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.7.5; - -import "../ITreasury.sol"; -import "./iOVM_CrossDomainMessenger.sol"; - -/** - * @title TCAP Optimistic Treasury - * @author Cryptex.finance - * @notice This contract will hold the assets generated by the optimism network. - */ -contract OptimisticTreasury is ITreasury { - - /// @notice Address of the optimistic ovmL2CrossDomainMessenger contract. - iOVM_CrossDomainMessenger public immutable ovmL2CrossDomainMessenger; - - /** - * @notice Constructor - * @param _owner the owner of the contract - * @param _ovmL2CrossDomainMessenger address of the optimism ovmL2CrossDomainMessenger - */ - constructor( - address _owner, - address _ovmL2CrossDomainMessenger - ) ITreasury(_owner) { - require( - _ovmL2CrossDomainMessenger != address(0), - "OptimisticTreasury::constructor: address can't be zero" - ); - ovmL2CrossDomainMessenger = iOVM_CrossDomainMessenger(_ovmL2CrossDomainMessenger); - } - - // @notice Throws if called by an account different from the owner - // @dev call needs to come from ovmL2CrossDomainMessenger - modifier onlyOwner() override { - require( - msg.sender == address(ovmL2CrossDomainMessenger) - && ovmL2CrossDomainMessenger.xDomainMessageSender() == owner, "OptimisticTreasury: caller is not the owner" - ); - _; - } -} diff --git a/test/chains/sources/10/immutable/Proprietor.sol b/test/chains/sources/10/immutable/Proprietor.sol deleted file mode 100644 index 7e8612e1e..000000000 --- a/test/chains/sources/10/immutable/Proprietor.sol +++ /dev/null @@ -1,60 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.7.5; - -/** - * @dev Contract module which provides a basic access control mechanism, where - * there is an account (an owner) that can be granted exclusive access to - * specific functions. - * - * By default, the owner account will be the one that deploys the contract. This - * can later be changed with {transferOwnership}. - * - * This module is used through inheritance. It will make available the modifier - * `onlyOwner`, which can be applied to your functions to restrict their use to - * the owner. - */ -abstract contract Proprietor { - address public owner; - - event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); - - /** - * @dev Initializes the contract setting the deployer as the initial owner. - */ - constructor (address _owner) { - require(_owner != address(0), "Proprietor::constructor: address can't be zero"); - owner = _owner; - emit OwnershipTransferred(address(0), owner); - } - - /** - * @dev Throws if called by any account other than the owner. - */ - modifier onlyOwner() virtual { - require(owner == msg.sender, "Proprietor: caller is not the owner"); - _; - } - - /** - * @dev Leaves the contract without owner. It will not be possible to call - * `onlyOwner` functions anymore. Can only be called by the current owner. - * - * NOTE: Renouncing ownership will leave the contract without an owner, - * thereby removing any functionality that is only available to the owner. - */ - function renounceOwnership() public virtual onlyOwner { - emit OwnershipTransferred(owner, address(0)); - owner = address(0); - } - - /** - * @dev Transfers ownership of the contract to a new account (`newOwner`). - * Can only be called by the current owner. - */ - function transferOwnership(address newOwner) public virtual onlyOwner { - require(newOwner != address(0), "Proprietor: new owner is the zero address"); - emit OwnershipTransferred(owner, newOwner); - owner = newOwner; - } -} diff --git a/test/chains/sources/10/immutable/iOVM_CrossDomainMessenger.sol b/test/chains/sources/10/immutable/iOVM_CrossDomainMessenger.sol deleted file mode 100644 index edd408c21..000000000 --- a/test/chains/sources/10/immutable/iOVM_CrossDomainMessenger.sol +++ /dev/null @@ -1,41 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.7.5; -pragma experimental ABIEncoderV2; - -/** - * @title iOVM_CrossDomainMessenger - */ -interface iOVM_CrossDomainMessenger { - - /********** - * Events * - **********/ - - event SentMessage(bytes message); - event RelayedMessage(bytes32 msgHash); - event FailedRelayedMessage(bytes32 msgHash); - - - /************* - * Variables * - *************/ - - function xDomainMessageSender() external view returns (address); - - - /******************** - * Public Functions * - ********************/ - - /** - * Sends a cross domain message to the target messenger. - * @param _target Target contract address. - * @param _message Message to send to the target. - * @param _gasLimit Gas limit for the provided message. - */ - function sendMessage( - address _target, - bytes calldata _message, - uint32 _gasLimit - ) external; -} diff --git a/test/chains/sources/10/immutable/metadata.json b/test/chains/sources/10/immutable/metadata.json deleted file mode 100644 index 81c0e0c92..000000000 --- a/test/chains/sources/10/immutable/metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"compiler":{"version":"0.7.5+commit.eb77ed08"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_ovmL2CrossDomainMessenger","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"TransactionExecuted","type":"event"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"executeTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"ovmL2CrossDomainMessenger","outputs":[{"internalType":"contract iOVM_CrossDomainMessenger","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"retrieveETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"author":"Cryptex.finance","kind":"dev","methods":{"constructor":{"params":{"_ovmL2CrossDomainMessenger":"address of the optimism ovmL2CrossDomainMessenger","_owner":"the owner of the contract"}},"executeTransaction(address,uint256,string,bytes)":{"details":"Only owner can call it","params":{"data":"bytes","signature":"string","target":"address","value":"uint256"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"retrieveETH(address)":{"details":"Only owner can call it","params":{"_to":"address"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"TCAP Optimistic Treasury","version":1},"userdoc":{"events":{"TransactionExecuted(address,uint256,string,bytes)":{"notice":"An event emitted when a transaction is executed"}},"kind":"user","methods":{"constructor":{"notice":"Constructor"},"executeTransaction(address,uint256,string,bytes)":{"notice":"Allows the owner to execute custom transactions"},"ovmL2CrossDomainMessenger()":{"notice":"Address of the optimistic ovmL2CrossDomainMessenger contract."},"retrieveETH(address)":{"notice":"Retrieves the eth stuck on the treasury"}},"notice":"This contract will hold the assets generated by the optimism network.","version":1}},"settings":{"compilationTarget":{"contracts/optimism/OptimisticTreasury.sol":"OptimisticTreasury"},"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs","useLiteralContent":true},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"sources":{"contracts/ITreasury.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.7.5;\n\nimport \"./Proprietor.sol\";\n\n/**\n * @title TCAP Treasury\n * @author Cryptex.finance\n * @notice This contract will hold the assets generated on L2 networks.\n */\ncontract ITreasury is Proprietor {\n\t/// @notice An event emitted when a transaction is executed\n\tevent TransactionExecuted(\n\t\taddress indexed target,\n\t\tuint256 value,\n\t\tstring signature,\n\t\tbytes data\n\t);\n\n\n\t/**\n\t * @notice Constructor\n\t * @param _owner the owner of the contract\n\t */\n\tconstructor(address _owner) Proprietor(_owner) {}\n\n\t/**\n\t * @notice Allows the owner to execute custom transactions\n\t * @param target address\n\t * @param value uint256\n\t * @param signature string\n\t * @param data bytes\n\t * @dev Only owner can call it\n\t */\n\tfunction executeTransaction(\n\t\taddress target,\n\t\tuint256 value,\n\t\tstring memory signature,\n\t\tbytes memory data\n\t) external payable onlyOwner returns (bytes memory) {\n\t\tbytes memory callData;\n\t\tif (bytes(signature).length == 0) {\n\t\t\tcallData = data;\n\t\t} else {\n\t\t\tcallData = abi.encodePacked(bytes4(keccak256(bytes(signature))), data);\n\t\t}\n\n\t\trequire(\n\t\t\ttarget != address(0),\n\t\t\t\"ITreasury::executeTransaction: target can't be zero\"\n\t\t);\n\n\t\t// solium-disable-next-line security/no-call-value\n\t\t(bool success, bytes memory returnData) =\n\t\ttarget.call{value : value}(callData);\n\t\trequire(\n\t\t\tsuccess,\n\t\t\t\"ITreasury::executeTransaction: Transaction execution reverted.\"\n\t\t);\n\n\t\temit TransactionExecuted(target, value, signature, data);\n\t\t(target, value, signature, data);\n\n\t\treturn returnData;\n\t}\n\n\t/**\n\t * @notice Retrieves the eth stuck on the treasury\n\t * @param _to address\n\t * @dev Only owner can call it\n\t */\n\tfunction retrieveETH(address _to) external onlyOwner {\n\t\trequire(\n\t\t\t_to != address(0),\n\t\t\t\"ITreasury::retrieveETH: address can't be zero\"\n\t\t);\n\t\tuint256 amount = address(this).balance;\n\t\tpayable(_to).transfer(amount);\n\t}\n\n\t/// @notice Allows the contract to receive ETH\n\treceive() external payable {}\n}\n","keccak256":"0x2ca98adc3364cd66453d0684cab526c588c9b131eee5f5a4d7ddad13557750da","license":"MIT"},"contracts/Proprietor.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity 0.7.5;\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Proprietor {\n address public owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor (address _owner) {\n require(_owner != address(0), \"Proprietor::constructor: address can't be zero\");\n owner = _owner;\n emit OwnershipTransferred(address(0), owner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() virtual {\n require(owner == msg.sender, \"Proprietor: caller is not the owner\");\n _;\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n emit OwnershipTransferred(owner, address(0));\n owner = address(0);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n require(newOwner != address(0), \"Proprietor: new owner is the zero address\");\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n }\n}\n","keccak256":"0x6233845a915eedfb3fcd50c8e69aa4b2d8343cc5ce059955d34b33bc485e242f","license":"MIT"},"contracts/optimism/OptimisticTreasury.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.7.5;\n\nimport \"../ITreasury.sol\";\nimport \"./iOVM_CrossDomainMessenger.sol\";\n\n/**\n * @title TCAP Optimistic Treasury\n * @author Cryptex.finance\n * @notice This contract will hold the assets generated by the optimism network.\n */\ncontract OptimisticTreasury is ITreasury {\n\n\t/// @notice Address of the optimistic ovmL2CrossDomainMessenger contract.\n\tiOVM_CrossDomainMessenger public immutable ovmL2CrossDomainMessenger;\n\n\t/**\n\t * @notice Constructor\n\t * @param _owner the owner of the contract\n\t * @param _ovmL2CrossDomainMessenger address of the optimism ovmL2CrossDomainMessenger\n\t */\n\tconstructor(\n\t\taddress _owner,\n\t\taddress _ovmL2CrossDomainMessenger\n\t) ITreasury(_owner) {\n\t\trequire(\n\t\t\t_ovmL2CrossDomainMessenger != address(0),\n\t\t\t\"OptimisticTreasury::constructor: address can't be zero\"\n\t\t);\n\t\tovmL2CrossDomainMessenger = iOVM_CrossDomainMessenger(_ovmL2CrossDomainMessenger);\n\t}\n\n\t// @notice Throws if called by an account different from the owner\n\t// @dev call needs to come from ovmL2CrossDomainMessenger\n\tmodifier onlyOwner() override {\n\t\trequire(\n\t\t\tmsg.sender == address(ovmL2CrossDomainMessenger)\n\t\t\t&& ovmL2CrossDomainMessenger.xDomainMessageSender() == owner, \"OptimisticTreasury: caller is not the owner\"\n\t\t);\n\t\t_;\n\t}\n}\n","keccak256":"0x8b21386188313ff11846984fbbc5b41de64e941941375cb68e08669f9690d8cb","license":"MIT"},"contracts/optimism/iOVM_CrossDomainMessenger.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.7.5;\npragma experimental ABIEncoderV2;\n\n/**\n * @title iOVM_CrossDomainMessenger\n */\ninterface iOVM_CrossDomainMessenger {\n\n\t/**********\n\t * Events *\n\t **********/\n\n\tevent SentMessage(bytes message);\n\tevent RelayedMessage(bytes32 msgHash);\n\tevent FailedRelayedMessage(bytes32 msgHash);\n\n\n\t/*************\n\t * Variables *\n\t *************/\n\n\tfunction xDomainMessageSender() external view returns (address);\n\n\n\t/********************\n\t * Public Functions *\n\t ********************/\n\n\t/**\n\t * Sends a cross domain message to the target messenger.\n\t * @param _target Target contract address.\n\t * @param _message Message to send to the target.\n\t * @param _gasLimit Gas limit for the provided message.\n\t */\n\tfunction sendMessage(\n\t\taddress _target,\n\t\tbytes calldata _message,\n\t\tuint32 _gasLimit\n\t) external;\n}\n","keccak256":"0x93edc4bdd4e4966e5f1ee44ab2b7a4f53bf7594be13dae53394f901ba91f95fb","license":"MIT"}},"version":1} \ No newline at end of file diff --git a/test/chains/sources/137/immutable/StakingWarmup.sol b/test/chains/sources/137/immutable/StakingWarmup.sol deleted file mode 100644 index 7e10ed8f3..000000000 --- a/test/chains/sources/137/immutable/StakingWarmup.sol +++ /dev/null @@ -1,93 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later -pragma solidity 0.7.5; - - -interface IERC20 { - function decimals() external view returns (uint8); - /** - * @dev Returns the amount of tokens in existence. - */ - function totalSupply() external view returns (uint256); - - /** - * @dev Returns the amount of tokens owned by `account`. - */ - function balanceOf(address account) external view returns (uint256); - - /** - * @dev Moves `amount` tokens from the caller's account to `recipient`. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transfer(address recipient, uint256 amount) external returns (bool); - - /** - * @dev Returns the remaining number of tokens that `spender` will be - * allowed to spend on behalf of `owner` through {transferFrom}. This is - * zero by default. - * - * This value changes when {approve} or {transferFrom} are called. - */ - function allowance(address owner, address spender) external view returns (uint256); - - /** - * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * IMPORTANT: Beware that changing an allowance with this method brings the risk - * that someone may use both the old and the new allowance by unfortunate - * transaction ordering. One possible solution to mitigate this race - * condition is to first reduce the spender's allowance to 0 and set the - * desired value afterwards: - * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 - * - * Emits an {Approval} event. - */ - function approve(address spender, uint256 amount) external returns (bool); - - /** - * @dev Moves `amount` tokens from `sender` to `recipient` using the - * allowance mechanism. `amount` is then deducted from the caller's - * allowance. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); - - /** - * @dev Emitted when `value` tokens are moved from one account (`from`) to - * another (`to`). - * - * Note that `value` may be zero. - */ - event Transfer(address indexed from, address indexed to, uint256 value); - - /** - * @dev Emitted when the allowance of a `spender` for an `owner` is set by - * a call to {approve}. `value` is the new allowance. - */ - event Approval(address indexed owner, address indexed spender, uint256 value); -} - -contract StakingWarmup { - - address public immutable staking; - address public immutable MEMOries; - - constructor ( address _staking, address _MEMOries ) { - require( _staking != address(0) ); - staking = _staking; - require( _MEMOries != address(0) ); - MEMOries = _MEMOries; - } - - function retrieve( address _staker, uint _amount ) external { - require( msg.sender == staking ); - IERC20( MEMOries ).transfer( _staker, _amount ); - } -} \ No newline at end of file diff --git a/test/chains/sources/137/immutable/metadata.json b/test/chains/sources/137/immutable/metadata.json deleted file mode 100644 index ecc3a203e..000000000 --- a/test/chains/sources/137/immutable/metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"compiler":{"version":"0.7.5+commit.eb77ed08"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_staking","type":"address"},{"internalType":"address","name":"_MEMOries","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"MEMOries","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_staker","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"retrieve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"staking","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"StakingWarmup.sol":"StakingWarmup"},"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"StakingWarmup.sol":{"keccak256":"0x748cbe627f6e6d3aba5836261ff151257dcfb3664ff00e20af75afd4dd58a272","license":"AGPL-3.0-or-later","urls":["bzz-raw://d50f7015fcead5f0dc89932469da91a208e90231fe4e2b2ae0d43c7a4a5fc38f","dweb:/ipfs/QmRdngjYJPHdMpcJ1agoukoo4eAvdNhJYndYxeBdf6QTee"]}},"version":1} \ No newline at end of file diff --git a/test/chains/sources/25/metadata.json b/test/chains/sources/25/metadata.json new file mode 100644 index 000000000..a93e94756 --- /dev/null +++ b/test/chains/sources/25/metadata.json @@ -0,0 +1,87 @@ +{ + "compiler": { + "version": "0.8.7+commit.e28d00a7" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "name": "retrieve", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "num", + "type": "uint256" + } + ], + "name": "store", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "Store & retrieve value in a variable", + "kind": "dev", + "methods": { + "retrieve()": { + "details": "Return value ", + "returns": { + "_0": "value of 'number'" + } + }, + "store(uint256)": { + "details": "Store value in variable", + "params": { + "num": "value to store" + } + } + }, + "title": "Storage", + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "1_Storage.sol": "Storage" + }, + "evmVersion": "london", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "1_Storage.sol": { + "keccak256": "0xd2f03f0d5e9fad7110f3286b182743f2dde645d3d9dec9d0aa23fd38a32b7135", + "license": "GPL-3.0", + "urls": [ + "bzz-raw://63f0843c2a7d23a0e68db6976bda57ddcc1e2c6aa6decdef6006ba0ba6ae780e", + "dweb:/ipfs/QmWTXv8e35sM4z7MmbBWiErAey4TbyiLRo1ZQnEBrWzyDy" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/test/chains/sources/25/storage.sol b/test/chains/sources/25/storage.sol new file mode 100644 index 000000000..2958b798d --- /dev/null +++ b/test/chains/sources/25/storage.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity >=0.7.0 <0.9.0; + +/** + * @title Storage + * @dev Store & retrieve value in a variable + */ +contract Storage { + + uint256 number; + + /** + * @dev Store value in variable + * @param num value to store + */ + function store(uint256 num) public { + number = num; + } + + /** + * @dev Return value + * @return value of 'number' + */ + function retrieve() public view returns (uint256){ + return number; + } +} \ No newline at end of file diff --git a/test/chains/sources/288/immutable/DODOV2RouteHelper.sol b/test/chains/sources/288/immutable/DODOV2RouteHelper.sol deleted file mode 100644 index f07e342db..000000000 --- a/test/chains/sources/288/immutable/DODOV2RouteHelper.sol +++ /dev/null @@ -1,191 +0,0 @@ -// File: contracts/SmartRoute/intf/IDODOV2.sol - -/* - - Copyright 2020 DODO ZOO. - SPDX-License-Identifier: Apache-2.0 - -*/ - -pragma solidity 0.6.9; -pragma experimental ABIEncoderV2; - -interface IDODOV2 { - - //========== Common ================== - - function sellBase(address to) external returns (uint256 receiveQuoteAmount); - - function sellQuote(address to) external returns (uint256 receiveBaseAmount); - - function getVaultReserve() external view returns (uint256 baseReserve, uint256 quoteReserve); - - function _BASE_TOKEN_() external view returns (address); - - function _QUOTE_TOKEN_() external view returns (address); - - function getPMMStateForCall() external view returns ( - uint256 i, - uint256 K, - uint256 B, - uint256 Q, - uint256 B0, - uint256 Q0, - uint256 R - ); - - function getUserFeeRate(address user) external view returns (uint256 lpFeeRate, uint256 mtFeeRate); - - - function getDODOPoolBidirection(address token0, address token1) external view returns (address[] memory, address[] memory); - - //========== DODOVendingMachine ======== - - function createDODOVendingMachine( - address baseToken, - address quoteToken, - uint256 lpFeeRate, - uint256 i, - uint256 k, - bool isOpenTWAP - ) external returns (address newVendingMachine); - - function buyShares(address to) external returns (uint256,uint256,uint256); - - - //========== DODOPrivatePool =========== - - function createDODOPrivatePool() external returns (address newPrivatePool); - - function initDODOPrivatePool( - address dppAddress, - address creator, - address baseToken, - address quoteToken, - uint256 lpFeeRate, - uint256 k, - uint256 i, - bool isOpenTwap - ) external; - - function reset( - address operator, - uint256 newLpFeeRate, - uint256 newI, - uint256 newK, - uint256 baseOutAmount, - uint256 quoteOutAmount, - uint256 minBaseReserve, - uint256 minQuoteReserve - ) external returns (bool); - - - function _OWNER_() external returns (address); - - //========== CrowdPooling =========== - - function createCrowdPooling() external returns (address payable newCrowdPooling); - - function initCrowdPooling( - address cpAddress, - address creator, - address baseToken, - address quoteToken, - uint256[] memory timeLine, - uint256[] memory valueList, - bool isOpenTWAP - ) external; - - function bid(address to) external; -} - -// File: contracts/SmartRoute/helper/DODOV2RouteHelper.sol - - -contract DODOV2RouteHelper { - address public immutable _DVM_FACTORY_; - address public immutable _DPP_FACTORY_; - address public immutable _DSP_FACTORY_; - - struct PairDetail { - uint256 i; - uint256 K; - uint256 B; - uint256 Q; - uint256 B0; - uint256 Q0; - uint256 R; - uint256 lpFeeRate; - uint256 mtFeeRate; - address baseToken; - address quoteToken; - address curPair; - uint256 pairVersion; - } - - constructor(address dvmFactory,address dppFactory,address dspFactory) public { - _DVM_FACTORY_ = dvmFactory; - _DPP_FACTORY_ = dppFactory; - _DSP_FACTORY_ = dspFactory; - } - - function getPairDetail(address token0,address token1,address userAddr) external view returns (PairDetail[] memory res) { - (address[] memory baseToken0DVM, address[] memory baseToken1DVM) = IDODOV2(_DVM_FACTORY_).getDODOPoolBidirection(token0,token1); - (address[] memory baseToken0DPP, address[] memory baseToken1DPP) = IDODOV2(_DPP_FACTORY_).getDODOPoolBidirection(token0,token1); - (address[] memory baseToken0DSP, address[] memory baseToken1DSP) = IDODOV2(_DSP_FACTORY_).getDODOPoolBidirection(token0,token1); - - uint256 len = baseToken0DVM.length + baseToken1DVM.length + baseToken0DPP.length + baseToken1DPP.length + baseToken0DSP.length + baseToken1DSP.length; - res = new PairDetail[](len); - for(uint8 i = 0; i < len; i++) { - PairDetail memory curRes = PairDetail(0,0,0,0,0,0,0,0,0,address(0),address(0),address(0),2); - address cur; - if(i < baseToken0DVM.length) { - cur = baseToken0DVM[i]; - curRes.baseToken = token0; - curRes.quoteToken = token1; - } else if(i < baseToken0DVM.length + baseToken1DVM.length) { - cur = baseToken1DVM[i - baseToken0DVM.length]; - curRes.baseToken = token1; - curRes.quoteToken = token0; - } else if(i < baseToken0DVM.length + baseToken1DVM.length + baseToken0DPP.length) { - cur = baseToken0DPP[i - baseToken0DVM.length - baseToken1DVM.length]; - curRes.baseToken = token0; - curRes.quoteToken = token1; - } else if(i < baseToken0DVM.length + baseToken1DVM.length + baseToken0DPP.length + baseToken1DPP.length) { - cur = baseToken1DPP[i - baseToken0DVM.length - baseToken1DVM.length - baseToken0DPP.length]; - curRes.baseToken = token1; - curRes.quoteToken = token0; - } else if(i < baseToken0DVM.length + baseToken1DVM.length + baseToken0DPP.length + baseToken1DPP.length + baseToken0DSP.length) { - cur = baseToken0DSP[i - baseToken0DVM.length - baseToken1DVM.length - baseToken0DPP.length - baseToken1DPP.length]; - curRes.baseToken = token0; - curRes.quoteToken = token1; - } else { - cur = baseToken1DSP[i - baseToken0DVM.length - baseToken1DVM.length - baseToken0DPP.length - baseToken1DPP.length - baseToken0DSP.length]; - curRes.baseToken = token1; - curRes.quoteToken = token0; - } - - ( - curRes.i, - curRes.K, - curRes.B, - curRes.Q, - curRes.B0, - curRes.Q0, - curRes.R - ) = IDODOV2(cur).getPMMStateForCall(); - - - try IDODOV2(cur).getUserFeeRate(userAddr) returns (uint256 _lpFeeRate, uint256 _mtFeeRate) { - curRes.lpFeeRate = _lpFeeRate; - curRes.mtFeeRate = _mtFeeRate; - } catch { - curRes.lpFeeRate = 0; - curRes.mtFeeRate = 10**18; - } - - curRes.curPair = cur; - res[i] = curRes; - } - } -} diff --git a/test/chains/sources/288/immutable/metadata.json b/test/chains/sources/288/immutable/metadata.json deleted file mode 100644 index 454711322..000000000 --- a/test/chains/sources/288/immutable/metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"compiler":{"version":"0.6.9+commit.3e3065ac"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"dvmFactory","type":"address"},{"internalType":"address","name":"dppFactory","type":"address"},{"internalType":"address","name":"dspFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"_DPP_FACTORY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_DSP_FACTORY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_DVM_FACTORY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"address","name":"userAddr","type":"address"}],"name":"getPairDetail","outputs":[{"components":[{"internalType":"uint256","name":"i","type":"uint256"},{"internalType":"uint256","name":"K","type":"uint256"},{"internalType":"uint256","name":"B","type":"uint256"},{"internalType":"uint256","name":"Q","type":"uint256"},{"internalType":"uint256","name":"B0","type":"uint256"},{"internalType":"uint256","name":"Q0","type":"uint256"},{"internalType":"uint256","name":"R","type":"uint256"},{"internalType":"uint256","name":"lpFeeRate","type":"uint256"},{"internalType":"uint256","name":"mtFeeRate","type":"uint256"},{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"},{"internalType":"address","name":"curPair","type":"address"},{"internalType":"uint256","name":"pairVersion","type":"uint256"}],"internalType":"struct DODOV2RouteHelper.PairDetail[]","name":"res","type":"tuple[]"}],"stateMutability":"view","type":"function"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"compilationTarget":{"contracts/DODOV2RouteHelper.sol":"DODOV2RouteHelper"},"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"sources":{"contracts/DODOV2RouteHelper.sol":{"keccak256":"0x9abf261922dd942c9498ddb7f7ab4197dd5b5671dcd2111e1b92501787d6723d","license":"Apache-2.0","urls":["bzz-raw://0188406d358f39c3a35b3150a3b0ad39d05f778afc8aec2ccb56194b7d3fd864","dweb:/ipfs/QmSTaVrziH4caKZyxJ1yfiMzaUhcTUfzGS3XHb2AkRLJag"]}},"version":1} \ No newline at end of file diff --git a/test/chains/sources/40/immutable/Address.sol b/test/chains/sources/40/immutable/Address.sol deleted file mode 100644 index 106d270fd..000000000 --- a/test/chains/sources/40/immutable/Address.sol +++ /dev/null @@ -1,222 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.1 (utils/Address.sol) - -pragma solidity ^0.8.1; - -/** - * @dev Collection of functions related to the address type - */ -library Address { - /** - * @dev Returns true if `account` is a contract. - * - * [IMPORTANT] - * ==== - * It is unsafe to assume that an address for which this function returns - * false is an externally-owned account (EOA) and not a contract. - * - * Among others, `isContract` will return false for the following - * types of addresses: - * - * - an externally-owned account - * - a contract in construction - * - an address where a contract will be created - * - an address where a contract lived, but was destroyed - * ==== - * - * [IMPORTANT] - * ==== - * You shouldn't rely on `isContract` to protect against flash loan attacks! - * - * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets - * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract - * constructor. - * ==== - */ - function isContract(address account) internal view returns (bool) { - // This method relies on extcodesize/address.code.length, which returns 0 - // for contracts in construction, since the code is only stored at the end - // of the constructor execution. - - return account.code.length > 0; - } - - /** - * @dev Replacement for Solidity's `transfer`: sends `amount` wei to - * `recipient`, forwarding all available gas and reverting on errors. - * - * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost - * of certain opcodes, possibly making contracts go over the 2300 gas limit - * imposed by `transfer`, making them unable to receive funds via - * `transfer`. {sendValue} removes this limitation. - * - * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. - * - * IMPORTANT: because control is transferred to `recipient`, care must be - * taken to not create reentrancy vulnerabilities. Consider using - * {ReentrancyGuard} or the - * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. - */ - function sendValue(address payable recipient, uint256 amount) internal { - require(address(this).balance >= amount, "Address: insufficient balance"); - - (bool success, ) = recipient.call{value: amount}(""); - require(success, "Address: unable to send value, recipient may have reverted"); - } - - /** - * @dev Performs a Solidity function call using a low level `call`. A - * plain `call` is an unsafe replacement for a function call: use this - * function instead. - * - * If `target` reverts with a revert reason, it is bubbled up by this - * function (like regular Solidity function calls). - * - * Returns the raw returned data. To convert to the expected return value, - * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. - * - * Requirements: - * - * - `target` must be a contract. - * - calling `target` with `data` must not revert. - * - * _Available since v3.1._ - */ - function functionCall(address target, bytes memory data) internal returns (bytes memory) { - return functionCall(target, data, "Address: low-level call failed"); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with - * `errorMessage` as a fallback revert reason when `target` reverts. - * - * _Available since v3.1._ - */ - function functionCall( - address target, - bytes memory data, - string memory errorMessage - ) internal returns (bytes memory) { - return functionCallWithValue(target, data, 0, errorMessage); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], - * but also transferring `value` wei to `target`. - * - * Requirements: - * - * - the calling contract must have an ETH balance of at least `value`. - * - the called Solidity function must be `payable`. - * - * _Available since v3.1._ - */ - function functionCallWithValue( - address target, - bytes memory data, - uint256 value - ) internal returns (bytes memory) { - return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); - } - - /** - * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but - * with `errorMessage` as a fallback revert reason when `target` reverts. - * - * _Available since v3.1._ - */ - function functionCallWithValue( - address target, - bytes memory data, - uint256 value, - string memory errorMessage - ) internal returns (bytes memory) { - require(address(this).balance >= value, "Address: insufficient balance for call"); - require(isContract(target), "Address: call to non-contract"); - - (bool success, bytes memory returndata) = target.call{value: value}(data); - return verifyCallResult(success, returndata, errorMessage); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], - * but performing a static call. - * - * _Available since v3.3._ - */ - function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { - return functionStaticCall(target, data, "Address: low-level static call failed"); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], - * but performing a static call. - * - * _Available since v3.3._ - */ - function functionStaticCall( - address target, - bytes memory data, - string memory errorMessage - ) internal view returns (bytes memory) { - require(isContract(target), "Address: static call to non-contract"); - - (bool success, bytes memory returndata) = target.staticcall(data); - return verifyCallResult(success, returndata, errorMessage); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], - * but performing a delegate call. - * - * _Available since v3.4._ - */ - function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { - return functionDelegateCall(target, data, "Address: low-level delegate call failed"); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], - * but performing a delegate call. - * - * _Available since v3.4._ - */ - function functionDelegateCall( - address target, - bytes memory data, - string memory errorMessage - ) internal returns (bytes memory) { - require(isContract(target), "Address: delegate call to non-contract"); - - (bool success, bytes memory returndata) = target.delegatecall(data); - return verifyCallResult(success, returndata, errorMessage); - } - - /** - * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the - * revert reason using the provided one. - * - * _Available since v4.3._ - */ - function verifyCallResult( - bool success, - bytes memory returndata, - string memory errorMessage - ) internal pure returns (bytes memory) { - if (success) { - return returndata; - } else { - // Look for revert reason and bubble it up if present - if (returndata.length > 0) { - // The easiest way to bubble the revert reason is using memory via assembly - - assembly { - let returndata_size := mload(returndata) - revert(add(32, returndata), returndata_size) - } - } else { - revert(errorMessage); - } - } - } -} \ No newline at end of file diff --git a/test/chains/sources/40/immutable/IERC20.sol b/test/chains/sources/40/immutable/IERC20.sol deleted file mode 100644 index 2a05fe57f..000000000 --- a/test/chains/sources/40/immutable/IERC20.sol +++ /dev/null @@ -1,82 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol) - -pragma solidity ^0.8.0; - -/** - * @dev Interface of the ERC20 standard as defined in the EIP. - */ -interface IERC20 { - /** - * @dev Returns the amount of tokens in existence. - */ - function totalSupply() external view returns (uint256); - - /** - * @dev Returns the amount of tokens owned by `account`. - */ - function balanceOf(address account) external view returns (uint256); - - /** - * @dev Moves `amount` tokens from the caller's account to `recipient`. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transfer(address recipient, uint256 amount) external returns (bool); - - /** - * @dev Returns the remaining number of tokens that `spender` will be - * allowed to spend on behalf of `owner` through {transferFrom}. This is - * zero by default. - * - * This value changes when {approve} or {transferFrom} are called. - */ - function allowance(address owner, address spender) external view returns (uint256); - - /** - * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * IMPORTANT: Beware that changing an allowance with this method brings the risk - * that someone may use both the old and the new allowance by unfortunate - * transaction ordering. One possible solution to mitigate this race - * condition is to first reduce the spender's allowance to 0 and set the - * desired value afterwards: - * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 - * - * Emits an {Approval} event. - */ - function approve(address spender, uint256 amount) external returns (bool); - - /** - * @dev Moves `amount` tokens from `sender` to `recipient` using the - * allowance mechanism. `amount` is then deducted from the caller's - * allowance. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transferFrom( - address sender, - address recipient, - uint256 amount - ) external returns (bool); - - /** - * @dev Emitted when `value` tokens are moved from one account (`from`) to - * another (`to`). - * - * Note that `value` may be zero. - */ - event Transfer(address indexed from, address indexed to, uint256 value); - - /** - * @dev Emitted when the allowance of a `spender` for an `owner` is set by - * a call to {approve}. `value` is the new allowance. - */ - event Approval(address indexed owner, address indexed spender, uint256 value); -} \ No newline at end of file diff --git a/test/chains/sources/40/immutable/SafeERC20.sol b/test/chains/sources/40/immutable/SafeERC20.sol deleted file mode 100644 index e6cbf5259..000000000 --- a/test/chains/sources/40/immutable/SafeERC20.sol +++ /dev/null @@ -1,99 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.1 (token/ERC20/utils/SafeERC20.sol) - -pragma solidity ^0.8.0; - -import "./IERC20.sol"; -import "./Address.sol"; - -/** - * @title SafeERC20 - * @dev Wrappers around ERC20 operations that throw on failure (when the token - * contract returns false). Tokens that return no value (and instead revert or - * throw on failure) are also supported, non-reverting calls are assumed to be - * successful. - * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, - * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. - */ -library SafeERC20 { - using Address for address; - - function safeTransfer( - IERC20 token, - address to, - uint256 value - ) internal { - _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); - } - - function safeTransferFrom( - IERC20 token, - address from, - address to, - uint256 value - ) internal { - _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); - } - - /** - * @dev Deprecated. This function has issues similar to the ones found in - * {IERC20-approve}, and its usage is discouraged. - * - * Whenever possible, use {safeIncreaseAllowance} and - * {safeDecreaseAllowance} instead. - */ - function safeApprove( - IERC20 token, - address spender, - uint256 value - ) internal { - // safeApprove should only be called when setting an initial allowance, - // or when resetting it to zero. To increase and decrease it, use - // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' - require( - (value == 0) || (token.allowance(address(this), spender) == 0), - "SafeERC20: approve from non-zero to non-zero allowance" - ); - _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); - } - - function safeIncreaseAllowance( - IERC20 token, - address spender, - uint256 value - ) internal { - uint256 newAllowance = token.allowance(address(this), spender) + value; - _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); - } - - function safeDecreaseAllowance( - IERC20 token, - address spender, - uint256 value - ) internal { - unchecked { - uint256 oldAllowance = token.allowance(address(this), spender); - require(oldAllowance >= value, "SafeERC20: decreased allowance below zero"); - uint256 newAllowance = oldAllowance - value; - _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); - } - } - - /** - * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement - * on the return value: the return value is optional (but if data is returned, it must not be false). - * @param token The token targeted by the call. - * @param data The call data (encoded using abi.encode or one of its variants). - */ - function _callOptionalReturn(IERC20 token, bytes memory data) private { - // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since - // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that - // the target address contains contract code and also asserts for success in the low-level call. - - bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); - if (returndata.length > 0) { - // Return data is optional - require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); - } - } -} \ No newline at end of file diff --git a/test/chains/sources/40/immutable/TokenTimelock.sol b/test/chains/sources/40/immutable/TokenTimelock.sol deleted file mode 100644 index c1fcdac66..000000000 --- a/test/chains/sources/40/immutable/TokenTimelock.sol +++ /dev/null @@ -1,76 +0,0 @@ -// SPDX-License-Identifier: MIT -// OpenZeppelin Contracts v4.4.1 (token/ERC20/utils/TokenTimelock.sol) - -pragma solidity ^0.8.0; - -import "./SafeERC20.sol"; - -/** - * @dev A token holder contract that will allow a beneficiary to extract the - * tokens after a given release time. - * - * Useful for simple vesting schedules like "advisors get all of their tokens - * after 1 year". - */ -contract TokenTimelock { - using SafeERC20 for IERC20; - - // ERC20 basic token contract being held - IERC20 private immutable _token; - - // beneficiary of tokens after they are released - address private immutable _beneficiary; - - // timestamp when token release is enabled - uint256 private immutable _releaseTime; - - /** - * @dev Deploys a timelock instance that is able to hold the token specified, and will only release it to - * `beneficiary_` when {release} is invoked after `releaseTime_`. The release time is specified as a Unix timestamp - * (in seconds). - */ - constructor( - IERC20 token_, - address beneficiary_, - uint256 releaseTime_ - ) { - require(releaseTime_ > block.timestamp, "TokenTimelock: release time is before current time"); - _token = token_; - _beneficiary = beneficiary_; - _releaseTime = releaseTime_; - } - - /** - * @dev Returns the token being held. - */ - function token() public view virtual returns (IERC20) { - return _token; - } - - /** - * @dev Returns the beneficiary that will receive the tokens. - */ - function beneficiary() public view virtual returns (address) { - return _beneficiary; - } - - /** - * @dev Returns the time when the tokens are released in seconds since Unix epoch (i.e. Unix timestamp). - */ - function releaseTime() public view virtual returns (uint256) { - return _releaseTime; - } - - /** - * @dev Transfers tokens held by the timelock to the beneficiary. Will only succeed if invoked after the release - * time. - */ - function release() public virtual { - require(block.timestamp >= releaseTime(), "TokenTimelock: current time is before release time"); - - uint256 amount = token().balanceOf(address(this)); - require(amount > 0, "TokenTimelock: no tokens to release"); - - token().safeTransfer(beneficiary(), amount); - } -} \ No newline at end of file diff --git a/test/chains/sources/40/immutable/metadata.json b/test/chains/sources/40/immutable/metadata.json deleted file mode 100644 index b79fbcbbc..000000000 --- a/test/chains/sources/40/immutable/metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"compiler":{"version":"0.8.1+commit.df193b15"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IERC20","name":"token_","type":"address"},{"internalType":"address","name":"beneficiary_","type":"address"},{"internalType":"uint256","name":"releaseTime_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"beneficiary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"releaseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"A token holder contract that will allow a beneficiary to extract the tokens after a given release time. Useful for simple vesting schedules like \"advisors get all of their tokens after 1 year\".","kind":"dev","methods":{"beneficiary()":{"details":"Returns the beneficiary that will receive the tokens."},"constructor":{"details":"Deploys a timelock instance that is able to hold the token specified, and will only release it to `beneficiary_` when {release} is invoked after `releaseTime_`. The release time is specified as a Unix timestamp (in seconds)."},"release()":{"details":"Transfers tokens held by the timelock to the beneficiary. Will only succeed if invoked after the release time."},"releaseTime()":{"details":"Returns the time when the tokens are released in seconds since Unix epoch (i.e. Unix timestamp)."},"token()":{"details":"Returns the token being held."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"contracts/TokenTimelock.sol":"TokenTimelock"},"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"contracts/Address.sol":{"keccak256":"0xc3025aaa95aa8f9e80b9a7f76c40a4b94b60b065bd3bbe3cb0a476e95846d658","license":"MIT","urls":["bzz-raw://89d75bac0237f5c371a2519ce92fbacf3c4ecdcff4cc9f10a5f3673d82876f56","dweb:/ipfs/QmeTypoZNTYKmSdmKiFvJxwot72RE5Bddi5ssX3heW2xdP"]},"contracts/IERC20.sol":{"keccak256":"0x6ba702bf7bb3ff99b585fd812e6234a6896dc9151500eb9bb58716c14bcb69f4","license":"MIT","urls":["bzz-raw://c6b8cfe345248cdd9956c5085dfb7209387a129e6aa207a09056d9614d87ee49","dweb:/ipfs/QmXPA8HVT2T449p3bmZYaPqEJgxHNNFXrz3zqFBfn9D7re"]},"contracts/SafeERC20.sol":{"keccak256":"0x5c990c0247f4f1c283f6235de0b455f692b7e711ddbe50ce769220325cd73ed4","license":"MIT","urls":["bzz-raw://5df26f207e469aa16c66468a228a0eb5e3c0dc7e8a0c0998bca9d0d0a6c1b173","dweb:/ipfs/QmdPJqkNFCp2P5phtuyDcLaPCj1LUbw2csGJD7N31CZ5Cp"]},"contracts/TokenTimelock.sol":{"keccak256":"0x62506ed46aff05c2d65c9af347fccb69feb1aca114d4444663d0ba254ab072cf","license":"MIT","urls":["bzz-raw://90481fcad6bebeec07e664e3aabb5daec8e53a5b3f64178646ad9d2b92b22a0b","dweb:/ipfs/QmXZ7HZQxViqWE1XfesdLRMK5BiFQc69Ax7yfjKUgFCPMU"]}},"version":1} \ No newline at end of file diff --git a/test/chains/sources/42161/immutable/crowdsale.sol b/test/chains/sources/42161/immutable/crowdsale.sol deleted file mode 100644 index e5f0d091d..000000000 --- a/test/chains/sources/42161/immutable/crowdsale.sol +++ /dev/null @@ -1,354 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later - -pragma solidity >=0.8.4; - -/// @notice Safe ETH and ERC-20 transfer library that gracefully handles missing return values. -/// @author Modified from SolMate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/SafeTransferLib.sol) -/// License-Identifier: AGPL-3.0-only -/// @dev Use with caution! Some functions in this library knowingly create dirty bits at the destination of the free memory pointer. -library SafeTransferLib { - /*/////////////////////////////////////////////////////////////// - ERRORS - //////////////////////////////////////////////////////////////*/ - - error ETHtransferFailed(); - - error TransferFailed(); - - error TransferFromFailed(); - - /*/////////////////////////////////////////////////////////////// - ETH OPERATIONS - //////////////////////////////////////////////////////////////*/ - - function _safeTransferETH(address to, uint256 amount) internal { - bool callStatus; - - assembly { - // transfer the ETH and store if it succeeded or not - callStatus := call(gas(), to, amount, 0, 0, 0, 0) - } - - if (!callStatus) revert ETHtransferFailed(); - } - - /*/////////////////////////////////////////////////////////////// - ERC20 OPERATIONS - //////////////////////////////////////////////////////////////*/ - - function _safeTransfer( - address token, - address to, - uint256 amount - ) internal { - bool callStatus; - - assembly { - // get a pointer to some free memory - let freeMemoryPointer := mload(0x40) - - // write the abi-encoded calldata to memory piece by piece: - mstore(freeMemoryPointer, 0xa9059cbb00000000000000000000000000000000000000000000000000000000) // begin with the function selector - - mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // mask and append the "to" argument - - mstore(add(freeMemoryPointer, 36), amount) // finally append the "amount" argument - no mask as it's a full 32 byte value - - // call the token and store if it succeeded or not - // we use 68 because the calldata length is 4 + 32 * 2 - callStatus := call(gas(), token, 0, freeMemoryPointer, 68, 0, 0) - } - - if (!_didLastOptionalReturnCallSucceed(callStatus)) revert TransferFailed(); - } - - function _safeTransferFrom( - address token, - address from, - address to, - uint256 amount - ) internal { - bool callStatus; - - assembly { - // get a pointer to some free memory - let freeMemoryPointer := mload(0x40) - - // write the abi-encoded calldata to memory piece by piece: - mstore(freeMemoryPointer, 0x23b872dd00000000000000000000000000000000000000000000000000000000) // begin with the function selector - - mstore(add(freeMemoryPointer, 4), and(from, 0xffffffffffffffffffffffffffffffffffffffff)) // mask and append the "from" argument - - mstore(add(freeMemoryPointer, 36), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // mask and append the "to" argument - - mstore(add(freeMemoryPointer, 68), amount) // finally append the "amount" argument - no mask as it's a full 32 byte value - - // call the token and store if it succeeded or not - // we use 100 because the calldata length is 4 + 32 * 3 - callStatus := call(gas(), token, 0, freeMemoryPointer, 100, 0, 0) - } - - if (!_didLastOptionalReturnCallSucceed(callStatus)) revert TransferFromFailed(); - } - - /*/////////////////////////////////////////////////////////////// - INTERNAL HELPER LOGIC - //////////////////////////////////////////////////////////////*/ - - function _didLastOptionalReturnCallSucceed(bool callStatus) internal pure returns (bool success) { - assembly { - // get how many bytes the call returned - let returnDataSize := returndatasize() - - // if the call reverted: - if iszero(callStatus) { - // copy the revert message into memory - returndatacopy(0, 0, returnDataSize) - - // revert with the same message - revert(0, returnDataSize) - } - - switch returnDataSize - - case 32 { - // copy the return data into memory - returndatacopy(0, 0, returnDataSize) - - // set success to whether it returned true - success := iszero(iszero(mload(0))) - } - case 0 { - // there was no return data - success := 1 - } - default { - // it returned some malformed input - success := 0 - } - } - } -} - -/// @notice Kali DAO access manager interface. -interface IKaliAccessManager { - function listedAccounts(uint256 listId, address account) external returns (bool); - - function joinList( - uint256 listId, - address account, - bytes32[] calldata merkleProof - ) external; -} - -/// @notice Kali DAO share manager interface. -interface IKaliShareManager { - function mintShares(address to, uint256 amount) external; - - function burnShares(address from, uint256 amount) external; -} - -/// @notice EIP-2612 interface. -interface IERC20Permit { - function permit( - address owner, - address spender, - uint256 value, - uint256 deadline, - uint8 v, - bytes32 r, - bytes32 s - ) external; -} - -/// @notice Helper utility that enables calling multiple local methods in a single call. -/// @author Modified from Uniswap (https://github.com/Uniswap/v3-periphery/blob/main/contracts/base/Multicall.sol) -abstract contract Multicall { - function multicall(bytes[] calldata data) public virtual returns (bytes[] memory results) { - results = new bytes[](data.length); - - // cannot realistically overflow on human timescales - unchecked { - for (uint256 i = 0; i < data.length; i++) { - (bool success, bytes memory result) = address(this).delegatecall(data[i]); - - if (!success) { - if (result.length < 68) revert(); - - assembly { - result := add(result, 0x04) - } - - revert(abi.decode(result, (string))); - } - results[i] = result; - } - } - } -} - -/// @notice Gas-optimized reentrancy protection. -/// @author Modified from OpenZeppelin -/// (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/security/ReentrancyGuard.sol) -/// License-Identifier: MIT -abstract contract ReentrancyGuard { - error Reentrancy(); - - uint256 private constant NOT_ENTERED = 1; - - uint256 private constant ENTERED = 2; - - uint256 private status = NOT_ENTERED; - - modifier nonReentrant() { - if (status == ENTERED) revert Reentrancy(); - - status = ENTERED; - - _; - - status = NOT_ENTERED; - } -} - -/// @notice Crowdsale contract that receives ETH or ERC-20 to mint registered DAO tokens, including merkle access lists. -contract KaliDAOcrowdsale is Multicall, ReentrancyGuard { - using SafeTransferLib for address; - - event ExtensionSet( - address indexed dao, - uint256 listId, - address purchaseToken, - uint8 purchaseMultiplier, - uint96 purchaseLimit, - uint32 saleEnds, - string details - ); - - event ExtensionCalled(address indexed dao, address indexed purchaser, uint256 amountOut); - - error NullMultiplier(); - - error SaleEnded(); - - error NotListed(); - - error PurchaseLimit(); - - IKaliAccessManager private immutable accessManager; - - address private immutable wETH; - - mapping(address => Crowdsale) public crowdsales; - - struct Crowdsale { - uint256 listId; - address purchaseToken; - uint8 purchaseMultiplier; - uint96 purchaseLimit; - uint96 amountPurchased; - uint32 saleEnds; - string details; - } - - constructor(IKaliAccessManager accessManager_, address wETH_) { - accessManager = accessManager_; - - wETH = wETH_; - } - - function setExtension(bytes calldata extensionData) public nonReentrant virtual { - (uint256 listId, address purchaseToken, uint8 purchaseMultiplier, uint96 purchaseLimit, uint32 saleEnds, string memory details) - = abi.decode(extensionData, (uint256, address, uint8, uint96, uint32, string)); - - if (purchaseMultiplier == 0) revert NullMultiplier(); - - crowdsales[msg.sender] = Crowdsale({ - listId: listId, - purchaseToken: purchaseToken, - purchaseMultiplier: purchaseMultiplier, - purchaseLimit: purchaseLimit, - amountPurchased: 0, - saleEnds: saleEnds, - details: details - }); - - emit ExtensionSet(msg.sender, listId, purchaseToken, purchaseMultiplier, purchaseLimit, saleEnds, details); - } - - function joinList(uint256 listId, bytes32[] calldata merkleProof) public virtual { - accessManager.joinList( - listId, - msg.sender, - merkleProof - ); - } - - function setPermit( - IERC20Permit token, - uint256 value, - uint256 deadline, - uint8 v, - bytes32 r, - bytes32 s - ) public virtual { - token.permit( - msg.sender, - address(this), - value, - deadline, - v, - r, - s - ); - } - - function callExtension(address dao, uint256 amount) public payable nonReentrant virtual returns (uint256 amountOut) { - Crowdsale storage sale = crowdsales[dao]; - - if (block.timestamp > sale.saleEnds) revert SaleEnded(); - - if (sale.listId != 0) - if (!accessManager.listedAccounts(sale.listId, msg.sender)) revert NotListed(); - - if (sale.purchaseToken == address(0)) { - amountOut = msg.value * sale.purchaseMultiplier; - - if (sale.amountPurchased + amountOut > sale.purchaseLimit) revert PurchaseLimit(); - - // send ETH to DAO - dao._safeTransferETH(msg.value); - - sale.amountPurchased += uint96(amountOut); - - IKaliShareManager(dao).mintShares(msg.sender, amountOut); - } else if (sale.purchaseToken == address(0xDead)) { - amountOut = msg.value * sale.purchaseMultiplier; - - if (sale.amountPurchased + amountOut > sale.purchaseLimit) revert PurchaseLimit(); - - // send ETH to wETH - wETH._safeTransferETH(msg.value); - - // send wETH to DAO - wETH._safeTransfer(dao, msg.value); - - sale.amountPurchased += uint96(amountOut); - - IKaliShareManager(dao).mintShares(msg.sender, amountOut); - } else { - // send tokens to DAO - sale.purchaseToken._safeTransferFrom(msg.sender, dao, amount); - - amountOut = amount * sale.purchaseMultiplier; - - if (sale.amountPurchased + amountOut > sale.purchaseLimit) revert PurchaseLimit(); - - sale.amountPurchased += uint96(amountOut); - - IKaliShareManager(dao).mintShares(msg.sender, amountOut); - } - - emit ExtensionCalled(dao, msg.sender, amountOut); - } -} \ No newline at end of file diff --git a/test/chains/sources/42161/immutable/metadata.json b/test/chains/sources/42161/immutable/metadata.json deleted file mode 100644 index 994d0e9dc..000000000 --- a/test/chains/sources/42161/immutable/metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"compiler":{"version":"0.8.11+commit.d7f03943"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IKaliAccessManager","name":"accessManager_","type":"address"},{"internalType":"address","name":"wETH_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ETHtransferFailed","type":"error"},{"inputs":[],"name":"NotListed","type":"error"},{"inputs":[],"name":"NullMultiplier","type":"error"},{"inputs":[],"name":"PurchaseLimit","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"SaleEnded","type":"error"},{"inputs":[],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"TransferFromFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"dao","type":"address"},{"indexed":true,"internalType":"address","name":"purchaser","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountOut","type":"uint256"}],"name":"ExtensionCalled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"dao","type":"address"},{"indexed":false,"internalType":"uint256","name":"listId","type":"uint256"},{"indexed":false,"internalType":"address","name":"purchaseToken","type":"address"},{"indexed":false,"internalType":"uint8","name":"purchaseMultiplier","type":"uint8"},{"indexed":false,"internalType":"uint96","name":"purchaseLimit","type":"uint96"},{"indexed":false,"internalType":"uint32","name":"saleEnds","type":"uint32"},{"indexed":false,"internalType":"string","name":"details","type":"string"}],"name":"ExtensionSet","type":"event"},{"inputs":[{"internalType":"address","name":"dao","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"callExtension","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"crowdsales","outputs":[{"internalType":"uint256","name":"listId","type":"uint256"},{"internalType":"address","name":"purchaseToken","type":"address"},{"internalType":"uint8","name":"purchaseMultiplier","type":"uint8"},{"internalType":"uint96","name":"purchaseLimit","type":"uint96"},{"internalType":"uint96","name":"amountPurchased","type":"uint96"},{"internalType":"uint32","name":"saleEnds","type":"uint32"},{"internalType":"string","name":"details","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"listId","type":"uint256"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"joinList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicall","outputs":[{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"extensionData","type":"bytes"}],"name":"setExtension","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20Permit","name":"token","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"setPermit","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"notice":"Crowdsale contract that receives ETH or ERC-20 to mint registered DAO tokens, including merkle access lists.","version":1}},"settings":{"compilationTarget":{"crowdsale.sol":"KaliDAOcrowdsale"},"evmVersion":"london","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":999999},"remappings":[]},"sources":{"crowdsale.sol":{"keccak256":"0x933e755554a867169f2b651d4bebb2b356332472234770acd136aae94c319081","license":"GPL-3.0-or-later","urls":["bzz-raw://c37ae7db9e7235728a73e20ab62f2f8fb4eafb69ae2aec1b2c342c19d259d8bf","dweb:/ipfs/QmSvtfbaG3HgkRb2itZi8yFPAxbdKeiymXQ5sWtbTgZ3SK"]}},"version":1} \ No newline at end of file diff --git a/test/chains/sources/42220/immutable/StakingHelper.sol b/test/chains/sources/42220/immutable/StakingHelper.sol deleted file mode 100644 index d0c3ca7c9..000000000 --- a/test/chains/sources/42220/immutable/StakingHelper.sol +++ /dev/null @@ -1,100 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later -pragma solidity 0.7.5; - - -interface IERC20 { - function decimals() external view returns (uint8); - /** - * @dev Returns the amount of tokens in existence. - */ - function totalSupply() external view returns (uint256); - - /** - * @dev Returns the amount of tokens owned by `account`. - */ - function balanceOf(address account) external view returns (uint256); - - /** - * @dev Moves `amount` tokens from the caller's account to `recipient`. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transfer(address recipient, uint256 amount) external returns (bool); - - /** - * @dev Returns the remaining number of tokens that `spender` will be - * allowed to spend on behalf of `owner` through {transferFrom}. This is - * zero by default. - * - * This value changes when {approve} or {transferFrom} are called. - */ - function allowance(address owner, address spender) external view returns (uint256); - - /** - * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * IMPORTANT: Beware that changing an allowance with this method brings the risk - * that someone may use both the old and the new allowance by unfortunate - * transaction ordering. One possible solution to mitigate this race - * condition is to first reduce the spender's allowance to 0 and set the - * desired value afterwards: - * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 - * - * Emits an {Approval} event. - */ - function approve(address spender, uint256 amount) external returns (bool); - - /** - * @dev Moves `amount` tokens from `sender` to `recipient` using the - * allowance mechanism. `amount` is then deducted from the caller's - * allowance. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); - - /** - * @dev Emitted when `value` tokens are moved from one account (`from`) to - * another (`to`). - * - * Note that `value` may be zero. - */ - event Transfer(address indexed from, address indexed to, uint256 value); - - /** - * @dev Emitted when the allowance of a `spender` for an `owner` is set by - * a call to {approve}. `value` is the new allowance. - */ - event Approval(address indexed owner, address indexed spender, uint256 value); -} - -interface IStaking { - function stake( uint _amount, address _recipient ) external returns ( bool ); - function claim( address _recipient ) external; -} - -contract StakingHelper { - - address public immutable staking; - address public immutable IMMO; - - constructor ( address _staking, address _IMMO ) { - require( _staking != address(0) ); - staking = _staking; - require( _IMMO != address(0) ); - IMMO = _IMMO; - } - - function stake( uint _amount, address _recipient ) external { - IERC20( IMMO ).transferFrom( msg.sender, address(this), _amount ); - IERC20( IMMO ).approve( staking, _amount ); - IStaking( staking ).stake( _amount, _recipient ); - IStaking( staking ).claim( _recipient ); - } -} \ No newline at end of file diff --git a/test/chains/sources/42220/immutable/metadata.json b/test/chains/sources/42220/immutable/metadata.json deleted file mode 100644 index a990b8876..000000000 --- a/test/chains/sources/42220/immutable/metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"compiler":{"version":"0.7.5+commit.eb77ed08"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_staking","type":"address"},{"internalType":"address","name":"_IMMO","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"IMMO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_recipient","type":"address"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"staking","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"StakingHelper.sol":"StakingHelper"},"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"sources":{"StakingHelper.sol":{"keccak256":"0x711fb1f9a3138f3ced5b03f2d38381249d8be9f4bd2dcd3db187beb8653f8a94","license":"AGPL-3.0-or-later","urls":["bzz-raw://2c03ab18f5fcc1ed0a65d485fdf2cea5fda9ae63744f6530bad2b5eddbebd7e8","dweb:/ipfs/QmTjeEZRVkM6QBRnmMccx9PLYMu8P7rZLkC3jVLYCdSbwp"]}},"version":1} \ No newline at end of file diff --git a/test/chains/sources/43114/immutable/StakingHelper.sol b/test/chains/sources/43114/immutable/StakingHelper.sol deleted file mode 100644 index dd2bd5ae7..000000000 --- a/test/chains/sources/43114/immutable/StakingHelper.sol +++ /dev/null @@ -1,100 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later -pragma solidity 0.7.5; - - -interface IERC20 { - function decimals() external view returns (uint8); - /** - * @dev Returns the amount of tokens in existence. - */ - function totalSupply() external view returns (uint256); - - /** - * @dev Returns the amount of tokens owned by `account`. - */ - function balanceOf(address account) external view returns (uint256); - - /** - * @dev Moves `amount` tokens from the caller's account to `recipient`. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transfer(address recipient, uint256 amount) external returns (bool); - - /** - * @dev Returns the remaining number of tokens that `spender` will be - * allowed to spend on behalf of `owner` through {transferFrom}. This is - * zero by default. - * - * This value changes when {approve} or {transferFrom} are called. - */ - function allowance(address owner, address spender) external view returns (uint256); - - /** - * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * IMPORTANT: Beware that changing an allowance with this method brings the risk - * that someone may use both the old and the new allowance by unfortunate - * transaction ordering. One possible solution to mitigate this race - * condition is to first reduce the spender's allowance to 0 and set the - * desired value afterwards: - * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 - * - * Emits an {Approval} event. - */ - function approve(address spender, uint256 amount) external returns (bool); - - /** - * @dev Moves `amount` tokens from `sender` to `recipient` using the - * allowance mechanism. `amount` is then deducted from the caller's - * allowance. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); - - /** - * @dev Emitted when `value` tokens are moved from one account (`from`) to - * another (`to`). - * - * Note that `value` may be zero. - */ - event Transfer(address indexed from, address indexed to, uint256 value); - - /** - * @dev Emitted when the allowance of a `spender` for an `owner` is set by - * a call to {approve}. `value` is the new allowance. - */ - event Approval(address indexed owner, address indexed spender, uint256 value); -} - -interface IStaking { - function stake( uint _amount, address _recipient ) external returns ( bool ); - function claim( address _recipient ) external; -} - -contract StakingHelper { - - address public immutable staking; - address public immutable Time; - - constructor ( address _staking, address _Time ) { - require( _staking != address(0) ); - staking = _staking; - require( _Time != address(0) ); - Time = _Time; - } - - function stake( uint _amount, address recipient ) external { - IERC20( Time ).transferFrom( msg.sender, address(this), _amount ); - IERC20( Time ).approve( staking, _amount ); - IStaking( staking ).stake( _amount, recipient ); - IStaking( staking ).claim( recipient ); - } -} \ No newline at end of file diff --git a/test/chains/sources/43114/immutable/metadata.json b/test/chains/sources/43114/immutable/metadata.json deleted file mode 100644 index f8695c229..000000000 --- a/test/chains/sources/43114/immutable/metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"compiler":{"version":"0.7.5+commit.eb77ed08"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_staking","type":"address"},{"internalType":"address","name":"_Time","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Time","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"staking","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"StakingHelper.sol":"StakingHelper"},"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"StakingHelper.sol":{"keccak256":"0x7ba0678e96613c2946b904f1569e8918bdc319bb7dc263d4419f04bfda0bbf67","license":"AGPL-3.0-or-later","urls":["bzz-raw://be29df1f751973c9997e3565ca73fa6b644e7611f4e656610b168ed8c098f4ad","dweb:/ipfs/QmQ92JjkWkbiAKkPV4xzXzkPfwZVi88DcgTc4E52PUasJv"]}},"version":1} \ No newline at end of file diff --git a/test/chains/sources/6119/ERC4906.sol b/test/chains/sources/6119/ERC4906.sol new file mode 100644 index 000000000..ec2412000 --- /dev/null +++ b/test/chains/sources/6119/ERC4906.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: CC0-1.0 +pragma solidity ^0.8.9; + +import "@openzeppelin/contracts/utils/introspection/ERC165.sol"; +import "@openzeppelin/contracts/interfaces/IERC4906.sol"; + +abstract contract ERC4906 is ERC165, IERC4906{ + /// @dev See {IERC165-supportsInterface}. + function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { + return interfaceId == bytes4(0x49064906) || super.supportsInterface(interfaceId); + } +} \ No newline at end of file diff --git a/test/chains/sources/6119/IUPTNAddressValidator.sol b/test/chains/sources/6119/IUPTNAddressValidator.sol new file mode 100644 index 000000000..754d7069a --- /dev/null +++ b/test/chains/sources/6119/IUPTNAddressValidator.sol @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.9; + +interface IUPTNAddressValidator { + function isBlacklist(address account) external view returns (bool); + function addBlacklist(address account) external; + function removeBlacklist(address account) external; + + function isWhitelist(bytes32 tokenHash, address account) external view returns (bool); + function addWhitelist(bytes32 tokenHash, address account) external; + function removeWhitelist(bytes32 tokenHash, address account) external; + + function whitelistPaused(bytes32 tokenHash) external view returns (bool); + function pauseWhitelist(bytes32 tokenHash) external; + function unpauseWhitelist(bytes32 tokenHash) external; + + function isValid(bytes32 tokenHash, address fromAccount, address toAccount) external view returns (bool); +} diff --git a/test/chains/sources/6119/UptnNFTsV1.metadata.json b/test/chains/sources/6119/UptnNFTsV1.metadata.json new file mode 100644 index 000000000..9b2087edc --- /dev/null +++ b/test/chains/sources/6119/UptnNFTsV1.metadata.json @@ -0,0 +1 @@ +{"compiler":{"version":"0.8.17+commit.8df45f5f"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"forwarder","type":"address"},{"internalType":"address","name":"addressValidator","type":"address"},{"internalType":"string","name":"baseUri","type":"string"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"bool","name":"transferable","type":"bool"},{"internalType":"bool","name":"adminBurnable","type":"bool"},{"internalType":"bool","name":"useCount","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"BlacklistedAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"BlacklistedRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"BLACK_LIST_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BURNER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"adminBurnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableAdminBurnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAddressValidator","outputs":[{"internalType":"address","name":"addressValidator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTrustedForwarder","outputs":[{"internalType":"address","name":"forwarder","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"forwarder","type":"address"}],"name":"isTrustedForwarder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"to","type":"address[]"},{"internalType":"string[]","name":"uris","type":"string[]"}],"name":"mintMultipleTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"to","type":"address[]"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"string[]","name":"uris","type":"string[]"}],"name":"mintMultipleTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"uri","type":"string"}],"name":"safeMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"string","name":"uri","type":"string"}],"name":"safeMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseUri","type":"string"}],"name":"setBaseUri","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"_tokenURI","type":"string"}],"name":"setTokenURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"transferable","type":"bool"}],"name":"setTransferable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"useCounter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"getTrustedForwarder()":{"returns":{"forwarder":"The address of the Forwarder contract that is being used."}},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"isTrustedForwarder(address)":{"params":{"forwarder":"The address of the Forwarder contract that is being used."},"returns":{"_0":"isTrustedForwarder `true` if the Forwarder is trusted to forward relayed transactions by this Recipient."}},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenByIndex(uint256)":{"details":"See {IERC721Enumerable-tokenByIndex}."},"tokenOfOwnerByIndex(address,uint256)":{"details":"See {IERC721Enumerable-tokenOfOwnerByIndex}."},"totalSupply()":{"details":"See {IERC721Enumerable-totalSupply}."}},"version":1},"userdoc":{"kind":"user","methods":{"getTrustedForwarder()":{"notice":":warning: **Warning** :warning: The Forwarder can have a full control over your Recipient. Only trust verified Forwarder.Method is not a required method to allow Recipients to trust multiple Forwarders. Not recommended yet."},"isTrustedForwarder(address)":{"notice":":warning: **Warning** :warning: The Forwarder can have a full control over your Recipient. Only trust verified Forwarder."}},"version":1}},"settings":{"compilationTarget":{"contracts/UptnNFTsV1.sol":"UptnNFTsV1"},"evmVersion":"london","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"sources":{"@opengsn/contracts/src/ERC2771Recipient.sol":{"keccak256":"0x77b3307c570c582969ea5466f296898ab9fea1f8b61b30f1c73345fe047a89a9","license":"MIT","urls":["bzz-raw://b2a2f0642c775f89615b1717ee3db50cf3732f59bc66032b06fee6c9018e308b","dweb:/ipfs/QmRtsTQeTYk6muGrU7Qurjw6FeUVUBBXXhcUQNWvCoJysT"]},"@opengsn/contracts/src/interfaces/IERC2771Recipient.sol":{"keccak256":"0xc762358681e3494519a5fff2f7e3f0f74f9c9f395f23b00cdfb45e0fb9ef8170","license":"MIT","urls":["bzz-raw://68680e24b98e554eb64e724a6ddab30827d5091ae36812e2a4e1b1914481ca4c","dweb:/ipfs/QmR9TVoucNzaeiAgSu1miqoQ4SZAcMCB2yRd32YuEXVWLB"]},"@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","license":"MIT","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"]},"@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","license":"MIT","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"]},"@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xd04b0f06e0666f29cf7cccc82894de541e19bb30a765b107b1e40bb7fe5f7d7a","license":"MIT","urls":["bzz-raw://7b652499d098e88d8d878374616bb58434301061cae2253298b3f374044e0ddb","dweb:/ipfs/QmbhAzctqo5jrSKU6idHdVyqfmzCcDbNUPvmx4GiXxfA6q"]},"@openzeppelin/contracts/interfaces/IERC4906.sol":{"keccak256":"0x2a9dadb806be80dd451821f1f1190eb9aa6f6edae85b185db29d60767cc0c5f4","license":"MIT","urls":["bzz-raw://5c25cac8dbe5bd96320053d23c3dacdb875e629d7c53ac00892eb7aa8500bde6","dweb:/ipfs/Qmaf2oqbxxdJA9DphAoH4UCb8aXEAVM8fnu6qMxHJ5ta4A"]},"@openzeppelin/contracts/interfaces/IERC721.sol":{"keccak256":"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c","license":"MIT","urls":["bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8","dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6"]},"@openzeppelin/contracts/security/Pausable.sol":{"keccak256":"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773","license":"MIT","urls":["bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004","dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B"]},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x2c309e7df9e05e6ce15bedfe74f3c61b467fc37e0fae9eab496acf5ea0bbd7ff","license":"MIT","urls":["bzz-raw://7063b5c98711a98018ba4635ac74cee1c1cfa2ea01099498e062699ed9530005","dweb:/ipfs/QmeJ8rGXkcv7RrqLdAW8PCXPAykxVsddfYY6g5NaTwmRFE"]},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266","license":"MIT","urls":["bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4","dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR"]},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","license":"MIT","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"]},"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol":{"keccak256":"0xa8796bd16014cefb8c26449413981a49c510f92a98d6828494f5fd046223ced3","license":"MIT","urls":["bzz-raw://63a5e0bb5a7d182e0d0eef87033f78115eab791de3626a929bc98c157087880a","dweb:/ipfs/QmetkXAu2CJKS4qrZtEQPU8okAPwUwa6HL4XYwk8vrYMk8"]},"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol":{"keccak256":"0x7942989e3525aec1672469e4c65fb33fbd19c785c9cadbcb70fcbe1fe8bfdd37","license":"MIT","urls":["bzz-raw://6c9f260258c2be0e3b75f8ca285872c4bfa3a8fc97fdc2e62366c78abf22b54f","dweb:/ipfs/QmTg1DMNwCDj8NVi6i1noqx7cxuRdPP4VyW4fzDkKAKmH2"]},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf","license":"MIT","urls":["bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34","dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR"]},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9","license":"MIT","urls":["bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146","dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf"]},"@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","license":"MIT","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"]},"@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","license":"MIT","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"]},"@openzeppelin/contracts/utils/Counters.sol":{"keccak256":"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1","license":"MIT","urls":["bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee","dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu"]},"@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","license":"MIT","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"]},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","license":"MIT","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"]},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","license":"MIT","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"]},"@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","license":"MIT","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"]},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","license":"MIT","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"]},"contracts/ERC4906.sol":{"keccak256":"0x3cbf73c08577e2a2e3c737f6115408d8d739bd02c9730f50fde518857fc45f0b","license":"CC0-1.0","urls":["bzz-raw://ea7213ce002d24305e0460a7785ab5a3802f0b78178854293fa998bee9597a20","dweb:/ipfs/QmVJ2gERFkTSF2zCgTrGL5rZxLZSMKGUpXMWvCqUemFCCb"]},"contracts/IUPTNAddressValidator.sol":{"keccak256":"0x0ddb8995dc41d59ce8f4faa41f3a92f379b235c8925beea75e7ab3c578922214","license":"MIT","urls":["bzz-raw://a77d7e704d6c18d1a59a1963dddf3c9106fe8b8538ce882f7cdc5883e0e0d5b8","dweb:/ipfs/QmUbdu9eo6b6hUkeevTfHtGTYxUK5uVTquHo9SxGwdYpS2"]},"contracts/UptnNFTsV1.sol":{"keccak256":"0xed051d97d7c0ede515c5ac3b011faf87825db741a13c1ef25cc0198d8c8ab70b","license":"MIT","urls":["bzz-raw://7ff2173d1a22d2a3383163f1138e4fb8c6d5f4b0dbc9421a84002e1e812e6b03","dweb:/ipfs/QmRgGWLHDZw3nrJH1EUndwKQbzhtPMu8yMLxrFyXbZpYhA"]}},"version":1} \ No newline at end of file diff --git a/test/chains/sources/6119/UptnNFTsV1.sol b/test/chains/sources/6119/UptnNFTsV1.sol new file mode 100644 index 000000000..bdb3c2995 --- /dev/null +++ b/test/chains/sources/6119/UptnNFTsV1.sol @@ -0,0 +1,277 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.9; + +import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; +import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol"; +import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; +import "@openzeppelin/contracts/security/Pausable.sol"; +import "@openzeppelin/contracts/access/AccessControl.sol"; +import "@openzeppelin/contracts/utils/Counters.sol"; +import "@openzeppelin/contracts/utils/Context.sol"; +import "@opengsn/contracts/src/ERC2771Recipient.sol"; +import "./IUPTNAddressValidator.sol"; +import "./ERC4906.sol"; + + +abstract contract Blacklistable is Context { + event BlacklistedAdded(address indexed account); + event BlacklistedRemoved(address indexed account); + + mapping(address => bool) _blacklisteds; + + modifier notBlacklisted() { + require(!isBlacklisted(_msgSender()), "Blacklistable : caller is blacklisted"); + _; + } + + function isBlacklisted(address account) public view virtual returns (bool) { + return _blacklisteds[account]; + } + + function _addBlacklisted(address account) internal notBlacklisted virtual { + _blacklisteds[account] = true; + emit BlacklistedAdded(account); + } + + function _removeBlacklisted(address account) internal notBlacklisted virtual { + _blacklisteds[account] = false; + emit BlacklistedRemoved(account); + } +} + +contract UptnNFTsV1 is + ERC721, + ERC721Enumerable, + ERC721URIStorage, + Blacklistable, + Pausable, + AccessControl, + ERC2771Recipient, + ERC4906 +{ + using Counters for Counters.Counter; + Counters.Counter private _tokenIdCounter; + + + bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); + bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE"); + bytes32 public constant BLACK_LIST_ADMIN_ROLE = keccak256("BLACK_LIST_ADMIN_ROLE"); + bytes32 public constant BURNER_ROLE = keccak256("BURNER_ROLE"); + + address private _addressValidator; + string private _baseUri; + + bool private _transferable; + bool private _adminBurnable; + bool private _useCount; + + constructor( + address forwarder, + address addressValidator, + string memory baseUri, + string memory name, + string memory symbol, + bool transferable, + bool adminBurnable, + bool useCount) ERC721(name, symbol) + { + _grantRole(DEFAULT_ADMIN_ROLE, _msgSender()); + _grantRole(PAUSER_ROLE, _msgSender()); + _grantRole(MINTER_ROLE, _msgSender()); + _grantRole(BLACK_LIST_ADMIN_ROLE, _msgSender()); + _grantRole(BURNER_ROLE, _msgSender()); + + _baseUri = baseUri; + _addressValidator = addressValidator; + _setTrustedForwarder(forwarder); + + // _transferable, _adminBurnable, _useCount ìƒì„±ìž í¬í•¨ + _transferable = transferable; + _adminBurnable = adminBurnable; + _useCount = useCount; + } + + function _baseURI() internal view override returns (string memory) { + return _baseUri; + } + + function setBaseUri(string memory baseUri) public onlyRole(DEFAULT_ADMIN_ROLE) { + _baseUri = baseUri; + } + + function getAddressValidator() public view returns (address addressValidator){ + return _addressValidator; + } + + function transferable() public view returns(bool) { + return _transferable; + } + function adminBurnable() public view returns(bool) { + return _adminBurnable; + } + function useCounter() public view returns(bool) { + return _useCount; + } + + function setTransferable(bool transferable) public onlyRole(DEFAULT_ADMIN_ROLE) { + _transferable = transferable; + } + + function disableAdminBurnable() public onlyRole(DEFAULT_ADMIN_ROLE) { + _adminBurnable = false; + } + +// // Init ì´í›„ 설정 변경 불가 +// function setUseCount(bool useCount) public onlyRole(DEFAULT_ADMIN_ROLE) { +// _useCount = useCount; +// } + + function pause() public onlyRole(PAUSER_ROLE) { + _pause(); + } + + function unpause() public onlyRole(PAUSER_ROLE) { + _unpause(); + } + + function safeMint(address to, uint256 tokenId, string memory uri) public onlyRole(MINTER_ROLE) { + require(_useCount == false, "UptnNFT : Counter should not be used in this method"); + _safeMint(to, tokenId); + _setTokenURI(tokenId, uri); + } + + function safeMint(address to, string memory uri) public onlyRole(MINTER_ROLE) { + require(_useCount == true, "UptnNFT : Counter should be used in this method"); + uint256 tokenId = _tokenIdCounter.current(); + _tokenIdCounter.increment(); + _safeMint(to, tokenId); + _setTokenURI(tokenId, uri); + } + + function mintMultipleTokens(address[] memory to, uint256[] memory tokenIds, string[] memory uris) public returns (bool) { + require(_useCount == false, "UptnNFT : Counter should not be used in this method"); + require(to.length == tokenIds.length, "UptnNFT: TokenID input arrays must be the same length"); + require(to.length == uris.length, "UptnNFT: Uri input arrays must be the same length"); + + for (uint256 i = 0; i < to.length; i++) { + safeMint(to[i], tokenIds[i], uris[i]); + } + + return true; + } + + function mintMultipleTokens(address[] memory to, string[] memory uris) public returns (bool) { + require(_useCount == true, "UptnNFT : Counter should be used in this method"); + require(to.length == uris.length, "UptnNFT: Uri input arrays must be the same length"); + + for (uint256 i = 0; i < to.length; i++) { + safeMint(to[i], uris[i]); + } + + return true; + } + + function setTokenURI(uint256 tokenId, string memory _tokenURI) public onlyRole(MINTER_ROLE) { + require(bytes(_tokenURI).length > 0, "UptnNFT: URI should not be empty"); + + _setTokenURI(tokenId, _tokenURI); + + emit MetadataUpdate(tokenId); + } + + function addBlacklisted(address account) public onlyRole(BLACK_LIST_ADMIN_ROLE) { + _addBlacklisted(account); + } + + function removeBlacklisted(address account) public onlyRole(BLACK_LIST_ADMIN_ROLE) { + _removeBlacklisted(account); + } + + function _beforeTokenTransfer(address from, address to, uint256 tokenId, uint256 batchSize) + internal + whenNotPaused + override(ERC721, ERC721Enumerable) + { + require(!isBlacklisted(from), string(abi.encodePacked("UptnNFT BlackList : account ", Strings.toHexString(from)," is blacklisted"))); + require(!isBlacklisted(to), string(abi.encodePacked("UptnNFT BlackList : account ", Strings.toHexString(to)," is blacklisted"))); + require(!IUPTNAddressValidator(_addressValidator).isBlacklist(from), string(abi.encodePacked("UptnNFT Address Validator : account ", Strings.toHexString(from)," is blacklisted"))); + require(!IUPTNAddressValidator(_addressValidator).isBlacklist(to), string(abi.encodePacked("UptnNFT Address Validator : account ", Strings.toHexString(to)," is blacklisted"))); + ERC721Enumerable._beforeTokenTransfer(from, to, tokenId, batchSize); + } + + function burn(uint256 tokenId) public { + if(_adminBurnable) { + _burnByAdmin(tokenId); + }else{ + require(ERC721._isApprovedOrOwner(_msgSender(), tokenId), "UptnNFT Burn: caller is not token owner"); + _burn(tokenId); + } + } + + function _burnByAdmin(uint256 tokenId) private onlyRole(BURNER_ROLE){ + _burn(tokenId); + } + + // The following functions are overrides required by Solidity. + function _burn(uint256 tokenId) internal override(ERC721, ERC721URIStorage) { + ERC721URIStorage._burn(tokenId); + } + + function transferFrom( + address from, + address to, + uint256 tokenId + ) public override (ERC721, IERC721){ + require(_transferable, "UptnNFT : Contract is not allowed transfer, check isTransfer"); + require(ERC721._isApprovedOrOwner(_msgSender(), tokenId), "UptnNFT ERC721: caller is not token owner or approved"); + ERC721._transfer(from, to, tokenId); + } + + function safeTransferFrom( + address from, + address to, + uint256 tokenId + ) public override (ERC721, IERC721){ + safeTransferFrom(from, to, tokenId, ""); + } + + function safeTransferFrom( + address from, + address to, + uint256 tokenId, + bytes memory data + ) public override (ERC721, IERC721){ + require(_transferable, "UptnNFT : Contract is not allowed transfer, check isTransfer"); + require(ERC721._isApprovedOrOwner(_msgSender(), tokenId), "UptnNFT ERC721: caller is not token owner or approved"); + ERC721._safeTransfer(from, to, tokenId, data); + } + + function tokenURI(uint256 tokenId) + public + view + override(ERC721, ERC721URIStorage) + returns (string memory) + { + return ERC721URIStorage.tokenURI(tokenId); + } + + function supportsInterface(bytes4 interfaceId) + public + view + override(ERC721, ERC721Enumerable, AccessControl, ERC4906, ERC721URIStorage) + returns (bool) + { + return + ERC721Enumerable.supportsInterface(interfaceId) || + AccessControl.supportsInterface(interfaceId) || + ERC4906.supportsInterface(interfaceId); + } + + function _msgSender() internal view override(Context, ERC2771Recipient) returns (address) { + return ERC2771Recipient._msgSender(); + } + + function _msgData() internal view override(Context, ERC2771Recipient) returns (bytes calldata ) { + return ERC2771Recipient._msgData(); + } +} diff --git a/test/chains/sources/62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/IERC20.sol b/test/chains/sources/62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/IERC20.sol deleted file mode 100644 index a1f9ca7f6..000000000 --- a/test/chains/sources/62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/IERC20.sol +++ /dev/null @@ -1,77 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity ^0.6.0; - -/** - * @dev Interface of the ERC20 standard as defined in the EIP. - */ -interface IERC20 { - /** - * @dev Returns the amount of tokens in existence. - */ - function totalSupply() external view returns (uint256); - - /** - * @dev Returns the amount of tokens owned by `account`. - */ - function balanceOf(address account) external view returns (uint256); - - /** - * @dev Moves `amount` tokens from the caller's account to `recipient`. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transfer(address recipient, uint256 amount) external returns (bool); - - /** - * @dev Returns the remaining number of tokens that `spender` will be - * allowed to spend on behalf of `owner` through {transferFrom}. This is - * zero by default. - * - * This value changes when {approve} or {transferFrom} are called. - */ - function allowance(address owner, address spender) external view returns (uint256); - - /** - * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * IMPORTANT: Beware that changing an allowance with this method brings the risk - * that someone may use both the old and the new allowance by unfortunate - * transaction ordering. One possible solution to mitigate this race - * condition is to first reduce the spender's allowance to 0 and set the - * desired value afterwards: - * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 - * - * Emits an {Approval} event. - */ - function approve(address spender, uint256 amount) external returns (bool); - - /** - * @dev Moves `amount` tokens from `sender` to `recipient` using the - * allowance mechanism. `amount` is then deducted from the caller's - * allowance. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); - - /** - * @dev Emitted when `value` tokens are moved from one account (`from`) to - * another (`to`). - * - * Note that `value` may be zero. - */ - event Transfer(address indexed from, address indexed to, uint256 value); - - /** - * @dev Emitted when the allowance of a `spender` for an `owner` is set by - * a call to {approve}. `value` is the new allowance. - */ - event Approval(address indexed owner, address indexed spender, uint256 value); -} diff --git a/test/chains/sources/62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/IMerkleDistributor.sol b/test/chains/sources/62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/IMerkleDistributor.sol deleted file mode 100644 index 999fc3e49..000000000 --- a/test/chains/sources/62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/IMerkleDistributor.sol +++ /dev/null @@ -1,17 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity >=0.5.0; - -// Allows anyone to claim a token if they exist in a merkle root. -interface IMerkleDistributor { - // Returns the address of the token distributed by this contract. - function token() external view returns (address); - // Returns the merkle root of the merkle tree containing account balances available to claim. - function merkleRoot() external view returns (bytes32); - // Returns true if the index has been marked claimed. - function isClaimed(uint256 index) external view returns (bool); - // Claim the given amount of the token to the given address. Reverts if the inputs are invalid. - function claim(uint256 index, address account, uint256 amount, bytes32[] calldata merkleProof) external; - - // This event is triggered whenever a call to #claim succeeds. - event Claimed(uint256 index, address account, uint256 amount); -} \ No newline at end of file diff --git a/test/chains/sources/62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/MerkleDistributor.sol b/test/chains/sources/62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/MerkleDistributor.sol deleted file mode 100644 index c8372035c..000000000 --- a/test/chains/sources/62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/MerkleDistributor.sol +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity =0.6.11; - -import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import "@openzeppelin/contracts/cryptography/MerkleProof.sol"; -import "./interfaces/IMerkleDistributor.sol"; - -contract MerkleDistributor is IMerkleDistributor { - address public immutable override token; - bytes32 public immutable override merkleRoot; - - // This is a packed array of booleans. - mapping(uint256 => uint256) private claimedBitMap; - - constructor(address token_, bytes32 merkleRoot_) public { - token = token_; - merkleRoot = merkleRoot_; - } - - function isClaimed(uint256 index) public view override returns (bool) { - uint256 claimedWordIndex = index / 256; - uint256 claimedBitIndex = index % 256; - uint256 claimedWord = claimedBitMap[claimedWordIndex]; - uint256 mask = (1 << claimedBitIndex); - return claimedWord & mask == mask; - } - - function _setClaimed(uint256 index) private { - uint256 claimedWordIndex = index / 256; - uint256 claimedBitIndex = index % 256; - claimedBitMap[claimedWordIndex] = claimedBitMap[claimedWordIndex] | (1 << claimedBitIndex); - } - - function claim(uint256 index, address account, uint256 amount, bytes32[] calldata merkleProof) external override { - require(!isClaimed(index), 'MerkleDistributor: Drop already claimed.'); - - // Verify the merkle proof. - bytes32 node = keccak256(abi.encodePacked(index, account, amount)); - require(MerkleProof.verify(merkleProof, merkleRoot, node), 'MerkleDistributor: Invalid proof.'); - - // Mark it claimed and send the token. - _setClaimed(index); - require(IERC20(token).transfer(account, amount), 'MerkleDistributor: Transfer failed.'); - - emit Claimed(index, account, amount); - } -} diff --git a/test/chains/sources/62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/MerkleProof.sol b/test/chains/sources/62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/MerkleProof.sol deleted file mode 100644 index 8a5fc90f5..000000000 --- a/test/chains/sources/62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/MerkleProof.sol +++ /dev/null @@ -1,33 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity ^0.6.0; - -/** - * @dev These functions deal with verification of Merkle trees (hash trees), - */ -library MerkleProof { - /** - * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree - * defined by `root`. For this, a `proof` must be provided, containing - * sibling hashes on the branch from the leaf to the root of the tree. Each - * pair of leaves and each pair of pre-images are assumed to be sorted. - */ - function verify(bytes32[] memory proof, bytes32 root, bytes32 leaf) internal pure returns (bool) { - bytes32 computedHash = leaf; - - for (uint256 i = 0; i < proof.length; i++) { - bytes32 proofElement = proof[i]; - - if (computedHash <= proofElement) { - // Hash(current computed hash + current element of the proof) - computedHash = keccak256(abi.encodePacked(computedHash, proofElement)); - } else { - // Hash(current element of the proof + current computed hash) - computedHash = keccak256(abi.encodePacked(proofElement, computedHash)); - } - } - - // Check if the computed hash (root) is equal to the provided root - return computedHash == root; - } -} diff --git a/test/chains/sources/62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/metadata.json b/test/chains/sources/62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/metadata.json deleted file mode 100644 index 3960a071c..000000000 --- a/test/chains/sources/62320/0x3908Eed8941D7fE3b047Ad531C7d4d1a0D628F5e/metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"compiler":{"version":"0.6.11+commit.5ef660b1"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"token_","type":"address"},{"internalType":"bytes32","name":"merkleRoot_","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claimed","type":"event"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"isClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"contracts/MerkleDistributor.sol":"MerkleDistributor"},"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"sources":{"@openzeppelin/contracts/cryptography/MerkleProof.sol":{"keccak256":"0x96a652802a06645a5908f74f104ec95ff0897e261e7028ee319bafc55582b597","license":"MIT","urls":["bzz-raw://5afea8071316055c01a3d144da77523b8ae7ec8295e99559000cb07b23b98d30","dweb:/ipfs/QmX14dHGgyErJb3R7wSNBSgxLdyX6EAVwJsZ6yK1xyG1Mo"]},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385","license":"MIT","urls":["bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017","dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5"]},"contracts/MerkleDistributor.sol":{"keccak256":"0xc15a3614fa5d88100514f1613eaef9cf7e42090329ca295a349ad5153d90feb7","license":"UNLICENSED","urls":["bzz-raw://ad21f85da67f8ef5bc19220832ed13d13c3a69acf1d4d396f34e4790813a7e1e","dweb:/ipfs/QmT5HD5mFEzZ3niKg4QziWCYTe7nSu12917j48AsxMde4S"]},"contracts/interfaces/IMerkleDistributor.sol":{"keccak256":"0x8cd6f78943994972a4c670ab91894a82bd9ed629c9381db6ca9d0483fe8b698f","license":"UNLICENSED","urls":["bzz-raw://621484f0c5e702f7fb421c968bda5cd8218c3915cc6d79956c2d68fb0887f280","dweb:/ipfs/QmXftsLwy64Z4rFn1WoXY5cj1iuqPctA8HoeraLb3Wd4ES"]}},"version":1} \ No newline at end of file diff --git a/test/chains/sources/shared/artifacts/Storage.json b/test/chains/sources/shared/artifacts/Storage.json new file mode 100644 index 000000000..7ccdf7247 --- /dev/null +++ b/test/chains/sources/shared/artifacts/Storage.json @@ -0,0 +1,866 @@ +{ + "deploy": { + "VM:-": { + "linkReferences": {}, + "autoDeployLib": true + }, + "main:1": { + "linkReferences": {}, + "autoDeployLib": true + }, + "ropsten:3": { + "linkReferences": {}, + "autoDeployLib": true + }, + "rinkeby:4": { + "linkReferences": {}, + "autoDeployLib": true + }, + "kovan:42": { + "linkReferences": {}, + "autoDeployLib": true + }, + "goerli:5": { + "linkReferences": {}, + "autoDeployLib": true + }, + "Custom": { + "linkReferences": {}, + "autoDeployLib": true + } + }, + "data": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50610150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100d9565b60405180910390f35b610073600480360381019061006e919061009d565b61007e565b005b60008054905090565b8060008190555050565b60008135905061009781610103565b92915050565b6000602082840312156100b3576100b26100fe565b5b60006100c184828501610088565b91505092915050565b6100d3816100f4565b82525050565b60006020820190506100ee60008301846100ca565b92915050565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea2646970667358221220dd9869f2dc9749b4f96a5aedab0aeb6c6e1649ff116a8a6be833bac8cbb9e22364736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E64CEC1 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x6057361D EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x9D JUMP JUMPDEST PUSH2 0x7E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x97 DUP2 PUSH2 0x103 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB3 JUMPI PUSH2 0xB2 PUSH2 0xFE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC1 DUP5 DUP3 DUP6 ADD PUSH2 0x88 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD3 DUP2 PUSH2 0xF4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10C DUP2 PUSH2 0xF4 JUMP JUMPDEST DUP2 EQ PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD SWAP9 PUSH10 0xF2DC9749B4F96A5AEDAB EXP 0xEB PUSH13 0x6E1649FF116A8A6BE833BAC8CB 0xB9 0xE2 0x23 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "141:356:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@retrieve_24": { + "entryPoint": 117, + "id": 24, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@store_15": { + "entryPoint": 126, + "id": 15, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_uint256": { + "entryPoint": 136, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 157, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 202, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 217, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 244, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 254, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 259, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1374:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "218:263:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "264:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "266:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "266:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "266:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "239:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "248:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "235:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "235:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "260:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "231:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "231:32:1" + }, + "nodeType": "YulIf", + "src": "228:119:1" + }, + { + "nodeType": "YulBlock", + "src": "357:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "372:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "386:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "376:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "401:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "436:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "447:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "432:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "432:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "456:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "411:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "411:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "401:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "188:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "199:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "211:6:1", + "type": "" + } + ], + "src": "152:329:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "552:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "569:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "592:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "574:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "574:24:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "562:37:1" + }, + "nodeType": "YulExpressionStatement", + "src": "562:37:1" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "540:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "547:3:1", + "type": "" + } + ], + "src": "487:118:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "709:124:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "719:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "731:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "742:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "727:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "727:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "719:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "799:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "812:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "823:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "808:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "808:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "755:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "755:71:1" + }, + "nodeType": "YulExpressionStatement", + "src": "755:71:1" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "681:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "693:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "704:4:1", + "type": "" + } + ], + "src": "611:222:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "879:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "889:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "905:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "899:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "899:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "889:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "872:6:1", + "type": "" + } + ], + "src": "839:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "965:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "975:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "986:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "975:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "947:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "957:7:1", + "type": "" + } + ], + "src": "920:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1092:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1109:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1112:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1102:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1102:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1102:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1003:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1215:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1232:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1235:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1225:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1225:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1225:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1126:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1292:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1349:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1358:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1361:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1351:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1351:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1351:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1315:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1340:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1322:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1322:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1312:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1312:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1305:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1305:43:1" + }, + "nodeType": "YulIf", + "src": "1302:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1285:5:1", + "type": "" + } + ], + "src": "1249:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100d9565b60405180910390f35b610073600480360381019061006e919061009d565b61007e565b005b60008054905090565b8060008190555050565b60008135905061009781610103565b92915050565b6000602082840312156100b3576100b26100fe565b5b60006100c184828501610088565b91505092915050565b6100d3816100f4565b82525050565b60006020820190506100ee60008301846100ca565b92915050565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea2646970667358221220dd9869f2dc9749b4f96a5aedab0aeb6c6e1649ff116a8a6be833bac8cbb9e22364736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E64CEC1 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x6057361D EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x9D JUMP JUMPDEST PUSH2 0x7E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x97 DUP2 PUSH2 0x103 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB3 JUMPI PUSH2 0xB2 PUSH2 0xFE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC1 DUP5 DUP3 DUP6 ADD PUSH2 0x88 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD3 DUP2 PUSH2 0xF4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10C DUP2 PUSH2 0xF4 JUMP JUMPDEST DUP2 EQ PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD SWAP9 PUSH10 0xF2DC9749B4F96A5AEDAB EXP 0xEB PUSH13 0x6E1649FF116A8A6BE833BAC8CB 0xB9 0xE2 0x23 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "141:356:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;416:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;271:64;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;416:79;457:7;482:6;;475:13;;416:79;:::o;271:64::-;325:3;316:6;:12;;;;271:64;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:329::-;211:6;260:2;248:9;239:7;235:23;231:32;228:119;;;266:79;;:::i;:::-;228:119;386:1;411:53;456:7;447:6;436:9;432:22;411:53;:::i;:::-;401:63;;357:117;152:329;;;;:::o;487:118::-;574:24;592:5;574:24;:::i;:::-;569:3;562:37;487:118;;:::o;611:222::-;704:4;742:2;731:9;727:18;719:26;;755:71;823:1;812:9;808:17;799:6;755:71;:::i;:::-;611:222;;;;:::o;920:77::-;957:7;986:5;975:16;;920:77;;;:::o;1126:117::-;1235:1;1232;1225:12;1249:122;1322:24;1340:5;1322:24;:::i;:::-;1315:5;1312:35;1302:63;;1361:1;1358;1351:12;1302:63;1249:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "67200", + "executionCost": "117", + "totalCost": "67317" + }, + "external": { + "retrieve()": "2415", + "store(uint256)": "22520" + } + }, + "methodIdentifiers": { + "retrieve()": "2e64cec1", + "store(uint256)": "6057361d" + } + }, + "abi": [ + { + "inputs": [], + "name": "retrieve", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "num", + "type": "uint256" + } + ], + "name": "store", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/test/chains/sources/shared/artifacts/Storage_metadata.json b/test/chains/sources/shared/artifacts/Storage_metadata.json new file mode 100644 index 000000000..d584ec67e --- /dev/null +++ b/test/chains/sources/shared/artifacts/Storage_metadata.json @@ -0,0 +1,87 @@ +{ + "compiler": { + "version": "0.8.7+commit.e28d00a7" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "name": "retrieve", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "num", + "type": "uint256" + } + ], + "name": "store", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "Store & retrieve value in a variable", + "kind": "dev", + "methods": { + "retrieve()": { + "details": "Return value ", + "returns": { + "_0": "value of 'number'" + } + }, + "store(uint256)": { + "details": "Store value in variable", + "params": { + "num": "value to store" + } + } + }, + "title": "Storage", + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "test/chains/sources/shared/1_Storage.sol": "Storage" + }, + "evmVersion": "london", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "test/chains/sources/shared/1_Storage.sol": { + "keccak256": "0x88c47206b5ec3d60ab820e9d126c4ac54cb17fa7396ff49ebe27db2862982ad8", + "license": "GPL-3.0", + "urls": [ + "bzz-raw://5d1eeb01c8c10bed9e290f4a80a8d4081422a7b298a13049d72867022522cf6b", + "dweb:/ipfs/QmaFRC9ZtT7y3t9XNWCbDuMTEwKkyaQJzYFzw3NbeohSn5" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/test/chains/sources/shared/artifacts/WithImmutables.json b/test/chains/sources/shared/artifacts/WithImmutables.json new file mode 100644 index 000000000..214fe8f29 --- /dev/null +++ b/test/chains/sources/shared/artifacts/WithImmutables.json @@ -0,0 +1,125 @@ +{ + "deploy": { + "VM:-": { + "linkReferences": {}, + "autoDeployLib": true + }, + "main:1": { + "linkReferences": {}, + "autoDeployLib": true + }, + "ropsten:3": { + "linkReferences": {}, + "autoDeployLib": true + }, + "rinkeby:4": { + "linkReferences": {}, + "autoDeployLib": true + }, + "kovan:42": { + "linkReferences": {}, + "autoDeployLib": true + }, + "goerli:5": { + "linkReferences": {}, + "autoDeployLib": true + }, + "Custom": { + "linkReferences": {}, + "autoDeployLib": true + } + }, + "data": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "60a060405234801561001057600080fd5b506040516103ca3803806103ca8339818101604052602081101561003357600080fd5b81019080805190602001909291905050508060808181525050506080516103636100676000398061026052506103636000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806357de26a41461004657806379d6348d146100c9578063ced7b2e314610184575b600080fd5b61004e6101a2565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561008e578082015181840152602081019050610073565b50505050905090810190601f1680156100bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610182600480360360208110156100df57600080fd5b81019080803590602001906401000000008111156100fc57600080fd5b82018360208201111561010e57600080fd5b8035906020019184600183028401116401000000008311171561013057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610244565b005b61018c61025e565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561023a5780601f1061020f5761010080835404028352916020019161023a565b820191906000526020600020905b81548152906001019060200180831161021d57829003601f168201915b5050505050905090565b806000908051906020019061025a929190610282565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826102b857600085556102ff565b82601f106102d157805160ff19168380011785556102ff565b828001600101855582156102ff579182015b828111156102fe5782518255916020019190600101906102e3565b5b50905061030c9190610310565b5090565b5b80821115610329576000816000905550600101610311565b509056fea2646970667358221220145a9663bf7be1883953630353ea783affcb1419e7ac492008c62f9659c80bfb64736f6c63430007040033", + "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x3CA CODESIZE SUB DUP1 PUSH2 0x3CA DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP DUP1 PUSH1 0x80 DUP2 DUP2 MSTORE POP POP POP PUSH1 0x80 MLOAD PUSH2 0x363 PUSH2 0x67 PUSH1 0x0 CODECOPY DUP1 PUSH2 0x260 MSTORE POP PUSH2 0x363 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x57DE26A4 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x79D6348D EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0xCED7B2E3 EQ PUSH2 0x184 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x1A2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x8E JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x73 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xBB JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xFC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x10E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x130 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x244 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x18C PUSH2 0x25E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x23A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x20F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x23A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x21D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x25A SWAP3 SWAP2 SWAP1 PUSH2 0x282 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2B8 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2FF JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2D1 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2FF JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2FF JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2FE JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2E3 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x310 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x311 JUMP JUMPDEST POP SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EQ GAS SWAP7 PUSH4 0xBF7BE188 CODECOPY MSTORE8 PUSH4 0x353EA78 GASPRICE SELFDESTRUCT 0xCB EQ NOT 0xE7 0xAC 0x49 KECCAK256 ADDMOD 0xC6 0x2F SWAP7 MSIZE 0xC8 SIGNEXTEND 0xFB PUSH5 0x736F6C6343 STOP SMOD DIV STOP CALLER ", + "sourceMap": "26:310:0:-:0;;;117:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;156:1;151:6;;;;;;117:47;26:310;;;;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": { + "3": [ + { + "length": 32, + "start": 608 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806357de26a41461004657806379d6348d146100c9578063ced7b2e314610184575b600080fd5b61004e6101a2565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561008e578082015181840152602081019050610073565b50505050905090810190601f1680156100bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610182600480360360208110156100df57600080fd5b81019080803590602001906401000000008111156100fc57600080fd5b82018360208201111561010e57600080fd5b8035906020019184600183028401116401000000008311171561013057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610244565b005b61018c61025e565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561023a5780601f1061020f5761010080835404028352916020019161023a565b820191906000526020600020905b81548152906001019060200180831161021d57829003601f168201915b5050505050905090565b806000908051906020019061025a929190610282565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826102b857600085556102ff565b82601f106102d157805160ff19168380011785556102ff565b828001600101855582156102ff579182015b828111156102fe5782518255916020019190600101906102e3565b5b50905061030c9190610310565b5090565b5b80821115610329576000816000905550600101610311565b509056fea2646970667358221220145a9663bf7be1883953630353ea783affcb1419e7ac492008c62f9659c80bfb64736f6c63430007040033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x57DE26A4 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x79D6348D EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0xCED7B2E3 EQ PUSH2 0x184 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x1A2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x8E JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x73 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xBB JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xFC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x10E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x130 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x244 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x18C PUSH2 0x25E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x23A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x20F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x23A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x21D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x25A SWAP3 SWAP2 SWAP1 PUSH2 0x282 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2B8 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2FF JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2D1 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2FF JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2FF JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2FE JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2E3 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x310 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x311 JUMP JUMPDEST POP SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EQ GAS SWAP7 PUSH4 0xBF7BE188 CODECOPY MSTORE8 PUSH4 0x353EA78 GASPRICE SELFDESTRUCT 0xCB EQ NOT 0xE7 0xAC 0x49 KECCAK256 ADDMOD 0xC6 0x2F SWAP7 MSIZE 0xC8 SIGNEXTEND 0xFB PUSH5 0x736F6C6343 STOP SMOD DIV STOP CALLER ", + "sourceMap": "26:310:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;254:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;174:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;56:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;254:80;290:13;322:5;315:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;254:80;:::o;174:70::-;233:4;225:5;:12;;;;;;;;;;;;:::i;:::-;;174:70;:::o;56:27::-;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "173400", + "executionCost": "infinite", + "totalCost": "infinite" + }, + "external": { + "_a()": "infinite", + "read()": "infinite", + "sign(string)": "infinite" + } + }, + "methodIdentifiers": { + "_a()": "ced7b2e3", + "read()": "57de26a4", + "sign(string)": "79d6348d" + } + }, + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "a", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "_a", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "read", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "sign", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/test/chains/sources/shared/artifacts/WithImmutables_metadata.json b/test/chains/sources/shared/artifacts/WithImmutables_metadata.json new file mode 100644 index 000000000..67ab11120 --- /dev/null +++ b/test/chains/sources/shared/artifacts/WithImmutables_metadata.json @@ -0,0 +1,95 @@ +{ + "compiler": { + "version": "0.7.4+commit.3f05b770" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "a", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "_a", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "read", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "sign", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "test/chains/sources/shared/WithImmutables.sol": "WithImmutables" + }, + "evmVersion": "istanbul", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "test/chains/sources/shared/WithImmutables.sol": { + "keccak256": "0xbee62e4af99b4199c5b0982f5da15fc58215a4d547724bc574d516df07f66dc2", + "urls": [ + "bzz-raw://6d83c127e075a149ec14c6af579bc7b24955cdb7578ae7da2f253b7142d267cc", + "dweb:/ipfs/QmW6tdCTV7X5dd5LCKDWedbMmkurQTMi4ePx7LY3DNuLn7" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/test/chains/sources/shared/artifacts/build-info/0a0a7ee2fe98c1f913c327b062f80f6c.json b/test/chains/sources/shared/artifacts/build-info/0a0a7ee2fe98c1f913c327b062f80f6c.json new file mode 100644 index 000000000..d1625f406 --- /dev/null +++ b/test/chains/sources/shared/artifacts/build-info/0a0a7ee2fe98c1f913c327b062f80f6c.json @@ -0,0 +1,4987 @@ +{ + "id": "0a0a7ee2fe98c1f913c327b062f80f6c", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.7.4", + "solcLongVersion": "0.7.4+commit.3f05b770", + "input": { + "language": "Solidity", + "sources": { + "test/chains/sources/shared/WithImmutables.sol": { + "content": "pragma solidity >=0.7.0;\n\ncontract WithImmutables {\n uint256 public immutable _a;\n \n string _name;\n \n constructor (uint256 a) {\n _a = a;\n }\n \n function sign(string memory name) public {\n _name = name;\n }\n \n function read() public view returns(string memory) {\n return _name;\n }\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "test/chains/sources/shared/WithImmutables.sol": { + "WithImmutables": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "a", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "_a", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "read", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "sign", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"test/chains/sources/shared/WithImmutables.sol\":26:336 contract WithImmutables {... */\n mstore(0x40, 0xa0)\n /* \"test/chains/sources/shared/WithImmutables.sol\":117:164 constructor (uint256 a) {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n mload(0x40)\n sub(codesize, bytecodeSize)\n dup1\n bytecodeSize\n dup4\n codecopy\n dup2\n dup2\n add\n 0x40\n mstore\n 0x20\n dup2\n lt\n iszero\n tag_2\n jumpi\n 0x00\n dup1\n revert\ntag_2:\n dup2\n add\n swap1\n dup1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n /* \"test/chains/sources/shared/WithImmutables.sol\":156:157 a */\n dup1\n /* \"test/chains/sources/shared/WithImmutables.sol\":151:157 _a = a */\n 0x80\n dup2\n dup2\n mstore\n pop\n pop\n /* \"test/chains/sources/shared/WithImmutables.sol\":117:164 constructor (uint256 a) {... */\n pop\n /* \"test/chains/sources/shared/WithImmutables.sol\":26:336 contract WithImmutables {... */\n mload(0x80)\n codecopy(0x00, dataOffset(sub_0), dataSize(sub_0))\n assignImmutable(\"0x2a80e1ef1d7842f27f2e6be0972bb708b9a135c38860dbe73c27c3486c34f4de\")\n return(0x00, dataSize(sub_0))\nstop\n\nsub_0: assembly {\n /* \"test/chains/sources/shared/WithImmutables.sol\":26:336 contract WithImmutables {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x57de26a4\n eq\n tag_3\n jumpi\n dup1\n 0x79d6348d\n eq\n tag_4\n jumpi\n dup1\n 0xced7b2e3\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"test/chains/sources/shared/WithImmutables.sol\":254:334 function read() public view returns(string memory) {... */\n tag_3:\n tag_6\n tag_7\n jump\t// in\n tag_6:\n mload(0x40)\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n dup4\n dup2\n dup2\n mload\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n dup1\n dup4\n dup4\n 0x00\n tag_8:\n dup4\n dup2\n lt\n iszero\n tag_10\n jumpi\n dup1\n dup3\n add\n mload\n dup2\n dup5\n add\n mstore\n 0x20\n dup2\n add\n swap1\n pop\n jump(tag_8)\n tag_10:\n pop\n pop\n pop\n pop\n swap1\n pop\n swap1\n dup2\n add\n swap1\n 0x1f\n and\n dup1\n iszero\n tag_11\n jumpi\n dup1\n dup3\n sub\n dup1\n mload\n 0x01\n dup4\n 0x20\n sub\n 0x0100\n exp\n sub\n not\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n tag_11:\n pop\n swap3\n pop\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"test/chains/sources/shared/WithImmutables.sol\":174:244 function sign(string memory name) public {... */\n tag_4:\n tag_12\n 0x04\n dup1\n calldatasize\n sub\n 0x20\n dup2\n lt\n iszero\n tag_13\n jumpi\n 0x00\n dup1\n revert\n tag_13:\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n 0x0100000000\n dup2\n gt\n iszero\n tag_14\n jumpi\n 0x00\n dup1\n revert\n tag_14:\n dup3\n add\n dup4\n 0x20\n dup3\n add\n gt\n iszero\n tag_15\n jumpi\n 0x00\n dup1\n revert\n tag_15:\n dup1\n calldataload\n swap1\n 0x20\n add\n swap2\n dup5\n 0x01\n dup4\n mul\n dup5\n add\n gt\n 0x0100000000\n dup4\n gt\n or\n iszero\n tag_16\n jumpi\n 0x00\n dup1\n revert\n tag_16:\n swap2\n swap1\n dup1\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap4\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup4\n dup4\n dup1\n dup3\n dup5\n calldatacopy\n 0x00\n dup2\n dup5\n add\n mstore\n not(0x1f)\n 0x1f\n dup3\n add\n and\n swap1\n pop\n dup1\n dup4\n add\n swap3\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n swap2\n swap3\n swap2\n swap3\n swap1\n pop\n pop\n pop\n tag_17\n jump\t// in\n tag_12:\n stop\n /* \"test/chains/sources/shared/WithImmutables.sol\":56:83 uint256 public immutable _a */\n tag_5:\n tag_18\n tag_19\n jump\t// in\n tag_18:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"test/chains/sources/shared/WithImmutables.sol\":254:334 function read() public view returns(string memory) {... */\n tag_7:\n /* \"test/chains/sources/shared/WithImmutables.sol\":290:303 string memory */\n 0x60\n /* \"test/chains/sources/shared/WithImmutables.sol\":322:327 _name */\n 0x00\n /* \"test/chains/sources/shared/WithImmutables.sol\":315:327 return _name */\n dup1\n sload\n 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\n swap1\n div\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup3\n dup1\n sload\n 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\n swap1\n div\n dup1\n iszero\n tag_21\n jumpi\n dup1\n 0x1f\n lt\n tag_22\n jumpi\n 0x0100\n dup1\n dup4\n sload\n div\n mul\n dup4\n mstore\n swap2\n 0x20\n add\n swap2\n jump(tag_21)\n tag_22:\n dup3\n add\n swap2\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n tag_23:\n dup2\n sload\n dup2\n mstore\n swap1\n 0x01\n add\n swap1\n 0x20\n add\n dup1\n dup4\n gt\n tag_23\n jumpi\n dup3\n swap1\n sub\n 0x1f\n and\n dup3\n add\n swap2\n tag_21:\n pop\n pop\n pop\n pop\n pop\n swap1\n pop\n /* \"test/chains/sources/shared/WithImmutables.sol\":254:334 function read() public view returns(string memory) {... */\n swap1\n jump\t// out\n /* \"test/chains/sources/shared/WithImmutables.sol\":174:244 function sign(string memory name) public {... */\n tag_17:\n /* \"test/chains/sources/shared/WithImmutables.sol\":233:237 name */\n dup1\n /* \"test/chains/sources/shared/WithImmutables.sol\":225:230 _name */\n 0x00\n /* \"test/chains/sources/shared/WithImmutables.sol\":225:237 _name = name */\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n tag_25\n swap3\n swap2\n swap1\n tag_26\n jump\t// in\n tag_25:\n pop\n /* \"test/chains/sources/shared/WithImmutables.sol\":174:244 function sign(string memory name) public {... */\n pop\n jump\t// out\n /* \"test/chains/sources/shared/WithImmutables.sol\":56:83 uint256 public immutable _a */\n tag_19:\n immutable(\"0x2a80e1ef1d7842f27f2e6be0972bb708b9a135c38860dbe73c27c3486c34f4de\")\n dup2\n jump\t// out\n tag_26:\n dup3\n dup1\n sload\n 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\n swap1\n div\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n 0x1f\n add\n 0x20\n swap1\n div\n dup2\n add\n swap3\n dup3\n tag_28\n jumpi\n 0x00\n dup6\n sstore\n jump(tag_27)\n tag_28:\n dup3\n 0x1f\n lt\n tag_29\n jumpi\n dup1\n mload\n not(0xff)\n and\n dup4\n dup1\n add\n or\n dup6\n sstore\n jump(tag_27)\n tag_29:\n dup3\n dup1\n add\n 0x01\n add\n dup6\n sstore\n dup3\n iszero\n tag_27\n jumpi\n swap2\n dup3\n add\n tag_30:\n dup3\n dup2\n gt\n iszero\n tag_31\n jumpi\n dup3\n mload\n dup3\n sstore\n swap2\n 0x20\n add\n swap2\n swap1\n 0x01\n add\n swap1\n jump(tag_30)\n tag_31:\n tag_27:\n pop\n swap1\n pop\n tag_32\n swap2\n swap1\n tag_33\n jump\t// in\n tag_32:\n pop\n swap1\n jump\t// out\n tag_33:\n tag_34:\n dup1\n dup3\n gt\n iszero\n tag_35\n jumpi\n 0x00\n dup2\n 0x00\n swap1\n sstore\n pop\n 0x01\n add\n jump(tag_34)\n tag_35:\n pop\n swap1\n jump\t// out\n\n auxdata: 0xa2646970667358221220145a9663bf7be1883953630353ea783affcb1419e7ac492008c62f9659c80bfb64736f6c63430007040033\n}\n", + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "60a060405234801561001057600080fd5b506040516103ca3803806103ca8339818101604052602081101561003357600080fd5b81019080805190602001909291905050508060808181525050506080516103636100676000398061026052506103636000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806357de26a41461004657806379d6348d146100c9578063ced7b2e314610184575b600080fd5b61004e6101a2565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561008e578082015181840152602081019050610073565b50505050905090810190601f1680156100bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610182600480360360208110156100df57600080fd5b81019080803590602001906401000000008111156100fc57600080fd5b82018360208201111561010e57600080fd5b8035906020019184600183028401116401000000008311171561013057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610244565b005b61018c61025e565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561023a5780601f1061020f5761010080835404028352916020019161023a565b820191906000526020600020905b81548152906001019060200180831161021d57829003601f168201915b5050505050905090565b806000908051906020019061025a929190610282565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826102b857600085556102ff565b82601f106102d157805160ff19168380011785556102ff565b828001600101855582156102ff579182015b828111156102fe5782518255916020019190600101906102e3565b5b50905061030c9190610310565b5090565b5b80821115610329576000816000905550600101610311565b509056fea2646970667358221220145a9663bf7be1883953630353ea783affcb1419e7ac492008c62f9659c80bfb64736f6c63430007040033", + "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x3CA CODESIZE SUB DUP1 PUSH2 0x3CA DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP DUP1 PUSH1 0x80 DUP2 DUP2 MSTORE POP POP POP PUSH1 0x80 MLOAD PUSH2 0x363 PUSH2 0x67 PUSH1 0x0 CODECOPY DUP1 PUSH2 0x260 MSTORE POP PUSH2 0x363 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x57DE26A4 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x79D6348D EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0xCED7B2E3 EQ PUSH2 0x184 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x1A2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x8E JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x73 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xBB JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xFC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x10E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x130 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x244 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x18C PUSH2 0x25E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x23A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x20F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x23A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x21D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x25A SWAP3 SWAP2 SWAP1 PUSH2 0x282 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2B8 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2FF JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2D1 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2FF JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2FF JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2FE JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2E3 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x310 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x311 JUMP JUMPDEST POP SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EQ GAS SWAP7 PUSH4 0xBF7BE188 CODECOPY MSTORE8 PUSH4 0x353EA78 GASPRICE SELFDESTRUCT 0xCB EQ NOT 0xE7 0xAC 0x49 KECCAK256 ADDMOD 0xC6 0x2F SWAP7 MSIZE 0xC8 SIGNEXTEND 0xFB PUSH5 0x736F6C6343 STOP SMOD DIV STOP CALLER ", + "sourceMap": "26:310:0:-:0;;;117:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;156:1;151:6;;;;;;117:47;26:310;;;;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": { + "3": [ + { + "length": 32, + "start": 608 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806357de26a41461004657806379d6348d146100c9578063ced7b2e314610184575b600080fd5b61004e6101a2565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561008e578082015181840152602081019050610073565b50505050905090810190601f1680156100bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610182600480360360208110156100df57600080fd5b81019080803590602001906401000000008111156100fc57600080fd5b82018360208201111561010e57600080fd5b8035906020019184600183028401116401000000008311171561013057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610244565b005b61018c61025e565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561023a5780601f1061020f5761010080835404028352916020019161023a565b820191906000526020600020905b81548152906001019060200180831161021d57829003601f168201915b5050505050905090565b806000908051906020019061025a929190610282565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826102b857600085556102ff565b82601f106102d157805160ff19168380011785556102ff565b828001600101855582156102ff579182015b828111156102fe5782518255916020019190600101906102e3565b5b50905061030c9190610310565b5090565b5b80821115610329576000816000905550600101610311565b509056fea2646970667358221220145a9663bf7be1883953630353ea783affcb1419e7ac492008c62f9659c80bfb64736f6c63430007040033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x57DE26A4 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x79D6348D EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0xCED7B2E3 EQ PUSH2 0x184 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x1A2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x8E JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x73 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xBB JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xFC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x10E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x130 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x244 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x18C PUSH2 0x25E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x23A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x20F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x23A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x21D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x25A SWAP3 SWAP2 SWAP1 PUSH2 0x282 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2B8 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2FF JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2D1 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2FF JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2FF JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2FE JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2E3 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x310 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x311 JUMP JUMPDEST POP SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EQ GAS SWAP7 PUSH4 0xBF7BE188 CODECOPY MSTORE8 PUSH4 0x353EA78 GASPRICE SELFDESTRUCT 0xCB EQ NOT 0xE7 0xAC 0x49 KECCAK256 ADDMOD 0xC6 0x2F SWAP7 MSIZE 0xC8 SIGNEXTEND 0xFB PUSH5 0x736F6C6343 STOP SMOD DIV STOP CALLER ", + "sourceMap": "26:310:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;254:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;174:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;56:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;254:80;290:13;322:5;315:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;254:80;:::o;174:70::-;233:4;225:5;:12;;;;;;;;;;;;:::i;:::-;;174:70;:::o;56:27::-;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "173400", + "executionCost": "infinite", + "totalCost": "infinite" + }, + "external": { + "_a()": "infinite", + "read()": "infinite", + "sign(string)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 26, + "end": 336, + "name": "PUSH", + "source": 0, + "value": "A0" + }, + { + "begin": 26, + "end": 336, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 26, + "end": 336, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "DUP1", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 117, + "end": 164, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 117, + "end": 164, + "name": "DUP1", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "REVERT", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 117, + "end": 164, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "POP", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 117, + "end": 164, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "PUSHSIZE", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "CODESIZE", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "SUB", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "DUP1", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "PUSHSIZE", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "DUP4", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "DUP2", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "DUP2", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "ADD", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 117, + "end": 164, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 117, + "end": 164, + "name": "DUP2", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "LT", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 117, + "end": 164, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 117, + "end": 164, + "name": "DUP1", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "REVERT", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 117, + "end": 164, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "DUP2", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "ADD", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "DUP1", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "DUP1", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 117, + "end": 164, + "name": "ADD", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "POP", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "POP", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "POP", + "source": 0 + }, + { + "begin": 156, + "end": 157, + "name": "DUP1", + "source": 0 + }, + { + "begin": 151, + "end": 157, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 151, + "end": 157, + "name": "DUP2", + "source": 0 + }, + { + "begin": 151, + "end": 157, + "name": "DUP2", + "source": 0 + }, + { + "begin": 151, + "end": 157, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 151, + "end": 157, + "name": "POP", + "source": 0 + }, + { + "begin": 151, + "end": 157, + "name": "POP", + "source": 0 + }, + { + "begin": 117, + "end": 164, + "name": "POP", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 26, + "end": 336, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 26, + "end": 336, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 26, + "end": 336, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 26, + "end": 336, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "ASSIGNIMMUTABLE", + "source": 0, + "value": "3" + }, + { + "begin": 26, + "end": 336, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 26, + "end": 336, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 26, + "end": 336, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220145a9663bf7be1883953630353ea783affcb1419e7ac492008c62f9659c80bfb64736f6c63430007040033", + ".code": [ + { + "begin": 26, + "end": 336, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 26, + "end": 336, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 26, + "end": 336, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "DUP1", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 26, + "end": 336, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 26, + "end": 336, + "name": "DUP1", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "REVERT", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 26, + "end": 336, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "POP", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 26, + "end": 336, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "LT", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 26, + "end": 336, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 26, + "end": 336, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 26, + "end": 336, + "name": "SHR", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "DUP1", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "PUSH", + "source": 0, + "value": "57DE26A4" + }, + { + "begin": 26, + "end": 336, + "name": "EQ", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 26, + "end": 336, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "DUP1", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "PUSH", + "source": 0, + "value": "79D6348D" + }, + { + "begin": 26, + "end": 336, + "name": "EQ", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 26, + "end": 336, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "DUP1", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "PUSH", + "source": 0, + "value": "CED7B2E3" + }, + { + "begin": 26, + "end": 336, + "name": "EQ", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 26, + "end": 336, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 26, + "end": 336, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 26, + "end": 336, + "name": "DUP1", + "source": 0 + }, + { + "begin": 26, + "end": 336, + "name": "REVERT", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 254, + "end": 334, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 254, + "end": 334, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 254, + "end": 334, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 254, + "end": 334, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 254, + "end": 334, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 254, + "end": 334, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP1", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP1", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 254, + "end": 334, + "name": "ADD", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP3", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP2", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "SUB", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP3", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP4", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP2", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP2", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP2", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 254, + "end": 334, + "name": "ADD", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "POP", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP1", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 254, + "end": 334, + "name": "ADD", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP1", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP4", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP4", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 254, + "end": 334, + "name": "tag", + "source": 0, + "value": "8" + }, + { + "begin": 254, + "end": 334, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP4", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP2", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "LT", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 254, + "end": 334, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP1", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP3", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "ADD", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP2", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP5", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "ADD", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 254, + "end": 334, + "name": "DUP2", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "ADD", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "POP", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 254, + "end": 334, + "name": "JUMP", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 254, + "end": 334, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "POP", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "POP", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "POP", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "POP", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "POP", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP2", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "ADD", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "PUSH", + "source": 0, + "value": "1F" + }, + { + "begin": 254, + "end": 334, + "name": "AND", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP1", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 254, + "end": 334, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP1", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP3", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "SUB", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP1", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 254, + "end": 334, + "name": "DUP4", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 254, + "end": 334, + "name": "SUB", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 254, + "end": 334, + "name": "EXP", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "SUB", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "NOT", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "AND", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP2", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 254, + "end": 334, + "name": "ADD", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "POP", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "tag", + "source": 0, + "value": "11" + }, + { + "begin": 254, + "end": 334, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "POP", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "POP", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "POP", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "POP", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 254, + "end": 334, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "DUP1", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "SUB", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "RETURN", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 174, + "end": 244, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 174, + "end": 244, + "name": "DUP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SUB", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 174, + "end": 244, + "name": "DUP2", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "LT", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 174, + "end": 244, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 174, + "end": 244, + "name": "DUP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "REVERT", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 174, + "end": 244, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP2", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "ADD", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 174, + "end": 244, + "name": "ADD", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "100000000" + }, + { + "begin": 174, + "end": 244, + "name": "DUP2", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "GT", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 174, + "end": 244, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 174, + "end": 244, + "name": "DUP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "REVERT", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 174, + "end": 244, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP3", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "ADD", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP4", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 174, + "end": 244, + "name": "DUP3", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "ADD", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "GT", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 174, + "end": 244, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 174, + "end": 244, + "name": "DUP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "REVERT", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 174, + "end": 244, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 174, + "end": 244, + "name": "ADD", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP5", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 174, + "end": 244, + "name": "DUP4", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "MUL", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP5", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "ADD", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "GT", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "100000000" + }, + { + "begin": 174, + "end": 244, + "name": "DUP4", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "GT", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "OR", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH [tag]", + "source": 0, + "value": "16" + }, + { + "begin": 174, + "end": 244, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 174, + "end": 244, + "name": "DUP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "REVERT", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "tag", + "source": 0, + "value": "16" + }, + { + "begin": 174, + "end": 244, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "1F" + }, + { + "begin": 174, + "end": 244, + "name": "ADD", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 174, + "end": 244, + "name": "DUP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DIV", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "MUL", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 174, + "end": 244, + "name": "ADD", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 174, + "end": 244, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP2", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "ADD", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 174, + "end": 244, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP4", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP2", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP2", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 174, + "end": 244, + "name": "ADD", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP4", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP4", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP3", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP5", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "CALLDATACOPY", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 174, + "end": 244, + "name": "DUP2", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP5", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "ADD", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "1F" + }, + { + "begin": 174, + "end": 244, + "name": "NOT", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH", + "source": 0, + "value": "1F" + }, + { + "begin": 174, + "end": 244, + "name": "DUP3", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "ADD", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "AND", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "POP", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "DUP4", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "ADD", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "POP", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "POP", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "POP", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "POP", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "POP", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "POP", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "POP", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "POP", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "POP", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "POP", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 174, + "end": 244, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 174, + "end": 244, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 174, + "end": 244, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "STOP", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 56, + "end": 83, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 56, + "end": 83, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 56, + "end": 83, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 56, + "end": 83, + "name": "tag", + "source": 0, + "value": "18" + }, + { + "begin": 56, + "end": 83, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 56, + "end": 83, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "DUP1", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "DUP3", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "DUP2", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 56, + "end": 83, + "name": "ADD", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "POP", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "POP", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 56, + "end": 83, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "DUP1", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "SUB", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "RETURN", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 254, + "end": 334, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 290, + "end": 303, + "name": "PUSH", + "source": 0, + "value": "60" + }, + { + "begin": 322, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 315, + "end": 327, + "name": "DUP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 315, + "end": 327, + "name": "DUP2", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 315, + "end": 327, + "name": "AND", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 315, + "end": 327, + "name": "MUL", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SUB", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "AND", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "2" + }, + { + "begin": 315, + "end": 327, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DIV", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "1F" + }, + { + "begin": 315, + "end": 327, + "name": "ADD", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 315, + "end": 327, + "name": "DUP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DIV", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "MUL", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 315, + "end": 327, + "name": "ADD", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 315, + "end": 327, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP2", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "ADD", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 315, + "end": 327, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP2", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP2", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 315, + "end": 327, + "name": "ADD", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP3", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 315, + "end": 327, + "name": "DUP2", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 315, + "end": 327, + "name": "AND", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 315, + "end": 327, + "name": "MUL", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SUB", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "AND", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "2" + }, + { + "begin": 315, + "end": 327, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DIV", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 315, + "end": 327, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "1F" + }, + { + "begin": 315, + "end": 327, + "name": "LT", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH [tag]", + "source": 0, + "value": "22" + }, + { + "begin": 315, + "end": 327, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 315, + "end": 327, + "name": "DUP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP4", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DIV", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "MUL", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP4", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 315, + "end": 327, + "name": "ADD", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 315, + "end": 327, + "name": "JUMP", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "tag", + "source": 0, + "value": "22" + }, + { + "begin": 315, + "end": 327, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP3", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "ADD", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 315, + "end": 327, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 315, + "end": 327, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 315, + "end": 327, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP2", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP2", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 315, + "end": 327, + "name": "ADD", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 315, + "end": 327, + "name": "ADD", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP4", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "GT", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 315, + "end": 327, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP3", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SUB", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "PUSH", + "source": 0, + "value": "1F" + }, + { + "begin": 315, + "end": 327, + "name": "AND", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "DUP3", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "ADD", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 315, + "end": 327, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "POP", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "POP", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "POP", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "POP", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "POP", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 315, + "end": 327, + "name": "POP", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 254, + "end": 334, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 174, + "end": 244, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 174, + "end": 244, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 233, + "end": 237, + "name": "DUP1", + "source": 0 + }, + { + "begin": 225, + "end": 230, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 225, + "end": 237, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 225, + "end": 237, + "name": "DUP1", + "source": 0 + }, + { + "begin": 225, + "end": 237, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 225, + "end": 237, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 225, + "end": 237, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 225, + "end": 237, + "name": "ADD", + "source": 0 + }, + { + "begin": 225, + "end": 237, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 225, + "end": 237, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 225, + "end": 237, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 225, + "end": 237, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 225, + "end": 237, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 225, + "end": 237, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 225, + "end": 237, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 225, + "end": 237, + "name": "tag", + "source": 0, + "value": "25" + }, + { + "begin": 225, + "end": 237, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 225, + "end": 237, + "name": "POP", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "POP", + "source": 0 + }, + { + "begin": 174, + "end": 244, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 56, + "end": 83, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 56, + "end": 83, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "PUSHIMMUTABLE", + "source": 0, + "value": "3" + }, + { + "begin": 56, + "end": 83, + "name": "DUP2", + "source": 0 + }, + { + "begin": 56, + "end": 83, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": -1, + "end": -1, + "name": "tag", + "source": -1, + "value": "26" + }, + { + "begin": -1, + "end": -1, + "name": "JUMPDEST", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP3", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP1", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SLOAD", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "1" + }, + { + "begin": -1, + "end": -1, + "name": "DUP2", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "1" + }, + { + "begin": -1, + "end": -1, + "name": "AND", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "ISZERO", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "100" + }, + { + "begin": -1, + "end": -1, + "name": "MUL", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SUB", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "AND", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "2" + }, + { + "begin": -1, + "end": -1, + "name": "SWAP1", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DIV", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SWAP1", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "0" + }, + { + "begin": -1, + "end": -1, + "name": "MSTORE", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "20" + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "0" + }, + { + "begin": -1, + "end": -1, + "name": "KECCAK256", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SWAP1", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "1F" + }, + { + "begin": -1, + "end": -1, + "name": "ADD", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "20" + }, + { + "begin": -1, + "end": -1, + "name": "SWAP1", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DIV", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP2", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "ADD", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SWAP3", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP3", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH [tag]", + "source": -1, + "value": "28" + }, + { + "begin": -1, + "end": -1, + "name": "JUMPI", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "0" + }, + { + "begin": -1, + "end": -1, + "name": "DUP6", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SSTORE", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH [tag]", + "source": -1, + "value": "27" + }, + { + "begin": -1, + "end": -1, + "name": "JUMP", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "tag", + "source": -1, + "value": "28" + }, + { + "begin": -1, + "end": -1, + "name": "JUMPDEST", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP3", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "1F" + }, + { + "begin": -1, + "end": -1, + "name": "LT", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH [tag]", + "source": -1, + "value": "29" + }, + { + "begin": -1, + "end": -1, + "name": "JUMPI", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP1", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "MLOAD", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "FF" + }, + { + "begin": -1, + "end": -1, + "name": "NOT", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "AND", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP4", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP1", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "ADD", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "OR", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP6", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SSTORE", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH [tag]", + "source": -1, + "value": "27" + }, + { + "begin": -1, + "end": -1, + "name": "JUMP", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "tag", + "source": -1, + "value": "29" + }, + { + "begin": -1, + "end": -1, + "name": "JUMPDEST", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP3", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP1", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "ADD", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "1" + }, + { + "begin": -1, + "end": -1, + "name": "ADD", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP6", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SSTORE", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP3", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "ISZERO", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH [tag]", + "source": -1, + "value": "27" + }, + { + "begin": -1, + "end": -1, + "name": "JUMPI", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SWAP2", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP3", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "ADD", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "tag", + "source": -1, + "value": "30" + }, + { + "begin": -1, + "end": -1, + "name": "JUMPDEST", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP3", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP2", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "GT", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "ISZERO", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH [tag]", + "source": -1, + "value": "31" + }, + { + "begin": -1, + "end": -1, + "name": "JUMPI", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP3", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "MLOAD", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP3", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SSTORE", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SWAP2", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "20" + }, + { + "begin": -1, + "end": -1, + "name": "ADD", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SWAP2", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SWAP1", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "1" + }, + { + "begin": -1, + "end": -1, + "name": "ADD", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SWAP1", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH [tag]", + "source": -1, + "value": "30" + }, + { + "begin": -1, + "end": -1, + "name": "JUMP", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "tag", + "source": -1, + "value": "31" + }, + { + "begin": -1, + "end": -1, + "name": "JUMPDEST", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "tag", + "source": -1, + "value": "27" + }, + { + "begin": -1, + "end": -1, + "name": "JUMPDEST", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "POP", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SWAP1", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "POP", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH [tag]", + "source": -1, + "value": "32" + }, + { + "begin": -1, + "end": -1, + "name": "SWAP2", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SWAP1", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH [tag]", + "source": -1, + "value": "33" + }, + { + "begin": -1, + "end": -1, + "name": "JUMP", + "source": -1, + "value": "[in]" + }, + { + "begin": -1, + "end": -1, + "name": "tag", + "source": -1, + "value": "32" + }, + { + "begin": -1, + "end": -1, + "name": "JUMPDEST", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "POP", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SWAP1", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "JUMP", + "source": -1, + "value": "[out]" + }, + { + "begin": -1, + "end": -1, + "name": "tag", + "source": -1, + "value": "33" + }, + { + "begin": -1, + "end": -1, + "name": "JUMPDEST", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "tag", + "source": -1, + "value": "34" + }, + { + "begin": -1, + "end": -1, + "name": "JUMPDEST", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP1", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "DUP3", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "GT", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "ISZERO", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH [tag]", + "source": -1, + "value": "35" + }, + { + "begin": -1, + "end": -1, + "name": "JUMPI", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "0" + }, + { + "begin": -1, + "end": -1, + "name": "DUP2", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "0" + }, + { + "begin": -1, + "end": -1, + "name": "SWAP1", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SSTORE", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "POP", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH", + "source": -1, + "value": "1" + }, + { + "begin": -1, + "end": -1, + "name": "ADD", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "PUSH [tag]", + "source": -1, + "value": "34" + }, + { + "begin": -1, + "end": -1, + "name": "JUMP", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "tag", + "source": -1, + "value": "35" + }, + { + "begin": -1, + "end": -1, + "name": "JUMPDEST", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "POP", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "SWAP1", + "source": -1 + }, + { + "begin": -1, + "end": -1, + "name": "JUMP", + "source": -1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "_a()": "ced7b2e3", + "read()": "57de26a4", + "sign(string)": "79d6348d" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.7.4+commit.3f05b770\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"_a\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"read\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"sign\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/chains/sources/shared/WithImmutables.sol\":\"WithImmutables\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"test/chains/sources/shared/WithImmutables.sol\":{\"keccak256\":\"0xbee62e4af99b4199c5b0982f5da15fc58215a4d547724bc574d516df07f66dc2\",\"urls\":[\"bzz-raw://6d83c127e075a149ec14c6af579bc7b24955cdb7578ae7da2f253b7142d267cc\",\"dweb:/ipfs/QmW6tdCTV7X5dd5LCKDWedbMmkurQTMi4ePx7LY3DNuLn7\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 5, + "contract": "test/chains/sources/shared/WithImmutables.sol:WithImmutables", + "label": "_name", + "offset": 0, + "slot": "0", + "type": "t_string_storage" + } + ], + "types": { + "t_string_storage": { + "encoding": "bytes", + "label": "string", + "numberOfBytes": "32" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "errors": [ + { + "component": "general", + "errorCode": "1878", + "formattedMessage": "test/chains/sources/shared/WithImmutables.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n", + "message": "SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.", + "severity": "warning", + "sourceLocation": { + "end": -1, + "file": "test/chains/sources/shared/WithImmutables.sol", + "start": -1 + }, + "type": "Warning" + } + ], + "sources": { + "test/chains/sources/shared/WithImmutables.sol": { + "ast": { + "absolutePath": "test/chains/sources/shared/WithImmutables.sol", + "exportedSymbols": { + "WithImmutables": [ + 34 + ] + }, + "id": 35, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + ">=", + "0.7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:24:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 34, + "linearizedBaseContracts": [ + 34 + ], + "name": "WithImmutables", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "ced7b2e3", + "id": 3, + "mutability": "immutable", + "name": "_a", + "nodeType": "VariableDeclaration", + "scope": 34, + "src": "56:27:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 34, + "src": "94:12:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 4, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "94:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 14, + "nodeType": "Block", + "src": "141:23:0", + "statements": [ + { + "expression": { + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "151:2:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 11, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "156:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "151:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13, + "nodeType": "ExpressionStatement", + "src": "151:6:0" + } + ] + }, + "id": 15, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 15, + "src": "130:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "130:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "129:11:0" + }, + "returnParameters": { + "id": 9, + "nodeType": "ParameterList", + "parameters": [], + "src": "141:0:0" + }, + "scope": 34, + "src": "117:47:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 24, + "nodeType": "Block", + "src": "215:29:0", + "statements": [ + { + "expression": { + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 20, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5, + "src": "225:5:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 21, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "233:4:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "225:12:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 23, + "nodeType": "ExpressionStatement", + "src": "225:12:0" + } + ] + }, + "functionSelector": "79d6348d", + "id": 25, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sign", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17, + "mutability": "mutable", + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 25, + "src": "188:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "188:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "187:20:0" + }, + "returnParameters": { + "id": 19, + "nodeType": "ParameterList", + "parameters": [], + "src": "215:0:0" + }, + "scope": 34, + "src": "174:70:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 32, + "nodeType": "Block", + "src": "305:29:0", + "statements": [ + { + "expression": { + "id": 30, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5, + "src": "322:5:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 29, + "id": 31, + "nodeType": "Return", + "src": "315:12:0" + } + ] + }, + "functionSelector": "57de26a4", + "id": 33, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "read", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 26, + "nodeType": "ParameterList", + "parameters": [], + "src": "267:2:0" + }, + "returnParameters": { + "id": 29, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 33, + "src": "290:13:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 27, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "290:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "289:15:0" + }, + "scope": 34, + "src": "254:80:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 35, + "src": "26:310:0" + } + ], + "src": "0:336:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/test/chains/sources/shared/artifacts/build-info/fc7b0e84998147f0f5e280a2fd105a47.json b/test/chains/sources/shared/artifacts/build-info/fc7b0e84998147f0f5e280a2fd105a47.json new file mode 100644 index 000000000..da64edf58 --- /dev/null +++ b/test/chains/sources/shared/artifacts/build-info/fc7b0e84998147f0f5e280a2fd105a47.json @@ -0,0 +1,2799 @@ +{ + "id": "fc7b0e84998147f0f5e280a2fd105a47", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "test/chains/sources/shared/1_Storage.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\n\npragma solidity >=0.7.0 <0.9.0;\n\n/**\n * @title Storage\n * @dev Store & retrieve value in a variable\n */\ncontract Storage {\n\n uint256 number;\n\n /**\n * @dev Store value in variable\n * @param num value to store\n */\n function store(uint256 num) public {\n number = num;\n }\n\n /**\n * @dev Return value \n * @return value of 'number'\n */\n function retrieve() public view returns (uint256){\n return number;\n }\n}\n" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "test/chains/sources/shared/1_Storage.sol": { + "Storage": { + "abi": [ + { + "inputs": [], + "name": "retrieve", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "num", + "type": "uint256" + } + ], + "name": "store", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "Store & retrieve value in a variable", + "kind": "dev", + "methods": { + "retrieve()": { + "details": "Return value ", + "returns": { + "_0": "value of 'number'" + } + }, + "store(uint256)": { + "details": "Store value in variable", + "params": { + "num": "value to store" + } + } + }, + "title": "Storage", + "version": 1 + }, + "evm": { + "assembly": " /* \"test/chains/sources/shared/1_Storage.sol\":141:497 contract Storage {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"test/chains/sources/shared/1_Storage.sol\":141:497 contract Storage {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x2e64cec1\n eq\n tag_3\n jumpi\n dup1\n 0x6057361d\n eq\n tag_4\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"test/chains/sources/shared/1_Storage.sol\":416:495 function retrieve() public view returns (uint256){... */\n tag_3:\n tag_5\n tag_6\n jump\t// in\n tag_5:\n mload(0x40)\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"test/chains/sources/shared/1_Storage.sol\":271:335 function store(uint256 num) public {... */\n tag_4:\n tag_9\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n tag_12\n jump\t// in\n tag_9:\n stop\n /* \"test/chains/sources/shared/1_Storage.sol\":416:495 function retrieve() public view returns (uint256){... */\n tag_6:\n /* \"test/chains/sources/shared/1_Storage.sol\":457:464 uint256 */\n 0x00\n /* \"test/chains/sources/shared/1_Storage.sol\":482:488 number */\n dup1\n sload\n /* \"test/chains/sources/shared/1_Storage.sol\":475:488 return number */\n swap1\n pop\n /* \"test/chains/sources/shared/1_Storage.sol\":416:495 function retrieve() public view returns (uint256){... */\n swap1\n jump\t// out\n /* \"test/chains/sources/shared/1_Storage.sol\":271:335 function store(uint256 num) public {... */\n tag_12:\n /* \"test/chains/sources/shared/1_Storage.sol\":325:328 num */\n dup1\n /* \"test/chains/sources/shared/1_Storage.sol\":316:322 number */\n 0x00\n /* \"test/chains/sources/shared/1_Storage.sol\":316:328 number = num */\n dup2\n swap1\n sstore\n pop\n /* \"test/chains/sources/shared/1_Storage.sol\":271:335 function store(uint256 num) public {... */\n pop\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_16:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_18\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_19\n jump\t// in\n tag_18:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:481 */\n tag_11:\n /* \"#utility.yul\":211:217 */\n 0x00\n /* \"#utility.yul\":260:262 */\n 0x20\n /* \"#utility.yul\":248:257 */\n dup3\n /* \"#utility.yul\":239:246 */\n dup5\n /* \"#utility.yul\":235:258 */\n sub\n /* \"#utility.yul\":231:263 */\n slt\n /* \"#utility.yul\":228:347 */\n iszero\n tag_21\n jumpi\n /* \"#utility.yul\":266:345 */\n tag_22\n tag_23\n jump\t// in\n tag_22:\n /* \"#utility.yul\":228:347 */\n tag_21:\n /* \"#utility.yul\":386:387 */\n 0x00\n /* \"#utility.yul\":411:464 */\n tag_24\n /* \"#utility.yul\":456:463 */\n dup5\n /* \"#utility.yul\":447:453 */\n dup3\n /* \"#utility.yul\":436:445 */\n dup6\n /* \"#utility.yul\":432:454 */\n add\n /* \"#utility.yul\":411:464 */\n tag_16\n jump\t// in\n tag_24:\n /* \"#utility.yul\":401:464 */\n swap2\n pop\n /* \"#utility.yul\":357:474 */\n pop\n /* \"#utility.yul\":152:481 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":487:605 */\n tag_25:\n /* \"#utility.yul\":574:598 */\n tag_27\n /* \"#utility.yul\":592:597 */\n dup2\n /* \"#utility.yul\":574:598 */\n tag_28\n jump\t// in\n tag_27:\n /* \"#utility.yul\":569:572 */\n dup3\n /* \"#utility.yul\":562:599 */\n mstore\n /* \"#utility.yul\":487:605 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":611:833 */\n tag_8:\n /* \"#utility.yul\":704:708 */\n 0x00\n /* \"#utility.yul\":742:744 */\n 0x20\n /* \"#utility.yul\":731:740 */\n dup3\n /* \"#utility.yul\":727:745 */\n add\n /* \"#utility.yul\":719:745 */\n swap1\n pop\n /* \"#utility.yul\":755:826 */\n tag_30\n /* \"#utility.yul\":823:824 */\n 0x00\n /* \"#utility.yul\":812:821 */\n dup4\n /* \"#utility.yul\":808:825 */\n add\n /* \"#utility.yul\":799:805 */\n dup5\n /* \"#utility.yul\":755:826 */\n tag_25\n jump\t// in\n tag_30:\n /* \"#utility.yul\":611:833 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":920:997 */\n tag_28:\n /* \"#utility.yul\":957:964 */\n 0x00\n /* \"#utility.yul\":986:991 */\n dup2\n /* \"#utility.yul\":975:991 */\n swap1\n pop\n /* \"#utility.yul\":920:997 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1126:1243 */\n tag_23:\n /* \"#utility.yul\":1235:1236 */\n 0x00\n /* \"#utility.yul\":1232:1233 */\n dup1\n /* \"#utility.yul\":1225:1237 */\n revert\n /* \"#utility.yul\":1249:1371 */\n tag_19:\n /* \"#utility.yul\":1322:1346 */\n tag_38\n /* \"#utility.yul\":1340:1345 */\n dup2\n /* \"#utility.yul\":1322:1346 */\n tag_28\n jump\t// in\n tag_38:\n /* \"#utility.yul\":1315:1320 */\n dup2\n /* \"#utility.yul\":1312:1347 */\n eq\n /* \"#utility.yul\":1302:1365 */\n tag_39\n jumpi\n /* \"#utility.yul\":1361:1362 */\n 0x00\n /* \"#utility.yul\":1358:1359 */\n dup1\n /* \"#utility.yul\":1351:1363 */\n revert\n /* \"#utility.yul\":1302:1365 */\n tag_39:\n /* \"#utility.yul\":1249:1371 */\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220dd9869f2dc9749b4f96a5aedab0aeb6c6e1649ff116a8a6be833bac8cbb9e22364736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50610150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100d9565b60405180910390f35b610073600480360381019061006e919061009d565b61007e565b005b60008054905090565b8060008190555050565b60008135905061009781610103565b92915050565b6000602082840312156100b3576100b26100fe565b5b60006100c184828501610088565b91505092915050565b6100d3816100f4565b82525050565b60006020820190506100ee60008301846100ca565b92915050565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea2646970667358221220dd9869f2dc9749b4f96a5aedab0aeb6c6e1649ff116a8a6be833bac8cbb9e22364736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E64CEC1 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x6057361D EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x9D JUMP JUMPDEST PUSH2 0x7E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x97 DUP2 PUSH2 0x103 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB3 JUMPI PUSH2 0xB2 PUSH2 0xFE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC1 DUP5 DUP3 DUP6 ADD PUSH2 0x88 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD3 DUP2 PUSH2 0xF4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10C DUP2 PUSH2 0xF4 JUMP JUMPDEST DUP2 EQ PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD SWAP9 PUSH10 0xF2DC9749B4F96A5AEDAB EXP 0xEB PUSH13 0x6E1649FF116A8A6BE833BAC8CB 0xB9 0xE2 0x23 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "141:356:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@retrieve_24": { + "entryPoint": 117, + "id": 24, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@store_15": { + "entryPoint": 126, + "id": 15, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_uint256": { + "entryPoint": 136, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 157, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 202, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 217, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 244, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 254, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 259, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1374:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "218:263:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "264:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "266:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "266:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "266:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "239:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "248:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "235:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "235:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "260:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "231:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "231:32:1" + }, + "nodeType": "YulIf", + "src": "228:119:1" + }, + { + "nodeType": "YulBlock", + "src": "357:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "372:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "386:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "376:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "401:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "436:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "447:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "432:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "432:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "456:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "411:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "411:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "401:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "188:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "199:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "211:6:1", + "type": "" + } + ], + "src": "152:329:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "552:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "569:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "592:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "574:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "574:24:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "562:37:1" + }, + "nodeType": "YulExpressionStatement", + "src": "562:37:1" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "540:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "547:3:1", + "type": "" + } + ], + "src": "487:118:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "709:124:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "719:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "731:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "742:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "727:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "727:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "719:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "799:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "812:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "823:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "808:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "808:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "755:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "755:71:1" + }, + "nodeType": "YulExpressionStatement", + "src": "755:71:1" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "681:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "693:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "704:4:1", + "type": "" + } + ], + "src": "611:222:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "879:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "889:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "905:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "899:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "899:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "889:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "872:6:1", + "type": "" + } + ], + "src": "839:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "965:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "975:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "986:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "975:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "947:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "957:7:1", + "type": "" + } + ], + "src": "920:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1092:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1109:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1112:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1102:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1102:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1102:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1003:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1215:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1232:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1235:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1225:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1225:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1225:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1126:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1292:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1349:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1358:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1361:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1351:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1351:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1351:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1315:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1340:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1322:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1322:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1312:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1312:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1305:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1305:43:1" + }, + "nodeType": "YulIf", + "src": "1302:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1285:5:1", + "type": "" + } + ], + "src": "1249:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100d9565b60405180910390f35b610073600480360381019061006e919061009d565b61007e565b005b60008054905090565b8060008190555050565b60008135905061009781610103565b92915050565b6000602082840312156100b3576100b26100fe565b5b60006100c184828501610088565b91505092915050565b6100d3816100f4565b82525050565b60006020820190506100ee60008301846100ca565b92915050565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea2646970667358221220dd9869f2dc9749b4f96a5aedab0aeb6c6e1649ff116a8a6be833bac8cbb9e22364736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E64CEC1 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x6057361D EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x9D JUMP JUMPDEST PUSH2 0x7E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x97 DUP2 PUSH2 0x103 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB3 JUMPI PUSH2 0xB2 PUSH2 0xFE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC1 DUP5 DUP3 DUP6 ADD PUSH2 0x88 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD3 DUP2 PUSH2 0xF4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10C DUP2 PUSH2 0xF4 JUMP JUMPDEST DUP2 EQ PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD SWAP9 PUSH10 0xF2DC9749B4F96A5AEDAB EXP 0xEB PUSH13 0x6E1649FF116A8A6BE833BAC8CB 0xB9 0xE2 0x23 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "141:356:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;416:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;271:64;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;416:79;457:7;482:6;;475:13;;416:79;:::o;271:64::-;325:3;316:6;:12;;;;271:64;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:329::-;211:6;260:2;248:9;239:7;235:23;231:32;228:119;;;266:79;;:::i;:::-;228:119;386:1;411:53;456:7;447:6;436:9;432:22;411:53;:::i;:::-;401:63;;357:117;152:329;;;;:::o;487:118::-;574:24;592:5;574:24;:::i;:::-;569:3;562:37;487:118;;:::o;611:222::-;704:4;742:2;731:9;727:18;719:26;;755:71;823:1;812:9;808:17;799:6;755:71;:::i;:::-;611:222;;;;:::o;920:77::-;957:7;986:5;975:16;;920:77;;;:::o;1126:117::-;1235:1;1232;1225:12;1249:122;1322:24;1340:5;1322:24;:::i;:::-;1315:5;1312:35;1302:63;;1361:1;1358;1351:12;1302:63;1249:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "67200", + "executionCost": "117", + "totalCost": "67317" + }, + "external": { + "retrieve()": "2415", + "store(uint256)": "22520" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 141, + "end": 497, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 141, + "end": 497, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 141, + "end": 497, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "DUP1", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 141, + "end": 497, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 141, + "end": 497, + "name": "DUP1", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "REVERT", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 141, + "end": 497, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "POP", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 141, + "end": 497, + "name": "DUP1", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 141, + "end": 497, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 141, + "end": 497, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 141, + "end": 497, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220dd9869f2dc9749b4f96a5aedab0aeb6c6e1649ff116a8a6be833bac8cbb9e22364736f6c63430008070033", + ".code": [ + { + "begin": 141, + "end": 497, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 141, + "end": 497, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 141, + "end": 497, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "DUP1", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 141, + "end": 497, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 141, + "end": 497, + "name": "DUP1", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "REVERT", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 141, + "end": 497, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "POP", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 141, + "end": 497, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "LT", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 141, + "end": 497, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 141, + "end": 497, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 141, + "end": 497, + "name": "SHR", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "DUP1", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "PUSH", + "source": 0, + "value": "2E64CEC1" + }, + { + "begin": 141, + "end": 497, + "name": "EQ", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 141, + "end": 497, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "DUP1", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "PUSH", + "source": 0, + "value": "6057361D" + }, + { + "begin": 141, + "end": 497, + "name": "EQ", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 141, + "end": 497, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 141, + "end": 497, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 141, + "end": 497, + "name": "DUP1", + "source": 0 + }, + { + "begin": 141, + "end": 497, + "name": "REVERT", + "source": 0 + }, + { + "begin": 416, + "end": 495, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 416, + "end": 495, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 416, + "end": 495, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 416, + "end": 495, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 416, + "end": 495, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 416, + "end": 495, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 416, + "end": 495, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 416, + "end": 495, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 416, + "end": 495, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 416, + "end": 495, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 416, + "end": 495, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 416, + "end": 495, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 416, + "end": 495, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 416, + "end": 495, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 416, + "end": 495, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 416, + "end": 495, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 416, + "end": 495, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 416, + "end": 495, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 416, + "end": 495, + "name": "DUP1", + "source": 0 + }, + { + "begin": 416, + "end": 495, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 416, + "end": 495, + "name": "SUB", + "source": 0 + }, + { + "begin": 416, + "end": 495, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 416, + "end": 495, + "name": "RETURN", + "source": 0 + }, + { + "begin": 271, + "end": 335, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 271, + "end": 335, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 271, + "end": 335, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 271, + "end": 335, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 271, + "end": 335, + "name": "DUP1", + "source": 0 + }, + { + "begin": 271, + "end": 335, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 271, + "end": 335, + "name": "SUB", + "source": 0 + }, + { + "begin": 271, + "end": 335, + "name": "DUP2", + "source": 0 + }, + { + "begin": 271, + "end": 335, + "name": "ADD", + "source": 0 + }, + { + "begin": 271, + "end": 335, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 271, + "end": 335, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 271, + "end": 335, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 271, + "end": 335, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 271, + "end": 335, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 271, + "end": 335, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 271, + "end": 335, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 271, + "end": 335, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 271, + "end": 335, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 271, + "end": 335, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 271, + "end": 335, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 271, + "end": 335, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 271, + "end": 335, + "name": "STOP", + "source": 0 + }, + { + "begin": 416, + "end": 495, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 416, + "end": 495, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 457, + "end": 464, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 482, + "end": 488, + "name": "DUP1", + "source": 0 + }, + { + "begin": 482, + "end": 488, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 475, + "end": 488, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 475, + "end": 488, + "name": "POP", + "source": 0 + }, + { + "begin": 416, + "end": 495, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 416, + "end": 495, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 271, + "end": 335, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 271, + "end": 335, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 325, + "end": 328, + "name": "DUP1", + "source": 0 + }, + { + "begin": 316, + "end": 322, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 316, + "end": 328, + "name": "DUP2", + "source": 0 + }, + { + "begin": 316, + "end": 328, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 316, + "end": 328, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 316, + "end": 328, + "name": "POP", + "source": 0 + }, + { + "begin": 271, + "end": 335, + "name": "POP", + "source": 0 + }, + { + "begin": 271, + "end": 335, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "16" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "18" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "19" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 481, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 152, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 211, + "end": 217, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 260, + "end": 262, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 248, + "end": 257, + "name": "DUP3", + "source": 1 + }, + { + "begin": 239, + "end": 246, + "name": "DUP5", + "source": 1 + }, + { + "begin": 235, + "end": 258, + "name": "SUB", + "source": 1 + }, + { + "begin": 231, + "end": 263, + "name": "SLT", + "source": 1 + }, + { + "begin": 228, + "end": 347, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 228, + "end": 347, + "name": "PUSH [tag]", + "source": 1, + "value": "21" + }, + { + "begin": 228, + "end": 347, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 266, + "end": 345, + "name": "PUSH [tag]", + "source": 1, + "value": "22" + }, + { + "begin": 266, + "end": 345, + "name": "PUSH [tag]", + "source": 1, + "value": "23" + }, + { + "begin": 266, + "end": 345, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 266, + "end": 345, + "name": "tag", + "source": 1, + "value": "22" + }, + { + "begin": 266, + "end": 345, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 228, + "end": 347, + "name": "tag", + "source": 1, + "value": "21" + }, + { + "begin": 228, + "end": 347, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 386, + "end": 387, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 411, + "end": 464, + "name": "PUSH [tag]", + "source": 1, + "value": "24" + }, + { + "begin": 456, + "end": 463, + "name": "DUP5", + "source": 1 + }, + { + "begin": 447, + "end": 453, + "name": "DUP3", + "source": 1 + }, + { + "begin": 436, + "end": 445, + "name": "DUP6", + "source": 1 + }, + { + "begin": 432, + "end": 454, + "name": "ADD", + "source": 1 + }, + { + "begin": 411, + "end": 464, + "name": "PUSH [tag]", + "source": 1, + "value": "16" + }, + { + "begin": 411, + "end": 464, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 411, + "end": 464, + "name": "tag", + "source": 1, + "value": "24" + }, + { + "begin": 411, + "end": 464, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 401, + "end": 464, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 401, + "end": 464, + "name": "POP", + "source": 1 + }, + { + "begin": 357, + "end": 474, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 481, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 152, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 487, + "end": 605, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 487, + "end": 605, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 574, + "end": 598, + "name": "PUSH [tag]", + "source": 1, + "value": "27" + }, + { + "begin": 592, + "end": 597, + "name": "DUP2", + "source": 1 + }, + { + "begin": 574, + "end": 598, + "name": "PUSH [tag]", + "source": 1, + "value": "28" + }, + { + "begin": 574, + "end": 598, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 574, + "end": 598, + "name": "tag", + "source": 1, + "value": "27" + }, + { + "begin": 574, + "end": 598, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 569, + "end": 572, + "name": "DUP3", + "source": 1 + }, + { + "begin": 562, + "end": 599, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 487, + "end": 605, + "name": "POP", + "source": 1 + }, + { + "begin": 487, + "end": 605, + "name": "POP", + "source": 1 + }, + { + "begin": 487, + "end": 605, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 611, + "end": 833, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 611, + "end": 833, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 704, + "end": 708, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 742, + "end": 744, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 731, + "end": 740, + "name": "DUP3", + "source": 1 + }, + { + "begin": 727, + "end": 745, + "name": "ADD", + "source": 1 + }, + { + "begin": 719, + "end": 745, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 719, + "end": 745, + "name": "POP", + "source": 1 + }, + { + "begin": 755, + "end": 826, + "name": "PUSH [tag]", + "source": 1, + "value": "30" + }, + { + "begin": 823, + "end": 824, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 812, + "end": 821, + "name": "DUP4", + "source": 1 + }, + { + "begin": 808, + "end": 825, + "name": "ADD", + "source": 1 + }, + { + "begin": 799, + "end": 805, + "name": "DUP5", + "source": 1 + }, + { + "begin": 755, + "end": 826, + "name": "PUSH [tag]", + "source": 1, + "value": "25" + }, + { + "begin": 755, + "end": 826, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 755, + "end": 826, + "name": "tag", + "source": 1, + "value": "30" + }, + { + "begin": 755, + "end": 826, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 611, + "end": 833, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 611, + "end": 833, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 611, + "end": 833, + "name": "POP", + "source": 1 + }, + { + "begin": 611, + "end": 833, + "name": "POP", + "source": 1 + }, + { + "begin": 611, + "end": 833, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 920, + "end": 997, + "name": "tag", + "source": 1, + "value": "28" + }, + { + "begin": 920, + "end": 997, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 957, + "end": 964, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 986, + "end": 991, + "name": "DUP2", + "source": 1 + }, + { + "begin": 975, + "end": 991, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 975, + "end": 991, + "name": "POP", + "source": 1 + }, + { + "begin": 920, + "end": 997, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 920, + "end": 997, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 920, + "end": 997, + "name": "POP", + "source": 1 + }, + { + "begin": 920, + "end": 997, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1126, + "end": 1243, + "name": "tag", + "source": 1, + "value": "23" + }, + { + "begin": 1126, + "end": 1243, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1235, + "end": 1236, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1232, + "end": 1233, + "name": "DUP1", + "source": 1 + }, + { + "begin": 1225, + "end": 1237, + "name": "REVERT", + "source": 1 + }, + { + "begin": 1249, + "end": 1371, + "name": "tag", + "source": 1, + "value": "19" + }, + { + "begin": 1249, + "end": 1371, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1322, + "end": 1346, + "name": "PUSH [tag]", + "source": 1, + "value": "38" + }, + { + "begin": 1340, + "end": 1345, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1322, + "end": 1346, + "name": "PUSH [tag]", + "source": 1, + "value": "28" + }, + { + "begin": 1322, + "end": 1346, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1322, + "end": 1346, + "name": "tag", + "source": 1, + "value": "38" + }, + { + "begin": 1322, + "end": 1346, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1315, + "end": 1320, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1312, + "end": 1347, + "name": "EQ", + "source": 1 + }, + { + "begin": 1302, + "end": 1365, + "name": "PUSH [tag]", + "source": 1, + "value": "39" + }, + { + "begin": 1302, + "end": 1365, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1361, + "end": 1362, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1358, + "end": 1359, + "name": "DUP1", + "source": 1 + }, + { + "begin": 1351, + "end": 1363, + "name": "REVERT", + "source": 1 + }, + { + "begin": 1302, + "end": 1365, + "name": "tag", + "source": 1, + "value": "39" + }, + { + "begin": 1302, + "end": 1365, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1249, + "end": 1371, + "name": "POP", + "source": 1 + }, + { + "begin": 1249, + "end": 1371, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "retrieve()": "2e64cec1", + "store(uint256)": "6057361d" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"retrieve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"}],\"name\":\"store\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Store & retrieve value in a variable\",\"kind\":\"dev\",\"methods\":{\"retrieve()\":{\"details\":\"Return value \",\"returns\":{\"_0\":\"value of 'number'\"}},\"store(uint256)\":{\"details\":\"Store value in variable\",\"params\":{\"num\":\"value to store\"}}},\"title\":\"Storage\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/chains/sources/shared/1_Storage.sol\":\"Storage\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"test/chains/sources/shared/1_Storage.sol\":{\"keccak256\":\"0x88c47206b5ec3d60ab820e9d126c4ac54cb17fa7396ff49ebe27db2862982ad8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5d1eeb01c8c10bed9e290f4a80a8d4081422a7b298a13049d72867022522cf6b\",\"dweb:/ipfs/QmaFRC9ZtT7y3t9XNWCbDuMTEwKkyaQJzYFzw3NbeohSn5\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 4, + "contract": "test/chains/sources/shared/1_Storage.sol:Storage", + "label": "number", + "offset": 0, + "slot": "0", + "type": "t_uint256" + } + ], + "types": { + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "test/chains/sources/shared/1_Storage.sol": { + "ast": { + "absolutePath": "test/chains/sources/shared/1_Storage.sol", + "exportedSymbols": { + "Storage": [ + 25 + ] + }, + "id": 26, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + ">=", + "0.7", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "37:31:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 2, + "nodeType": "StructuredDocumentation", + "src": "70:70:0", + "text": " @title Storage\n @dev Store & retrieve value in a variable" + }, + "fullyImplemented": true, + "id": 25, + "linearizedBaseContracts": [ + 25 + ], + "name": "Storage", + "nameLocation": "150:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "number", + "nameLocation": "173:6:0", + "nodeType": "VariableDeclaration", + "scope": 25, + "src": "165:14:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "165:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 14, + "nodeType": "Block", + "src": "306:29:0", + "statements": [ + { + "expression": { + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10, + "name": "number", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4, + "src": "316:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 11, + "name": "num", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "325:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "316:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13, + "nodeType": "ExpressionStatement", + "src": "316:12:0" + } + ] + }, + "documentation": { + "id": 5, + "nodeType": "StructuredDocumentation", + "src": "186:80:0", + "text": " @dev Store value in variable\n @param num value to store" + }, + "functionSelector": "6057361d", + "id": 15, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "store", + "nameLocation": "280:5:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7, + "mutability": "mutable", + "name": "num", + "nameLocation": "294:3:0", + "nodeType": "VariableDeclaration", + "scope": 15, + "src": "286:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "286:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "285:13:0" + }, + "returnParameters": { + "id": 9, + "nodeType": "ParameterList", + "parameters": [], + "src": "306:0:0" + }, + "scope": 25, + "src": "271:64:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 23, + "nodeType": "Block", + "src": "465:30:0", + "statements": [ + { + "expression": { + "id": 21, + "name": "number", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4, + "src": "482:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 20, + "id": 22, + "nodeType": "Return", + "src": "475:13:0" + } + ] + }, + "documentation": { + "id": 16, + "nodeType": "StructuredDocumentation", + "src": "341:70:0", + "text": " @dev Return value \n @return value of 'number'" + }, + "functionSelector": "2e64cec1", + "id": 24, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "retrieve", + "nameLocation": "425:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17, + "nodeType": "ParameterList", + "parameters": [], + "src": "433:2:0" + }, + "returnParameters": { + "id": 20, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 24, + "src": "457:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "457:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "456:9:0" + }, + "scope": 25, + "src": "416:79:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 26, + "src": "141:356:0", + "usedErrors": [] + } + ], + "src": "37:461:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/test/etherscan.js b/test/etherscan.js new file mode 100644 index 000000000..63c06ad85 --- /dev/null +++ b/test/etherscan.js @@ -0,0 +1,398 @@ +process.env.MOCK_REPOSITORY = "./dist/data/mock-repository"; +process.env.SOLC_REPO = "./dist/data/solc-repo"; +process.env.SOLJSON_REPO = "./dist/data/soljson-repo"; + +const Server = require("../dist/server/server").Server; +const chai = require("chai"); +const chaiHttp = require("chai-http"); +const { StatusCodes } = require("http-status-codes"); +const rimraf = require("rimraf"); +const util = require("util"); +const { etherscanAPIs } = require("../dist/config"); +const { + assertVerification, + assertValidationError, + assertVerificationSession, +} = require("./helpers/assertions"); +const { sourcifyChainsMap } = require("../dist/sourcify-chains"); +const testContracts = require("./helpers/etherscanInstanceContracts.json"); +const { + waitSecs, + unusedAddress, + invalidAddress, + unsupportedChain, + verifyAndAssertEtherscanSession, + verifyAndAssertEtherscan, +} = require("./helpers/helpers"); +const { default: fetch } = require("node-fetch"); + +chai.use(chaiHttp); + +const CUSTOM_PORT = 5678; + +describe("Import From Etherscan and Verify", function () { + this.beforeEach(async function () { + await waitSecs(1); + }); + + // Don't run if it's an external PR. Etherscan tests need API keys that can't be exposed to external PRs. + if (process.env.CIRCLE_PR_REPONAME !== undefined) { + return; + } + + this.timeout(7000); + const server = new Server(CUSTOM_PORT); + + before(async () => { + const promisified = util.promisify(server.app.listen); + await promisified(server.port); + console.log(`Server listening on port ${server.port}!`); + }); + + beforeEach(() => { + rimraf.sync(server.repository); + }); + + after(() => { + rimraf.sync(server.repository); + }); + + const assertEtherscanError = (err, res, errorMessage, status) => { + try { + chai.expect(res.status).to.equal(status || StatusCodes.BAD_REQUEST); + chai.expect(res.body?.error).to.equal(errorMessage); + } catch (e) { + console.log("Error: ", e); + console.log("Response: ", res.body); + throw e; + } + }; + + describe("Non-Session API", () => { + it("should fail for missing address", (done) => { + chai + .request(server.app) + .post("/verify/etherscan") + .field("chain", "1") + .end((err, res) => { + assertValidationError( + err, + res, + "address", + "request/body must have required property 'address'" + ); + done(); + }); + }); + + it("should fail for missing chain", (done) => { + chai + .request(server.app) + .post("/verify/etherscan") + .field("address", unusedAddress) + .end((err, res) => { + assertValidationError( + err, + res, + "chain", + "request/body must have required property 'chain'" + ); + done(); + }); + }); + + it("should fail for invalid address", (done) => { + chai + .request(server.app) + .post("/verify/etherscan") + .field("address", invalidAddress) + .field("chain", "1") + .end((err, res) => { + assertValidationError( + err, + res, + "address", + `Invalid address: ${invalidAddress}` + ); + done(); + }); + }); + + it("should fail for unsupported chain", (done) => { + chai + .request(server.app) + .post("/verify/etherscan") + .field("address", unusedAddress) + .field("chain", unsupportedChain) + .end((err, res) => { + assertValidationError( + err, + res, + "chain", + `Chain ${unsupportedChain} not supported for verification!` + ); + done(); + }); + }); + + it("should fail fetching a non verified contract from etherscan", (done) => { + chai + .request(server.app) + .post("/verify/etherscan") + .field("address", unusedAddress) + .field("chain", "1") + .end((err, res) => { + assertEtherscanError( + err, + res, + "This contract is not verified on Etherscan" + ); + done(); + }); + }); + + describe("Test the non-session endpoint", () => { + const tempChainId = "1"; + // Test with each type "single", "multiple", "standard-json" + testContracts[tempChainId].forEach((contract) => { + verifyAndAssertEtherscan( + server.app, + tempChainId, + contract.address, + contract.expectedStatus, + contract.type + ); + }); + + // Non-session's default is `chain` but shoudl also work with `chainId` + it("should also work with `chainId` instead of `chain`", (done) => { + const contract = testContracts[tempChainId][0]; + chai + .request(server.app) + .post("/verify/etherscan") + .field("address", contract.address) + .field("chainId", tempChainId) + .end((err, res) => { + // currentResponse = res; + assertVerification( + err, + res, + done, + contract.address, + tempChainId, + contract.expectedStatus + ); + }); + }); + + // Skipping this test for now as they are failing on CI + it.skip("should fail by exceeding rate limit on etherscan APIs", async () => { + const chain = "1"; + const address = "0xB753548F6E010e7e680BA186F9Ca1BdAB2E90cf2"; + + let interval; + + console.time("Requests"); + let req = 0; + + // Await until we start getting rate limit errors + // Interval keeps running after await until cleared + await new Promise((resolve) => { + interval = setInterval(() => { + req++; + fetch( + `${etherscanAPIs[chain].apiURL}/api?module=contract&action=getsourcecode&address=${address}&apikey=${etherscanAPIs[chain].apiKey}` + ) + .then((res) => res.json()) + .then((json) => { + if (json.result === "Max rate limit reached") resolve(); + }); + }, 25); + }); + + console.log("Max rate reached"); + const response = await chai + .request(server.app) + .post("/verify/etherscan") + .field("address", "0xB753548F6E010e7e680BA186F9Ca1BdAB2E90cf2") + .field("chain", "1"); + + console.timeEnd("Requests"); + console.log("Total reqs: ", req); + clearInterval(interval); + assertEtherscanError( + null, + response, + "Etherscan API rate limit reached, try later", + StatusCodes.TOO_MANY_REQUESTS + ); + + await waitSecs(2); // Wait for the rate limit to reset + return true; + }); + }); + }); + + describe("Session API", () => { + it("should fail for missing address", (done) => { + chai + .request(server.app) + .post("/session/verify/etherscan/") + .field("chainId", "1") + .end((err, res) => { + assertValidationError( + err, + res, + "address", + "request/body must have required property 'address'" + ); + done(); + }); + }); + + it("should fail for missing chain", (done) => { + chai + .request(server.app) + .post("/session/verify/etherscan/") + .field("address", unusedAddress) + .end((err, res) => { + assertValidationError( + err, + res, + "chain", + "request/body must have required property 'chain'" + ); + done(); + }); + }); + + it("should fail for invalid address", (done) => { + chai + .request(server.app) + .post("/session/verify/etherscan") + .field("address", invalidAddress) + .field("chain", "1") + .end((err, res) => { + assertValidationError( + err, + res, + "address", + `Invalid address: ${invalidAddress}` + ); + done(); + }); + }); + + it("should fail for unsupported chain", (done) => { + chai + .request(server.app) + .post("/session/verify/etherscan") + .field("address", unusedAddress) + .field("chain", unsupportedChain) + .end((err, res) => { + assertValidationError( + err, + res, + "chain", + `Chain ${unsupportedChain} not supported for verification!` + ); + done(); + }); + }); + + it("should fail fetching a non verified contract from etherscan", (done) => { + chai + .request(server.app) + .post("/session/verify/etherscan") + .field("address", unusedAddress) + .field("chainId", "1") + .end((err, res) => { + assertEtherscanError( + err, + res, + "This contract is not verified on Etherscan" + ); + done(); + }); + }); + + describe("Test the session endpoint", () => { + const tempChainId = "1"; + // Test all three types: "single", "multiple", "standard-json" + testContracts[tempChainId].forEach((contract) => { + verifyAndAssertEtherscanSession( + server.app, + tempChainId, + contract.address, + contract.expectedStatus, + contract.type + ); + }); + + // Session's default is `body.chainId` but should also work with `chain` + it("should also work with `chain` instead of `chainId`", (done) => { + const contract = testContracts[tempChainId][0]; + chai + .request(server.app) + .post("/session/verify/etherscan") + .field("address", contract.address) + .field("chain", tempChainId) + .end((err, res) => { + // currentResponse = res; + assertVerificationSession( + err, + res, + done, + contract.address, + tempChainId, + contract.expectedStatus + ); + }); + }); + + // Skipping this test for now as they are failing on CI + it.skip("should fail by exceeding rate limit on etherscan APIs", async () => { + const chain = "1"; + const address = "0xB753548F6E010e7e680BA186F9Ca1BdAB2E90cf2"; + console.time("Requests"); + let req = 0; + let interval; + + // Await until we start getting rate limit errors + // Interval keeps running after await until cleared + await new Promise((resolve) => { + interval = setInterval(() => { + req++; + fetch( + `${etherscanAPIs[chain].apiURL}/api?module=contract&action=getsourcecode&address=${address}&apikey=${etherscanAPIs[chain].apiKey}` + ) + .then((res) => res.json()) + .then((json) => { + if (json.result === "Max rate limit reached") resolve(); + }); + }, 25); + }); + + console.log("Max rate reached"); + const response = await chai + .request(server.app) + .post("/session/verify/etherscan") + .field("address", "0xB753548F6E010e7e680BA186F9Ca1BdAB2E90cf2") + .field("chain", "1"); + + console.timeEnd("Requests"); + console.log("Total reqs: ", req); + clearInterval(interval); + assertEtherscanError( + null, + response, + "Etherscan API rate limit reached, try later", + StatusCodes.TOO_MANY_REQUESTS + ); + + await waitSecs(2); // Wait for the rate limit to reset + return true; + }); + }); + }); +}); diff --git a/test/etherscan/etherscanInstances.js b/test/etherscan/etherscanInstances.js new file mode 100644 index 000000000..006392097 --- /dev/null +++ b/test/etherscan/etherscanInstances.js @@ -0,0 +1,47 @@ +// Periodical tests of Import from Etherscan for each instance e.g. Arbiscan, Etherscan, Bscscan, etc. +process.env.MOCK_REPOSITORY = "./dist/data/mock-repository"; +process.env.SOLC_REPO = "./dist/data/solc-repo"; +process.env.SOLJSON_REPO = "./dist/data/soljson-repo"; + +const Server = require("../../dist/server/server").Server; +const rimraf = require("rimraf"); +const testContracts = require("../helpers/etherscanInstanceContracts.json"); +const { sourcifyChainsMap } = require("../../dist/sourcify-chains"); +const util = require("util"); +const { verifyAndAssertEtherscan } = require("../helpers/helpers"); + +const CUSTOM_PORT = 5679; + +describe("Test each Etherscan instance", function () { + this.timeout(10000); + const server = new Server(CUSTOM_PORT); + + before(async () => { + const promisified = util.promisify(server.app.listen); + await promisified(server.port); + console.log(`Server listening on port ${server.port}!`); + }); + + beforeEach(() => { + rimraf.sync(server.repository); + }); + + after(() => { + rimraf.sync(server.repository); + }); + + for (const chainId in testContracts) { + describe(`#${chainId} ${sourcifyChainsMap[chainId].name}`, () => { + testContracts[chainId].forEach((contract) => { + verifyAndAssertEtherscan( + server.app, + chainId, + contract.address, + contract.expectedStatus, + contract.type, + contract?.creatorTxHash + ); + }); + }); + } +}); diff --git a/test/helpers/ContractWrapper.js b/test/helpers/ContractWrapper.js index ef8fb73e0..8cab7f02e 100644 --- a/test/helpers/ContractWrapper.js +++ b/test/helpers/ContractWrapper.js @@ -1,5 +1,4 @@ const { deployFromAbiAndBytecode } = require("./helpers"); -const Web3EthAbi = require("web3-eth-abi"); /** * Wrapper class for the 0x/sol-compiler's contract compilation artifacts. * @param artifactObject: The compilation artifact as JSON @@ -14,21 +13,6 @@ class ContractWrapper { this.sources = this.artifact.sourceCodes; this.publishOptions = publishOptions; this.args = args; - - if (args.length) { - this.constructArgsHex(); - } - } - - constructArgsHex() { - let ctorSpecInput; - for (const methodSpec of this.artifact.compilerOutput.abi) { - if (methodSpec.type === "constructor") { - ctorSpecInput = methodSpec.inputs; - } - } - - this.argsHex = Web3EthAbi.encodeParameters(ctorSpecInput, this.args); } async publish(ipfsNode) { @@ -45,19 +29,17 @@ class ContractWrapper { /** * - * @param {Web3} web3Provider: Web3 provider of the network the contract will be deployed at + * @param {Signer} signer: Signer object from ethers.js to deploy the contract * @param {string} from: address of the deployed account * @returns {strong} deployed contract address */ - async deploy(web3Provider, from) { + async deploy(signer) { const address = await deployFromAbiAndBytecode( - web3Provider, + signer, this.artifact.compilerOutput.abi, this.artifact.compilerOutput.evm.bytecode.object, - from, this.args ); - console.log("Deployed contract at " + address); return address; } } diff --git a/test/helpers/assertions.js b/test/helpers/assertions.js new file mode 100644 index 000000000..b884aa019 --- /dev/null +++ b/test/helpers/assertions.js @@ -0,0 +1,142 @@ +const { StatusCodes } = require("http-status-codes"); +const chai = require("chai"); +const config = require("../../dist/config").default; +const path = require("path"); +const fs = require("fs"); +const { getAddress } = require("ethers"); + +exports.assertValidationError = (err, res, field, message) => { + try { + chai.expect(err).to.be.null; + chai.expect(res.body.message.toLowerCase()).to.include(field.toLowerCase()); + if (message) chai.expect(res.body.message).to.equal(message); + chai.expect(res.status).to.equal(StatusCodes.BAD_REQUEST); + } catch (err) { + console.log("Not validating as expected:"); + console.log(JSON.stringify(res.body, null, 2)); + throw err; + } +}; + +exports.assertVerification = ( + err, + res, + done, + expectedAddress, + expectedChain, + expectedStatus = "perfect" +) => { + try { + // currentResponse = res; + chai.expect(err).to.be.null; + chai.expect(res.status).to.equal(StatusCodes.OK); + chai.expect(res.body).to.haveOwnProperty("result"); + const resultArr = res.body.result; + chai.expect(resultArr).to.have.a.lengthOf(1); + const result = resultArr[0]; + chai.expect(result.address).to.equal(expectedAddress); + chai.expect(result.chainId).to.equal(expectedChain); + chai.expect(result.status).to.equal(expectedStatus); + + assertContractSaved(expectedAddress, expectedChain, expectedStatus); + if (done) done(); + } catch (e) { + console.log( + `Failing verification for ${expectedAddress} on chain #${expectedChain}.` + ); + console.log("Response body:"); + console.log(JSON.stringify(res.body, null, 2)); + console.log("Chai Error:"); + console.log(e); + throw e; + } +}; + +exports.assertVerificationSession = ( + err, + res, + done, + expectedAddress, + expectedChain, + expectedStatus +) => { + try { + chai.expect(err).to.be.null; + chai.expect(res.status).to.equal(StatusCodes.OK); + + const contracts = res.body.contracts; + chai.expect(contracts).to.have.a.lengthOf(1); + const contract = contracts[0]; + + chai.expect(contract.status).to.equal(expectedStatus); + chai.expect(contract.address).to.equal(expectedAddress); + chai.expect(contract.chainId).to.equal(expectedChain); + + chai.expect(contract.storageTimestamp).to.not.exist; + chai.expect(contract.files.missing).to.be.empty; + chai.expect(contract.files.invalid).to.be.empty; + assertContractSaved(expectedAddress, expectedChain, expectedStatus); + if (done) done(); + } catch (e) { + console.log( + `Failing verification for ${expectedAddress} on chain #${expectedChain}.` + ); + console.log("Response body:"); + console.log(JSON.stringify(res.body, null, 2)); + console.log("Chai Error:"); + console.log(e); + throw e; + } +}; + +/** + * Lookup (check-by-address etc.) doesn't return chainId, otherwise same as assertVerification + */ +exports.assertLookup = (err, res, expectedAddress, expectedStatus, done) => { + chai.expect(err).to.be.null; + chai.expect(res.status).to.equal(StatusCodes.OK); + const resultArray = res.body; + chai.expect(resultArray).to.have.a.lengthOf(1); + const result = resultArray[0]; + chai.expect(result.status).to.equal(expectedStatus); + chai.expect(result.address).to.equal(expectedAddress); + if (done) done(); +}; + +/** + * check-all-by-address returns chain and status objects in an array. + */ +exports.assertLookupAll = ( + err, + res, + expectedAddress, + expectedChainIds, // Array of { chainId, status } + done +) => { + chai.expect(err).to.be.null; + chai.expect(res.status).to.equal(StatusCodes.OK); + const resultArray = res.body; + chai.expect(resultArray).to.have.a.lengthOf(1); + const result = resultArray[0]; + chai.expect(result.address).to.equal(expectedAddress); + chai.expect(result.chainIds).to.deep.equal(expectedChainIds); + if (done) done(); +}; + +function assertContractSaved(expectedAddress, expectedChain, expectedStatus) { + // Check if saved to the disk + if (expectedStatus === "perfect" || expectedStatus === "partial") { + const match = expectedStatus === "perfect" ? "full_match" : "partial_match"; + const isExist = fs.existsSync( + path.join( + config.repository.path, + "contracts", + match, + expectedChain, + getAddress(expectedAddress), + "metadata.json" + ) + ); + chai.expect(isExist, "Contract is not saved").to.be.true; + } +} diff --git a/test/helpers/etherscanInstanceContracts.json b/test/helpers/etherscanInstanceContracts.json new file mode 100644 index 000000000..bf31c991a --- /dev/null +++ b/test/helpers/etherscanInstanceContracts.json @@ -0,0 +1,356 @@ +{ + "1": [ + { + "address": "0x1F3c21c9D16C5Bfc8956a433eC34bfcDEAa9D740", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0xB753548F6E010e7e680BA186F9Ca1BdAB2E90cf2", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0x5Aa653A076c1dbB47cec8C1B4d152444CAD91941", + "type": "standard-json", + "expectedStatus": "partial" + } + ], + "5": [ + { + "address": "0x00878Ac0D6B8d981ae72BA7cDC967eA0Fae69df4", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0x0Aa78575E17Ac357294Bb7B5a9ea512bA07669E2", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0xc836440B75e7c573A6069a7Eaf584bd763762dC1", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "11155111": [ + { + "address": "0x3738D744149713c3BFd514Bc8Fbd420DeDe3D682", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0x3c7E44544d11E6D6b5da5754fA589f9426DA5EeB", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0x26CD038a0c2c90BB5D791d527D1d9b43222dC1F3", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "421613": [ + { + "address": "0xaeD14606Da6641a5e9dc9a5Ae4369eBB5Da6613d", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0xb7Ae469e8f09fc56d0f2a9e0E949db9A6Fcd8203", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "42161": [ + { + "address": "0x02f29d508a1d12f78047C95098CABB287d1F4381", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0x81635EcF627ff0bC0D9CF30Bc5A963b5aa2F30fE", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0x46dcAFBb2C9d479827F69BeC9314E13741f21058", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "43114": [ + { + "address": "0x4B3B8CFB55C1F07be13055cA94d42ccfc6bE9972", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0x8dabd2ce6A593412C5B0a952C7F44351dde222b4", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0x1b254c7Acab33427562222A13A2EBA27FeA97875", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "43113": [ + { + "address": "0x24d7307e5bc032bC4456E998D7DD20369738a3a9", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0x79beb0a978443dBc125599170332b3F40D448F63", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0x2F7cD28b85ffA84F62b068f5b586B14Abea5E05c", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "56": [ + { + "address": "0xB46e7Bc077eD62f7E201d63D232E5c5899829FA5", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0x237aE7D0BBcc9D66B81887d7eca57184c0494261", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0x7dAE7AC96D045aCC5F7E23d6aFb5a789D83bd4BC", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "97": [ + { + "address": "0x19B14FF4d73c51DBb20D96A391c10AfD1425281e", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0xf2DC315D6591599701d4346c7A8E911C24d79740", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0xb68716C87fe8257e6d8C635d33D4c71E5f8833A5", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "288": [ + { + "address": "0x02e71Ae9973aE7D4EbA43DB25da5dCa1ED6906c0", + "type": "single", + "expectedStatus": "perfect" + }, + { + "address": "0x234f1BA1d8F3dfF904F0E4a6A4D7c12c4C833F91", + "type": "multiple", + "expectedStatus": "perfect" + }, + { + "address": "0xdB633569e3E6c420e06c15544076333504b18b94", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "44787": [ + { + "address": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0x1ff8030705dB05DcDEbEA2BF0f8CDAd1966A71C6", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "42220": [ + { + "address": "0x8084936982D089130e001b470eDf58faCA445008", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0x59A10A4DCE82Cdf233eb2c0ddcDA6E09Eb7F8499", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0x1C7652919598b32C576D362E74F44C6E34EF7Aba", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "100": [ + { + "address": "0x027408f6f7F08bDdb3Ebb88E4eF982C5196fcA74", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0x231055A0852D67C7107Ad0d0DFeab60278fE6AdC", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0x7c6C373190421988fA31E64f369C45205676C1f0", + "type": "standard-json", + "expectedStatus": "partial" + } + ], + "1287": [ + { + "address": "0x73882eC030823e612496dCCcDCf23DD23dDf7D34", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0x75f60b643879f3F76a851853F1A50Dbf2e031fDD", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0x26633F364ABd4057CacD1915c1Cc9f9ecc2B8dEC", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "1284": [ + { + "address": "0xAA0c247E385F2995Fb0d88921470bFb450729A13", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0x79Ae25091bB1cb7EC08A25b18b197dBe56DDaD3F", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "1285": [ + { + "address": "0x66bc84b4270cA0F056E27e5cD77B2401522191c6", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0x00000000000076A84feF008CDAbe6409d2FE638B", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0xefCe3bf365aF5b99550f32042007F73BA36A25a7", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "10": [ + { + "address": "0x8D2548A5f641b00Cf0f5B693d4A72D8c0aE24d31", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0x1f9cA631AE0C4890F99b38634C969b7E4f8719F0", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0x8DeaE4e487AF7DF7E3f12fB39E4c81884C4598Bf", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "420": [ + { + "address": "0xac0aEAea17A0Ae6F2d0B88241191Af59EAd66057", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0x0E89D6212B758BB06318571d95aeac6bE1354d0A", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "137": [ + { + "address": "0x482158993f55C1D983c5752e007AAD0a06790c7A", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0xc944CAAc3CA629676783446aD1A27e3A89A43B77", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0xc3B03145ffb60E251cB71a48Fe8aEe478124FF6D", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "80001": [ + { + "address": "0x34F19789eA142911d9DB1B8d0F672B567421a7a8", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0x1825a899ef75fd62220f00B352450b93Ee53c664", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0x5624B3dF5340a1149801910a5902D8A5AE757b41", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "84531": [ + { + "address": "0x0571DD2df7Ea9E98fe1eC160D632fEB750794AB7", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0x3b122a12344cBcebCf0ED3bd1b27C2B3174759BF", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0xD9b02949B6c221134B5De84d08cD7DAb8f9b1E17", + "type": "standard-json", + "expectedStatus": "perfect" + } + ], + "25": [ + { + "address": "0xE3023cd45E2Bc9Dd0e9a3F0484e4fBf40b4DF108", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0xc6Cfb3f2D9D33FF1D0B77cE78c5dD6f790B5605A", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0x17eC36E07897612441463e85E9413891Dc06c1DC", + "type": "standard-json", + "expectedStatus": "perfect" + } + ] +} diff --git a/test/helpers/helpers.js b/test/helpers/helpers.js index f882fb440..0685ee29f 100644 --- a/test/helpers/helpers.js +++ b/test/helpers/helpers.js @@ -1,44 +1,71 @@ -const dagPB = require("ipld-dag-pb"); -const UnixFS = require("ipfs-unixfs"); -const multihashes = require("multihashes"); -const Web3 = require("web3"); -const utils = require("../../services/core/build/utils/utils"); +const { ContractFactory, Wallet, BaseContract } = require("ethers"); +const { etherscanAPIs } = require("../../dist/config"); +const { sourcifyChainsMap } = require("../../dist/sourcify-chains"); +const { + assertVerificationSession, + assertVerification, +} = require("./assertions"); +const chai = require("chai"); +const chaiHttp = require("chai-http"); + +chai.use(chaiHttp); + +const invalidAddress = "0x000000bCB92160f8B7E094998Af6BCaD7fa537ff"; // checksum false +const unusedAddress = "0xf1Df8172F308e0D47D0E5f9521a5210467408535"; +const unsupportedChain = "3"; // Ropsten + +async function deployFromAbiAndBytecode(signer, abi, bytecode, args) { + const contractFactory = new ContractFactory(abi, bytecode, signer); + console.log(`Deploying contract ${args?.length ? `with args ${args}` : ""}`); + const deployment = await contractFactory.deploy(...(args || [])); + await deployment.waitForDeployment(); + + const contractAddress = await deployment.getAddress(); + console.log(`Deployed contract at ${contractAddress}`); + return contractAddress; +} /** - * Function to deploy contracts from provider unlocked accounts + * Creator tx hash is needed for tests. This function returns the tx hash in addition to the contract address. + * */ -async function deployFromAbiAndBytecode(web3, abi, bytecode, from, args) { - // Deploy contract - const contract = new web3.eth.Contract(abi); - const deployment = contract.deploy({ - data: bytecode, - arguments: args || [], - }); - const gas = await deployment.estimateGas({ from }); - const contractResponse = await deployment.send({ - from, - gas, - }); - return contractResponse.options.address; -} +async function deployFromAbiAndBytecodeForCreatorTxHash( + signer, + abi, + bytecode, + args +) { + const contractFactory = new ContractFactory(abi, bytecode, signer); + console.log(`Deploying contract ${args?.length ? `with args ${args}` : ""}`); + const deployment = await contractFactory.deploy(...(args || [])); + await deployment.waitForDeployment(); + + const contractAddress = await deployment.getAddress(); + const creationTx = deployment.deploymentTransaction(); + if (!creationTx) { + throw new Error(`No deployment transaction found for ${contractAddress}`); + } + console.log( + `Deployed contract at ${contractAddress} with tx ${creationTx.hash}` + ); + return { contractAddress, txHash: creationTx.hash }; +} /** * Function to deploy contracts from an external account with private key */ -async function deployFromPrivateKey(web3, abi, bytecode, privateKey, args) { - const contract = new web3.eth.Contract(abi); - const account = web3.eth.accounts.wallet.add(privateKey); - const deployment = contract.deploy({ - data: bytecode, - arguments: args || [], - }); - const gas = await deployment.estimateGas({ from: account.address }); - const contractResponse = await deployment.send({ - from: account.address, - gas, - }); - return contractResponse.options.address; +async function deployFromPrivateKey(provider, abi, bytecode, privateKey, args) { + const signer = new Wallet(privateKey, provider); + const contractFactory = new ContractFactory(abi, bytecode, signer); + console.log(`Deploying contract ${args?.length ? `with args ${args}` : ""}`); + const deployment = await contractFactory.deploy(...(args || [])); + await deployment.waitForDeployment(); + + const contractAddress = await deployment.getAddress(); + console.log(`Deployed contract at ${contractAddress}`); + return contractAddress; } + /** * Await `secs` seconds * @param {Number} secs seconds @@ -48,55 +75,92 @@ function waitSecs(secs = 0) { return new Promise((resolve) => setTimeout(resolve, secs * 1000)); } -/** - * Derives IPFS hash of string - * @param {String} str - * @return {String} IPFS hash (ex: "Qm") - */ -async function getIPFSHash(str) { - const file = new UnixFS("file", Buffer.from(str)); - const node = new dagPB.DAGNode(file.marshal()); - const metadataLink = await node.toDAGLink(); - return multihashes.toB58String(metadataLink._cid.multihash); -} +// Uses staticCall which does not send a tx i.e. change the state. +async function callContractMethod( + provider, + abi, + contractAddress, + methodName, + from, + args +) { + const contract = new BaseContract(contractAddress, abi, provider); + const callResponse = await contract[methodName].staticCall(...args); -/** - * Extracts bzzr0 hash from a compiled artifact's deployed bytecode - * @param {Object} artifact artifact in ex: test/sources/pass - * @return {String} hash - */ -function getBzzr0Hash(artifact) { - const bytes = Web3.utils.hexToBytes( - artifact.compilerOutput.evm.deployedBytecode.object - ); - const data = utils.cborDecode(bytes); - const val = Web3.utils.bytesToHex(data.bzzr0).slice(2); + return callResponse; +} - if (!val.length) throw "Artifact does not support bzzr0"; - return val; +// Sends a tx that changes the state +async function callContractMethodWithTx( + signer, + abi, + contractAddress, + methodName, + args +) { + const contract = new BaseContract(contractAddress, abi, signer); + const txResponse = await contract[methodName].send(...args); + const txReceipt = await txResponse.wait(); + return txReceipt; } -/** - * Extracts bzzr1 hash from a compiled artifact's deployed bytecode - * @param {Object} artifact artifact in ex: test/sources/pass - * @return {String} hash - */ -function getBzzr1Hash(artifact) { - const bytes = Web3.utils.hexToBytes( - artifact.compilerOutput.evm.deployedBytecode.object - ); - const data = utils.cborDecode(bytes); - const val = Web3.utils.bytesToHex(data.bzzr1).slice(2); +function verifyAndAssertEtherscan( + serverApp, + chainId, + address, + expectedStatus, + type +) { + it(`Non-Session: Should import a ${type} contract from #${chainId} ${sourcifyChainsMap[chainId].name} (${etherscanAPIs[chainId].apiURL}) and verify the contract, finding a ${expectedStatus} match`, (done) => { + let request = chai + .request(serverApp) + .post("/verify/etherscan") + .field("address", address) + .field("chain", chainId); + request.end((err, res) => { + // currentResponse = res; + assertVerification(err, res, done, address, chainId, expectedStatus); + }); + }); +} - if (!val.length) throw "Artifact does not support bzzr1"; - return val; +function verifyAndAssertEtherscanSession( + serverApp, + chainId, + address, + expectedStatus, + type +) { + it(`Session: Should import a ${type} contract from #${chainId} ${sourcifyChainsMap[chainId].name} (${etherscanAPIs[chainId].apiURL}) and verify the contract, finding a ${expectedStatus} match`, (done) => { + chai + .request(serverApp) + .post("/session/verify/etherscan") + .field("address", address) + .field("chainId", chainId) + .end((err, res) => { + // currentResponse = res; + assertVerificationSession( + err, + res, + done, + address, + chainId, + expectedStatus + ); + }); + }); } module.exports = { deployFromAbiAndBytecode, + deployFromAbiAndBytecodeForCreatorTxHash, deployFromPrivateKey, waitSecs, - getIPFSHash, - getBzzr0Hash, - getBzzr1Hash, + callContractMethod, + callContractMethodWithTx, + invalidAddress, + unsupportedChain, + unusedAddress, + verifyAndAssertEtherscan, + verifyAndAssertEtherscanSession, }; diff --git a/test/monitor.js b/test/monitor.js index 7b9249fbf..421da6f60 100644 --- a/test/monitor.js +++ b/test/monitor.js @@ -1,6 +1,6 @@ process.env.TESTING = "true"; process.env.MOCK_REPOSITORY = "./mockRepository"; -process.env.IPFS_GATEWAY = "http://ipfs.io/ipfs/"; +process.env.IPFS_GATEWAY = "https://ipfs.io/ipfs/"; const GANACHE_PORT = 8545; const ContractWrapper = require("./helpers/ContractWrapper"); const ganache = require("ganache"); @@ -11,30 +11,27 @@ const Monitor = require("../dist/monitor/monitor").default; const { waitSecs } = require("./helpers/helpers"); const fs = require("fs"); const path = require("path"); -const Web3 = require("web3"); -const ethers = require("ethers"); +const { + id: keccak256str, + JsonRpcProvider, + getCreateAddress, + Network, +} = require("ethers"); const { EventEmitter } = require("stream"); - -class Counter { - static get() { - return Counter.cnt++; - } -} -Counter.cnt = 0; +const { LOCAL_CHAINS } = require("../dist/sourcify-chains"); class MonitorWrapper extends EventEmitter { constructor() { super(); - this.repository = "./mockRepository" + Math.random().toString().slice(2); - this.monitor = new Monitor({ repository: this.repository, testing: true }); + this.repository = process.env.MOCK_REPOSITORY; + this.monitor = new Monitor(LOCAL_CHAINS.slice(0, 1)); // Ganache this.monitor.on("contract-verified-successfully", (chainId, address) => { this.emit("contract-verified-successfully", chainId, address); }); this.monitor.on("contract-already-verified", (chainId, address) => { this.emit("contract-already-verified", chainId, address); }); - chai.expect(this.monitor.chainMonitors).to.have.a.lengthOf(1); // Number of chains in TEST_CHAINS at services/core/utils/utils.ts - this.chainId = this.monitor.chainMonitors[0].chainId; + this.chainId = this.monitor.chainMonitors[0].sourcifyChain.chainId; } async start(startBlock) { @@ -61,7 +58,7 @@ class MonitorWrapper extends EventEmitter { this.repository, "contracts", "full_match", - this.chainId, + this.chainId.toString(), address ); } @@ -71,11 +68,6 @@ class MonitorWrapper extends EventEmitter { return path.join(pathPrefix, "metadata.json"); } - getConstructorArgsPath(address) { - const pathPrefix = this.getPathPrefix(address); - return path.join(pathPrefix, "constructor-args.txt"); - } - assertFilesNotStored(address, contractWrapper, expectedMtime) { const addressMetadataPath = this.getAddressMetadataPath(address); assertEqualityFromPath(contractWrapper.metadata, addressMetadataPath, { @@ -92,18 +84,13 @@ class MonitorWrapper extends EventEmitter { const metadata = contractWrapper.metadata; assertEqualityFromPath(metadata, addressMetadataPath, { isJson: true }); - if (contractWrapper.argsHex) { - const constructorArgsPath = this.getConstructorArgsPath(address); - assertEqualityFromPath(contractWrapper.argsHex, constructorArgsPath); - } - for (const sourceName in metadata.sources) { const source = metadata.sources[sourceName]; const sourcePath = path.join(pathPrefix, "sources", sourceName); const savedSource = fs.readFileSync(sourcePath).toString(); - const savedSourceHash = Web3.utils.keccak256(savedSource); + const savedSourceHash = keccak256str(savedSource); const originalSourceHash = - source.keccak256 || Web3.utils.keccak256(source.content); + source.keccak256 || keccak256str(source.content); chai .expect(savedSourceHash, "sourceHash comparison") .to.equal(originalSourceHash); @@ -161,8 +148,8 @@ describe("Monitor", function () { }; let ipfsNode; - let web3Provider; - let accounts; + let signer; + let account; before(async function () { ipfsNode = await ipfs.create({ offline: true, silent: true }); @@ -176,21 +163,30 @@ describe("Monitor", function () { beforeEach(async () => { ganacheServer = ganache.server({ wallet: { totalAccounts: 5 }, - chain: { chainId: 0, networkId: 0 }, + chain: { chainId: 1337, networkId: 1337 }, }); await ganacheServer.listen(GANACHE_PORT); console.log("Started ganache local server at port " + GANACHE_PORT); - - web3Provider = new Web3(`http://localhost:${GANACHE_PORT}`); - accounts = await web3Provider.eth.getAccounts(); - console.log("Initialized web3 provider"); + const sourcifyChainGanache = LOCAL_CHAINS[0]; + const ethersNetwork = new Network( + sourcifyChainGanache.rpc[0], + sourcifyChainGanache.chainId + ); + signer = await new JsonRpcProvider( + `http://localhost:${GANACHE_PORT}`, + ethersNetwork, + { staticNetwork: ethersNetwork } + ).getSigner(); + + account = await signer.getAddress(); + console.log("Initialized provider with signer account " + account); }); afterEach(async () => { await ganacheServer.close(); ganacheServer = null; - web3Provider = null; - accounts = null; + signer = null; + account = null; }); const GENERATION_SECS = 10; // waiting for extra blocks to be generated @@ -198,6 +194,7 @@ describe("Monitor", function () { const sourcifyContract = (contractWrapper, done) => { const monitorWrapper = new MonitorWrapper(); monitorWrapper.start().then(() => { + console.log("Started monitor for chainId: " + monitorWrapper.chainId); let address; monitorWrapper.on("contract-verified-successfully", () => { @@ -206,9 +203,7 @@ describe("Monitor", function () { done(); }); - contractWrapper - .deploy(web3Provider, accounts[Counter.get()]) - .then((addr) => (address = addr)); + contractWrapper.deploy(signer).then((addr) => (address = addr)); }); }; @@ -227,8 +222,8 @@ describe("Monitor", function () { it("should not resourcify if already sourcified", function (done) { const contract = contractWrappers.simpleWithImport; const monitorWrapper = new MonitorWrapper(); - const from = accounts[Counter.get()]; - const calculatedAddress = ethers.utils.getContractAddress({ + const from = account; + const calculatedAddress = getCreateAddress({ from, nonce: 0, }); @@ -249,7 +244,7 @@ describe("Monitor", function () { monitorWrapper.stop(); done(); }); - contract.deploy(web3Provider, from).then((addr) => { + contract.deploy(signer).then((addr) => { deployedAddress = addr; chai.expect(calculatedAddress).to.deep.equal(deployedAddress); }); @@ -258,8 +253,8 @@ describe("Monitor", function () { it("should sourcify the deployed contract after being started with a delay", function (done) { const contract = contractWrappers.simpleWithImport; - contract.deploy(web3Provider, accounts[Counter.get()]).then((address) => { - web3Provider.eth.getBlockNumber().then((currentBlockNumber) => { + contract.deploy(signer).then((address) => { + signer.provider.getBlockNumber().then((currentBlockNumber) => { waitSecs(GENERATION_SECS).then(() => { const monitorWrapper = new MonitorWrapper(); monitorWrapper.start(currentBlockNumber - 1).then(() => { diff --git a/test/server.js b/test/server.js index 036c294cd..428ea830c 100644 --- a/test/server.js +++ b/test/server.js @@ -1,8 +1,22 @@ process.env.TESTING = true; +// This does not take effect when run with monitor tests. See config.ts note process.env.MOCK_REPOSITORY = "./dist/data/mock-repository"; process.env.SOLC_REPO = "./dist/data/solc-repo"; -process.env.SOLJSON_REPO = "/dist/data/soljson-repo"; - +process.env.SOLJSON_REPO = "./dist/data/soljson-repo"; +// ipfs-http-gateway runs on port 9090 +// process.env.IPFS_GATEWAY = "http://localhost:9090/ipfs/"; +process.env.IPFS_GATEWAY = "http://ipfs.io/ipfs/"; +process.env.FETCH_TIMEOUT = 15000; // instantiated http-gateway takes a little longer + +const { + assertValidationError, + assertVerification, + assertVerificationSession, + assertLookup, + invalidAddress, + assertLookupAll, +} = require("./helpers/assertions"); +//const IPFS = require("ipfs-core"); const ganache = require("ganache"); const chai = require("chai"); const chaiHttp = require("chai-http"); @@ -11,38 +25,38 @@ const util = require("util"); const fs = require("fs"); const rimraf = require("rimraf"); const path = require("path"); -const Web3 = require("web3"); const MAX_FILE_SIZE = require("../dist/config").default.server.maxFileSize; const MAX_SESSION_SIZE = - require("../dist/server/controllers/VerificationController").default - .MAX_SESSION_SIZE; + require("../dist/server/controllers/verification/verification.common").MAX_SESSION_SIZE; const GANACHE_PORT = 8545; const StatusCodes = require("http-status-codes").StatusCodes; -const { waitSecs } = require("./helpers/helpers"); +const { + waitSecs, + callContractMethodWithTx, + deployFromAbiAndBytecodeForCreatorTxHash, +} = require("./helpers/helpers"); const { deployFromAbiAndBytecode } = require("./helpers/helpers"); - +const { JsonRpcProvider, Network } = require("ethers"); +const { LOCAL_CHAINS } = require("../dist/sourcify-chains"); chai.use(chaiHttp); -const binaryParser = function (res, cb) { - res.setEncoding("binary"); - res.data = ""; - res.on("data", (chunk) => (res.data += chunk)); - res.on("end", () => cb(null, Buffer.from(res.data, "binary"))); -}; - const EXTENDED_TIME = 20000; // 20 seconds const EXTENDED_TIME_60 = 60000; // 60 seconds +const defaultContractChain = "1337"; // default 1337 + describe("Server", function () { const server = new Server(); const ganacheServer = ganache.server({ wallet: { totalAccounts: 1 }, - chain: { chainId: 0, networkId: 0 }, + chain: { + chainId: parseInt(defaultContractChain), + networkId: parseInt(defaultContractChain), + }, }); - let localWeb3Provider; + let localSigner; let accounts; let defaultContractAddress; - const defaultContractChain = "0"; let currentResponse = null; // to log server response when test fails const sourcePath = path.join( @@ -57,25 +71,35 @@ describe("Server", function () { const metadata = require("./testcontracts/Storage/metadata.json"); const metadataBuffer = Buffer.from(JSON.stringify(metadata)); + this.timeout(EXTENDED_TIME); before(async () => { await ganacheServer.listen(GANACHE_PORT); + // const ipfs = await IPFS.create(); + // const httpGateway = new HttpGateway(ipfs); + // await httpGateway.start(); + const sourcifyChainGanache = LOCAL_CHAINS[0]; console.log("Started ganache local server on port " + GANACHE_PORT); - - localWeb3Provider = new Web3(`http://localhost:${GANACHE_PORT}`); - accounts = await localWeb3Provider.eth.getAccounts(); - console.log("Initialized web3 provider"); + const ethersNetwork = new Network( + sourcifyChainGanache.rpc[0], + sourcifyChainGanache.chainId + ); + localSigner = await new JsonRpcProvider( + `http://localhost:${GANACHE_PORT}`, + ethersNetwork, + { staticNetwork: ethersNetwork } + ).getSigner(); + console.log("Initialized Provider"); // Deploy the test contract defaultContractAddress = await deployFromAbiAndBytecode( - localWeb3Provider, + localSigner, artifact.abi, - artifact.bytecode, - accounts[0] + artifact.bytecode ); const promisified = util.promisify(server.app.listen); await promisified(server.port); - console.log(`Injector listening on port ${server.port}!`); + console.log(`Server listening on port ${server.port}!`); }); beforeEach(() => { @@ -112,135 +136,122 @@ describe("Server", function () { modifiedIpfsAddress; const modifiedIpfsMetadataBuffer = Buffer.from(JSON.stringify(metadata)); - const fakeAddress = "0x000000bCB92160f8B7E094998Af6BCaD7fa537ff"; - - const assertError = (err, res, field) => { + const assertBytecodesDontMatch = (err, res, done) => { chai.expect(err).to.be.null; - chai.expect(res.status).to.equal(StatusCodes.BAD_REQUEST); - chai.expect(res.body.message.startsWith("Validation Error")).to.be.true; - chai.expect(res.body.errors).to.be.an("array"); - chai.expect(res.body.errors).to.have.a.lengthOf(1); - chai.expect(res.body.errors[0].field).to.equal(field); - }; - - const assertions = ( - err, - res, - done, - expectedAddress = defaultContractAddress, - expectedStatus = "perfect" - ) => { - currentResponse = res; - chai.expect(err).to.be.null; - chai.expect(res.status).to.equal(StatusCodes.OK); - chai.expect(res.body).to.haveOwnProperty("result"); - const resultArr = res.body.result; - chai.expect(resultArr).to.have.a.lengthOf(1); - const result = resultArr[0]; - chai.expect(result.address).to.equal(expectedAddress); - chai.expect(result.status).to.equal(expectedStatus); + chai.expect(res.status).to.equal(StatusCodes.INTERNAL_SERVER_ERROR); + chai.expect(res.body).to.haveOwnProperty("error"); + chai + .expect(res.body.error) + .to.include("The deployed and recompiled bytecode don't match."); if (done) done(); }; - if (process.env.PR_REPONAME === undefined) { - describe("/session/verify/etherscan", function () { - const assertAllFound = (err, res, finalStatus) => { - chai.expect(err).to.be.null; - chai.expect(res.status).to.equal(StatusCodes.OK); - - const contracts = res.body.contracts; - chai.expect(contracts).to.have.a.lengthOf(1); - const contract = contracts[0]; - - chai.expect(contract.status).to.equal(finalStatus); - chai.expect(contract.storageTimestamp).to.not.exist; - }; + function assertEqualityFromPath(obj1, obj2path, options) { + const obj2raw = fs.readFileSync(obj2path).toString(); + const obj2 = options?.isJson ? JSON.parse(obj2raw) : obj2raw; + chai.expect(obj1, `assertFromPath: ${obj2path}`).to.deep.equal(obj2); + } - const assertEtherscanError = (err, res) => { - chai.expect(res.status).to.equal(StatusCodes.BAD_REQUEST); - chai.expect(res.body?.error).to.exist; - }; + describe("Verify create2", function () { + this.timeout(EXTENDED_TIME_60); - this.timeout(EXTENDED_TIME_60); + const agent = chai.request.agent(server.app); + let verificationId; - it("should fail for missing address", (done) => { - chai - .request(server.app) - .post("/session/verify/etherscan") - .field("chainId", "1") - .end((err, res) => { - assertError(err, res, "address"); - done(); - }); - }); + it("should input files from existing contract via auxdata ipfs", async () => { + const artifacts = require("./testcontracts/Create2/Wallet.json"); - it("should fail for missing chainId", (done) => { - chai - .request(server.app) - .post("/session/verify/etherscan") - .field("address", fakeAddress) - .end((err, res) => { - assertError(err, res, "chainId"); - done(); - }); - }); - - it("should fail fetching a non verified contract from etherscan", (done) => { - chai - .request(server.app) - .post("/session/verify/etherscan") - .field("address", fakeAddress) - .field("chainId", "1") - .end((err, res) => { - assertEtherscanError(err, res); - done(); - }); - }); + const account = await localSigner.getAddress(); + const addressDeployed = await deployFromAbiAndBytecode( + localSigner, + artifacts.abi, + artifacts.bytecode, + [account, account] + ); - it("should fail by exceeding rate limit on etherscan APIs", (done) => { - chai - .request(server.app) - .post("/session/verify/etherscan") - .field("address", fakeAddress) - .field("chainId", "1") - .end(() => { - chai - .request(server.app) - .post("/session/verify/etherscan") - .field("address", fakeAddress) - .field("chainId", "1") - .end((err, res) => { - assertEtherscanError(err, res); - done(); - }); - }); - }); + const res = await agent + .post("/session/input-contract") + .field("address", addressDeployed) + .field("chainId", defaultContractChain); + + verificationId = res.body.contracts[0].verificationId; + chai.expect(res.body.contracts).to.have.a.lengthOf(1); + const contract = res.body.contracts[0]; + chai.expect(contract.files.found).to.have.a.lengthOf(1); + const retrivedFile = contract.files.found[0]; + chai.expect(retrivedFile).to.equal("contracts/create2/Wallet.sol"); + }); - it("should import contract information from etherscan (single file) and verify the contract, finding a partial match", (done) => { - chai - .request(server.app) - .post("/session/verify/etherscan") - .field("address", "0x00878Ac0D6B8d981ae72BA7cDC967eA0Fae69df4") - .field("chainId", "5") - .end((err, res) => { - assertAllFound(err, res, "partial"); - done(); - }); - }); + it("should create2 verify with session", (done) => { + let clientToken; + const sourcifyClientTokensRaw = process.env.CREATE2_CLIENT_TOKENS; + if (sourcifyClientTokensRaw?.length) { + const sourcifyClientTokens = sourcifyClientTokensRaw.split(","); + clientToken = sourcifyClientTokens[0]; + } + agent + .post("/session/verify/create2") + .send({ + deployerAddress: "0xd9145CCE52D386f254917e481eB44e9943F39138", + salt: 12344, + abiEncodedConstructorArguments: + "0x0000000000000000000000005b38da6a701c568545dcfcb03fcb875f56beddc40000000000000000000000005b38da6a701c568545dcfcb03fcb875f56beddc4", + clientToken: clientToken || "", + create2Address: "0x65790cc291a234eDCD6F28e1F37B036eD4F01e3B", + verificationId: verificationId, + }) + .end((err, res) => { + assertVerificationSession( + err, + res, + done, + "0x65790cc291a234eDCD6F28e1F37B036eD4F01e3B", + "0", + "perfect" + ); + }); + }); - it("should import contract information from etherscan (multiple files) and verify the contract, finding a partial match", (done) => { - chai - .request(server.app) - .post("/session/verify/etherscan") - .field("address", "0x5aa653a076c1dbb47cec8c1b4d152444cad91941") - .field("chainId", "1") - .end((err, res) => { - assertAllFound(err, res, "partial"); - done(); - }); - }); + it("should create2 verify non-session", (done) => { + const metadata = fs + .readFileSync("test/testcontracts/Create2/Wallet_metadata.json") + .toString(); + const source = fs + .readFileSync("test/testcontracts/Create2/Wallet.sol") + .toString(); + let clientToken; + const sourcifyClientTokensRaw = process.env.CREATE2_CLIENT_TOKENS; + if (sourcifyClientTokensRaw?.length) { + const sourcifyClientTokens = sourcifyClientTokensRaw.split(","); + clientToken = sourcifyClientTokens[0]; + } + chai + .request(server.app) + .post("/verify/create2") + .send({ + deployerAddress: "0xd9145CCE52D386f254917e481eB44e9943F39138", + salt: 12345, + abiEncodedConstructorArguments: + "0x0000000000000000000000005b38da6a701c568545dcfcb03fcb875f56beddc40000000000000000000000005b38da6a701c568545dcfcb03fcb875f56beddc4", + files: { + "metadata.json": metadata, + "Wallet.sol": source, + }, + clientToken: clientToken || "", + create2Address: "0x801B9c0Ee599C3E5ED60e4Ec285C95fC9878Ee64", + }) + .end((err, res) => { + assertVerification( + err, + res, + done, + "0x801B9c0Ee599C3E5ED60e4Ec285C95fC9878Ee64", + "0", + "perfect" + ); + }); }); - } + }); describe("/check-by-addresses", function () { this.timeout(EXTENDED_TIME); @@ -251,7 +262,7 @@ describe("Server", function () { .get("/check-by-addresses") .query({ addresses: defaultContractAddress }) .end((err, res) => { - assertError(err, res, "chainIds"); + assertValidationError(err, res, "chainIds"); done(); }); }); @@ -262,23 +273,11 @@ describe("Server", function () { .get("/check-by-addresses") .query({ chainIds: 1 }) .end((err, res) => { - assertError(err, res, "addresses"); + assertValidationError(err, res, "addresses"); done(); }); }); - const assertStatus = (err, res, expectedStatus, expectedChainIds, done) => { - chai.expect(err).to.be.null; - chai.expect(res.status).to.equal(StatusCodes.OK); - const resultArray = res.body; - chai.expect(resultArray).to.have.a.lengthOf(1); - const result = resultArray[0]; - chai.expect(result.address).to.equal(defaultContractAddress); - chai.expect(result.status).to.equal(expectedStatus); - chai.expect(result.chainIds).to.deep.equal(expectedChainIds); - if (done) done(); - }; - it("should return false for previously unverified contract", (done) => { chai .request(server.app) @@ -287,21 +286,24 @@ describe("Server", function () { chainIds: defaultContractChain, addresses: defaultContractAddress, }) - .end((err, res) => assertStatus(err, res, "false", undefined, done)); + .end((err, res) => { + assertLookup(err, res, defaultContractAddress, "false"); + done(); + }); }); it("should fail for invalid address", (done) => { chai .request(server.app) .get("/check-by-addresses") - .query({ chainIds: defaultContractChain, addresses: fakeAddress }) + .query({ chainIds: defaultContractChain, addresses: invalidAddress }) .end((err, res) => { - assertError(err, res, "addresses"); + assertValidationError(err, res, "addresses"); done(); }); }); - it("should return true for previously verified contract", (done) => { + it("should return false for unverified contract but then perfect after verification", (done) => { chai .request(server.app) .get("/check-by-addresses") @@ -310,7 +312,7 @@ describe("Server", function () { addresses: defaultContractAddress, }) .end((err, res) => { - assertStatus(err, res, "false", undefined); + assertLookup(err, res, defaultContractAddress, "false"); chai .request(server.app) .post("/") @@ -330,11 +332,11 @@ describe("Server", function () { addresses: defaultContractAddress, }) .end((err, res) => - assertStatus( + assertLookup( err, res, + defaultContractAddress, "perfect", - [defaultContractChain], done ) ); @@ -351,13 +353,7 @@ describe("Server", function () { addresses: defaultContractAddress.toLowerCase(), }) .end((err, res) => { - chai.expect(err).to.be.null; - chai.expect(res.status).to.equal(StatusCodes.OK); - chai.expect(res.body).to.have.a.lengthOf(1); - const result = res.body[0]; - chai.expect(result.address).to.equal(defaultContractAddress); - chai.expect(result.status).to.equal("false"); - done(); + assertLookup(err, res, defaultContractAddress, "false", done); }); }); }); @@ -371,7 +367,7 @@ describe("Server", function () { .get("/check-all-by-addresses") .query({ addresses: defaultContractAddress }) .end((err, res) => { - assertError(err, res, "chainIds"); + assertValidationError(err, res, "chainIds"); done(); }); }); @@ -382,23 +378,11 @@ describe("Server", function () { .get("/check-all-by-addresses") .query({ chainIds: 1 }) .end((err, res) => { - assertError(err, res, "addresses"); + assertValidationError(err, res, "addresses"); done(); }); }); - const assertStatus = (err, res, expectedStatus, expectedChainIds, done) => { - chai.expect(err).to.be.null; - chai.expect(res.status).to.equal(StatusCodes.OK); - const resultArray = res.body; - chai.expect(resultArray).to.have.a.lengthOf(1); - const result = resultArray[0]; - chai.expect(result.address).to.equal(defaultContractAddress); - chai.expect(result.status).to.equal(expectedStatus); - chai.expect(result.chainIds).to.deep.equal(expectedChainIds); - if (done) done(); - }; - it("should return false for previously unverified contract", (done) => { chai .request(server.app) @@ -407,21 +391,23 @@ describe("Server", function () { chainIds: defaultContractChain, addresses: defaultContractAddress, }) - .end((err, res) => assertStatus(err, res, "false", undefined, done)); + .end((err, res) => + assertLookup(err, res, defaultContractAddress, "false", done) + ); }); it("should fail for invalid address", (done) => { chai .request(server.app) .get("/check-all-by-addresses") - .query({ chainIds: defaultContractChain, addresses: fakeAddress }) + .query({ chainIds: defaultContractChain, addresses: invalidAddress }) .end((err, res) => { - assertError(err, res, "addresses"); + assertValidationError(err, res, "addresses"); done(); }); }); - it("should return true for previously verified contract", (done) => { + it("should return false for unverified contract but then perfect after verification", (done) => { chai .request(server.app) .get("/check-all-by-addresses") @@ -430,7 +416,7 @@ describe("Server", function () { addresses: defaultContractAddress, }) .end((err, res) => { - assertStatus(err, res, "false", undefined); + assertLookup(err, res, defaultContractAddress, "false"); chai .request(server.app) .post("/") @@ -450,10 +436,10 @@ describe("Server", function () { addresses: defaultContractAddress, }) .end((err, res) => - assertStatus( + assertLookupAll( err, res, - undefined, + defaultContractAddress, [{ chainId: defaultContractChain, status: "perfect" }], done ) @@ -515,7 +501,16 @@ describe("Server", function () { .field("chain", defaultContractChain) .attach("files", metadataBuffer, "metadata.json") .attach("files", sourceBuffer, "Storage.sol") - .end((err, res) => assertions(err, res, done)); + .end((err, res) => + assertVerification( + err, + res, + done, + defaultContractAddress, + defaultContractChain, + "perfect" + ) + ); }); it("should verify json upload with string properties", (done) => { @@ -530,7 +525,16 @@ describe("Server", function () { "Storage.sol": sourceBuffer.toString(), }, }) - .end((err, res) => assertions(err, res, done)); + .end((err, res) => + assertVerification( + err, + res, + done, + defaultContractAddress, + defaultContractChain, + "perfect" + ) + ); }); it("should verify json upload with Buffer properties", (done) => { @@ -545,7 +549,16 @@ describe("Server", function () { "Storage.sol": sourceBuffer, }, }) - .end((err, res) => assertions(err, res, done)); + .end((err, res) => + assertVerification( + err, + res, + done, + defaultContractAddress, + defaultContractChain, + "perfect" + ) + ); }); const assertMissingFile = (err, res) => { @@ -577,7 +590,16 @@ describe("Server", function () { .field("address", defaultContractAddress) .field("chain", defaultContractChain) .attach("files", metadataBuffer, "metadata.json") - .end((err, res) => assertions(err, res, done)); + .end((err, res) => + assertVerification( + err, + res, + done, + defaultContractAddress, + defaultContractChain, + "perfect" + ) + ); }); it("should return 'partial', then delete partial when 'full' match", (done) => { @@ -604,7 +626,14 @@ describe("Server", function () { .attach("files", partialMetadataBuffer, "metadata.json") .attach("files", partialSourceBuffer) .end((err, res) => { - assertions(err, res, null, defaultContractAddress, "partial"); + assertVerification( + err, + res, + null, + defaultContractAddress, + defaultContractChain, + "partial" + ); chai .request(server.app) @@ -621,7 +650,13 @@ describe("Server", function () { .attach("files", metadataBuffer, "metadata.json") .attach("files", sourceBuffer) .end(async (err, res) => { - assertions(err, res, null, defaultContractAddress); + assertVerification( + err, + res, + null, + defaultContractAddress, + defaultContractChain + ); await waitSecs(2); // allow server some time to execute the deletion (it started *after* the last response) chai @@ -650,10 +685,9 @@ describe("Server", function () { const metadataBuffer = fs.readFileSync(metadataPath); const metadata = JSON.parse(metadataBuffer.toString()); const address = await deployFromAbiAndBytecode( - localWeb3Provider, + localSigner, metadata.output.abi, - bytecode, - accounts[0] + bytecode ); const res = await chai @@ -661,133 +695,145 @@ describe("Server", function () { .post("/") .field("address", address) .field("chain", defaultContractChain) - .attach("files", metadataBuffer) - .send(); - - assertions(null, res, null, address, "partial"); - return true; + .attach("files", metadataBuffer, "metadata.json"); + + assertVerification( + null, + res, + null, + address, + defaultContractChain, + "partial" + ); }); - it("should verify a contract with library placeholders", async () => { - // Originally https://goerli.etherscan.io/address/0x399B23c75d8fd0b95E81E41e1c7c88937Ee18000#code - const artifact = require("./sources/artifacts/UsingLibrary.json"); - const address = await deployFromAbiAndBytecode( - localWeb3Provider, - artifact.abi, - artifact.bytecode, - accounts[0] - ); - const metadataPath = path.join( - "test", - "sources", - "metadata", - "using-library.meta.object.json" - ); - const metadataBuffer = fs.readFileSync(metadataPath); + it("should verify a contract with immutables and save immutable-references.json", async () => { + const artifact = require("./testcontracts/WithImmutables/artifact.json"); + const { contractAddress } = + await deployFromAbiAndBytecodeForCreatorTxHash( + localSigner, + artifact.abi, + artifact.bytecode, + [999] + ); + const metadata = require("./testcontracts/WithImmutables/metadata.json"); const sourcePath = path.join( "test", + "testcontracts", + "WithImmutables", "sources", - "contracts", - "UsingLibrary.sol" + "WithImmutables.sol" ); const sourceBuffer = fs.readFileSync(sourcePath); + // Now pass the creatorTxHash const res = await chai .request(server.app) .post("/") - .field("address", address) - .field("chain", defaultContractChain) - .attach("files", metadataBuffer) - .attach("files", sourceBuffer) - .send(); - - assertions(null, res, null, address, "perfect"); - - const res2 = await chai - .request(server.app) - .get( - `/repository/contracts/full_match/${defaultContractChain}/${address}/library-map.json` + .send({ + address: contractAddress, + chain: defaultContractChain, + files: { + "metadata.json": JSON.stringify(metadata), + "WithImmutables.sol": sourceBuffer.toString(), + }, + }); + assertVerification( + null, + res, + null, + contractAddress, + defaultContractChain + ); + const isExist = fs.existsSync( + path.join( + server.repository, + "contracts", + "full_match", + defaultContractChain, + contractAddress, + "immutable-references.json" ) - .buffer() - .parse(binaryParser) - .send(); - - chai.expect(res2.status).to.equal(StatusCodes.OK); - const receivedLibraryMap = JSON.parse(res2.body.toString()); - const expectedLibraryMap = { - __$da572ae5e60c838574a0f88b27a0543803$__: - "11fea6722e00ba9f43861a6e4da05fecdf9806b7", - }; - chai.expect(receivedLibraryMap).to.deep.equal(expectedLibraryMap); + ); + chai.expect(isExist, "Immutable references not saved").to.be.true; }); - it("should verify a contract with viaIR:true", async () => { - const artifact = require("./testcontracts/Storage/Storage-viaIR.json"); + it("should return validation error for adding standard input JSON without a compiler version", async () => { const address = await deployFromAbiAndBytecode( - localWeb3Provider, - artifact.abi, - artifact.bytecode, - accounts[0] + localSigner, + artifact.abi, // Storage.sol + artifact.bytecode ); - // metadata is in artifact JSON - const metadataBuffer = Buffer.from(artifact.metadata); - - const sourcePath = path.join( + const solcJsonPath = path.join( "test", "testcontracts", "Storage", - "Storage.sol" + "StorageJsonInput.json" ); - const sourceBuffer = fs.readFileSync(sourcePath); + const solcJsonBuffer = fs.readFileSync(solcJsonPath); const res = await chai .request(server.app) - .post("/") + .post("/verify/solc-json") + .attach("files", solcJsonBuffer, "solc.json") .field("address", address) .field("chain", defaultContractChain) - .attach("files", metadataBuffer, "metadata.json") - .attach("files", sourceBuffer, "Storage.sol") - .send(); - assertions(null, res, null, address); + .field("contractName", "Storage"); + + assertValidationError(null, res, "compilerVersion"); }); - // https://github.com/ethereum/sourcify/issues/640 - it("should remove the inliner option from metadata for solc >=0.8.2 to <=0.8.4", async () => { - const artifact = require("./testcontracts/Storage/Storage.json"); + it("should return validation error for adding standard input JSON without a contract name", async () => { const address = await deployFromAbiAndBytecode( - localWeb3Provider, - artifact.abi, - artifact.bytecode, - accounts[0] + localSigner, + artifact.abi, // Storage.sol + artifact.bytecode ); - const metadataPath = path.join( + const solcJsonPath = path.join( "test", "testcontracts", "Storage", - "metadata-inliner.json" + "StorageJsonInput.json" ); - const metadataBuffer = fs.readFileSync(metadataPath); + const solcJsonBuffer = fs.readFileSync(solcJsonPath); - const sourcePath = path.join( + const res = await chai + .request(server.app) + .post("/verify/solc-json") + .attach("files", solcJsonBuffer) + .field("address", address) + .field("chain", defaultContractChain) + .field("compilerVersion", "0.8.4+commit.c7e474f2"); + + assertValidationError(null, res, "contractName"); + }); + + it("should verify a contract with Solidity standard input JSON", async () => { + const address = await deployFromAbiAndBytecode( + localSigner, + artifact.abi, // Storage.sol + artifact.bytecode + ); + const solcJsonPath = path.join( "test", "testcontracts", "Storage", - "Storage.sol" + "StorageJsonInput.json" ); - const sourceBuffer = fs.readFileSync(sourcePath); + const solcJsonBuffer = fs.readFileSync(solcJsonPath); const res = await chai .request(server.app) - .post("/") + .post("/verify/solc-json") + .attach("files", solcJsonBuffer, "solc.json") .field("address", address) .field("chain", defaultContractChain) - .attach("files", metadataBuffer, "metadata-inliner.json") - .attach("files", sourceBuffer, "Storage.sol") - .send(); - assertions(null, res, null, address); - }); + .field("compilerVersion", "0.8.4+commit.c7e474f2") + .field("contractName", "Storage"); + assertVerification(null, res, null, address, defaultContractChain); + }); describe("hardhat build-info file support", function () { this.timeout(EXTENDED_TIME); let address; @@ -800,10 +846,9 @@ describe("Server", function () { ); before(async function () { address = await deployFromAbiAndBytecode( - localWeb3Provider, + localSigner, MyToken.abi, MyToken.evm.bytecode.object, - accounts[0], ["Sourcify Hardhat Test", "TEST"] ); console.log(`Contract deployed at ${address}`); @@ -837,9 +882,70 @@ describe("Server", function () { .field("chosenContract", mainContractIndex) .attach("files", hardhatOutputBuffer) .end((err, res) => { - assertions(err, res, done, address, "perfect"); + assertVerification( + err, + res, + done, + address, + defaultContractChain, + "perfect" + ); }); }); + + it("should store a contract in /contracts/full_match|partial_match/0xADDRESS despite the files paths in the metadata", async () => { + const artifact = require("./testcontracts/Storage/Storage.json"); + const { contractAddress } = + await deployFromAbiAndBytecodeForCreatorTxHash( + localSigner, + artifact.abi, + artifact.bytecode, + [] + ); + + const metadata = require("./testcontracts/Storage/metadata.upMultipleDirs.json"); + const sourcePath = path.join( + "test", + "testcontracts", + "Storage", + "Storage.sol" + ); + const sourceBuffer = fs.readFileSync(sourcePath); + + // Now pass the creatorTxHash + const res = await chai + .request(server.app) + .post("/") + .send({ + address: contractAddress, + chain: defaultContractChain, + files: { + "metadata.json": JSON.stringify(metadata), + "Storage.sol": sourceBuffer.toString(), + }, + }); + assertVerification( + null, + res, + null, + contractAddress, + defaultContractChain, + "partial" + ); + const isExist = fs.existsSync( + path.join( + server.repository, + "contracts", + "partial_match", + defaultContractChain, + contractAddress, + "sources", + "..contracts", + "Storage.sol" + ) + ); + chai.expect(isExist, "Files saved in the wrong directory").to.be.true; + }); }); describe("solc v0.6.12 and v0.7.0 extra files in compilation causing metadata match but bytecode mismatch", function () { @@ -850,10 +956,9 @@ describe("Server", function () { before(async () => { contractAddress = await deployFromAbiAndBytecode( - localWeb3Provider, + localSigner, bytecodeMismatchArtifact.abi, - bytecodeMismatchArtifact.bytecode, - accounts[0] + bytecodeMismatchArtifact.bytecode ); }); @@ -867,7 +972,14 @@ describe("Server", function () { .field("address", contractAddress) .attach("files", hardhatOutputBuffer) .end((err, res) => { - assertions(err, res, done, contractAddress, "extra-file-input-bug"); + assertVerification( + err, + res, + done, + contractAddress, + defaultContractChain, + "extra-file-input-bug" + ); }); }); @@ -881,7 +993,14 @@ describe("Server", function () { .field("address", contractAddress) .attach("files", hardhatOutputBuffer) .end((err, res) => { - assertions(err, res, done, contractAddress, "perfect"); + assertVerification( + err, + res, + done, + contractAddress, + defaultContractChain, + "perfect" + ); }); }); }); @@ -894,6 +1013,7 @@ describe("Server", function () { chai .request(server.app) .post("/session/verify-validated") + .send({}) .end((err, res) => { chai.expect(err).to.be.null; chai.expect(res.body).to.haveOwnProperty("error"); @@ -962,15 +1082,14 @@ describe("Server", function () { .post("/session/verify-validated") .send({ contracts }) .end((err, res) => { - chai.expect(err).to.be.null; - chai.expect(res.status).to.equal(StatusCodes.OK); - const contracts = res.body.contracts; - chai.expect(contracts).to.have.a.lengthOf(1); - const contract = contracts[0]; - chai.expect(contract.status).to.equal("perfect"); - chai.expect(contract.storageTimestamp).to.not.exist; - chai.expect(res.body.unused).to.be.empty; - done(); + assertVerificationSession( + err, + res, + done, + defaultContractAddress, + defaultContractChain, + "perfect" + ); }); }); }); @@ -1011,20 +1130,6 @@ describe("Server", function () { }); }); - const assertAllFound = (err, res, finalStatus) => { - chai.expect(err).to.be.null; - chai.expect(res.status).to.equal(StatusCodes.OK); - chai.expect(res.body.unused).to.be.empty; - - const contracts = res.body.contracts; - chai.expect(contracts).to.have.a.lengthOf(1); - const contract = contracts[0]; - - chai.expect(contract.name).to.equal("Storage"); - chai.expect(contract.status).to.equal(finalStatus); - chai.expect(contract.storageTimestamp).to.not.exist; - }; - it("should verify when session cookie stored clientside", (done) => { const agent = chai.request.agent(server.app); agent @@ -1040,14 +1145,27 @@ describe("Server", function () { .end((err, res) => { contracts[0].chainId = defaultContractChain; contracts[0].address = defaultContractAddress; - assertAllFound(err, res, "error"); + assertVerificationSession( + err, + res, + null, + undefined, + undefined, + "error" + ); agent .post("/session/verify-validated") .send({ contracts }) .end((err, res) => { - assertAllFound(err, res, "perfect"); - done(); + assertVerificationSession( + err, + res, + done, + defaultContractAddress, + defaultContractChain, + "perfect" + ); }); }); }); @@ -1078,13 +1196,17 @@ describe("Server", function () { chai.expect(res.status).to.equal(StatusCodes.OK); } // Should exceed size this time - res = await agent.post("/session/input-files").attach("files", Buffer.from(file)); + res = await agent + .post("/session/input-files") + .attach("files", Buffer.from(file)); chai.expect(res.status).to.equal(StatusCodes.REQUEST_TOO_LONG); chai.expect(res.body.error).to.exist; // Should be back to normal res = await agent.post("/session/clear"); chai.expect(res.status).to.equal(StatusCodes.OK); - res = await agent.post("/session/input-files").attach("files", Buffer.from("a")); + res = await agent + .post("/session/input-files") + .attach("files", Buffer.from("a")); chai.expect(res.status).to.equal(StatusCodes.OK); console.log("done"); }); @@ -1249,10 +1371,9 @@ describe("Server", function () { it("should find contracts in a zipped Truffle project", (done) => { const zippedTrufflePath = path.join( - "services", - "validation", "test", - "files", + "sources", + "truffle", "truffle-example.zip" ); const zippedTruffleBuffer = fs.readFileSync(zippedTrufflePath); @@ -1314,10 +1435,9 @@ describe("Server", function () { it("should find contracts in a zipped Truffle project", (done) => { const zippedTrufflePath = path.join( - "services", - "validation", "test", - "files", + "sources", + "truffle", "truffle-example.zip" ); const zippedTruffleBuffer = fs.readFileSync(zippedTrufflePath); @@ -1334,6 +1454,198 @@ describe("Server", function () { }); }); + it("should verify a contract with immutables and save immutable-references.json", async () => { + const artifact = require("./testcontracts/WithImmutables/artifact.json"); + const { contractAddress } = + await deployFromAbiAndBytecodeForCreatorTxHash( + localSigner, + artifact.abi, + artifact.bytecode, + [999] + ); + + const metadata = require("./testcontracts/WithImmutables/metadata.json"); + const metadataBuffer = Buffer.from(JSON.stringify(metadata)); + const sourcePath = path.join( + "test", + "testcontracts", + "WithImmutables", + "sources", + "WithImmutables.sol" + ); + const sourceBuffer = fs.readFileSync(sourcePath); + + const agent = chai.request.agent(server.app); + + const res1 = await agent + .post("/session/input-files") + .attach("files", sourceBuffer) + .attach("files", metadataBuffer); + + let contracts = assertSingleContractStatus(res1, "error"); + + contracts[0].address = contractAddress; + contracts[0].chainId = defaultContractChain; + const res2 = await agent + .post("/session/verify-validated") + .send({ contracts }); + + assertSingleContractStatus(res2, "perfect"); + const isExist = fs.existsSync( + path.join( + server.repository, + "contracts", + "full_match", + defaultContractChain, + contractAddress, + "immutable-references.json" + ) + ); + chai.expect(isExist, "Immutable references not saved").to.be.true; + }); + + it("should verify a contract created by a factory contract and has immutables", async () => { + const deployValue = 12345; + + const artifact = require("./testcontracts/FactoryImmutable/Factory.json"); + const factoryAddress = await deployFromAbiAndBytecode( + localSigner, + artifact.abi, + artifact.bytecode + ); + + // Deploy child by calling deploy(uint) + const childMetadata = require("./testcontracts/FactoryImmutable/Child_metadata.json"); + const childMetadataBuffer = Buffer.from(JSON.stringify(childMetadata)); + const txReceipt = await callContractMethodWithTx( + localSigner, + artifact.abi, + factoryAddress, + "deploy", + [deployValue] + ); + + const childAddress = txReceipt.logs[0].args[0]; + const sourcePath = path.join( + "test", + "testcontracts", + "FactoryImmutable", + "FactoryTest.sol" + ); + const sourceBuffer = fs.readFileSync(sourcePath); + + const agent = chai.request.agent(server.app); + + const res1 = await agent + .post("/session/input-files") + .attach("files", sourceBuffer) + .attach("files", childMetadataBuffer); + + const contracts = assertSingleContractStatus(res1, "error"); + + contracts[0].address = childAddress; + contracts[0].chainId = defaultContractChain; + + const res = await agent + .post("/session/verify-validated") + .send({ contracts }); + assertSingleContractStatus(res, "perfect"); + }); + + it("should verify a contract created by a factory contract and has immutables without constructor arguments but with msg.sender assigned immutable", async () => { + const artifact = require("./testcontracts/FactoryImmutableWithoutConstrArg/Factory3.json"); + const factoryAddress = await deployFromAbiAndBytecode( + localSigner, + artifact.abi, + artifact.bytecode + ); + + // Deploy child by calling deploy(uint) + const childMetadata = require("./testcontracts/FactoryImmutableWithoutConstrArg/Child3_metadata.json"); + const childMetadataBuffer = Buffer.from(JSON.stringify(childMetadata)); + const txReceipt = await callContractMethodWithTx( + localSigner, + artifact.abi, + factoryAddress, + "createChild", + [] + ); + + const childAddress = txReceipt.logs[0].args[0]; + const sourcePath = path.join( + "test", + "testcontracts", + "FactoryImmutableWithoutConstrArg", + "FactoryTest3.sol" + ); + const sourceBuffer = fs.readFileSync(sourcePath); + + const agent = chai.request.agent(server.app); + + const res1 = await agent + .post("/session/input-files") + .attach("files", sourceBuffer) + .attach("files", childMetadataBuffer); + + const contracts = assertSingleContractStatus(res1, "error"); + + contracts[0].address = childAddress; + contracts[0].chainId = defaultContractChain; + const res = await agent + .post("/session/verify-validated") + .send({ contracts }); + assertSingleContractStatus(res, "perfect"); + }); + + it("should return validation error for adding standard input JSON without a compiler version", async () => { + const agent = chai.request.agent(server.app); + + const solcJsonPath = path.join( + "test", + "testcontracts", + "Storage", + "StorageJsonInput.json" + ); + const solcJsonBuffer = fs.readFileSync(solcJsonPath); + + const res = await agent + .post("/session/input-solc-json") + .attach("files", solcJsonBuffer); + + assertValidationError(null, res, "compilerVersion"); + }); + + it("should verify a contract with Solidity standard input JSON", async () => { + const agent = chai.request.agent(server.app); + const address = await deployFromAbiAndBytecode( + localSigner, + artifact.abi, // Storage.sol + artifact.bytecode + ); + const solcJsonPath = path.join( + "test", + "testcontracts", + "Storage", + "StorageJsonInput.json" + ); + const solcJsonBuffer = fs.readFileSync(solcJsonPath); + + const res = await agent + .post("/session/input-solc-json") + .field("compilerVersion", "0.8.4+commit.c7e474f2") + .attach("files", solcJsonBuffer, "solc.json"); + + const contracts = assertSingleContractStatus(res, "error"); + + contracts[0].address = address; + contracts[0].chainId = defaultContractChain; + + const res2 = await agent + .post("/session/verify-validated") + .send({ contracts }); + assertSingleContractStatus(res2, "perfect"); + }); + // Test also extra-file-bytecode-mismatch via v2 API as well since the workaround is at the API level i.e. VerificationController describe("solc v0.6.12 and v0.7.0 extra files in compilation causing metadata match but bytecode mismatch", function () { // Deploy the test contract locally @@ -1343,10 +1655,9 @@ describe("Server", function () { before(async () => { contractAddress = await deployFromAbiAndBytecode( - localWeb3Provider, + localSigner, bytecodeMismatchArtifact.abi, - bytecodeMismatchArtifact.bytecode, - accounts[0] + bytecodeMismatchArtifact.bytecode ); }); @@ -1395,4 +1706,170 @@ describe("Server", function () { }); }); }); + describe("Verify repository endpoints", function () { + const agent = chai.request.agent(server.app); + it("should fetch files of specific address", async function () { + await agent + .post("/") + .field("address", defaultContractAddress) + .field("chain", defaultContractChain) + .attach("files", metadataBuffer, "metadata.json") + .attach("files", sourceBuffer, "Storage.sol"); + const res0 = await agent.get( + `/files/${defaultContractChain}/${defaultContractAddress}` + ); + chai.expect(res0.body).has.a.lengthOf(2); + const res1 = await agent.get( + `/files/tree/any/${defaultContractChain}/${defaultContractAddress}` + ); + chai.expect(res1.body?.status).equals("full"); + const res2 = await agent.get( + `/files/any/${defaultContractChain}/${defaultContractAddress}` + ); + chai.expect(res2.body?.status).equals("full"); + const res3 = await agent.get( + `/files/tree/${defaultContractChain}/${defaultContractAddress}` + ); + chai.expect(res3.body).has.a.lengthOf(2); + const res4 = await agent.get(`/files/contracts/${defaultContractChain}`); + chai.expect(res4.body.full).has.a.lengthOf(1); + }); + }); + describe("Verify server status endpoint", function () { + it("should check server's health", async function () { + const res = await chai.request(server.app).get("/health"); + chai.expect(res.text).equals("Alive and kicking!"); + }); + it("should check server's chains", async function () { + const res = await chai.request(server.app).get("/chains"); + chai.expect(res.body.length).greaterThan(0); + }); + }); + describe("Unit test functions", function () { + this.timeout(EXTENDED_TIME_60); + const { sourcifyChainsArray } = require("../dist/sourcify-chains"); + const { + getCreatorTx, + } = require("../dist/server/services/VerificationService-util"); + it("should run getCreatorTx with chainId 40", async function () { + const sourcifyChain = sourcifyChainsArray.find( + (sourcifyChain) => sourcifyChain.chainId === 40 + ); + const creatorTx = await getCreatorTx( + sourcifyChain, + "0x4c09368a4bccD1675F276D640A0405Efa9CD4944" + ); + chai + .expect(creatorTx) + .equals( + "0xb7efb33c736b1e8ea97e356467f99d99221343f077ce31a3e3ac1d2e0636df1d" + ); + }); + // Commented out as fails way too often + // it("should run getCreatorTx with chainId 51", async function () { + // const sourcifyChain = sourcifyChainsArray.find( + // (sourcifyChain) => sourcifyChain.chainId === 51 + // ); + // const creatorTx = await getCreatorTx( + // sourcifyChain, + // "0x8C3FA94eb5b07c9AF7dBFcC53ea3D2BF7FdF3617" + // ); + // chai + // .expect(creatorTx) + // .equals( + // "0xb1af0ec1283551480ae6e6ce374eb4fa7d1803109b06657302623fc65c987420" + // ); + // }); + it("should run getCreatorTx with chainId 83", async function () { + const sourcifyChain = sourcifyChainsArray.find( + (sourcifyChain) => sourcifyChain.chainId === 83 + ); + const creatorTx = await getCreatorTx( + sourcifyChain, + "0x89e772941d94Ef4BDA1e4f68E79B4bc5F6096389" + ); + chai + .expect(creatorTx) + .equals( + "0x8cc7b0fb66eaf7b32bac7b7938aedfcec6d49f9fe607b8008a5541e72d264069" + ); + }); + it("should run getCreatorTx with chainId 335", async function () { + const sourcifyChain = sourcifyChainsArray.find( + (sourcifyChain) => sourcifyChain.chainId === 335 + ); + const creatorTx = await getCreatorTx( + sourcifyChain, + "0x40D843D06dAC98b2586fD1DFC5532145208C909F" + ); + chai + .expect(creatorTx) + .equals( + "0xd125cc92f61d0898d55a918283f8b855bde15bc5f391b621e0c4eee25c9997ee" + ); + }); + it("should run getCreatorTx with regex for new Blockscout", async function () { + const sourcifyChain = sourcifyChainsArray.find( + (sourcifyChain) => sourcifyChain.chainId === 100 + ); + const creatorTx = await getCreatorTx( + sourcifyChain, + "0x3CE1a25376223695284edc4C2b323C3007010C94" + ); + chai + .expect(creatorTx) + .equals( + "0x11da550e6716be8b4bd9203cb384e89b8f8941dc460bd99a4928ce2825e05456" + ); + }); + it("should run getCreatorTx with regex for old Blockscout", async function () { + const sourcifyChain = sourcifyChainsArray.find( + (sourcifyChain) => sourcifyChain.chainId === 1313161554 + ); + const creatorTx = await getCreatorTx( + sourcifyChain, + "0xC6e5185438e1730959c1eF3551059A3feC744E90" + ); + chai + .expect(creatorTx) + .equals( + "0x5db54485baca39ffaeda1e28edb467a8fd3372dbd21a891b2619a02dbf4acc18" + ); + }); + it("should run getCreatorTx with regex for Etherscan", async function () { + const sourcifyChain = sourcifyChainsArray.find( + (sourcifyChain) => sourcifyChain.chainId === 84531 + ); + const creatorTx = await getCreatorTx( + sourcifyChain, + "0xbe92671bdd1a1062e1a9f3be618e399fb5facace" + ); + chai + .expect(creatorTx) + .equals( + "0x15c5208cacbc1e14d9906926b8a991ec986a442f26081fe5ac9de4eb671c5195" + ); + }); + it("should attach and trigger an event with the event manager", function (done) { + const EventManager = require("../dist/common/EventManager").EventManager; + const em = new EventManager({ + "*": [], + TestEvent: [], + }); + let hitCounter = 0; + em.on("*", function () { + hitCounter++; + if (hitCounter == 2) { + done(); + } + }); + em.on("TestEvent", function () { + hitCounter++; + if (hitCounter == 2) { + done(); + } + }); + em.trigger("TestEvent"); + }); + }); }); diff --git a/test/sourceFetcher.js b/test/sourceFetcher.js index 73a3321ef..53220de3e 100644 --- a/test/sourceFetcher.js +++ b/test/sourceFetcher.js @@ -10,7 +10,7 @@ describe("Source Fetcher", function () { let sourceAddress; it("should fetch metadata from IPFS", (done) => { - process.env.IPFS_GATEWAY = "http://ipfs.io/ipfs/"; + process.env.IPFS_GATEWAY = "https://ipfs.io/ipfs/"; sourceFetcher = new SourceFetcher(); sourceAddress = new SourceAddress("ipfs", METADATA_HASH); sourceFetcher.subscribe(sourceAddress, (fetchedFileStr) => { @@ -27,7 +27,7 @@ describe("Source Fetcher", function () { sourceFetcher.subscribe(sourceAddress, (fetchedFileStr) => { const jsonFile = JSON.parse(fetchedFileStr); console.log(jsonFile.settings.compilationTarget); - process.env.IPFS_GATEWAY = "http://ipfs.io/ipfs/"; // Set back to correct value + process.env.IPFS_GATEWAY = "https://ipfs.io/ipfs/"; // Set back to correct value done(); }); }); diff --git a/test/sources/ropsten/Import.sol b/test/sources/ropsten/Import.sol deleted file mode 100644 index f6809e547..000000000 --- a/test/sources/ropsten/Import.sol +++ /dev/null @@ -1,17 +0,0 @@ -pragma solidity ^0.6.0; - -/// @title A simple contract -/// @author Mary A. Botanist -/// @notice You can subtract one from a value. -/// @dev For testing source-verify -contract Import { - - /// @author Mary A. Botanist - /// @notice This function will subtract 1 from `_value` - /// @dev For testing source-verify - /// @param _value A number - /// @return The number minus one - function minusOne(uint _value) public pure returns (uint) { - return _value - 1; - } -} diff --git a/test/sources/ropsten/Simple.sol b/test/sources/ropsten/Simple.sol deleted file mode 100644 index 33e0638b2..000000000 --- a/test/sources/ropsten/Simple.sol +++ /dev/null @@ -1,17 +0,0 @@ -pragma solidity ^0.6.0; - -/// @title A simple contract -/// @author Mary A. Botanist -/// @notice You can add one to a value. -/// @dev For testing source-verify -contract Simple { - - /// @author Mary A. Botanist - /// @notice This function will add 1 to `_value` - /// @param _value A number - /// @dev For testing source-verify - /// @return The number plus one - function plusOne(uint _value) public pure returns (uint) { - return _value + 1; - } -} diff --git a/test/sources/ropsten/SimpleWithImport.sol b/test/sources/ropsten/SimpleWithImport.sol deleted file mode 100644 index 495670c65..000000000 --- a/test/sources/ropsten/SimpleWithImport.sol +++ /dev/null @@ -1,19 +0,0 @@ -pragma solidity ^0.6.0; - -import "./Import.sol"; - -/// @title A simple contract -/// @author Mary A. Botanist -/// @notice You can add one to a value, or subtract one. -/// @dev For testing source-verify -contract SimpleWithImport is Import { - - /// @author Mary A. Botanist - /// @notice This function will add 1 to `_value` - /// @dev For testing source-verify - /// @param _value A number - /// @return The number plus one - function plusOne(uint _value) public pure returns (uint) { - return _value + 1; - } -} diff --git a/test/sources/ropsten/addresses.txt b/test/sources/ropsten/addresses.txt deleted file mode 100644 index 6176b7099..000000000 --- a/test/sources/ropsten/addresses.txt +++ /dev/null @@ -1,6 +0,0 @@ -Contracts deployed to Ropsten, March 2, 2020 - -Contract Address Transaction -======== ======= =========== -Simple: 0xEB6Cf7952c666F81f1a5678E80D4fC5Ce3a7bF0b 0x8bd7bf022c5160bb7fb838a49b3a44e0d2fa8dced9443df3458e61f8c857ec23 -SimpleWithImport: 0x4668b709182F41837c4e06C8de1D3568df7778D9 0x87d50d055e5893ae2537e8cb4d12f7db550dd8cd1de0b0f050717095f98e40ab diff --git a/test/sources/ropsten/simple.meta.json b/test/sources/ropsten/simple.meta.json deleted file mode 100644 index 88d40a8ff..000000000 --- a/test/sources/ropsten/simple.meta.json +++ /dev/null @@ -1 +0,0 @@ -"{\"compiler\":{\"version\":\"0.6.2+commit.bacdbe57\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"plusOne\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Mary A. Botanist\",\"details\":\"For testing source-verify\",\"methods\":{\"plusOne(uint256)\":{\"author\":\"Mary A. Botanist\",\"details\":\"For testing source-verify\",\"params\":{\"_value\":\"A number\"},\"returns\":{\"_0\":\"The number plus one\"}}},\"title\":\"A simple contract\"},\"userdoc\":{\"methods\":{\"plusOne(uint256)\":{\"notice\":\"This function will add 1 to `_value`\"}},\"notice\":\"You can add one to a value.\"}},\"settings\":{\"compilationTarget\":{\"/Users/cgewecke/code/ef/metacoin-source-verify/contracts/Simple.sol\":\"Simple\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/cgewecke/code/ef/metacoin-source-verify/contracts/Simple.sol\":{\"keccak256\":\"0xc841b70bf4cba7771c1ddf05207b0e896fdb9e7df88950abac82a61968b83307\",\"urls\":[\"bzz-raw://1b9ad6afbb7c63f1cadf5748d50e996c798f2d72a830088a1295037fa9ec3c41\",\"dweb:/ipfs/QmZRr1Kunzs17jKqhDrP6AEpz1TeRZVf7HKnyDWpfFB4w9\"]}},\"version\":1}" \ No newline at end of file diff --git a/test/sources/ropsten/simpleWithImport.meta.json b/test/sources/ropsten/simpleWithImport.meta.json deleted file mode 100644 index 7f09a0f14..000000000 --- a/test/sources/ropsten/simpleWithImport.meta.json +++ /dev/null @@ -1 +0,0 @@ -"{\"compiler\":{\"version\":\"0.6.2+commit.bacdbe57\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"minusOne\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"plusOne\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Mary A. Botanist\",\"details\":\"For testing source-verify\",\"methods\":{\"minusOne(uint256)\":{\"author\":\"Mary A. Botanist\",\"details\":\"For testing source-verify\",\"params\":{\"_value\":\"A number\"},\"returns\":{\"_0\":\"The number minus one\"}},\"plusOne(uint256)\":{\"author\":\"Mary A. Botanist\",\"details\":\"For testing source-verify\",\"params\":{\"_value\":\"A number\"},\"returns\":{\"_0\":\"The number plus one\"}}},\"title\":\"A simple contract\"},\"userdoc\":{\"methods\":{\"minusOne(uint256)\":{\"notice\":\"This function will subtract 1 from `_value`\"},\"plusOne(uint256)\":{\"notice\":\"This function will add 1 to `_value`\"}},\"notice\":\"You can add one to a value, or subtract one.\"}},\"settings\":{\"compilationTarget\":{\"/Users/cgewecke/code/ef/metacoin-source-verify/contracts/SimpleWithImport.sol\":\"SimpleWithImport\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/cgewecke/code/ef/metacoin-source-verify/contracts/Import.sol\":{\"keccak256\":\"0x0eccd3c879b832a2860fcb35d5981fd95921cc543bfdd0eac1b8cd6d66880582\",\"urls\":[\"bzz-raw://6453db3a40a99904ee01f85dbbc71fb036679215803b2efd075cc71a60fb2b7f\",\"dweb:/ipfs/QmYYGcypiit8VQ7vyJPHUPfgiBcBW8StVM1t71JzaGbhNm\"]},\"/Users/cgewecke/code/ef/metacoin-source-verify/contracts/SimpleWithImport.sol\":{\"keccak256\":\"0x3e70e021142df107f8b1815b146ad865f4e0a09e6fe71f8b0117c3638065cbef\",\"urls\":[\"bzz-raw://1378744c83bb94bab985e6bc1104d4942964151cf0c8fdc86ff29c1cd13d021c\",\"dweb:/ipfs/QmbCorezT6RnFM7kTQHALvKkTdeaK8Uqc9coyKo47Fxuq2\"]}},\"version\":1}" \ No newline at end of file diff --git a/test/sources/truffle/truffle-example.zip b/test/sources/truffle/truffle-example.zip new file mode 100644 index 000000000..550dd4dac Binary files /dev/null and b/test/sources/truffle/truffle-example.zip differ diff --git a/test/testcontracts/Create2/Deployer.json b/test/testcontracts/Create2/Deployer.json new file mode 100644 index 000000000..a3132c0b8 --- /dev/null +++ b/test/testcontracts/Create2/Deployer.json @@ -0,0 +1,94 @@ +{ + "bytecode": "608060405234801561001057600080fd5b50610c6b806100206000396000f3fe6080604052600436106100345760003560e01c806313f56dd9146100395780631b2d4e12146100555780639c4ae2d014610092575b600080fd5b610053600480360381019061004e91906102f3565b6100ae565b005b34801561006157600080fd5b5061007c600480360381019061007791906102f3565b6100cc565b6040516100899190610355565b60405180910390f35b6100ac60048036038101906100a791906104b6565b6100ef565b005b60006100ba8383610145565b90506100c681856100ef565b50505050565b6000806100d98484610145565b90506100e581866101c0565b9150509392505050565b60008183516020850134f59050803b61010757600080fd5b7fb03c53b28e78a88e31607a27e1fa48234dce28d5d9d9ec7b295aeb02e674a1e18183604051610138929190610521565b60405180910390a1505050565b606060006101536000610210565b905080846040516020016101679190610355565b604051602081830303815290604052846040516020016101879190610355565b6040516020818303038152906040526040516020016101a8939291906105bb565b60405160208183030381529060405291505092915050565b600080309050600060ff60f81b828587805190602001206040516020016101ea94939291906106cd565b6040516020818303038152906040528051906020012090508060001c9250505092915050565b6060604051806020016102229061023d565b6020820181038252601f19601f820116604052509050919050565b61051a806200071c83390190565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6102728161025f565b811461027d57600080fd5b50565b60008135905061028f81610269565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102c082610295565b9050919050565b6102d0816102b5565b81146102db57600080fd5b50565b6000813590506102ed816102c7565b92915050565b60008060006060848603121561030c5761030b610255565b5b600061031a86828701610280565b935050602061032b868287016102de565b925050604061033c868287016102de565b9150509250925092565b61034f816102b5565b82525050565b600060208201905061036a6000830184610346565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6103c38261037a565b810181811067ffffffffffffffff821117156103e2576103e161038b565b5b80604052505050565b60006103f561024b565b905061040182826103ba565b919050565b600067ffffffffffffffff8211156104215761042061038b565b5b61042a8261037a565b9050602081019050919050565b82818337600083830152505050565b600061045961045484610406565b6103eb565b90508281526020810184848401111561047557610474610375565b5b610480848285610437565b509392505050565b600082601f83011261049d5761049c610370565b5b81356104ad848260208601610446565b91505092915050565b600080604083850312156104cd576104cc610255565b5b600083013567ffffffffffffffff8111156104eb576104ea61025a565b5b6104f785828601610488565b925050602061050885828601610280565b9150509250929050565b61051b8161025f565b82525050565b60006040820190506105366000830185610346565b6105436020830184610512565b9392505050565b600081519050919050565b600081905092915050565b60005b8381101561057e578082015181840152602081019050610563565b60008484015250505050565b60006105958261054a565b61059f8185610555565b93506105af818560208601610560565b80840191505092915050565b60006105c7828661058a565b91506105d3828561058a565b91506105df828461058a565b9150819050949350505050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b61063361062e826105ec565b610618565b82525050565b60008160601b9050919050565b600061065182610639565b9050919050565b600061066382610646565b9050919050565b61067b610676826102b5565b610658565b82525050565b6000819050919050565b61069c6106978261025f565b610681565b82525050565b6000819050919050565b6000819050919050565b6106c76106c2826106a2565b6106ac565b82525050565b60006106d98287610622565b6001820191506106e9828661066a565b6014820191506106f9828561068b565b60208201915061070982846106b6565b6020820191508190509594505050505056fe608060405234801561001057600080fd5b5060405161051a38038061051a8339818101604052810190610032919061015b565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505061019b565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ea826100bf565b9050919050565b6100fa816100df565b811461010557600080fd5b50565b600081519050610117816100f1565b92915050565b6000610128826100bf565b9050919050565b6101388161011d565b811461014357600080fd5b50565b6000815190506101558161012f565b92915050565b60008060408385031215610172576101716100ba565b5b600061018085828601610108565b925050602061019185828601610146565b9150509250929050565b610370806101aa6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633ccfd60b146100465780638da5cb5b14610050578063f851a4401461006e575b600080fd5b61004e61008c565b005b6100586101db565b6040516100659190610266565b60405180910390f35b6100766101ff565b60405161008391906102a2565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806101335750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610172576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101699061031a565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156101d8573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061025082610225565b9050919050565b61026081610245565b82525050565b600060208201905061027b6000830184610257565b92915050565b600061028c82610225565b9050919050565b61029c81610281565b82525050565b60006020820190506102b76000830184610293565b92915050565b600082825260208201905092915050565b7f4e6f74207065726d697474656400000000000000000000000000000000000000600082015250565b6000610304600d836102bd565b915061030f826102ce565b602082019050919050565b60006020820190508181036000830152610333816102f7565b905091905056fea2646970667358221220099e087c4699bc7383d63a3f6b66ec54698fd9ad4529a89f85c99febccd30b6b64736f6c63430008110033a2646970667358221220e7159d0ed1db662fe528ae9915cd37ae9b49d9b20ea444adc1c8093ab23955e164736f6c63430008110033", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "salt", + "type": "uint256" + } + ], + "name": "Deployed", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "bytecode", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "_salt", + "type": "uint256" + } + ], + "name": "deploy", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_salt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "admin", + "type": "address" + } + ], + "name": "deployWalletExample", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_salt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "admin", + "type": "address" + } + ], + "name": "javascript_getCounterFactualAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] +} diff --git a/test/testcontracts/Create2/Deployer.sol b/test/testcontracts/Create2/Deployer.sol new file mode 100644 index 000000000..7fe7e2a93 --- /dev/null +++ b/test/testcontracts/Create2/Deployer.sol @@ -0,0 +1,87 @@ +pragma solidity 0.8.17; +import "./Wallet.sol"; + +contract Deployer { + event Deployed(address addr, uint256 salt); + + // This wouldn't actually happen on chain - this would instead use sourcify + // to get the creationCode and constructor ABI of a verified contract. + function javascript_getBytecode(address verified_contract) + private + pure + returns (bytes memory) + { + // lookup verified_contract. Lets pretend its Wallet + return type(Wallet).creationCode; + } + + // Again, this wouldn't actually happen on chain - + // from the found constructor ABI, show appropriate UI (two address fields in this example), + // encode the args + function javascript_getInitCodeFromConstructorArgs( + address owner, + address admin + ) private pure returns (bytes memory) { + bytes memory bytecode = javascript_getBytecode(address(0)); + return abi.encodePacked(bytecode, abi.encode(owner), abi.encode(admin)); + } + + function javascript_getCounterFactualAddress( + /* address sender, */ + // doesn't need to be this, could be the users own address + uint256 _salt, + address owner, + address admin + ) public view returns (address) { + bytes memory bytecode = javascript_getInitCodeFromConstructorArgs( + owner, + admin + ); + return getAddress(bytecode, _salt); + } + + function getAddress(bytes memory bytecode, uint256 _salt) + private + view + returns (address) + { + address sender = address(this); // could instead come from args + bytes32 hash = keccak256( + abi.encodePacked(bytes1(0xff), sender, _salt, keccak256(bytecode)) + ); + + return address(uint160(uint256(hash))); + } + + function deploy(bytes memory bytecode, uint256 _salt) public payable { + address addr; + + assembly { + addr := create2( + callvalue(), // wei sent with current call + // Actual code starts after skipping the first 32 bytes + add(bytecode, 0x20), + mload(bytecode), // Load the size of code contained in the first 32 bytes + _salt // Salt from function arguments + ) + + if iszero(extcodesize(addr)) { + revert(0, 0) + } + } + + emit Deployed(addr, _salt); + } + + function deployWalletExample( + uint256 _salt, + address owner, + address admin + ) public payable { + bytes memory bytecode = javascript_getInitCodeFromConstructorArgs( + owner, + admin + ); + deploy(bytecode, _salt); + } +} \ No newline at end of file diff --git a/test/testcontracts/Create2/Deployer_metadata.json b/test/testcontracts/Create2/Deployer_metadata.json new file mode 100644 index 000000000..4aedf186a --- /dev/null +++ b/test/testcontracts/Create2/Deployer_metadata.json @@ -0,0 +1,141 @@ +{ + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "salt", + "type": "uint256" + } + ], + "name": "Deployed", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "bytecode", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "_salt", + "type": "uint256" + } + ], + "name": "deploy", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_salt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "admin", + "type": "address" + } + ], + "name": "deployWalletExample", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_salt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "admin", + "type": "address" + } + ], + "name": "javascript_getCounterFactualAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/create2/Deployer.sol": "Deployer" + }, + "evmVersion": "london", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/create2/Deployer.sol": { + "keccak256": "0x4a50479735084f8b72566b4c7c434a531a50be67466dafb3c66837b56f3d2204", + "urls": [ + "bzz-raw://41744870a4ab45e436b43dcd89e6e7474c7b3f1e98ff080b013033c0dcf16ae8", + "dweb:/ipfs/QmNVCkSjTgA2P3xMnypHtbS4aW3vaDbDwX1iGtbKdpDjcp" + ] + }, + "contracts/create2/Wallet.sol": { + "keccak256": "0x735710f515332748a0587a7634dcc734b9e2ad6e1f95cc3db8c3d1be7696355f", + "urls": [ + "bzz-raw://b38344f5d37cce5a5840ce01068510762767025258d19b5019b2d065e5441c7a", + "dweb:/ipfs/QmYZEseorhB8Sqpasei4rMgmKwvBgd59z1HKoEGBridE75" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/test/testcontracts/Create2/Wallet.json b/test/testcontracts/Create2/Wallet.json new file mode 100644 index 000000000..0314da9bd --- /dev/null +++ b/test/testcontracts/Create2/Wallet.json @@ -0,0 +1,55 @@ +{ + "bytecode": "608060405234801561001057600080fd5b5060405161051a38038061051a8339818101604052810190610032919061015b565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505061019b565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ea826100bf565b9050919050565b6100fa816100df565b811461010557600080fd5b50565b600081519050610117816100f1565b92915050565b6000610128826100bf565b9050919050565b6101388161011d565b811461014357600080fd5b50565b6000815190506101558161012f565b92915050565b60008060408385031215610172576101716100ba565b5b600061018085828601610108565b925050602061019185828601610146565b9150509250929050565b610370806101aa6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633ccfd60b146100465780638da5cb5b14610050578063f851a4401461006e575b600080fd5b61004e61008c565b005b6100586101db565b6040516100659190610266565b60405180910390f35b6100766101ff565b60405161008391906102a2565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806101335750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610172576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101699061031a565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156101d8573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061025082610225565b9050919050565b61026081610245565b82525050565b600060208201905061027b6000830184610257565b92915050565b600061028c82610225565b9050919050565b61029c81610281565b82525050565b60006020820190506102b76000830184610293565b92915050565b600082825260208201905092915050565b7f4e6f74207065726d697474656400000000000000000000000000000000000000600082015250565b6000610304600d836102bd565b915061030f826102ce565b602082019050919050565b60006020820190508181036000830152610333816102f7565b905091905056fea2646970667358221220099e087c4699bc7383d63a3f6b66ec54698fd9ad4529a89f85c99febccd30b6b64736f6c63430008110033", + + "abi": [ + { + "inputs": [ + { + "internalType": "address payable", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_admin", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address payable", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} diff --git a/test/testcontracts/Create2/Wallet.sol b/test/testcontracts/Create2/Wallet.sol new file mode 100644 index 000000000..7954fd6fc --- /dev/null +++ b/test/testcontracts/Create2/Wallet.sol @@ -0,0 +1,16 @@ +pragma solidity 0.8.17; + +contract Wallet { + address payable public owner; + address public admin; + + constructor(address payable _owner, address _admin) { + owner = _owner; + admin = _admin; + } + + function withdraw() public { + require(msg.sender == owner || msg.sender == admin, "Not permitted"); + owner.transfer(address(this).balance); + } +} \ No newline at end of file diff --git a/test/testcontracts/Create2/Wallet_metadata.json b/test/testcontracts/Create2/Wallet_metadata.json new file mode 100644 index 000000000..29b78237d --- /dev/null +++ b/test/testcontracts/Create2/Wallet_metadata.json @@ -0,0 +1,94 @@ +{ + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address payable", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_admin", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address payable", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/create2/Wallet.sol": "Wallet" + }, + "evmVersion": "london", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/create2/Wallet.sol": { + "keccak256": "0x735710f515332748a0587a7634dcc734b9e2ad6e1f95cc3db8c3d1be7696355f", + "urls": [ + "bzz-raw://b38344f5d37cce5a5840ce01068510762767025258d19b5019b2d065e5441c7a", + "dweb:/ipfs/QmYZEseorhB8Sqpasei4rMgmKwvBgd59z1HKoEGBridE75" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/test/testcontracts/FactoryImmutable/Child.json b/test/testcontracts/FactoryImmutable/Child.json new file mode 100644 index 000000000..3dfbccaa3 --- /dev/null +++ b/test/testcontracts/FactoryImmutable/Child.json @@ -0,0 +1,42 @@ +{ + "bytecode": "60a06040526040516101d83803806101d88339818101604052810190610025919061006e565b80608081815250505061009b565b600080fd5b6000819050919050565b61004b81610038565b811461005657600080fd5b50565b60008151905061006881610042565b92915050565b60006020828403121561008457610083610033565b5b600061009284828501610059565b91505092915050565b60805161011d6100bb60003960008181606f01526095015261011d6000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c8063243dc8da146037578063c2985578146051575b600080fd5b603d606b565b6040516048919060ce565b60405180910390f35b60576093565b6040516062919060ce565b60405180910390f35b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000819050919050565b60c88160b7565b82525050565b600060208201905060e1600083018460c1565b9291505056fea26469706673582212204cef19b214b48bf1b8d91682dbe4b90eb578d91fca48a47942fb06c3cd2b9c3064736f6c63430008110033", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_foo", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "inputs": [], + "name": "foo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFoo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ] +} diff --git a/test/testcontracts/FactoryImmutable/Child_metadata.json b/test/testcontracts/FactoryImmutable/Child_metadata.json new file mode 100644 index 000000000..a16edf0c6 --- /dev/null +++ b/test/testcontracts/FactoryImmutable/Child_metadata.json @@ -0,0 +1,83 @@ +{ + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_foo", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "inputs": [], + "name": "foo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFoo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/FactoryTest.sol": "TestContract" + }, + "evmVersion": "london", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/FactoryTest.sol": { + "keccak256": "0x1d66a9fa4cc6ea53a5e2a608e6fafdbbcce809c42c3425bf1927c4a4013dfd97", + "license": "UNLICENSED", + "urls": [ + "bzz-raw://3af0fc44bf93c5ba388ac2ecf504d1d840006f334d7da26fea22c749e49e8b01", + "dweb:/ipfs/Qmf9NguQdNYDp3Nkx9CMJLgAVzVQj6k8gTjgxAUFUvzEzu" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/test/testcontracts/FactoryImmutable/Factory.json b/test/testcontracts/FactoryImmutable/Factory.json new file mode 100644 index 000000000..e642e99db --- /dev/null +++ b/test/testcontracts/FactoryImmutable/Factory.json @@ -0,0 +1,50 @@ +{ + "bytecode": "608060405234801561001057600080fd5b506104a5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80639c47ed9f1461003b578063a5e387511461006b575b600080fd5b610055600480360381019061005091906101e4565b610087565b6040516100629190610252565b60405180910390f35b610085600480360381019061008091906101e4565b6100c6565b005b6000818154811061009757600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000816040516100d59061019c565b6100df919061027c565b604051809103906000f0801580156100fb573d6000803e3d6000fd5b5090507f8caefb0c150c4d097593deb07f0591b0225f67392b0ae76f2df209b8be37b82a8160405161012d9190610252565b60405180910390a16000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6101d88061029883390190565b600080fd5b6000819050919050565b6101c1816101ae565b81146101cc57600080fd5b50565b6000813590506101de816101b8565b92915050565b6000602082840312156101fa576101f96101a9565b5b6000610208848285016101cf565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061023c82610211565b9050919050565b61024c81610231565b82525050565b60006020820190506102676000830184610243565b92915050565b610276816101ae565b82525050565b6000602082019050610291600083018461026d565b9291505056fe60a06040526040516101d83803806101d88339818101604052810190610025919061006e565b80608081815250505061009b565b600080fd5b6000819050919050565b61004b81610038565b811461005657600080fd5b50565b60008151905061006881610042565b92915050565b60006020828403121561008457610083610033565b5b600061009284828501610059565b91505092915050565b60805161011d6100bb60003960008181606f01526095015261011d6000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c8063243dc8da146037578063c2985578146051575b600080fd5b603d606b565b6040516048919060ce565b60405180910390f35b60576093565b6040516062919060ce565b60405180910390f35b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000819050919050565b60c88160b7565b82525050565b600060208201905060e1600083018460c1565b9291505056fea26469706673582212204cef19b214b48bf1b8d91682dbe4b90eb578d91fca48a47942fb06c3cd2b9c3064736f6c63430008110033a26469706673582212206217543eea19b3c7c21a3e06b23db972cfda415c80b98ab30255b282537a989c64736f6c63430008110033", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "contractAddress", + "type": "address" + } + ], + "name": "Deployment", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "childAddresses", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_foo", + "type": "uint256" + } + ], + "name": "deploy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} diff --git a/test/testcontracts/FactoryImmutable/FactoryTest.sol b/test/testcontracts/FactoryImmutable/FactoryTest.sol new file mode 100644 index 000000000..bc25c1e7c --- /dev/null +++ b/test/testcontracts/FactoryImmutable/FactoryTest.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity 0.8.17; + +contract Factory { + address[] public childAddresses; + event Deployment(address contractAddress); + + function deploy( + uint _foo + ) public { + address deployedAddress = address(new TestContract(_foo)); + emit Deployment(deployedAddress); + childAddresses.push(deployedAddress); + } +} + +contract TestContract { + uint public immutable foo; + + constructor(uint _foo) payable { + foo = _foo; + } + + function getFoo() public view returns (uint) { + return foo; + } +} + diff --git a/test/testcontracts/FactoryImmutable/Factory_metadata.json b/test/testcontracts/FactoryImmutable/Factory_metadata.json new file mode 100644 index 000000000..7fa349dcd --- /dev/null +++ b/test/testcontracts/FactoryImmutable/Factory_metadata.json @@ -0,0 +1,91 @@ +{ + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "contractAddress", + "type": "address" + } + ], + "name": "Deployment", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "childAddresses", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_foo", + "type": "uint256" + } + ], + "name": "deploy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/FactoryTest.sol": "Factory" + }, + "evmVersion": "london", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/FactoryTest.sol": { + "keccak256": "0x1d66a9fa4cc6ea53a5e2a608e6fafdbbcce809c42c3425bf1927c4a4013dfd97", + "license": "UNLICENSED", + "urls": [ + "bzz-raw://3af0fc44bf93c5ba388ac2ecf504d1d840006f334d7da26fea22c749e49e8b01", + "dweb:/ipfs/Qmf9NguQdNYDp3Nkx9CMJLgAVzVQj6k8gTjgxAUFUvzEzu" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/test/testcontracts/FactoryImmutableWithMsgSender/Child.json b/test/testcontracts/FactoryImmutableWithMsgSender/Child.json new file mode 100644 index 000000000..dea2868ce --- /dev/null +++ b/test/testcontracts/FactoryImmutableWithMsgSender/Child.json @@ -0,0 +1,55 @@ +{ + "bytecode": "60c06040526040516102ce3803806102ce833981810160405281019061002591906100a2565b80608081815250503373ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050506100cf565b600080fd5b6000819050919050565b61007f8161006c565b811461008a57600080fd5b50565b60008151905061009c81610076565b92915050565b6000602082840312156100b8576100b7610067565b5b60006100c68482850161008d565b91505092915050565b60805160a0516101d66100f8600039600060ca01526000818160a4015260ee01526101d66000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063243dc8da14610046578063b2bdfa7b14610064578063c298557814610082575b600080fd5b61004e6100a0565b60405161005b9190610129565b60405180910390f35b61006c6100c8565b6040516100799190610185565b60405180910390f35b61008a6100ec565b6040516100979190610129565b60405180910390f35b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000819050919050565b61012381610110565b82525050565b600060208201905061013e600083018461011a565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061016f82610144565b9050919050565b61017f81610164565b82525050565b600060208201905061019a6000830184610176565b9291505056fea2646970667358221220e9dce8272c1d680ccb7ddd708c69a2ecf33f0b7935b4e0e2c6871046ce7f7a7764736f6c63430008110033", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_foo", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "inputs": [], + "name": "_owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "foo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFoo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ] +} diff --git a/test/testcontracts/FactoryImmutableWithMsgSender/Child_metadata.json b/test/testcontracts/FactoryImmutableWithMsgSender/Child_metadata.json new file mode 100644 index 000000000..c6cff6e06 --- /dev/null +++ b/test/testcontracts/FactoryImmutableWithMsgSender/Child_metadata.json @@ -0,0 +1,96 @@ +{ + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_foo", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "inputs": [], + "name": "_owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "foo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFoo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/FactoryTest.sol": "TestContract" + }, + "evmVersion": "london", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/FactoryTest.sol": { + "keccak256": "0x2149e103839bd89cfdea00cea87b3507cf0257bd3d0db0002fa4f62a16766120", + "license": "UNLICENSED", + "urls": [ + "bzz-raw://f0184fdba29dcd2b5820865c3aae1251a71374bd08c7a369d829910c7a43626e", + "dweb:/ipfs/QmPazQSmUW1t3nZeEioi6y2CvT1g4r8tew4KPbjVHcga5G" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/test/testcontracts/FactoryImmutableWithMsgSender/Factory.json b/test/testcontracts/FactoryImmutableWithMsgSender/Factory.json new file mode 100644 index 000000000..499be2de8 --- /dev/null +++ b/test/testcontracts/FactoryImmutableWithMsgSender/Factory.json @@ -0,0 +1,50 @@ +{ + "bytecode": "608060405234801561001057600080fd5b5061059b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80639c47ed9f1461003b578063a5e387511461006b575b600080fd5b610055600480360381019061005091906101e4565b610087565b6040516100629190610252565b60405180910390f35b610085600480360381019061008091906101e4565b6100c6565b005b6000818154811061009757600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000816040516100d59061019c565b6100df919061027c565b604051809103906000f0801580156100fb573d6000803e3d6000fd5b5090507f8caefb0c150c4d097593deb07f0591b0225f67392b0ae76f2df209b8be37b82a8160405161012d9190610252565b60405180910390a16000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6102ce8061029883390190565b600080fd5b6000819050919050565b6101c1816101ae565b81146101cc57600080fd5b50565b6000813590506101de816101b8565b92915050565b6000602082840312156101fa576101f96101a9565b5b6000610208848285016101cf565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061023c82610211565b9050919050565b61024c81610231565b82525050565b60006020820190506102676000830184610243565b92915050565b610276816101ae565b82525050565b6000602082019050610291600083018461026d565b9291505056fe60c06040526040516102ce3803806102ce833981810160405281019061002591906100a2565b80608081815250503373ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050506100cf565b600080fd5b6000819050919050565b61007f8161006c565b811461008a57600080fd5b50565b60008151905061009c81610076565b92915050565b6000602082840312156100b8576100b7610067565b5b60006100c68482850161008d565b91505092915050565b60805160a0516101d66100f8600039600060ca01526000818160a4015260ee01526101d66000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063243dc8da14610046578063b2bdfa7b14610064578063c298557814610082575b600080fd5b61004e6100a0565b60405161005b9190610129565b60405180910390f35b61006c6100c8565b6040516100799190610185565b60405180910390f35b61008a6100ec565b6040516100979190610129565b60405180910390f35b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000819050919050565b61012381610110565b82525050565b600060208201905061013e600083018461011a565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061016f82610144565b9050919050565b61017f81610164565b82525050565b600060208201905061019a6000830184610176565b9291505056fea2646970667358221220e9dce8272c1d680ccb7ddd708c69a2ecf33f0b7935b4e0e2c6871046ce7f7a7764736f6c63430008110033a2646970667358221220431f8c79186e2abd6834805e708b12c75c00c0b70de581e840001fb92accb99264736f6c63430008110033", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "contractAddress", + "type": "address" + } + ], + "name": "Deployment", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "childAddresses", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_foo", + "type": "uint256" + } + ], + "name": "deploy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} diff --git a/test/testcontracts/FactoryImmutableWithMsgSender/FactoryTest.sol b/test/testcontracts/FactoryImmutableWithMsgSender/FactoryTest.sol new file mode 100644 index 000000000..fd5162f30 --- /dev/null +++ b/test/testcontracts/FactoryImmutableWithMsgSender/FactoryTest.sol @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity 0.8.17; + +contract Factory { + address[] public childAddresses; + event Deployment(address contractAddress); + + function deploy( + uint _foo + ) public { + address deployedAddress = address(new TestContract(_foo)); + emit Deployment(deployedAddress); + childAddresses.push(deployedAddress); + } +} + +contract TestContract { + uint public immutable foo; + address public immutable _owner; + + constructor(uint _foo) payable { + foo = _foo; + _owner = msg.sender; + } + + function getFoo() public view returns (uint) { + return foo; + } +} + diff --git a/test/testcontracts/FactoryImmutableWithMsgSender/Factory_metadata.json b/test/testcontracts/FactoryImmutableWithMsgSender/Factory_metadata.json new file mode 100644 index 000000000..ecbf45457 --- /dev/null +++ b/test/testcontracts/FactoryImmutableWithMsgSender/Factory_metadata.json @@ -0,0 +1,91 @@ +{ + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "contractAddress", + "type": "address" + } + ], + "name": "Deployment", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "childAddresses", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_foo", + "type": "uint256" + } + ], + "name": "deploy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/FactoryTest.sol": "Factory" + }, + "evmVersion": "london", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/FactoryTest.sol": { + "keccak256": "0x2149e103839bd89cfdea00cea87b3507cf0257bd3d0db0002fa4f62a16766120", + "license": "UNLICENSED", + "urls": [ + "bzz-raw://f0184fdba29dcd2b5820865c3aae1251a71374bd08c7a369d829910c7a43626e", + "dweb:/ipfs/QmPazQSmUW1t3nZeEioi6y2CvT1g4r8tew4KPbjVHcga5G" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/test/testcontracts/FactoryImmutableWithoutConstrArg/Child3.json b/test/testcontracts/FactoryImmutableWithoutConstrArg/Child3.json new file mode 100644 index 000000000..a7e9729ce --- /dev/null +++ b/test/testcontracts/FactoryImmutableWithoutConstrArg/Child3.json @@ -0,0 +1,24 @@ +{ + "bytecode": "60a060405234801561001057600080fd5b503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805160f761005d60003960006049015260f76000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80638da5cb5b14602d575b600080fd5b60336047565b604051603e919060a8565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000609482606b565b9050919050565b60a281608b565b82525050565b600060208201905060bb6000830184609b565b9291505056fea26469706673582212208df0aa34584dd7d7ace64dfd11ebf4dae7f62c3e281f4e7dd9cec60a468272b264736f6c63430008110033", + + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] +} diff --git a/test/testcontracts/FactoryImmutableWithoutConstrArg/Child3_metadata.json b/test/testcontracts/FactoryImmutableWithoutConstrArg/Child3_metadata.json new file mode 100644 index 000000000..ed42aa3b3 --- /dev/null +++ b/test/testcontracts/FactoryImmutableWithoutConstrArg/Child3_metadata.json @@ -0,0 +1,64 @@ +{ + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/FactoryTest3.sol": "Child2" + }, + "evmVersion": "london", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/FactoryTest3.sol": { + "keccak256": "0xea5d39ae3f4f927fdd2b681b6cb660bc250a5cd62f25428344702f2ee1be72b0", + "license": "MIT", + "urls": [ + "bzz-raw://1ffc04a3eabf04a6935b32bf64896d34c6be8d56a6ba7af7c502ccb474684f3a", + "dweb:/ipfs/QmYAzHSjutXEvWSPFnqg4fHBw6Why8UryCdTrP3ah3pqmf" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/test/testcontracts/FactoryImmutableWithoutConstrArg/Factory3.json b/test/testcontracts/FactoryImmutableWithoutConstrArg/Factory3.json new file mode 100644 index 000000000..09db39b13 --- /dev/null +++ b/test/testcontracts/FactoryImmutableWithoutConstrArg/Factory3.json @@ -0,0 +1,58 @@ +{ + "bytecode": "608060405234801561001057600080fd5b5061078b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80634892e8e8146100465780637002ce4214610064578063a3a4ba3114610094575b600080fd5b61004e61009e565b60405161005b9190610408565b60405180910390f35b61007e60048036038101906100799190610465565b6101c4565b60405161008b91906104a1565b60405180910390f35b61009c610203565b005b60606001546000805490506100b391906104eb565b67ffffffffffffffff8111156100cc576100cb61051f565b5b6040519080825280602002602001820160405280156100fa5781602001602082028036833780820191505090505b509050600080600090505b6000805490508110156101bf57600081815481106101265761012561054e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383815181106101645761016361054e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081806101a99061057d565b92505080806101b79061057d565b915050610105565b505090565b600081815481106101d457600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000604051610211906102cd565b604051809103906000f08015801561022d573d6000803e3d6000fd5b5090506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f7b4b5576882318f3025ede3b4525a692b9a9792674c6bd0f82ce62845374a921816040516102c291906105e6565b60405180910390a150565b6101548061060283390190565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061034b61034661034184610306565b610326565b610306565b9050919050565b600061035d82610330565b9050919050565b600061036f82610352565b9050919050565b61037f81610364565b82525050565b60006103918383610376565b60208301905092915050565b6000602082019050919050565b60006103b5826102da565b6103bf81856102e5565b93506103ca836102f6565b8060005b838110156103fb5781516103e28882610385565b97506103ed8361039d565b9250506001810190506103ce565b5085935050505092915050565b6000602082019050818103600083015261042281846103aa565b905092915050565b600080fd5b6000819050919050565b6104428161042f565b811461044d57600080fd5b50565b60008135905061045f81610439565b92915050565b60006020828403121561047b5761047a61042a565b5b600061048984828501610450565b91505092915050565b61049b81610364565b82525050565b60006020820190506104b66000830184610492565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006104f68261042f565b91506105018361042f565b9250828203905081811115610519576105186104bc565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006105888261042f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036105ba576105b96104bc565b5b600182019050919050565b60006105d082610306565b9050919050565b6105e0816105c5565b82525050565b60006020820190506105fb60008301846105d7565b9291505056fe60a060405234801561001057600080fd5b503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805160f761005d60003960006049015260f76000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80638da5cb5b14602d575b600080fd5b60336047565b604051603e919060a8565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000609482606b565b9050919050565b60a281608b565b82525050565b600060208201905060bb6000830184609b565b9291505056fea26469706673582212208df0aa34584dd7d7ace64dfd11ebf4dae7f62c3e281f4e7dd9cec60a468272b264736f6c63430008110033a26469706673582212201d4bccb4d0927dfe9b3b3bb96a6aaf6c4f40eac71410dae6a300d10f935f1efd64736f6c63430008110033", + + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "childAddress", + "type": "address" + } + ], + "name": "ChildCreated", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "children", + "outputs": [ + { + "internalType": "contract Child2", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createChild", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getChildren", + "outputs": [ + { + "internalType": "contract Child2[]", + "name": "_children", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + } + ] +} diff --git a/test/testcontracts/FactoryImmutableWithoutConstrArg/Factory3_metadata.json b/test/testcontracts/FactoryImmutableWithoutConstrArg/Factory3_metadata.json new file mode 100644 index 000000000..ae183a9b2 --- /dev/null +++ b/test/testcontracts/FactoryImmutableWithoutConstrArg/Factory3_metadata.json @@ -0,0 +1,98 @@ +{ + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "childAddress", + "type": "address" + } + ], + "name": "ChildCreated", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "children", + "outputs": [ + { + "internalType": "contract Child2", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createChild", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getChildren", + "outputs": [ + { + "internalType": "contract Child2[]", + "name": "_children", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/FactoryTest3.sol": "Factory2" + }, + "evmVersion": "london", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "contracts/FactoryTest3.sol": { + "keccak256": "0xea5d39ae3f4f927fdd2b681b6cb660bc250a5cd62f25428344702f2ee1be72b0", + "license": "MIT", + "urls": [ + "bzz-raw://1ffc04a3eabf04a6935b32bf64896d34c6be8d56a6ba7af7c502ccb474684f3a", + "dweb:/ipfs/QmYAzHSjutXEvWSPFnqg4fHBw6Why8UryCdTrP3ah3pqmf" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/test/testcontracts/FactoryImmutableWithoutConstrArg/FactoryTest3.sol b/test/testcontracts/FactoryImmutableWithoutConstrArg/FactoryTest3.sol new file mode 100644 index 000000000..fee0e1527 --- /dev/null +++ b/test/testcontracts/FactoryImmutableWithoutConstrArg/FactoryTest3.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +contract Factory2{ + Child2[] public children; + uint disabledCount; + + event ChildCreated(address childAddress); + + function createChild() external{ + Child2 child = new Child2(); + children.push(child); + emit ChildCreated(address(child)); + } + + function getChildren() external view returns(Child2[] memory _children){ + _children = new Child2[](children.length- disabledCount); + uint count; + for(uint i=0;i=0.7.0 <0.9.0;\n\n/**\n * @title Storage\n * @dev Store & retrieve value in a variable\n */\ncontract Storage {\n\n uint256 number;\n\n /**\n * @dev Store value in variable\n * @param num value to store\n */\n function store(uint256 num) public {\n number = num;\n }\n\n /**\n * @dev Return value \n * @return value of 'number'\n */\n function retrieve() public view returns (uint256){\n return number;\n }\n}\n" + } + }, + "language": "Solidity" +} diff --git a/test/testcontracts/Storage/metadata.upMultipleDirs.json b/test/testcontracts/Storage/metadata.upMultipleDirs.json new file mode 100644 index 000000000..e51b7ceac --- /dev/null +++ b/test/testcontracts/Storage/metadata.upMultipleDirs.json @@ -0,0 +1,64 @@ +{ + "compiler": { "version": "0.8.4+commit.c7e474f2" }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "name": "retrieve", + "outputs": [ + { "internalType": "uint256", "name": "", "type": "uint256" } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "num", "type": "uint256" } + ], + "name": "store", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "Store & retrieve value in a variable", + "kind": "dev", + "methods": { + "retrieve()": { + "details": "Return value ", + "returns": { "_0": "value of 'number'" } + }, + "store(uint256)": { + "details": "Store value in variable", + "params": { "num": "value to store" } + } + }, + "title": "Storage", + "version": 1 + }, + "userdoc": { "kind": "user", "methods": {}, "version": 1 } + }, + "settings": { + "compilationTarget": { + "..contracts/../../../../../Storage.sol": "Storage" + }, + "evmVersion": "istanbul", + "libraries": {}, + "metadata": { "bytecodeHash": "ipfs" }, + "optimizer": { "enabled": false, "runs": 200 }, + "remappings": [] + }, + "sources": { + "..contracts/../../../../../Storage.sol": { + "keccak256": "0x88c47206b5ec3d60ab820e9d126c4ac54cb17fa7396ff49ebe27db2862982ad8", + "license": "GPL-3.0", + "urls": [ + "bzz-raw://5d1eeb01c8c10bed9e290f4a80a8d4081422a7b298a13049d72867022522cf6b", + "dweb:/ipfs/QmaFRC9ZtT7y3t9XNWCbDuMTEwKkyaQJzYFzw3NbeohSn5" + ] + } + }, + "version": 1 +} diff --git a/test/testcontracts/Storage/metadataModified.json b/test/testcontracts/Storage/metadataModified.json index f7d24c9f1..8bf805ad1 100644 --- a/test/testcontracts/Storage/metadataModified.json +++ b/test/testcontracts/Storage/metadataModified.json @@ -75,8 +75,8 @@ }, "sources": { "contracts/StorageModified.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\n// This line + changed contrract name will cause a partial match to the deployed contract.\npragma solidity >=0.7.0 <0.9.0;\n\n/**\n * @title Storage\n * @dev Store & retrieve value in a variable\n */\ncontract StorageModified {\n\n uint256 number;\n\n /**\n * @dev Store value in variable\n * @param num value to store\n */\n function store(uint256 num) public {\n number = num;\n }\n\n /**\n * @dev Return value \n * @return value of 'number'\n */\n function retrieve() public view returns (uint256){\n return number;\n }\n}\n", "keccak256": "0x50157ddc4d5628690e0325bd6b78e33b0b6055231c98a9d0fa07e1328e504a71", - "license": "GPL-3.0", "urls": [ "bzz-raw://504b8df51a851f24032ac73f8f77a9875670f26fd742b247549e15314c444bec", "dweb:/ipfs/QmVzsjWz4U2gm6gEm2edtFMK5EwtR2XxHnHYkEWsuXez9f" diff --git a/test/testcontracts/WithImmutables/artifact.json b/test/testcontracts/WithImmutables/artifact.json new file mode 100644 index 000000000..b591c7466 --- /dev/null +++ b/test/testcontracts/WithImmutables/artifact.json @@ -0,0 +1,55 @@ +{ + "bytecode": "60a060405234801561001057600080fd5b506040516103ca3803806103ca8339818101604052602081101561003357600080fd5b81019080805190602001909291905050508060808181525050506080516103636100676000398061026052506103636000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806357de26a41461004657806379d6348d146100c9578063ced7b2e314610184575b600080fd5b61004e6101a2565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561008e578082015181840152602081019050610073565b50505050905090810190601f1680156100bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610182600480360360208110156100df57600080fd5b81019080803590602001906401000000008111156100fc57600080fd5b82018360208201111561010e57600080fd5b8035906020019184600183028401116401000000008311171561013057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610244565b005b61018c61025e565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561023a5780601f1061020f5761010080835404028352916020019161023a565b820191906000526020600020905b81548152906001019060200180831161021d57829003601f168201915b5050505050905090565b806000908051906020019061025a929190610282565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826102b857600085556102ff565b82601f106102d157805160ff19168380011785556102ff565b828001600101855582156102ff579182015b828111156102fe5782518255916020019190600101906102e3565b5b50905061030c9190610310565b5090565b5b80821115610329576000816000905550600101610311565b509056fea26469706673582212200f4b79ce4268a474314f15ab80925bd78deed6af2213db6b41d15da4ec81536564736f6c63430007040033", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "a", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "_a", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "read", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "sign", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} diff --git a/test/chains/sources/shared/old.withImmutables.metadata.json b/test/testcontracts/WithImmutables/metadata.json similarity index 94% rename from test/chains/sources/shared/old.withImmutables.metadata.json rename to test/testcontracts/WithImmutables/metadata.json index 9cc6c5703..10a3502ba 100644 --- a/test/chains/sources/shared/old.withImmutables.metadata.json +++ b/test/testcontracts/WithImmutables/metadata.json @@ -69,7 +69,7 @@ }, "settings": { "compilationTarget": { - "browser/WithImmutables.sol": "WithImmutables" + "contracts/WithImmutables.sol": "WithImmutables" }, "evmVersion": "istanbul", "libraries": {}, @@ -83,7 +83,7 @@ "remappings": [] }, "sources": { - "browser/WithImmutables.sol": { + "contracts/WithImmutables.sol": { "keccak256": "0xbee62e4af99b4199c5b0982f5da15fc58215a4d547724bc574d516df07f66dc2", "urls": [ "bzz-raw://6d83c127e075a149ec14c6af579bc7b24955cdb7578ae7da2f253b7142d267cc", diff --git a/test/testcontracts/WithImmutables/sources/WithImmutables.sol b/test/testcontracts/WithImmutables/sources/WithImmutables.sol new file mode 100644 index 000000000..d920e6cdd --- /dev/null +++ b/test/testcontracts/WithImmutables/sources/WithImmutables.sol @@ -0,0 +1,19 @@ +pragma solidity >=0.7.0; + +contract WithImmutables { + uint256 public immutable _a; + + string _name; + + constructor (uint256 a) { + _a = a; + } + + function sign(string memory name) public { + _name = name; + } + + function read() public view returns(string memory) { + return _name; + } +} \ No newline at end of file diff --git a/test/utils.js b/test/utils.js deleted file mode 100644 index f960a0178..000000000 --- a/test/utils.js +++ /dev/null @@ -1,71 +0,0 @@ -// const assert = require('assert'); -// const simple = require('./sources/pass/simple.js'); -// const bzzr0 = require('./sources/pass/simple.bzzr0.js'); -// const bzzr1 = require('./sources/pass/simple.bzzr1.js'); -// const dagPB = require('ipld-dag-pb'); -// const UnixFS = require('ipfs-unixfs'); -// const multihashes = require('multihashes'); -// const web3 = require('web3'); - -// const { -// cborDecode, -// getBytecodeWithoutMetadata -// } = require('../src/utils/Utils'); - -// describe('utils', function () { - -// it('cborDecode: extracts an ipfs hash from bytecode which matches metadata hash', async function () { -// const metadata = simple.compilerOutput.metadata; -// const deployedBytecode = simple.compilerOutput.evm.deployedBytecode.object; -// const cborData = cborDecode(web3.utils.hexToBytes(deployedBytecode)) - -// // Create IPFS dag node for metadata -// const file = new UnixFS('file', Buffer.from(metadata)); -// const node = new dagPB.DAGNode(file.marshal()); - -// // Convert metadata node hash to DAGLink object -// const metadataLink = await node.toDAGLink() - -// // Extract ipfs -// const metadataHash = multihashes.toB58String(metadataLink._cid.multihash); -// const bytecodeHash = multihashes.toB58String(cborData['ipfs']); - -// assert.equal(metadataHash, bytecodeHash); -// }); - -// it('getBytecodeWithoutMetadata: removes metadata (IPFS)', function () { -// const deployedBytecode = simple.compilerOutput.evm.deployedBytecode.object; -// const trimmed = getBytecodeWithoutMetadata(deployedBytecode); -// const diffLength = deployedBytecode.length - trimmed.length; -// const metadata = deployedBytecode.slice(-diffLength); - -// // a264 is the ipfs prefix for the metadata section... -// assert.equal(metadata.slice(0, 4), "a264"); -// }); - -// it('getBytecodeWithoutMetadata: removes metadata (bzzr0)', function () { -// const deployedBytecode = bzzr0.compilerOutput.evm.deployedBytecode.object; -// const trimmed = getBytecodeWithoutMetadata(deployedBytecode); -// const diffLength = deployedBytecode.length - trimmed.length; -// const metadata = deployedBytecode.slice(-diffLength); - -// // a265 is the bzzr prefix for the metadata section... -// assert.equal(metadata.slice(0, 4), "a265"); -// }); - -// it('getBytecodeWithoutMetadata: removes metadata (bzzr1)', function () { -// const deployedBytecode = bzzr1.compilerOutput.evm.deployedBytecode.object; -// const trimmed = getBytecodeWithoutMetadata(deployedBytecode); -// const diffLength = deployedBytecode.length - trimmed.length; -// const metadata = deployedBytecode.slice(-diffLength); - -// // a265 is the bzzr prefix for the metadata section... -// assert.equal(metadata.slice(0, 4), "a265"); -// }); - -// it.skip('getBytecode: gets bytecode for address'); -// it.skip('recompile: compiles sources with metadata spec. compiler'); -// it.skip('recompile: errors on compilation failure'); -// it.skip('reformatMetadata: synthesizes a compiler input from sources and metadata'); -// it.skip('reformatMetadata: throws if compilation target is missing'); -// }) diff --git a/tsconfig.json b/tsconfig.json index 11918ecfa..061199fab 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,8 +7,8 @@ "strict": true, "outDir": "dist", "resolveJsonModule": true, - "strictNullChecks": false, "declaration": true, + "declarationMap": true, "module": "commonjs" }, "include": ["./src"] diff --git a/ui/package-lock.json b/ui/package-lock.json index fc79c357c..c63a3b157 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -8,7 +8,11 @@ "name": "sourcify-ui", "version": "0.1.0", "dependencies": { + "@ethersproject/abi": "^5.7.0", "@ethersproject/address": "^5.6.1", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", "@headlessui/react": "^1.4.2", "@testing-library/jest-dom": "^5.16.1", "@testing-library/react": "^12.1.2", @@ -23,6 +27,7 @@ "fuse.js": "^6.5.0", "http-status-codes": "^2.2.0", "react": "^17.0.2", + "react-device-detect": "^2.2.2", "react-dom": "^17.0.2", "react-dropzone": "^11.4.2", "react-icons": "^4.3.1", @@ -33,7 +38,7 @@ "react-syntax-highlighter": "^15.4.5", "react-tooltip": "^4.2.21", "recharts": "^2.1.8", - "typescript": "^4.5.4", + "typescript": "^4.9.3", "web-vitals": "^2.1.2" }, "devDependencies": { @@ -2009,10 +2014,82 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, "node_modules/@ethersproject/address": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", - "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", "funding": [ { "type": "individual", @@ -2024,17 +2101,35 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.1" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0" } }, "node_modules/@ethersproject/bignumber": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz", - "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", "funding": [ { "type": "individual", @@ -2046,15 +2141,15 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", "bn.js": "^5.2.1" } }, "node_modules/@ethersproject/bytes": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", - "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", "funding": [ { "type": "individual", @@ -2066,13 +2161,57 @@ } ], "dependencies": { - "@ethersproject/logger": "^5.6.0" + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "node_modules/@ethersproject/keccak256": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.1.tgz", - "integrity": "sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", "funding": [ { "type": "individual", @@ -2084,14 +2223,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.1", + "@ethersproject/bytes": "^5.7.0", "js-sha3": "0.8.0" } }, "node_modules/@ethersproject/logger": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", - "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", "funding": [ { "type": "individual", @@ -2103,10 +2242,88 @@ } ] }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, "node_modules/@ethersproject/rlp": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz", - "integrity": "sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", "funding": [ { "type": "individual", @@ -2118,8 +2335,57 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "node_modules/@headlessui/react": { @@ -4563,6 +4829,11 @@ "node": ">=8" } }, + "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/browser-process-hrtime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", @@ -6085,6 +6356,25 @@ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.33.tgz", "integrity": "sha512-OVK1Ad3pHnmuXPhEfq85X8vUKr1UPNHryBnbKnyLcAfh8dPwoFjoDhDlP5KpPJIiymvSucZs48UBrE1250IxOw==" }, + "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/emittery": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", @@ -7731,6 +8021,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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/hast-util-parse-selector": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", @@ -7780,6 +8079,16 @@ "@babel/runtime": "^7.7.6" } }, + "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/hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -9895,6 +10204,11 @@ "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/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -11955,6 +12269,18 @@ "node": ">= 12.13.0" } }, + "node_modules/react-device-detect": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/react-device-detect/-/react-device-detect-2.2.2.tgz", + "integrity": "sha512-zSN1gIAztUekp5qUT/ybHwQ9fmOqVT1psxpSlTn1pe0CO+fnJHKRLOWWac5nKxOxvOpD/w84hk1I+EydrJp7SA==", + "dependencies": { + "ua-parser-js": "^1.0.2" + }, + "peerDependencies": { + "react": ">= 0.14.0", + "react-dom": ">= 0.14.0" + } + }, "node_modules/react-dom": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", @@ -13916,9 +14242,9 @@ } }, "node_modules/typescript": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", - "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -13927,6 +14253,24 @@ "node": ">=4.2.0" } }, + "node_modules/ua-parser-js": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.32.tgz", + "integrity": "sha512-dXVsz3M4j+5tTiovFVyVqssXBu5HM47//YSOeZ9fQkdDKkfzv2v3PP1jmH6FUyPW+yCSn7aBVK1fGGKNhowdDA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } + }, "node_modules/unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", @@ -16329,57 +16673,198 @@ } } }, + "@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, "@ethersproject/address": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", - "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", "requires": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.1" + "@ethersproject/bytes": "^5.7.0" } }, "@ethersproject/bignumber": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz", - "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", "bn.js": "^5.2.1" } }, "@ethersproject/bytes": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", - "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", "requires": { - "@ethersproject/logger": "^5.6.0" + "@ethersproject/bignumber": "^5.7.0" + } + }, + "@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "@ethersproject/keccak256": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.1.tgz", - "integrity": "sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", "requires": { - "@ethersproject/bytes": "^5.6.1", + "@ethersproject/bytes": "^5.7.0", "js-sha3": "0.8.0" } }, "@ethersproject/logger": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", - "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==" + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" + }, + "@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } }, "@ethersproject/rlp": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz", - "integrity": "sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "requires": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "@headlessui/react": { @@ -18244,6 +18729,11 @@ "fill-range": "^7.0.1" } }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, "browser-process-hrtime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", @@ -19384,6 +19874,27 @@ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.33.tgz", "integrity": "sha512-OVK1Ad3pHnmuXPhEfq85X8vUKr1UPNHryBnbKnyLcAfh8dPwoFjoDhDlP5KpPJIiymvSucZs48UBrE1250IxOw==" }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "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" + }, + "dependencies": { + "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==" + } + } + }, "emittery": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", @@ -20572,6 +21083,15 @@ "has-symbols": "^1.0.2" } }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, "hast-util-parse-selector": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", @@ -20607,6 +21127,16 @@ "@babel/runtime": "^7.7.6" } }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, "hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -22160,6 +22690,11 @@ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" }, + "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==" + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -23541,6 +24076,14 @@ } } }, + "react-device-detect": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/react-device-detect/-/react-device-detect-2.2.2.tgz", + "integrity": "sha512-zSN1gIAztUekp5qUT/ybHwQ9fmOqVT1psxpSlTn1pe0CO+fnJHKRLOWWac5nKxOxvOpD/w84hk1I+EydrJp7SA==", + "requires": { + "ua-parser-js": "^1.0.2" + } + }, "react-dom": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", @@ -25012,9 +25555,14 @@ } }, "typescript": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", - "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==" + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==" + }, + "ua-parser-js": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.32.tgz", + "integrity": "sha512-dXVsz3M4j+5tTiovFVyVqssXBu5HM47//YSOeZ9fQkdDKkfzv2v3PP1jmH6FUyPW+yCSn7aBVK1fGGKNhowdDA==" }, "unbox-primitive": { "version": "1.0.1", diff --git a/ui/package.json b/ui/package.json index 02217c019..4b5706729 100644 --- a/ui/package.json +++ b/ui/package.json @@ -3,7 +3,11 @@ "version": "0.1.0", "private": true, "dependencies": { + "@ethersproject/abi": "^5.7.0", "@ethersproject/address": "^5.6.1", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", "@headlessui/react": "^1.4.2", "@testing-library/jest-dom": "^5.16.1", "@testing-library/react": "^12.1.2", @@ -18,6 +22,7 @@ "fuse.js": "^6.5.0", "http-status-codes": "^2.2.0", "react": "^17.0.2", + "react-device-detect": "^2.2.2", "react-dom": "^17.0.2", "react-dropzone": "^11.4.2", "react-icons": "^4.3.1", @@ -28,7 +33,7 @@ "react-syntax-highlighter": "^15.4.5", "react-tooltip": "^4.2.21", "recharts": "^2.1.8", - "typescript": "^4.5.4", + "typescript": "^4.9.3", "web-vitals": "^2.1.2" }, "scripts": { diff --git a/ui/public/index.html b/ui/public/index.html index 0cdb2aa57..2de7a6b37 100644 --- a/ui/public/index.html +++ b/ui/public/index.html @@ -24,18 +24,18 @@ diff --git a/ui/src/assets/icons/github.svg b/ui/src/assets/icons/github.svg deleted file mode 100644 index f376c3efe..000000000 --- a/ui/src/assets/icons/github.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/ui/src/assets/integrations/dexGuru.svg b/ui/src/assets/integrations/dexGuru.svg new file mode 100644 index 000000000..9079b8837 --- /dev/null +++ b/ui/src/assets/integrations/dexGuru.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ui/src/assets/integrations/dexGuruOptimism.png b/ui/src/assets/integrations/dexGuruOptimism.png new file mode 100644 index 000000000..31003c936 Binary files /dev/null and b/ui/src/assets/integrations/dexGuruOptimism.png differ diff --git a/ui/src/assets/integrations/truffle.png b/ui/src/assets/integrations/truffle.png new file mode 100644 index 000000000..5c817e684 Binary files /dev/null and b/ui/src/assets/integrations/truffle.png differ diff --git a/ui/src/assets/integrations/wagmi.png b/ui/src/assets/integrations/wagmi.png new file mode 100644 index 000000000..1b580c292 Binary files /dev/null and b/ui/src/assets/integrations/wagmi.png differ diff --git a/ui/src/components/Button/index.tsx b/ui/src/components/Button/index.tsx index 0d6df15ba..1fd668e83 100644 --- a/ui/src/components/Button/index.tsx +++ b/ui/src/components/Button/index.tsx @@ -15,6 +15,10 @@ const Button = ({ children, type, className, onClick }: ButtonProps) => { bg = "bg-ceruleanBlue-100"; hoverBg = "hover:bg-ceruleanBlue-200"; textColor = "text-ceruleanBlue-500"; + } else if (type === "white") { + bg = "bg-slate-50"; + hoverBg = "hover:bg-slate-200"; + textColor = "text-slate-900"; } return ( diff --git a/ui/src/components/ChainSelect/index.tsx b/ui/src/components/ChainSelect/index.tsx index 23941a1ed..99a7b985e 100644 --- a/ui/src/components/ChainSelect/index.tsx +++ b/ui/src/components/ChainSelect/index.tsx @@ -1,39 +1,12 @@ -import Fuse from "fuse.js"; import React, { useContext } from "react"; -import SelectSearch, { - SelectSearchOption, - SelectSearchProps, -} from "react-select-search"; import { Context } from "../../Context"; import "./style.css"; +import { fuzzySearch } from "../fuzzySearch"; +import SelectSearch, { SelectSearchProps } from "react-select-search"; -// Fix incorrect value field type of onChange. Should be string and not SelectedOptionValue -type WithoutOnChange = Omit; // Remove prop -// Add correct onChange prop type -type ModifiedSelectSearchProps = WithoutOnChange & { - onChange: (value: number) => void; -}; -// Typecast. Don't cast with "SelectSearch as unknown as FC" to not lose the types other than onChange. -const CustomSelectSearch = - SelectSearch as React.FC as React.FC; - -function fuzzySearch(options: SelectSearchOption[]) { - const fuse = new Fuse(options, { - keys: ["name", "groupName", "items.name"], - threshold: 0.6, - }); - return (value: string) => { - if (!value.length) { - return options; - } - return fuse - .search(value) - .map((res: Fuse.FuseResult) => res.item); - }; -} type ChainSelectProps = { value: string | undefined; - handleChainIdChange: (chainId: number) => void; + handleChainIdChange: SelectSearchProps["onChange"]; id?: string; availableChains?: number[]; }; @@ -48,19 +21,20 @@ export default function ChainSelect({ let filteredChains; if (availableChains) { + // Explicitly define which chains to show, like in Etherscan chains filteredChains = sourcifyChains.filter((chain) => availableChains.includes(chain.chainId) ); } else { - filteredChains = sourcifyChains; + filteredChains = sourcifyChains.filter((chain) => chain.supported); } return ( - ({ - name: `${chain.title || chain.name} (${chain.chainId}) `, + name: `${chain.name || chain.title} (${chain.chainId}) `, value: chain.chainId, }))} search diff --git a/ui/src/components/ChainSelect/style.css b/ui/src/components/ChainSelect/style.css index c70b40525..ebbbf6ef6 100644 --- a/ui/src/components/ChainSelect/style.css +++ b/ui/src/components/ChainSelect/style.css @@ -37,14 +37,14 @@ .select-search__input { display: block; width: 100%; - border-radius: 0.375rem/* 6px */; + border-radius: 0.375rem /* 6px */; border-width: 2px; --tw-border-opacity: 1; border-color: rgb(169 189 238 / var(--tw-border-opacity)); --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity)); - padding-left: 1rem/* 16px */; - padding-right: 1rem/* 16px */; + padding-left: 1rem /* 16px */; + padding-right: 1rem /* 16px */; height: 2.75rem; } .select-search__input:disabled { @@ -187,7 +187,7 @@ left: 0; border-radius: 3px; overflow: auto; - max-height: 360px; + max-height: 220px; } .select-search--multiple .select-search__select { diff --git a/ui/src/components/ConstructorArguments.tsx b/ui/src/components/ConstructorArguments.tsx new file mode 100644 index 000000000..d34de2e3b --- /dev/null +++ b/ui/src/components/ConstructorArguments.tsx @@ -0,0 +1,213 @@ +import { useEffect, useState } from "react"; +import { renderToString } from "react-dom/server"; +import ReactTooltip from "react-tooltip"; +import TextArea from "./TextArea"; +import Input from "./Input"; +import { defaultAbiCoder, ParamType } from "@ethersproject/abi"; + +interface ConstructorArgumentsProps { + setAbiEncodedConstructorArguments: React.Dispatch< + React.SetStateAction + >; + abiEncodedConstructorArguments: string; + abiJsonConstructorArguments: ParamType[]; + showRawAbiInput: boolean; + setIsInvalidConstructorArguments: React.Dispatch< + React.SetStateAction + >; +} + +interface ParamTypeWithValue extends ParamType { + value?: string; +} + +const InfoTooltip = () => ( + + + + Constructor arguments used when creating the contract in{" "} + + ABI-Encoding + + + )} + data-html={true} + data-for="abi-encoding-info" + > + ? + + +); + +const ConstructorArguments = ({ + setAbiEncodedConstructorArguments, + abiEncodedConstructorArguments, + abiJsonConstructorArguments, + showRawAbiInput, + setIsInvalidConstructorArguments, +}: ConstructorArgumentsProps) => { + const [userAbiJsonConstructorArguments, setUserAbiJsonConstructorArguments] = + useState(abiJsonConstructorArguments); + const [abiEncodingError, setAbiEncodingError] = useState(""); + const [rawAbiError, setRawAbiError] = useState(""); + + // should be invalid if there are any errors + useEffect(() => { + setIsInvalidConstructorArguments(!!abiEncodingError || !!rawAbiError); + }, [abiEncodingError, rawAbiError, setIsInvalidConstructorArguments]); + + const handleRawAbiChange = (e: React.ChangeEvent) => { + const newRawAbi = e.target.value; + setAbiEncodedConstructorArguments(newRawAbi); + // nothing to validate + if (newRawAbi === "") return setRawAbiError(""); + + const trimmed = newRawAbi.startsWith("0x") ? newRawAbi.slice(2) : newRawAbi; + + // is hex string? + if (!/^[A-F0-9]+$/i.test(trimmed)) { + setRawAbiError(`Input is not a hex string`); + setIsInvalidConstructorArguments(true); + return; + } + + if (trimmed.length % 64 !== 0) { + setRawAbiError( + `ABI encoding length must be a multiple of 64 (256 bits). Currently it is ${trimmed.length}` + ); + setIsInvalidConstructorArguments(true); + return; + } + setRawAbiError(""); + }; + + const handleAbiJsonChange = (value: string, index: number) => { + setUserAbiJsonConstructorArguments((prevUserAbiJson) => { + const tempUserAbiJson = [...prevUserAbiJson]; + tempUserAbiJson[index].value = value; + // Also update the abi encoding + const types = tempUserAbiJson.map((argument) => argument.type); + const values = tempUserAbiJson + .map((argument) => argument.value) + .filter((value) => !!value); + try { + if (values.length === 0) { + setAbiEncodingError(""); + return tempUserAbiJson; + } + if (types.length !== values.length) { + setAbiEncodingError("Please fill all the values"); + return tempUserAbiJson; + } + const newAbiEncoding = defaultAbiCoder.encode(types, values); + setAbiEncodingError(""); + setAbiEncodedConstructorArguments(newAbiEncoding); + } catch (e: any) { + console.log(e); + setAbiEncodingError("Encoding error: " + e.message); + setIsInvalidConstructorArguments(true); + } + return tempUserAbiJson; + }); + }; + + if (!showRawAbiInput) { + // ABI encode from the json for the user + return ( +
+
+ {/* setShowAbiJsonFields((prev) => !prev)} /> */} +
+ +
+ Enter each of the constructor arguments below to given fields. We + will generate the ABI-encoding for you. +
+
+ {abiEncodingError && ( +
+ {abiEncodingError} +
+ )} +
+ {userAbiJsonConstructorArguments?.map((currentArgument, index) => ( +
+
+ +
+ handleAbiJsonChange(e.target.value, index)} + placeholder={currentArgument.type} + className="mb-2" + /> +
+ ))} + {abiEncodedConstructorArguments && ( +
+ +