From 9f62b86bb43da573465b16f61cb4ae6a4f253704 Mon Sep 17 00:00:00 2001 From: Joshua Schmidt <123490974+JoshuaSchmidt-OpenSea@users.noreply.github.com> Date: Wed, 31 May 2023 18:04:20 -0500 Subject: [PATCH] v6.0.0 release (#1010) The release contains a vast number of improvements including reducing dependencies, consistently using a single BigNumbers implementation, improved naming, and removing deprecated and broken functions. For more info, see the Release Notes: https://github.com/ProjectOpenSea/opensea-js/releases/tag/v6.0.0 --- .eslintrc.js | 4 +- .github/workflows/code-quality.yml | 53 +- .github/workflows/docs.yml | 10 +- .github/workflows/npm-publish.yml | 20 +- .husky/pre-commit | 2 +- .husky/pre-push | 2 +- .prettierignore | 1 + .vscode/launch.json | 16 - .vscode/settings.json | 18 - CHANGELOG.md | 53 +- README.md | 238 +- buffer-override.d.ts | 245 - package-lock.json | 13551 ++++------------ package.json | 53 +- src/__integration_tests__/README.md | 32 - src/__integration_tests__/init.ts | 35 - src/__tests__/constants.ts | 30 - src/__tests__/fixtures/orders.json | 248 - src/__tests__/support/setup.ts | 5 - src/__tests__/utils.ts | 11 - src/abi/CanonicalWETH.ts | 155 - src/abi/{ERC1155Abi.json => ERC1155.json} | 0 src/abi/ERC1155.ts | 4 - src/abi/ERC20.json | 222 + src/abi/ERC20.ts | 139 - src/abi/{ERC721v3Abi.json => ERC721.json} | 0 src/abi/ERC721v3.ts | 4 - src/abi/Proxy.ts | 27 - src/abi/UniswapExchange.ts | 4 - src/abi/UniswapExchangeAbi.json | 451 - src/abi/UniswapFactory.ts | 4 - src/abi/UniswapFactoryAbi.json | 67 - src/abi/WrappedNFT.ts | 4 - src/abi/WrappedNFTAbi.json | 331 - src/abi/WrappedNFTFactory.ts | 5 - src/abi/WrappedNFTFactoryAbi.json | 250 - src/abi/WrappedNFTLiquidationProxy.ts | 137 - src/api.ts | 76 +- src/constants.ts | 70 +- src/contracts.ts | 24 - src/global.d.ts | 26 - src/index.ts | 14 +- src/orders/schemas.ts | 80 - src/orders/types.ts | 5 +- src/orders/utils.ts | 30 +- src/schemas.ts | 52 - src/sdk.ts | 2292 +-- src/types.ts | 267 +- src/utils/assert.ts | 103 - src/utils/index.ts | 1 - src/utils/schemas/ContractRole/index.ts | 102 - src/utils/schemas/ERC1155/index.ts | 150 - src/utils/schemas/ERC20/index.ts | 85 - src/utils/schemas/ERC721/index.ts | 192 - src/utils/schemas/ens.ts | 66 - src/utils/schemas/goerli/index.ts | 14 - src/utils/schemas/main/CryptoKitties/index.ts | 135 - src/utils/schemas/main/CryptoPunks/index.ts | 106 - src/utils/schemas/main/ENSName/index.ts | 74 - .../schemas/main/ENSShortNameAuction/index.ts | 81 - src/utils/schemas/main/EnjinItem/index.ts | 66 - .../schemas/main/OwnableContract/index.ts | 86 - src/utils/schemas/main/index.ts | 26 - src/utils/schemas/rinkeby/index.ts | 26 - .../rinkeby/rinkebyCryptoKitties/index.ts | 129 - .../schemas/rinkeby/rinkebyCustom/index.ts | 61 - .../schemas/rinkeby/rinkebyENSName/index.ts | 68 - .../rinkebyENSShortNameAuction/index.ts | 81 - .../rinkeby/rinkebyOwnableContract/index.ts | 80 - .../schemas/rinkeby/testRinkebyNFT/index.ts | 111 - src/utils/schemas/schema.ts | 246 - src/utils/schemas/types.ts | 18 - src/utils/tokens/index.ts | 25 +- src/utils/tokens/main.ts | 5301 +----- src/utils/tokens/rinkeby.ts | 24 - src/utils/utils.ts | 920 +- .../api/api.ts => test/api/api.spec.ts | 26 +- .../api/fulfillment.spec.ts | 12 +- .../api/getOrders.spec.ts | 16 +- test/integration/README.md | 36 + .../integration/getAsset.spec.ts | 7 +- .../integration/getCollection.spec.ts | 6 +- .../integration/postOrder.spec.ts | 27 +- test/integration/setup.ts | 32 + test/integration/wrapEth.spec.ts | 58 + .../sdk/fees.ts => test/sdk/fees.spec.ts | 17 +- .../sdk/misc.ts => test/sdk/misc.spec.ts | 43 +- .../sdk/orders.ts => test/sdk/orders.spec.ts | 29 +- .../utils/utils.ts => test/utils.spec.ts | 14 +- test/utils/constants.ts | 33 + test/utils/setup.ts | 5 + test/utils/utils.ts | 29 + tsconfig.build.json | 2 +- tsconfig.json | 10 +- 94 files changed, 4514 insertions(+), 23632 deletions(-) delete mode 100644 .vscode/launch.json delete mode 100644 .vscode/settings.json delete mode 100644 buffer-override.d.ts delete mode 100644 src/__integration_tests__/README.md delete mode 100644 src/__integration_tests__/init.ts delete mode 100644 src/__tests__/constants.ts delete mode 100644 src/__tests__/fixtures/orders.json delete mode 100644 src/__tests__/support/setup.ts delete mode 100644 src/__tests__/utils.ts delete mode 100644 src/abi/CanonicalWETH.ts rename src/abi/{ERC1155Abi.json => ERC1155.json} (100%) delete mode 100644 src/abi/ERC1155.ts create mode 100644 src/abi/ERC20.json delete mode 100644 src/abi/ERC20.ts rename src/abi/{ERC721v3Abi.json => ERC721.json} (100%) delete mode 100644 src/abi/ERC721v3.ts delete mode 100644 src/abi/Proxy.ts delete mode 100644 src/abi/UniswapExchange.ts delete mode 100644 src/abi/UniswapExchangeAbi.json delete mode 100644 src/abi/UniswapFactory.ts delete mode 100644 src/abi/UniswapFactoryAbi.json delete mode 100644 src/abi/WrappedNFT.ts delete mode 100644 src/abi/WrappedNFTAbi.json delete mode 100644 src/abi/WrappedNFTFactory.ts delete mode 100644 src/abi/WrappedNFTFactoryAbi.json delete mode 100644 src/abi/WrappedNFTLiquidationProxy.ts delete mode 100644 src/contracts.ts delete mode 100644 src/global.d.ts delete mode 100644 src/orders/schemas.ts delete mode 100644 src/schemas.ts delete mode 100644 src/utils/assert.ts delete mode 100644 src/utils/schemas/ContractRole/index.ts delete mode 100644 src/utils/schemas/ERC1155/index.ts delete mode 100644 src/utils/schemas/ERC20/index.ts delete mode 100644 src/utils/schemas/ERC721/index.ts delete mode 100644 src/utils/schemas/ens.ts delete mode 100644 src/utils/schemas/goerli/index.ts delete mode 100644 src/utils/schemas/main/CryptoKitties/index.ts delete mode 100644 src/utils/schemas/main/CryptoPunks/index.ts delete mode 100644 src/utils/schemas/main/ENSName/index.ts delete mode 100644 src/utils/schemas/main/ENSShortNameAuction/index.ts delete mode 100644 src/utils/schemas/main/EnjinItem/index.ts delete mode 100644 src/utils/schemas/main/OwnableContract/index.ts delete mode 100644 src/utils/schemas/main/index.ts delete mode 100644 src/utils/schemas/rinkeby/index.ts delete mode 100644 src/utils/schemas/rinkeby/rinkebyCryptoKitties/index.ts delete mode 100644 src/utils/schemas/rinkeby/rinkebyCustom/index.ts delete mode 100644 src/utils/schemas/rinkeby/rinkebyENSName/index.ts delete mode 100644 src/utils/schemas/rinkeby/rinkebyENSShortNameAuction/index.ts delete mode 100644 src/utils/schemas/rinkeby/rinkebyOwnableContract/index.ts delete mode 100644 src/utils/schemas/rinkeby/testRinkebyNFT/index.ts delete mode 100644 src/utils/schemas/schema.ts delete mode 100644 src/utils/schemas/types.ts delete mode 100644 src/utils/tokens/rinkeby.ts rename src/__tests__/api/api.ts => test/api/api.spec.ts (69%) rename src/__tests__/api/fulfillment.ts => test/api/fulfillment.spec.ts (75%) rename src/__tests__/api/getOrders.ts => test/api/getOrders.spec.ts (79%) create mode 100644 test/integration/README.md rename src/__integration_tests__/getAsset.ts => test/integration/getAsset.spec.ts (83%) rename src/__integration_tests__/getCollection.ts => test/integration/getCollection.spec.ts (78%) rename src/__integration_tests__/postOrder.ts => test/integration/postOrder.spec.ts (67%) create mode 100644 test/integration/setup.ts create mode 100644 test/integration/wrapEth.spec.ts rename src/__tests__/sdk/fees.ts => test/sdk/fees.spec.ts (87%) rename src/__tests__/sdk/misc.ts => test/sdk/misc.spec.ts (63%) rename src/__tests__/sdk/orders.ts => test/sdk/orders.spec.ts (50%) rename src/__tests__/utils/utils.ts => test/utils.spec.ts (71%) create mode 100644 test/utils/constants.ts create mode 100644 test/utils/setup.ts create mode 100644 test/utils/utils.ts diff --git a/.eslintrc.js b/.eslintrc.js index 798e4b538..f0269b070 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -6,10 +6,10 @@ module.exports = { node: true, }, root: true, - ignorePatterns: ["docs", "lib"], + ignorePatterns: ["docs", "lib", "src/typechain"], reportUnusedDisableDirectives: true, parser: "@typescript-eslint/parser", - plugins: ["@typescript-eslint", "import", "jest", "prettier"], + plugins: ["@typescript-eslint", "import", "prettier"], extends: [ "eslint:recommended", diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index 068085a18..f2f49a300 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -18,17 +18,11 @@ jobs: node-version-file: .nvmrc cache: npm - - name: Upgrade npm - run: npm install -g npm - - name: Install dependencies - run: npm install --immutable --ignore-scripts - - - name: Gen ABI - run: npm run abi-type-gen + run: npm install - name: Run linters - run: npm run lint:check + run: npm run lint test: runs-on: ubuntu-latest @@ -39,39 +33,48 @@ jobs: node-version-file: .nvmrc cache: npm - - name: Upgrade npm - run: npm install -g npm - - name: Install dependencies - run: npm install --immutable --ignore-scripts - - - name: Gen ABI - run: npm run abi-type-gen + run: npm install - name: Run tests env: - API_KEY: ${{ secrets.API_KEY }} + OPENSEA_API_KEY: ${{ secrets.OPENSEA_API_KEY }} run: npm run test - test-earliest-node-engine-support: + test-integration: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: - node-version: "16.0.0" # specified in the package.json engines.node field + node-version-file: .nvmrc cache: npm - - name: Upgrade npm - run: npm install -g npm - - name: Install dependencies - run: npm install --immutable --ignore-scripts + run: npm install + + - name: Run integration tests + env: + OPENSEA_API_KEY: ${{ secrets.OPENSEA_API_KEY }} + ALCHEMY_API_KEY: ${{ secrets.ALCHEMY_API_KEY }} + WALLET_PRIV_KEY: ${{ secrets.WALLET_PRIV_KEY }} + SELL_ORDER_CONTRACT_ADDRESS: ${{ secrets.SELL_ORDER_CONTRACT_ADDRESS }} + SELL_ORDER_TOKEN_ID: ${{ secrets.SELL_ORDER_TOKEN_ID }} + run: npm run test:integration - - name: Gen ABI - run: npm run abi-type-gen + test-earliest-node-engine-support: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 16.0.0 # specified in the package.json engines.node field + cache: npm + + - name: Install dependencies + run: npm install - name: Run tests env: - API_KEY: ${{ secrets.API_KEY }} + OPENSEA_API_KEY: ${{ secrets.OPENSEA_API_KEY }} run: npm run test diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index dee2091b8..bc16d4453 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -16,16 +16,10 @@ jobs: node-version-file: .nvmrc cache: npm - - name: Upgrade npm - run: npm install -g npm - - name: Install dependencies - run: npm install --immutable --ignore-scripts - - - name: Gen ABI - run: npm run abi-type-gen + run: npm install - - name: Build + - name: Build docs run: npm run docs-build - name: Deploy 🚀 diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 6817a1a24..949fb63da 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -8,20 +8,6 @@ on: types: [created] jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version-file: .nvmrc - - name: Upgrade npm - run: npm install -g npm - - run: npm ci - - run: npm test - - run: npm run build - - run: yarn build - publish-npm: needs: build runs-on: ubuntu-latest @@ -32,10 +18,8 @@ jobs: with: node-version-file: .nvmrc registry-url: https://registry.npmjs.org/ - - name: Upgrade npm - run: npm install -g npm - - run: npm ci - - run: npm run build + - run: npm install + - run: npm test - run: npm publish env: NODE_AUTH_TOKEN: ${{secrets.npm_token}} diff --git a/.husky/pre-commit b/.husky/pre-commit index d2ae35e84..57757f4ed 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,4 @@ #!/bin/sh . "$(dirname "$0")/_/husky.sh" -yarn lint-staged +npm run lint-staged diff --git a/.husky/pre-push b/.husky/pre-push index b2fe0f51d..5952e1a7e 100755 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -1,4 +1,4 @@ #!/bin/sh . "$(dirname "$0")/_/husky.sh" -yarn check-types +npm run check-types diff --git a/.prettierignore b/.prettierignore index 25816aa7a..b884e148c 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,3 +1,4 @@ lib docs .nyc_output +src/typechain diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index ade3dea7d..000000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Launch via Yarn", - "request": "launch", - "runtimeArgs": ["test"], - "runtimeExecutable": "yarn", - "skipFiles": ["/**"], - "type": "pwa-node" - } - ] -} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 52a4ef105..000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "typescript.tsdk": "node_modules/typescript/lib", - "files.insertFinalNewline": true, - "editor.formatOnSave": false, - "editor.codeActionsOnSave": { - "source.fixAll.eslint": true - }, - "editor.formatOnSave": false, - "[javascript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[typescript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[typescriptreact]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - } -} diff --git a/CHANGELOG.md b/CHANGELOG.md index c6a6670ae..86cf7100b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,53 +1,6 @@ # Changelog -Full changelog coming soon. For now, here are the most important changes for doing major migrations: +The changelog for recent versions can be found at -## Migrating to version 1.2 - -- `OpenSeaPort::computeFees()` No longer accepts an `isPrivate` parameter. - -## Migrating to version 1.1 - -- `OpenSeaPort::computeFees()` No longer accepts a `fees` parameter, relying solely on `asset`. - -## Migrating to version 1.0 - -Version 1.0 introduces bundling for semi-fungible and fungible assets, serialized asset collections, a smaller bundle size, and more, along with many bug fixes. - -**Breaking directory changes** - -- Many constants inside of `/utils` have been moved to `/constants`. -- Other utils have been moved to `/utils/utils` - -**Breaking type changes** - -- `profile_img_url` in the `OpenSeaAccount` type has been renamed to `profileImgUrl` -- `OpenSeaPort::computeFees()` now returns a new type, `ComputedFees`, which expands "BPS" to "BasisPoints" for each of its member keys - -**Breaking interface changes** - -- `OpenSeaPort::computeFees()` now takes in a single asset, and returns a new and more consistent type, `ComputedFees` -- `schemaName` has been moved out of main method calls and into the `Asset` type -- `OpenSeaAPI::getAsset()` now accepts named arguments, consistent with other methods -- `OpenSeaPort::createFactorySellOrders` now accepts an `assets` parameter consistent with the other `Asset` type parameters in other methods -- `OpenSeaPort::getTokenBalance()` no longer defaults to the WETH address if no `tokenAddress` is set. And it accepts a `schemaName` parameter instead of an ABI -- `OpenSeaPort::approveNonFungibleToken()` has been renamed to `approveSemiOrNonFungibleToken()`, though it always worked for semi-fungible tokens like ERC-1155 - -**Removed deprecations:** - -- `OpenSeaPort::transferOne()`, replaced by `OpenSeaPort::transfer()` -- `tokenId` and `tokenAddress` parameters for most SDK methods, replaced by creating an `Asset` type and passing that in - -## Migrating to version 0.6 - -Version 0.6 introduces some major new features, including trading fungible and semi-fungible assets (including ERC-20 and ERC-1155 assets). These have been architected to maximize backwards compatibility, but there were a few breaking changes: - -- The `Asset` type now has `version` instead of `nftVersion` as a property -- Similarly, the `NFTVersion` type has been renamed `TokenStandardVersion` -- `computeFees` now takes in a single, annotated OpenSeaAsset as a parameter instead of a list of assets -- In `isAssetTransferrable`, `didOwnerApprove` was renamed to `useProxy` - -Non-breaking changes with deprecation notices: - -- `getFungibleTokens` has been deprecated. Use `api.getPaymentTokens` -- Methods now show a deprecation warning when used with `tokenId` or `tokenAddress` as arguments, instead of using `asset` or `assets` (of type `Asset`/`Asset[]`) +- https://docs.opensea.io/changelog +- https://github.com/ProjectOpenSea/opensea-js/releases diff --git a/README.md b/README.md index 2934eaa90..32c8c79ba 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,7 @@ [![Docs][docs-badge]][docs-link] [![Discussions][discussions-badge]][discussions-link] -A JavaScript library for crypto-native ecommerce: buying, selling, and bidding on any cryptogood. With OpenSea.js, you can easily build your own native marketplace for your non-fungible tokens, or NFTs. These can be ERC-721 or ERC-1155 (semi-fungible) items. You don't have to deploy your own smart contracts or backend orderbooks. - -Published on [GitHub](https://github.com/ProjectOpenSea/opensea-js) and [npm](https://www.npmjs.com/package/opensea-js) +A JavaScript library for crypto-native e-commerce: buying, selling, and bidding on NFTs (non-fungible tokens). With OpenSea.js, you can easily build your own native marketplace. These can be ERC-721 or ERC-1155 (semi-fungible) items. You don't have to deploy your own smart contracts or manage backend orderbooks. - [Synopsis](#synopsis) - [Installation](#installation) @@ -37,7 +35,7 @@ Published on [GitHub](https://github.com/ProjectOpenSea/opensea-js) and [npm](ht - [Private Auctions](#private-auctions) - [Listening to Events](#listening-to-events) - [Learning More](#learning-more) -- [Migrating to version 1.0](#migrating-to-version-10) +- [Changelog](#changelog) - [Development Information](#development-information) - [Diagnosing Common Issues](#diagnosing-common-issues) - [Testing your branch locally](#testing-your-branch-locally) @@ -60,44 +58,34 @@ Then, in your project, run: ```bash npm install --save opensea-js -``` - -> **Warning** -> Due to the use of git-url dependencies, versions of `npm` below 8.5.2 are incompatible with this package due to broken integrity checksum validation. -> Above version 8.5.2, `npm` will no longer validate integrity checksums for git-url dependencies. - -Install [web3](https://github.com/ethereum/web3.js) too if you haven't already. - -If you run into an error while building the dependencies and you're on a Mac, run this: - -```bash -xcode-select --install # Install Command Line Tools if you haven't already. -sudo xcode-select --switch /Library/Developer/CommandLineTools # Enable command line tools -sudo npm explore npm -g -- npm install node-gyp@latest # (Optional) update node-gyp +# or +yarn add opensea-js ``` ## Getting Started To get started, first request an API key [here](https://docs.opensea.io/reference). Note the terms of use for using API data. -Then, create a new OpenSeaJS client, called an OpenSeaSDK 🚢, using your Web3 provider: +Then, create a new OpenSeaJS client, called an OpenSeaSDK 🚢, using your web3 provider: -```JavaScript -import * as Web3 from 'web3' -import { OpenSeaSDK, Network } from 'opensea-js' +```typescript +import { ethers } from "ethers"; +import { OpenSeaSDK, Chain } from "opensea-js"; // This example provider won't let you make transactions, only read-only calls: -const provider = new Web3.providers.HttpProvider('https://mainnet.infura.io') +const provider = new ethers.providers.JsonRpcProvider( + "https://mainnet.infura.io" +); const openseaSDK = new OpenSeaSDK(provider, { - networkName: Network.Main, - apiKey: YOUR_API_KEY -}) + chain: Chain.Mainnet, + apiKey: YOUR_API_KEY, +}); ``` -**NOTE:** for testnet, please use `Network.Goerli` as the `networkName` - Rinkeby was deprecated in 2022. +**NOTE:** For testnet, please use `Chain.Goerli` as the `chain`. Rinkeby was deprecated in 2022. -**NOTE:** Using the sample Infura provider above won't let you authorize transactions, which are needed when approving and trading assets and currency. To make transactions, you need a provider with a private key or mnemonic set. +**NOTE:** Using the sample provider above won't let you authorize transactions, which are needed when approving and trading assets and currency. To make transactions, you need a provider with a private key or mnemonic set. In a browser with web3 or an extension like [MetaMask](https://metamask.io/) or [Coinbase Wallet](https://www.coinbase.com/wallet), you can use `window.ethereum` to access the native provider. @@ -116,8 +104,8 @@ export interface Asset { tokenId: string | null, // The asset's contract address tokenAddress: string, - // The Wyvern schema name (defaults to "ERC721") for this asset - schemaName?: WyvernSchemaName, + // The schema name (defaults to "ERC721") for this asset + tokenStandard?: TokenStandard, // Optional for ENS names name?: string, // Optional for fungible items @@ -125,14 +113,14 @@ export interface Asset { } ``` -The `Asset` type is the minimal type you need for most marketplace actions. `WyvernSchemaName` is optional. If omitted, most actions will assume you're referring to a non-fungible, ERC721 asset. Other options include 'ERC20' and 'ERC1155'. You can import `import { WyvernSchemaName } from "opensea-js/lib/types"` to get the full range of schemas supported. +The `Asset` type is the minimal type you need for most marketplace actions. `TokenStandard` is optional. If omitted, most actions will assume you're referring to a non-fungible, ERC721 asset. Other options include 'ERC20' and 'ERC1155'. You can import `import { TokenStandard } from "opensea-js/lib/types"` to get the full range of schemas supported. You can fetch an asset using the `OpenSeaAPI`, which will return an `OpenSeaAsset` for you (`OpenSeaAsset` extends `Asset`): ```TypeScript const asset: OpenSeaAsset = await openseaSDK.api.getAsset({ tokenAddress, // string - tokenId, // string | number | null + tokenId, // string | number | BigNumber | null }) ``` @@ -144,50 +132,40 @@ The nice thing about the `Asset` type is that it unifies logic between fungibles Once you have an `Asset`, you can see how many any account owns, regardless of whether it's an ERC-20 token or a non-fungible good: -```JavaScript - +```typescript const asset = { tokenAddress: "0x06012c8cf97bead5deae237070f9587f8e7a266d", // CryptoKitties tokenId: "1", // Token ID -} +}; -const balance = await openseaSDK.getAssetBalance({ +const balance = await openseaSDK.getBalance({ accountAddress, // string asset, // Asset -}) +}); -const ownsKitty = balance.greaterThan(0) -``` - -You can use this same method for fungible ERC-20 tokens like wrapped ETH (WETH). As a convenience, you can use this fungible wrapper for checking fungible balances: - -```JavaScript -const balanceOfWETH = await openseaSDK.getTokenBalance({ - accountAddress, // string - tokenAddress: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" -}) +const ownsKitty = balance.greaterThan(0); ``` ### Making Offers Once you have your asset, you can do this to make an offer on it: -```JavaScript +```typescript // Token ID and smart contract address for a non-fungible token: -const { tokenId, tokenAddress } = YOUR_ASSET +const { tokenId, tokenAddress } = YOUR_ASSET; // The offerer's wallet address: -const accountAddress = "0x1234..." +const accountAddress = "0x1234..."; const offer = await openseaSDK.createBuyOrder({ asset: { tokenId, tokenAddress, - schemaName // WyvernSchemaName. If omitted, defaults to 'ERC721'. Other options include 'ERC20' and 'ERC1155' + tokenStandard, // TokenStandard. If omitted, defaults to 'ERC721'. Other options include 'ERC20' and 'ERC1155' }, accountAddress, // Value of the offer, in units of the payment token (or wrapped ETH if none is specified): startAmount: 1.2, -}) +}); ``` When you make an offer on an item owned by an OpenSea user, **that user will automatically get an email notifying them with the offer amount**, if it's above their desired threshold. @@ -198,7 +176,7 @@ The Ethereum Name Service (ENS) is auctioning short (3-6 character) names that c To bid, you must use the ENS Short Name schema: -```JavaScript +```typescript const { tokenId, // Token address should be `0xfac7bea255a6990f749363002136af6556b31e04` on mainnet @@ -214,7 +192,7 @@ const offer = await openseaSDK.createBuyOrder({ name, // Only needed for the short-name auction, not ENS names // that have been sold once already: - schemaName: "ENSShortNameAuction" + tokenStandard: "ENSShortNameAuction" }, // Your wallet address (the bidder's address): accountAddress: "0x1234..." @@ -231,10 +209,10 @@ Note: The total value of buy orders must not exceed 1000 x wallet balance. To sell an asset, call `createSellOrder`. You can do a fixed-price listing, where `startAmount` is equal to `endAmount`, or a declining [Dutch auction](https://en.wikipedia.org/wiki/Dutch_auction), where `endAmount` is lower and the price declines until `expirationTime` is hit: -```JavaScript +```typescript // Expire this auction one day from now. // Note that we convert from the JavaScript timestamp (milliseconds): -const expirationTime = Math.round(Date.now() / 1000 + 60 * 60 * 24) +const expirationTime = Math.round(Date.now() / 1000 + 60 * 60 * 24); const listing = await openseaSDK.createSellOrder({ asset: { @@ -245,8 +223,8 @@ const listing = await openseaSDK.createSellOrder({ startAmount: 3, // If `endAmount` is specified, the order will decline in value to that amount until `expirationTime`. Otherwise, it's a fixed-price order: endAmount: 0.1, - expirationTime -}) + expirationTime, +}); ``` The units for `startAmount` and `endAmount` are Ether, ETH. If you want to specify another ERC-20 token to use, see [Using ERC-20 Tokens Instead of Ether](#using-erc-20-tokens-instead-of-ether). @@ -259,12 +237,11 @@ English Auctions are auctions that start at a small amount (we recommend even do To create an English Auction, create a listing that waits for the highest bid by setting `waitForHighestBid` to `true`: -```JavaScript - +```typescript // Create an auction to receive Wrapped Ether (WETH). See note below. -const paymentTokenAddress = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" +const paymentTokenAddress = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"; -const startAmount = 0 // The minimum amount to sell for, in normal units (e.g. ETH) +const startAmount = 0; // The minimum amount to sell for, in normal units (e.g. ETH) const auction = await openseaSDK.createSellOrder({ asset: { @@ -275,8 +252,8 @@ const auction = await openseaSDK.createSellOrder({ startAmount, expirationTime, paymentTokenAddress, - waitForHighestBid: true -}) + waitForHighestBid: true, +}); ``` Note that auctions aren't supported with Ether directly due to limitations in Ethereum, so you have to use an ERC20 token, like Wrapped Ether (WETH), a stablecoin like DAI, etc. See [Using ERC-20 Tokens Instead of Ether](#using-erc-20-tokens-instead-of-ether) for more info. @@ -285,20 +262,23 @@ Note that auctions aren't supported with Ether directly due to limitations in Et To retrieve a list of offers and auctions on an asset, you can use an instance of the `OpenSeaAPI` exposed on the client. Parameters passed into API filter objects are camel-cased and serialized before being sent as [OpenSea API parameters](https://docs.opensea.io/v2.0/reference): -```JavaScript +```typescript // Get offers (bids), a.k.a. orders where `side == 0` const { orders, count } = await openseaSDK.api.getOrders({ assetContractAddress: tokenAddress, tokenId, - side: "bid" -}) + side: "bid", +}); // Get page 2 of all auctions, a.k.a. orders where `side == 1` -const { orders, count } = await openseaSDK.api.getOrders({ - assetContractAddress: tokenAddress, - tokenId, - side: "ask" -}, 2) +const { orders, count } = await openseaSDK.api.getOrders( + { + assetContractAddress: tokenAddress, + tokenId, + side: "ask", + }, + 2 +); ``` Note that the listing price of an asset is equal to the `currentPrice` of the **lowest valid sell order** on the asset. Users can lower their listing price without invalidating previous sell orders, so all get shipped down until they're canceled, or one is fulfilled. @@ -337,7 +317,7 @@ The available API filters for the orders endpoint is documented in the `OrdersQu To buy an item, you need to **fulfill a sell order**. To do that, it's just one call: -```JavaScript +```typescript const order = await openseaSDK.api.getOrder({ side: "ask", ... }) const accountAddress = "0x..." // The buyer's wallet address, also the taker const transactionHash = await openseaSDK.fulfillOrder({ order, accountAddress }) @@ -351,7 +331,7 @@ If the order is a sell order (`order.side === "ask"`), the taker is the _buyer_ Similar to fulfilling sell orders above, you need to fulfill a buy order on an item you own to receive the tokens in the offer. -```JavaScript +```typescript const order = await openseaSDK.api.getOrder({ side: "bid", ... }) const accountAddress = "0x..." // The owner's wallet address, also the taker await openseaSDK.fulfillOrder({ order, accountAddress }) @@ -365,51 +345,50 @@ A handy feature in OpenSea.js is the ability to transfer any supported asset (fu To transfer an ERC-721 asset or an ERC-1155 asset, it's just one call: -```JavaScript - +```typescript const transactionHash = await openseaSDK.transfer({ asset: { tokenId, tokenAddress }, fromAddress, // Must own the asset - toAddress -}) + toAddress, +}); ``` -For fungible ERC-1155 assets, you can set `schemaName` to "ERC1155" and pass a `quantity` in to transfer multiple at once: - -```JavaScript +For fungible ERC-1155 assets, you can set `tokenStandard` to "ERC1155" and pass a `quantity` in to transfer multiple at once: +```typescript const transactionHash = await openseaSDK.transfer({ asset: { tokenId, tokenAddress, - schemaName: "ERC1155" + tokenStandard: "ERC1155", }, fromAddress, // Must own the asset toAddress, quantity: 2, -}) +}); ``` -To transfer fungible assets without token IDs, like ERC20 tokens, you can pass in an `OpenSeaFungibleToken` as the `asset`, set `schemaName` to "ERC20", and include `quantity` in base units (e.g. wei) to indicate how many. +To transfer fungible assets without token IDs, like ERC20 tokens, you can pass in an `OpenSeaFungibleToken` as the `asset`, set `tokenStandard` to "ERC20", and include `quantity` in base units (e.g. wei) to indicate how many. Example for transferring 2 DAI ($2) to another address: -```JavaScript -const paymentToken = (await openseaSDK.api.getPaymentTokens({ symbol: 'DAI'})).tokens[0] -const quantity = new BigNumber(Math.pow(10, paymentToken.decimals)).times(2) +```typescript +const paymentToken = (await openseaSDK.api.getPaymentTokens({ symbol: "DAI" })) + .tokens[0]; +const quantity = ethers.utils.parseUnits("2", paymentToken.decimals); const transactionHash = await openseaSDK.transfer({ asset: { tokenId: null, tokenAddress: paymentToken.address, - schemaName: "ERC20" + tokenStandard: "ERC20", }, fromAddress, // Must own the tokens toAddress, - quantity -}) + quantity, +}); ``` -For more information, check out the documentation for WyvernSchemas on https://projectopensea.github.io/opensea-js/. +For more information, check out the [documentation](https://projectopensea.github.io/opensea-js/). ## Advanced @@ -419,21 +398,21 @@ Interested in purchasing for users server-side or with a bot, scheduling future You can create sell orders that aren't fulfillable until a future date. Just pass in a `listingTime` (a UTC timestamp in seconds) to your SDK instance: -```JavaScript +```typescript const auction = await openseaSDK.createSellOrder({ tokenAddress, tokenId, accountAddress, startAmount: 1, - listingTime: Math.round(Date.now() / 1000 + 60 * 60 * 24) // One day from now -}) + listingTime: Math.round(Date.now() / 1000 + 60 * 60 * 24), // One day from now +}); ``` ### Purchasing Items for Other Users You can buy and transfer an item to someone else in one step! Just pass the `recipientAddress` parameter: -```JavaScript +```typescript const order = await openseaSDK.api.getOrder({ side: "ask", ... }) await openseaSDK.fulfillOrder({ order, @@ -444,31 +423,15 @@ await openseaSDK.fulfillOrder({ If the order is a sell order (`order.side === "ask"`), the taker is the _buyer_ and this will prompt the buyer to pay for the item(s) but send them to the `recipientAddress`. If the order is a buy order ( `"bid"`), the taker is the _seller_ but the bid amount be sent to the `recipientAddress`. -### Bulk Transfers - -A handy feature in OpenSea.js is the ability to transfer multiple items at once in a single transaction. This works by grouping together as many `transferFrom` calls as the Ethereum gas limit allows, which is usually under 30 items, for most item contracts. - -To make a bulk transfer, it's just one call: - -```JavaScript -const assets: Array<{tokenId: string; tokenAddress: string}> = [...] - -const transactionHash = await openseaSDK.transferAll({ - assets, - fromAddress, // Must own all the assets - toAddress -}) -``` - This will automatically approve the assets for trading and confirm the transaction for sending them. ### Using ERC-20 Tokens Instead of Ether Here's an example of listing the Genesis CryptoKitty for $100! No more needing to worry about the exchange rate: -```JavaScript +```typescript // Token address for the DAI stablecoin, which is pegged to $1 USD -const paymentTokenAddress = "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359" +const paymentTokenAddress = "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359"; // The units for `startAmount` and `endAmount` are now in DAI, so $100 USD const auction = await openseaSDK.createSellOrder({ @@ -476,19 +439,20 @@ const auction = await openseaSDK.createSellOrder({ tokenId: "1", // Token ID accountAddress: OWNERS_WALLET_ADDRESS, startAmount: 100, - paymentTokenAddress -}) + paymentTokenAddress, +}); ``` You can use `getPaymentTokens` to search for tokens by symbol name. And you can even list all orders for a specific ERC-20 token by querying the API: -```JavaScript -const token = (await openseaSDK.api.getPaymentTokens({ symbol: 'MANA'})).tokens[0] +```typescript +const token = (await openseaSDK.api.getPaymentTokens({ symbol: "MANA" })) + .tokens[0]; const order = await openseaSDK.api.getOrders({ side: "ask", - paymentTokenAddress: token.address -}) + paymentTokenAddress: token.address, +}); ``` **Fun note:** soon, all ERC-20 tokens will be allowed! This will mean you can create crazy offers on crypto collectibles **using your own ERC-20 token**. However, opensea.io will only display offers and auctions in ERC-20 tokens that it knows about, optimizing the user experience of order takers. Orders made with the following tokens will be shown on OpenSea: @@ -502,17 +466,18 @@ Now you can make auctions and listings that can only be fulfilled by an address Here's an example of listing a Decentraland parcel for 10 ETH with a specific buyer address allowed to take it. No more needing to worry about whether they'll give you enough back! -```JavaScript +```typescript // Address allowed to buy from you -const buyerAddress = "0x123..." +const buyerAddress = "0x123..."; const listing = await openseaSDK.createSellOrder({ tokenAddress: "0xf87e31492faf9a91b02ee0deaad50d51d56d5d4d", // Decentraland - tokenId: "115792089237316195423570985008687907832853042650384256231655107562007036952461", // Token ID + tokenId: + "115792089237316195423570985008687907832853042650384256231655107562007036952461", // Token ID accountAddress: OWNERS_WALLET_ADDRESS, startAmount: 10, - buyerAddress -}) + buyerAddress, +}); ``` ### Listening to Events @@ -521,10 +486,9 @@ Events are fired whenever transactions or orders are being created, and when tra Our recommendation is that you "forward" OpenSea events to your own store or state management system. Here's an example of doing that with a Redux action: -```JavaScript -import { EventType } from 'opensea-js' +```typescript +import { openSeaSDK, EventType } from 'opensea-js' import * as ActionTypes from './index' -import { openSeaSDK } from '../globalSingletons' // ... @@ -565,12 +529,12 @@ handleSDKEvents() { console.info({ accountAddress, tokenAddress }) dispatch({ type: ActionTypes.APPROVE_WETH }) }) - openSeaSDK.addListener(EventType.ApproveAllAssets, ({ accountAddress, proxyAddress, tokenAddress }) => { - console.info({ accountAddress, proxyAddress, tokenAddress }) + openSeaSDK.addListener(EventType.ApproveAllAssets, ({ accountAddress, tokenAddress }) => { + console.info({ accountAddress, tokenAddress }) dispatch({ type: ActionTypes.APPROVE_ALL_ASSETS }) }) - openSeaSDK.addListener(EventType.ApproveAsset, ({ accountAddress, proxyAddress, tokenAddress, tokenId }) => { - console.info({ accountAddress, proxyAddress, tokenAddress, tokenId }) + openSeaSDK.addListener(EventType.ApproveAsset, ({ accountAddress, tokenAddress, tokenId }) => { + console.info({ accountAddress, tokenAddress, tokenId }) dispatch({ type: ActionTypes.APPROVE_ASSET }) }) openSeaSDK.addListener(EventType.CreateOrder, ({ order, accountAddress }) => { @@ -599,7 +563,7 @@ To remove all listeners and start over, just call `openseaSDK.removeAllListeners Auto-generated documentation for each export is available [here](https://projectopensea.github.io/opensea-js/). -## Migrating to version 1.0 +## Changelog See the [Changelog](CHANGELOG.md). @@ -616,7 +580,7 @@ npm install And install TypeScript if you haven't already: ```bash -npm install -g tslint typescript +npm install -g typescript ``` **Build** @@ -633,14 +597,14 @@ Or run the tests: npm test ``` -Note that the tests require access to both Infura and the OpenSea API. The timeout is adjustable via the `test` script in `package.json`. +Note that the tests require access to Alchemy and the OpenSea API. The timeout is adjustable via the `test` script in `package.json`. **Generate Documentation** Generate html docs, also available for browsing [here](https://projectopensea.github.io/opensea-js/): ```bash -yarn docs-build +npm run docs-build ``` **Contributing** @@ -658,8 +622,8 @@ Contributions welcome! Please use GitHub issues for suggestions/concerns - if yo ## Testing your branch locally ```sh -yarn link # in opensea-js repo -yarn link opensea-js # in repo you're working on +npm link # in opensea-js repo +npm link opensea-js # in repo you're working on ``` [version-badge]: https://img.shields.io/github/package-json/v/ProjectOpenSea/opensea-js diff --git a/buffer-override.d.ts b/buffer-override.d.ts deleted file mode 100644 index 363dfc48d..000000000 --- a/buffer-override.d.ts +++ /dev/null @@ -1,245 +0,0 @@ -/* eslint-disable import/no-unused-modules */ -// Fixes Buffer type override issue in feross/buffer: -// https://github.com/Microsoft/TypeScript/issues/26086 - -export class Buffer extends Uint8Array { - length: number; - write( - string: string, - offset?: number, - length?: number, - encoding?: string - ): number; - toString(encoding?: string, start?: number, end?: number): string; - toJSON(): { type: "Buffer"; data: unknown[] }; - equals(otherBuffer: Buffer): boolean; - compare( - otherBuffer: Buffer, - targetStart?: number, - targetEnd?: number, - sourceStart?: number, - sourceEnd?: number - ): number; - copy( - targetBuffer: Buffer, - targetStart?: number, - sourceStart?: number, - sourceEnd?: number - ): number; - slice(start?: number, end?: number): Buffer; - writeUIntLE( - value: number, - offset: number, - byteLength: number, - noAssert?: boolean - ): number; - writeUIntBE( - value: number, - offset: number, - byteLength: number, - noAssert?: boolean - ): number; - writeIntLE( - value: number, - offset: number, - byteLength: number, - noAssert?: boolean - ): number; - writeIntBE( - value: number, - offset: number, - byteLength: number, - noAssert?: boolean - ): number; - readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number; - readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number; - readIntLE(offset: number, byteLength: number, noAssert?: boolean): number; - readIntBE(offset: number, byteLength: number, noAssert?: boolean): number; - readUInt8(offset: number, noAssert?: boolean): number; - readUInt16LE(offset: number, noAssert?: boolean): number; - readUInt16BE(offset: number, noAssert?: boolean): number; - readUInt32LE(offset: number, noAssert?: boolean): number; - readUInt32BE(offset: number, noAssert?: boolean): number; - readInt8(offset: number, noAssert?: boolean): number; - readInt16LE(offset: number, noAssert?: boolean): number; - readInt16BE(offset: number, noAssert?: boolean): number; - readInt32LE(offset: number, noAssert?: boolean): number; - readInt32BE(offset: number, noAssert?: boolean): number; - readFloatLE(offset: number, noAssert?: boolean): number; - readFloatBE(offset: number, noAssert?: boolean): number; - readDoubleLE(offset: number, noAssert?: boolean): number; - readDoubleBE(offset: number, noAssert?: boolean): number; - swap16(): Buffer; - swap32(): Buffer; - swap64(): Buffer; - writeUInt8(value: number, offset: number, noAssert?: boolean): number; - writeUInt16LE(value: number, offset: number, noAssert?: boolean): number; - writeUInt16BE(value: number, offset: number, noAssert?: boolean): number; - writeUInt32LE(value: number, offset: number, noAssert?: boolean): number; - writeUInt32BE(value: number, offset: number, noAssert?: boolean): number; - writeInt8(value: number, offset: number, noAssert?: boolean): number; - writeInt16LE(value: number, offset: number, noAssert?: boolean): number; - writeInt16BE(value: number, offset: number, noAssert?: boolean): number; - writeInt32LE(value: number, offset: number, noAssert?: boolean): number; - writeInt32BE(value: number, offset: number, noAssert?: boolean): number; - writeFloatLE(value: number, offset: number, noAssert?: boolean): number; - writeFloatBE(value: number, offset: number, noAssert?: boolean): number; - writeDoubleLE(value: number, offset: number, noAssert?: boolean): number; - writeDoubleBE(value: number, offset: number, noAssert?: boolean): number; - fill(value: unknown, offset?: number, end?: number): this; - indexOf( - value: string | number | Buffer, - byteOffset?: number, - encoding?: string - ): number; - lastIndexOf( - value: string | number | Buffer, - byteOffset?: number, - encoding?: string - ): number; - includes( - value: string | number | Buffer, - byteOffset?: number, - encoding?: string - ): boolean; - - /** - * Allocates a new buffer containing the given {str}. - * - * @param str String to store in buffer. - * @param encoding encoding to use, optional. Default is 'utf8' - */ - constructor(str: string, encoding?: string); - /** - * Allocates a new buffer of {size} octets. - * - * @param size count of octets to allocate. - */ - constructor(size: number); - /** - * Allocates a new buffer containing the given {array} of octets. - * - * @param array The octets to store. - */ - constructor(array: Uint8Array); - /** - * Produces a Buffer backed by the same allocated memory as - * the given {ArrayBuffer}. - * - * - * @param arrayBuffer The ArrayBuffer with which to share memory. - */ - constructor(arrayBuffer: ArrayBuffer); - /** - * Allocates a new buffer containing the given {array} of octets. - * - * @param array The octets to store. - */ - constructor(array: unknown[]); - /** - * Copies the passed {buffer} data onto a new {Buffer} instance. - * - * @param buffer The buffer to copy. - */ - constructor(buffer: Buffer); - prototype: Buffer; - /** - * Allocates a new Buffer using an {array} of octets. - * - * @param array - */ - static from(array: unknown[]): Buffer; - /** - * When passed a reference to the .buffer property of a TypedArray instance, - * the newly created Buffer will share the same allocated memory as the TypedArray. - * The optional {byteOffset} and {length} arguments specify a memory range - * within the {arrayBuffer} that will be shared by the Buffer. - * - * @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer() - * @param byteOffset - * @param length - */ - static from( - arrayBuffer: ArrayBuffer, - byteOffset?: number, - length?: number - ): Buffer; - /** - * Copies the passed {buffer} data onto a new Buffer instance. - * - * @param buffer - */ - static from(buffer: Buffer): Buffer; - /** - * Creates a new Buffer containing the given JavaScript string {str}. - * If provided, the {encoding} parameter identifies the character encoding. - * If not provided, {encoding} defaults to 'utf8'. - * - * @param str - */ - static from(str: string, encoding?: string): Buffer; - /** - * Returns true if {obj} is a Buffer - * - * @param obj object to test. - */ - static isBuffer(obj: unknown): obj is Buffer; - /** - * Returns true if {encoding} is a valid encoding argument. - * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' - * - * @param encoding string to test. - */ - static isEncoding(encoding: string): boolean; - /** - * Gives the actual byte length of a string. encoding defaults to 'utf8'. - * This is not the same as String.prototype.length since that returns the number of characters in a string. - * - * @param string string to test. - * @param encoding encoding used to evaluate (defaults to 'utf8') - */ - static byteLength(string: string, encoding?: string): number; - /** - * Returns a buffer which is the result of concatenating all the buffers in the list together. - * - * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer. - * If the list has exactly one item, then the first item of the list is returned. - * If the list has more than one item, then a new Buffer is created. - * - * @param list An array of Buffer objects to concatenate - * @param totalLength Total length of the buffers when concatenated. - * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly. - */ - static concat(list: Buffer[], totalLength?: number): Buffer; - /** - * The same as buf1.compare(buf2). - */ - static compare(buf1: Buffer, buf2: Buffer): number; - /** - * Allocates a new buffer of {size} octets. - * - * @param size count of octets to allocate. - * @param fill if specified, buffer will be initialized by calling buf.fill(fill). - * If parameter is omitted, buffer will be filled with zeros. - * @param encoding encoding used for call to buf.fill while initalizing - */ - static alloc( - size: number, - fill?: string | Buffer | number, - encoding?: string - ): Buffer; - /** - * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents - * of the newly created Buffer are unknown and may contain sensitive data. - * - * @param size count of octets to allocate - */ - static allocUnsafe(size: number): Buffer; - /** - * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents - * of the newly created Buffer are unknown and may contain sensitive data. - * - * @param size count of octets to allocate - */ - static allocUnsafeSlow(size: number): Buffer; -} diff --git a/package-lock.json b/package-lock.json index f1db6991f..103016cfc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,39 +1,28 @@ { "name": "opensea-js", - "version": "5.0.3", + "version": "6.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "opensea-js", - "version": "5.0.3", + "version": "6.0.0", + "hasInstallScript": true, "license": "MIT", "dependencies": { - "@opensea/seaport-js": "^1.2.1", - "ajv": "8.11.0", - "axios": "^1.3.4", - "bignumber.js": "9.0.2", - "ethereumjs-abi": "git+https://github.com/ProjectWyvern/ethereumjs-abi.git", - "ethereumjs-util": "^7.0.0", - "ethers": "^5.6.6", - "fbemitter": "^3.0.0", - "isomorphic-unfetch": "^4.0.0", - "lodash": "^4.17.21", - "safe-buffer": "^5.2.1", - "web3": "^1.8.1", - "wyvern-js": "git+https://github.com/ProjectOpenSea/wyvern-js.git#7429b1f2dd123f012cae1f3144a069e91ecd0682" + "@opensea/seaport-js": "^2.0.0", + "ethers": "^5.7.2", + "isomorphic-unfetch": "^4.0.2" }, "devDependencies": { - "@typechain/web3-v1": "^6.0.0", + "@typechain/ethers-v5": "^11.0.0", "@types/chai": "4.3.5", "@types/chai-as-promised": "^7.1.5", - "@types/fbemitter": "^2.0.32", - "@types/lodash": "^4.14.178", "@types/mocha": "^10.0.0", "@types/node": "^18.0.0", - "@types/query-string": "^6.1.0", "@typescript-eslint/eslint-plugin": "^5.7.0", "@typescript-eslint/parser": "^5.7.0", + "browserify": "^17.0.0", "chai": "4.3.7", "chai-as-promised": "^7.1.1", "concurrently": "8.0.1", @@ -44,11 +33,9 @@ "eslint-config-prettier": "^8.3.0", "eslint-import-resolver-typescript": "^3.0.0", "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^27.0.0", "eslint-plugin-prettier": "^4.0.0", - "ethereum-types": "^3.7.1", - "husky": "8.0.3", - "lint-staged": "13.2.2", + "husky": "^8.0.3", + "lint-staged": "^13.2.2", "mocha": "^10.0.0", "nyc": "^15.1.0", "prettier": "2.8.8", @@ -56,453 +43,190 @@ "ts-node": "10.9.1", "typechain": "^8.0.0", "typedoc": "^0.24.0", - "types-bn": "^0.0.1", - "types-ethereumjs-util": "0.0.8", "typescript": "5.0.4" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@0x/assert": { - "version": "3.0.31", - "resolved": "https://registry.npmjs.org/@0x/assert/-/assert-3.0.31.tgz", - "integrity": "sha512-ZzlnldKNvhA78IOcH6KCH3kb65XB7fI3wyuocjL72Es3eGTmyVg1KNK7eJnmV+RHSGDTYLwhvmb5hfIvFHMArg==", - "dependencies": { - "@0x/json-schemas": "^6.4.1", - "@0x/typescript-typings": "^5.2.1", - "@0x/utils": "^6.5.0", - "@types/node": "12.12.54", - "lodash": "^4.17.11", - "valid-url": "^1.0.9" + "node_modules/@0xsequence/abi": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/abi/-/abi-0.43.29.tgz", + "integrity": "sha512-tx5rwgkIrNGmvfFPEjm9s0/eX6hyWo90FMCEf1yxLZqjxUIhKS8AJvAvGH4sjmQ5eeAx5ujkE8xNxWEFs6gZPQ==" + }, + "node_modules/@0xsequence/api": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/api/-/api-0.43.29.tgz", + "integrity": "sha512-o/BW/KKX5SG+Rk58J1wv78MmKdW3OEqzcTZJ6isnUOSeG+4NYVrY+RV4r1zwu9BInI54jin2w0UGk9hjp5buqw==" + }, + "node_modules/@0xsequence/auth": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/auth/-/auth-0.43.29.tgz", + "integrity": "sha512-yX5i5b2tx5a/eF3g8NxkqXYTXa9LSAhDgJQCwFNKa1Trb10Ev3ADj+SlCpkxSpLk8ikUyPkg2ELwf9Usro4v4Q==", + "dependencies": { + "@0xsequence/abi": "^0.43.29", + "@0xsequence/api": "^0.43.29", + "@0xsequence/config": "^0.43.29", + "@0xsequence/ethauth": "^0.8.0", + "@0xsequence/indexer": "^0.43.29", + "@0xsequence/metadata": "^0.43.29", + "@0xsequence/network": "^0.43.29", + "@0xsequence/provider": "^0.43.29", + "@0xsequence/utils": "^0.43.29", + "@0xsequence/wallet": "^0.43.29" }, - "engines": { - "node": ">=6.12" + "peerDependencies": { + "ethers": ">=5.5 < 6" } }, - "node_modules/@0x/assert/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/@0x/base-contract": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@0x/base-contract/-/base-contract-6.4.2.tgz", - "integrity": "sha512-lcmsXGJ2ImiO1tJoWefYiQ8/WRSdQ4BPA8XulYqVQ4su6PYjLa1XvU91zM779QrIPeRo8fL7FUvGE7CkyG/gwA==", + "node_modules/@0xsequence/config": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/config/-/config-0.43.29.tgz", + "integrity": "sha512-HT63jMmEtM8+fj76oSuCOxiDEUe4pXrFB3FRiA7K+/SHu5JWyRoK3rv9RoEB/MPUpHPcqIBkFtTXaYLjGRe4yg==", "dependencies": { - "@0x/assert": "^3.0.29", - "@0x/json-schemas": "^6.3.0", - "@0x/utils": "^6.4.4", - "@0x/web3-wrapper": "^7.6.0", - "@types/node": "12.12.54", - "ethereumjs-account": "^3.0.0", - "ethereumjs-blockstream": "^7.0.0", - "ethereumjs-util": "^7.1.0", - "ethereumjs-vm": "^4.2.0", - "ethers": "~4.0.4", - "js-sha3": "^0.7.0", - "uuid": "^3.3.2" + "@0xsequence/abi": "^0.43.29", + "@0xsequence/multicall": "^0.43.29", + "@0xsequence/network": "^0.43.29", + "@0xsequence/utils": "^0.43.29" }, - "engines": { - "node": ">=6.12" - } - }, - "node_modules/@0x/base-contract/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/@0x/base-contract/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/@0x/base-contract/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" + "peerDependencies": { + "ethers": ">=5.5 < 6" } }, - "node_modules/@0x/base-contract/node_modules/ethers/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==" - }, - "node_modules/@0x/base-contract/node_modules/ethers/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "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." - }, - "node_modules/@0x/base-contract/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "node_modules/@0xsequence/ethauth": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@0xsequence/ethauth/-/ethauth-0.8.1.tgz", + "integrity": "sha512-P21cxRSS+2mDAqFVAJt0lwQFtbObX+Ewlj8DMyDELp81+QbfHFh6LCyu8dTXNdBx6UbmRFOCSBno5Txd50cJPQ==", "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "js-base64": "^3.7.2" + }, + "peerDependencies": { + "ethers": ">=5.5" } }, - "node_modules/@0x/base-contract/node_modules/js-sha3": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.7.0.tgz", - "integrity": "sha512-Wpks3yBDm0UcL5qlVhwW9Jr9n9i4FfeWBFOOXP5puDS/SiudJGhw7DPyBqn3487qD4F0lsC0q3zxink37f7zeA==" - }, - "node_modules/@0x/base-contract/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" + "node_modules/@0xsequence/guard": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/guard/-/guard-0.43.29.tgz", + "integrity": "sha512-IZ40BoChB/ws09NbSzytOi/8xojsR3g8sgwzZ/eth6YWeMP1MIuZc2BjRDAc59oStkspZxguWnE4HgVibTBHug==" }, - "node_modules/@0x/base-contract/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" + "node_modules/@0xsequence/indexer": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/indexer/-/indexer-0.43.29.tgz", + "integrity": "sha512-Myx/2D+vcoY/cPYKIqoB1VyALo4e4P3KQsOWxkb6o2JADOntY0mcFq9YIMPl+Zj1xPkGHTCNIk2p1udKMhbKzQ==" }, - "node_modules/@0x/base-contract/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/@0xsequence/metadata": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/metadata/-/metadata-0.43.29.tgz", + "integrity": "sha512-wk15QFMaz0h0kNP2W9Ms1rVykG6N/tPzRdhqvBviq2vROZFHmBwq7TbWae4t/gIeoo+1FZI5507771edJ8KJaw==" }, - "node_modules/@0x/json-schemas": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@0x/json-schemas/-/json-schemas-6.4.1.tgz", - "integrity": "sha512-4LGe7/QNKAdfxBNu5e5w24JKUqEHGg08TgKhyotStW5m0TJNBGoyGavip1FJeI3KRqNilRN22lgo9HsCBnF5Qg==", + "node_modules/@0xsequence/multicall": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/multicall/-/multicall-0.43.29.tgz", + "integrity": "sha512-7kV3koB0aaLHjJjjoxIYhk8R/40WMIFOzJNZSRnzmeSKf67hvQNw9rkZwr0qx3B11IPANfZnmhs2gOnybAbiBQ==", "dependencies": { - "@0x/typescript-typings": "^5.2.1", - "@types/node": "12.12.54", - "ajv": "^6.12.5", - "lodash.values": "^4.3.0" + "@0xsequence/abi": "^0.43.29", + "@0xsequence/network": "^0.43.29", + "@0xsequence/utils": "^0.43.29" }, - "engines": { - "node": ">=6.12" + "peerDependencies": { + "ethers": ">=5.5 < 6" } }, - "node_modules/@0x/json-schemas/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/@0x/json-schemas/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@0xsequence/network": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/network/-/network-0.43.29.tgz", + "integrity": "sha512-0CmgIpmfOVOmqzIbaDg8hzRc7aR/z2Lx4wwrqEAsfsggp7+y6mwm8rSda4Z6ZOtlBeWSod9w+x3AqpL8iZenYg==", "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" + "@0xsequence/indexer": "^0.43.29", + "@0xsequence/provider": "^0.43.29", + "@0xsequence/relayer": "^0.43.29", + "@0xsequence/utils": "^0.43.29" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "peerDependencies": { + "ethers": ">=5.5 < 6" } }, - "node_modules/@0x/json-schemas/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/@0x/typescript-typings": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/@0x/typescript-typings/-/typescript-typings-5.3.2.tgz", - "integrity": "sha512-VIo8PS/IRXrI1aEzM8TenUMViX4MFMKBnIAwqC4K/ewVDSnKyYZSk8fzw0XZph6tN07obchPf+1sHIWYe8EUow==", + "node_modules/@0xsequence/provider": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/provider/-/provider-0.43.29.tgz", + "integrity": "sha512-ZfKMh8YgtRcJ9gt5PChHjGA11R226IRjA5UjYHBYOSywcQxTUjpyEMrCEfFQ5x9n8X3MVF+0RJaFbPFs6FyDxg==", "dependencies": { - "@types/bn.js": "^4.11.0", - "@types/node": "12.12.54", - "@types/react": "*", - "bignumber.js": "~9.0.2", - "ethereum-types": "^3.7.1", - "popper.js": "1.14.3" + "@0xsequence/abi": "^0.43.29", + "@0xsequence/auth": "^0.43.29", + "@0xsequence/config": "^0.43.29", + "@0xsequence/network": "^0.43.29", + "@0xsequence/relayer": "^0.43.29", + "@0xsequence/transactions": "^0.43.29", + "@0xsequence/utils": "^0.43.29", + "@0xsequence/wallet": "^0.43.29", + "eventemitter2": "^6.4.5", + "webextension-polyfill": "^0.10.0" }, - "engines": { - "node": ">=6.12" - } - }, - "node_modules/@0x/typescript-typings/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": "*" + "peerDependencies": { + "ethers": ">=5.5 < 6" } }, - "node_modules/@0x/typescript-typings/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/@0x/utils": { - "version": "6.5.0", - "resolved": "https://github.com/ProjectOpensea/0x-tools/raw/provider-patch/utils/0x-utils-6.5.0.tgz", - "integrity": "sha512-CtpyQ21syDT1HGJks38t2MU42uc1TTBSnXy0iqYeuVSnNG730OQZbMWvOTJqN7DRyAxYhC+xGwdDqL1k3Fsv3Q==", - "license": "Apache-2.0", + "node_modules/@0xsequence/relayer": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/relayer/-/relayer-0.43.29.tgz", + "integrity": "sha512-Yp1mrOvhzMLvrvLoxrH+qHo6kp6LEzTLzF0NYzM/j7wVKdY0FBOEHEO6sSCVNrSOv8YRDRjtnz/3K7Sh3eweXw==", "dependencies": { - "abortcontroller-polyfill": "^1.1.9", - "bignumber.js": "~9.0.0", - "chalk": "^2.3.0", - "detect-node": "2.0.3", - "ethereumjs-util": "^7.1.0", - "ethers": "~4.0.4", - "isomorphic-fetch": "2.2.1", - "js-sha3": "^0.7.0", - "lodash": "^4.17.11" + "@0xsequence/abi": "^0.43.29", + "@0xsequence/config": "^0.43.29", + "@0xsequence/network": "^0.43.29", + "@0xsequence/transactions": "^0.43.29", + "@0xsequence/utils": "^0.43.29" }, - "engines": { - "node": ">=6.12" + "peerDependencies": { + "ethers": ">=5.5 < 6" } }, - "node_modules/@0x/utils/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==", + "node_modules/@0xsequence/transactions": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/transactions/-/transactions-0.43.29.tgz", + "integrity": "sha512-htJ+vY372Yfe9ojufP2KzJRXaL9cnWGTP+dZD3KAp47AJbCfcf44/ggqL6rLzCFhQSqF3e6m2BoBNA2GvIsilQ==", "dependencies": { - "color-convert": "^1.9.0" + "@0xsequence/abi": "^0.43.29", + "@0xsequence/config": "^0.43.29", + "@0xsequence/network": "^0.43.29", + "@0xsequence/utils": "^0.43.29" }, - "engines": { - "node": ">=4" + "peerDependencies": { + "ethers": ">=5.5 < 6" } }, - "node_modules/@0x/utils/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/@0x/utils/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==", + "node_modules/@0xsequence/utils": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/utils/-/utils-0.43.29.tgz", + "integrity": "sha512-5GVIIoxlGESZ+GIPn/0IKu4oTcPTpteDbks4dKjfL+jF/jogZB7qWIWUpOF3O0wgZO5xbimZIur6GowcQq8aLw==", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "js-base64": "^3.7.2" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@0x/utils/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==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@0x/utils/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==" - }, - "node_modules/@0x/utils/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@0x/utils/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/@0x/utils/node_modules/ethers/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==" - }, - "node_modules/@0x/utils/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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@0x/utils/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "peerDependencies": { + "ethers": ">=5.5 < 6" } }, - "node_modules/@0x/utils/node_modules/js-sha3": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.7.0.tgz", - "integrity": "sha512-Wpks3yBDm0UcL5qlVhwW9Jr9n9i4FfeWBFOOXP5puDS/SiudJGhw7DPyBqn3487qD4F0lsC0q3zxink37f7zeA==" - }, - "node_modules/@0x/utils/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" - }, - "node_modules/@0x/utils/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" - }, - "node_modules/@0x/utils/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==", + "node_modules/@0xsequence/wallet": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/wallet/-/wallet-0.43.29.tgz", + "integrity": "sha512-TBx+tQK/hM7QgfKdC+PtrEGNGsTHhEKmvbt7kiVzikKRcP5lWmQRfb2wrHds6/RpRvEUBg9yoUEGMdqCW+JjiQ==", "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@0x/utils/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "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." - }, - "node_modules/@0x/web3-wrapper": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@0x/web3-wrapper/-/web3-wrapper-7.6.0.tgz", - "integrity": "sha512-yxvTT/w5PFfnbKZ9Xvt412fyhVfiNQ0ugFbJYr+X+Xye+Q9vZzzbfc2a3bJSO7w/HkZx7vND071F/jtqU1JsEg==", - "dependencies": { - "@0x/assert": "^3.0.29", - "@0x/json-schemas": "^6.3.0", - "@0x/typescript-typings": "^5.2.1", - "@0x/utils": "^6.4.4", - "@types/node": "12.12.54", - "ethereum-types": "^3.6.0", - "ethereumjs-util": "^7.1.0", - "ethers": "~4.0.4", - "lodash": "^4.17.11" + "@0xsequence/abi": "^0.43.29", + "@0xsequence/config": "^0.43.29", + "@0xsequence/guard": "^0.43.29", + "@0xsequence/network": "^0.43.29", + "@0xsequence/relayer": "^0.43.29", + "@0xsequence/transactions": "^0.43.29", + "@0xsequence/utils": "^0.43.29" }, - "engines": { - "node": ">=6.12" - } - }, - "node_modules/@0x/web3-wrapper/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/@0x/web3-wrapper/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/@0x/web3-wrapper/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/@0x/web3-wrapper/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/@0x/web3-wrapper/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==" - }, - "node_modules/@0x/web3-wrapper/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" - }, - "node_modules/@0x/web3-wrapper/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" - }, - "node_modules/@0x/web3-wrapper/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "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." - }, - "node_modules/@0xsequence/abi": { - "version": "0.39.6", - "resolved": "https://registry.npmjs.org/@0xsequence/abi/-/abi-0.39.6.tgz", - "integrity": "sha512-ROHfAyQvN1N2G6DeVyWR4wxi0dd0HjJZQ+2UkxvYJrdywQZONmrUPD6MfT4Fd+JrQwdIxkcNu2/QfgkyZDerFw==" - }, - "node_modules/@0xsequence/multicall": { - "version": "0.39.6", - "resolved": "https://registry.npmjs.org/@0xsequence/multicall/-/multicall-0.39.6.tgz", - "integrity": "sha512-oHgxAuYoanYXKArrzPF+a8f9CAzDX5xYp+U+bcCd3qOagIn1xeQCEW4zbnGDRD+ZguhlcP2I7wiW1eImmoOi1g==", - "dependencies": { - "@0xsequence/abi": "^0.39.6", - "@0xsequence/network": "^0.39.6", - "@0xsequence/utils": "^0.39.6", - "@ethersproject/providers": "^5.5.1", - "ethers": "^5.5.2" - } - }, - "node_modules/@0xsequence/network": { - "version": "0.39.6", - "resolved": "https://registry.npmjs.org/@0xsequence/network/-/network-0.39.6.tgz", - "integrity": "sha512-esmdTCT98tjjbYoiYjaOmJIG0aSgadg9wR1FB6lzPdAVuq+xOGvxygtTiqhTqXF+YI2Alc4b5EP7tUWC9OA10Q==", - "dependencies": { - "@0xsequence/utils": "^0.39.6", - "@ethersproject/providers": "^5.5.1", - "ethers": "^5.5.2" - } - }, - "node_modules/@0xsequence/utils": { - "version": "0.39.6", - "resolved": "https://registry.npmjs.org/@0xsequence/utils/-/utils-0.39.6.tgz", - "integrity": "sha512-Zf5NTRSzrOrc48SXsmtRDs1uaJ0gaOjwQYkANoIco54Rq+IA1Dlz9HWRebgyjeCUrXLnGCckljBemAUoZbVgIg==", - "dependencies": { - "@ethersproject/abstract-signer": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "ethers": "^5.5.2", - "js-base64": "^3.7.2" + "peerDependencies": { + "ethers": ">=5.5 < 6" } }, "node_modules/@ampproject/remapping": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -513,9 +237,8 @@ }, "node_modules/@babel/code-frame": { "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/highlight": "^7.18.6" }, @@ -525,18 +248,16 @@ }, "node_modules/@babel/compat-data": { "version": "7.21.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", - "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz", - "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.21.4", @@ -564,18 +285,16 @@ }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", - "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.21.5", "@jridgewell/gen-mapping": "^0.3.2", @@ -588,9 +307,8 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", - "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.21.5", "@babel/helper-validator-option": "^7.21.0", @@ -607,27 +325,24 @@ }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-environment-visitor": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", - "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.20.7", "@babel/types": "^7.21.0" @@ -638,9 +353,8 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -650,9 +364,8 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.21.4" }, @@ -662,9 +375,8 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", - "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.21.5", "@babel/helper-module-imports": "^7.21.4", @@ -681,9 +393,8 @@ }, "node_modules/@babel/helper-simple-access": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", - "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.21.5" }, @@ -693,9 +404,8 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -705,36 +415,32 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", - "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", - "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.20.7", "@babel/traverse": "^7.21.5", @@ -746,9 +452,8 @@ }, "node_modules/@babel/highlight": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", @@ -760,9 +465,8 @@ }, "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, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -772,9 +476,8 @@ }, "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, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -786,42 +489,37 @@ }, "node_modules/@babel/highlight/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, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@babel/highlight/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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -831,9 +529,8 @@ }, "node_modules/@babel/parser": { "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", - "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", "dev": true, + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -843,9 +540,8 @@ }, "node_modules/@babel/runtime": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", - "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", "dev": true, + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -855,9 +551,8 @@ }, "node_modules/@babel/template": { "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.20.7", @@ -869,9 +564,8 @@ }, "node_modules/@babel/traverse": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", - "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.21.4", "@babel/generator": "^7.21.5", @@ -890,18 +584,16 @@ }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/types": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", - "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.21.5", "@babel/helper-validator-identifier": "^7.19.1", @@ -913,9 +605,8 @@ }, "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, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -925,9 +616,8 @@ }, "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, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -935,9 +625,8 @@ }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -950,18 +639,16 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", - "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -982,9 +669,8 @@ }, "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, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -998,15 +684,13 @@ }, "node_modules/@eslint/eslintrc/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 + "dev": true, + "license": "Python-2.0" }, "node_modules/@eslint/eslintrc/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, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -1016,41 +700,19 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/@eslint/js": { "version": "8.41.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz", - "integrity": "sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" - } - }, - "node_modules/@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" - } - }, "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", @@ -1061,6 +723,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/address": "^5.7.0", "@ethersproject/bignumber": "^5.7.0", @@ -1075,8 +738,6 @@ }, "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", @@ -1087,6 +748,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", @@ -1099,8 +761,6 @@ }, "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", @@ -1111,6 +771,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/abstract-provider": "^5.7.0", "@ethersproject/bignumber": "^5.7.0", @@ -1121,8 +782,6 @@ }, "node_modules/@ethersproject/address": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", "funding": [ { "type": "individual", @@ -1133,6 +792,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", @@ -1143,8 +803,6 @@ }, "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", @@ -1155,14 +813,13 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0" } }, "node_modules/@ethersproject/basex": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", "funding": [ { "type": "individual", @@ -1173,6 +830,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/properties": "^5.7.0" @@ -1180,8 +838,6 @@ }, "node_modules/@ethersproject/bignumber": { "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", @@ -1192,6 +848,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0", @@ -1200,8 +857,6 @@ }, "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", @@ -1212,14 +867,13 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@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", @@ -1230,14 +884,13 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bignumber": "^5.7.0" } }, "node_modules/@ethersproject/contracts": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", "funding": [ { "type": "individual", @@ -1248,6 +901,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/abi": "^5.7.0", "@ethersproject/abstract-provider": "^5.7.0", @@ -1263,8 +917,6 @@ }, "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", @@ -1275,6 +927,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/address": "^5.7.0", @@ -1289,8 +942,6 @@ }, "node_modules/@ethersproject/hdnode": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", "funding": [ { "type": "individual", @@ -1301,6 +952,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/basex": "^5.7.0", @@ -1318,8 +970,6 @@ }, "node_modules/@ethersproject/json-wallets": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", "funding": [ { "type": "individual", @@ -1330,6 +980,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/address": "^5.7.0", @@ -1348,8 +999,6 @@ }, "node_modules/@ethersproject/keccak256": { "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", @@ -1360,6 +1009,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "js-sha3": "0.8.0" @@ -1367,8 +1017,6 @@ }, "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", @@ -1378,12 +1026,11 @@ "type": "individual", "url": "https://www.buymeacoffee.com/ricmoo" } - ] + ], + "license": "MIT" }, "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", @@ -1394,14 +1041,13 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/logger": "^5.7.0" } }, "node_modules/@ethersproject/pbkdf2": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", "funding": [ { "type": "individual", @@ -1412,6 +1058,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/sha2": "^5.7.0" @@ -1419,8 +1066,6 @@ }, "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", @@ -1431,14 +1076,13 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/logger": "^5.7.0" } }, "node_modules/@ethersproject/providers": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", "funding": [ { "type": "individual", @@ -1449,6 +1093,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/abstract-provider": "^5.7.0", "@ethersproject/abstract-signer": "^5.7.0", @@ -1474,8 +1119,6 @@ }, "node_modules/@ethersproject/random": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", "funding": [ { "type": "individual", @@ -1486,6 +1129,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0" @@ -1493,8 +1137,6 @@ }, "node_modules/@ethersproject/rlp": { "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", @@ -1505,6 +1147,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0" @@ -1512,8 +1155,6 @@ }, "node_modules/@ethersproject/sha2": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", "funding": [ { "type": "individual", @@ -1524,6 +1165,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0", @@ -1532,8 +1174,6 @@ }, "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", @@ -1544,6 +1184,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0", @@ -1555,8 +1196,6 @@ }, "node_modules/@ethersproject/solidity": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", "funding": [ { "type": "individual", @@ -1567,6 +1206,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", @@ -1578,8 +1218,6 @@ }, "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", @@ -1590,6 +1228,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/constants": "^5.7.0", @@ -1598,8 +1237,6 @@ }, "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", @@ -1610,6 +1247,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/address": "^5.7.0", "@ethersproject/bignumber": "^5.7.0", @@ -1624,8 +1262,6 @@ }, "node_modules/@ethersproject/units": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", "funding": [ { "type": "individual", @@ -1636,6 +1272,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/constants": "^5.7.0", @@ -1644,8 +1281,6 @@ }, "node_modules/@ethersproject/wallet": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", "funding": [ { "type": "individual", @@ -1656,6 +1291,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/abstract-provider": "^5.7.0", "@ethersproject/abstract-signer": "^5.7.0", @@ -1676,8 +1312,6 @@ }, "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", @@ -1688,6 +1322,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/base64": "^5.7.0", "@ethersproject/bytes": "^5.7.0", @@ -1698,8 +1333,6 @@ }, "node_modules/@ethersproject/wordlists": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", "funding": [ { "type": "individual", @@ -1710,6 +1343,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/hash": "^5.7.0", @@ -1720,9 +1354,8 @@ }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", @@ -1734,9 +1367,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -1747,15 +1379,13 @@ }, "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 + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -1769,9 +1399,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -1782,9 +1411,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -1794,9 +1422,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -1809,9 +1436,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -1821,27 +1447,24 @@ }, "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", "engines": { "node": ">=8" } }, "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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1853,33 +1476,29 @@ }, "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, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" @@ -1887,21 +1506,13 @@ }, "node_modules/@jridgewell/trace-mapping/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/@machinomy/types-safe-buffer": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@machinomy/types-safe-buffer/-/types-safe-buffer-0.0.1.tgz", - "integrity": "sha512-RZi6CQ4GJrwtz8iAt87vuUbaBnuA6T1jM/xDuXwZ63CuuEPGVPu4ElHcaUE42J66Yhpi2LWbrCeHFAiXnVzRlQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@morgan-stanley/ts-mocking-bird": { "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@morgan-stanley/ts-mocking-bird/-/ts-mocking-bird-0.6.4.tgz", - "integrity": "sha512-57VJIflP8eR2xXa9cD1LUawh+Gh+BVQfVu0n6GALyg/AqV/Nz25kDRvws3i9kIe1PTrbsZZOYpsYp6bXPd6nVA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "lodash": "^4.17.16", "uuid": "^7.0.3" @@ -1922,18 +1533,16 @@ }, "node_modules/@morgan-stanley/ts-mocking-bird/node_modules/uuid": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", "dev": true, + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "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, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -1944,18 +1553,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -1965,23 +1572,22 @@ } }, "node_modules/@opensea/seaport-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opensea/seaport-js/-/seaport-js-1.3.0.tgz", - "integrity": "sha512-yKtjP4k2lLGfF/eBsjsIj0FPquD+WL2M1BfihrAiFTQuGIEb+PMAxZmVLUr9UAWX79TcAwnZGJW/qMxF3VsR3A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@opensea/seaport-js/-/seaport-js-2.0.0.tgz", + "integrity": "sha512-G6SiEfJAk085CY1d2WEl8fJcncGy2R1WDYDVsu3sE7DHrXg5yR8z9yMovxSff7Juq+dCOmQKyNGvixQubrlvxA==", "dependencies": { - "@0xsequence/multicall": "^0.39.0", - "ethers": "^5.6.7", - "merkletreejs": "^0.3.9" + "@0xsequence/multicall": "^0.43.29", + "ethers": "^5.7.2", + "merkletreejs": "^0.3.10" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" } }, "node_modules/@pkgr/utils": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.0.tgz", - "integrity": "sha512-2OCURAmRtdlL8iUDTypMrrxfwe8frXTeXaxGsVOaYtc/wrUyk8Z/0OBetM7cdlsy7ZFWlMX72VogKeh+A4Xcjw==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "fast-glob": "^3.2.12", @@ -1997,144 +1603,76 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, - "node_modules/@typechain/web3-v1": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@typechain/web3-v1/-/web3-v1-6.0.3.tgz", - "integrity": "sha512-bFBYiA/Wh9XSoPtZ0nnrvg0a0brAHXhL/nCsPnPS999f9EUD9MOwkdOh8zhvY5oNzi6GMD5+KEmwE7A/eTqgeQ==", + "node_modules/@typechain/ethers-v5": { + "version": "11.0.0", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.15", "ts-essentials": "^7.0.1" }, "peerDependencies": { + "@ethersproject/abi": "^5.0.0", + "@ethersproject/providers": "^5.0.0", + "ethers": "^5.1.3", "typechain": "^8.2.0", - "web3": "^1", - "web3-core": "^1", - "web3-eth-contract": "^1" + "typescript": ">=4.3.0" } }, "node_modules/@types/bn.js": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, "node_modules/@types/chai": { "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", - "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/chai-as-promised": { "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz", - "integrity": "sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/chai": "*" } }, - "node_modules/@types/fbemitter": { - "version": "2.0.32", - "resolved": "https://registry.npmjs.org/@types/fbemitter/-/fbemitter-2.0.32.tgz", - "integrity": "sha512-Hwq28bBlbmfCgLnNJvjl5ssTrbZCTSblI4vqPpqZrbbEL8vn5l2UivxhlMYfUY7a4SR8UB6RKoLjOZfljqAa6g==", - "dev": true - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" - }, "node_modules/@types/json-schema": { "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "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/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/lodash": { - "version": "4.14.194", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", - "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/mocha": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", - "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { "version": "18.16.16", @@ -2143,87 +1681,42 @@ }, "node_modules/@types/parse-author": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/parse-author/-/parse-author-2.0.1.tgz", - "integrity": "sha512-2RNXvvDY+7ITl/Q3znDpW9DxyAckKgLCXpoiBHN9BeLH1aV7z/W657P2+PK3wVUgGWXtc99ZQy3LkJTGlxLsvA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/parse-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/pbkdf2": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/prettier": { "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true - }, - "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" - }, - "node_modules/@types/query-string": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@types/query-string/-/query-string-6.3.0.tgz", - "integrity": "sha512-yuIv/WRffRzL7cBW+sla4HwBZrEXRNf1MKQ5SklPEadth+BKbDxiVG8A3iISN5B3yC4EeSCzMZP8llHTcUhOzQ==", - "deprecated": "This is a stub types definition. query-string provides its own type definitions, so you do not need this installed.", "dev": true, - "dependencies": { - "query-string": "*" - } - }, - "node_modules/@types/react": { - "version": "18.2.6", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.6.tgz", - "integrity": "sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" + "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/semver": { "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.7.tgz", - "integrity": "sha512-BL+jYxUFIbuYwy+4fF86k5vdT9lT0CNJ6HtwrIvGh0PhH8s0yy5rjaKH2fDCrz5ITHy07WCzVGNvAmjJh4IJFA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.4.0", "@typescript-eslint/scope-manager": "5.59.7", @@ -2255,9 +1748,8 @@ }, "node_modules/@typescript-eslint/parser": { "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.7.tgz", - "integrity": "sha512-VhpsIEuq/8i5SF+mPg9jSdIwgMBBp0z9XqjiEay+81PYLJuroN+ET1hM5IhkiYMJd9MkTz8iJLt7aaGAgzWUbQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "5.59.7", "@typescript-eslint/types": "5.59.7", @@ -2282,9 +1774,8 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.7.tgz", - "integrity": "sha512-FL6hkYWK9zBGdxT2wWEd2W8ocXMu3K94i3gvMrjXpx+koFYdYV7KprKfirpgY34vTGzEPPuKoERpP8kD5h7vZQ==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.59.7", "@typescript-eslint/visitor-keys": "5.59.7" @@ -2299,9 +1790,8 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.7.tgz", - "integrity": "sha512-ozuz/GILuYG7osdY5O5yg0QxXUAEoI4Go3Do5xeu+ERH9PorHBPSdvD3Tjp2NN2bNLh1NJQSsQu2TPu/Ly+HaQ==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "5.59.7", "@typescript-eslint/utils": "5.59.7", @@ -2326,9 +1816,8 @@ }, "node_modules/@typescript-eslint/types": { "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.7.tgz", - "integrity": "sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -2339,9 +1828,8 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.7.tgz", - "integrity": "sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "5.59.7", "@typescript-eslint/visitor-keys": "5.59.7", @@ -2366,9 +1854,8 @@ }, "node_modules/@typescript-eslint/utils": { "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.7.tgz", - "integrity": "sha512-yCX9WpdQKaLufz5luG4aJbOpdXf/fjwGMcLFXZVPUz3QqLirG5QcwwnIHNf8cjLjxK4qtzTO8udUtMQSAToQnQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", @@ -2392,9 +1879,8 @@ }, "node_modules/@typescript-eslint/visitor-keys": { "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.7.tgz", - "integrity": "sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.59.7", "eslint-visitor-keys": "^3.3.0" @@ -2407,39 +1893,39 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==" - }, - "node_modules/abstract-leveldown": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", - "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", - "dependencies": { - "xtend": "~4.0.0" + "node_modules/acorn": { + "version": "8.8.2", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=6" + "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/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==", + "node_modules/acorn-node": { + "version": "1.8.2", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" } }, - "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -2447,34 +1933,30 @@ "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==", + "node_modules/acorn-node/node_modules/acorn-walk": { + "version": "7.2.0", "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "license": "MIT", + "engines": { + "node": ">=0.4.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, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/aes-js": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -2483,35 +1965,18 @@ "node": ">=8" } }, - "node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "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.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -2524,9 +1989,8 @@ }, "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, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -2536,24 +2000,21 @@ }, "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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-sequence-parser": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", - "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -2566,9 +2027,8 @@ }, "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, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -2579,9 +2039,8 @@ }, "node_modules/append-transform": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", "dev": true, + "license": "MIT", "dependencies": { "default-require-extensions": "^3.0.0" }, @@ -2591,38 +2050,34 @@ }, "node_modules/archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/arg": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/array-back": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "is-array-buffer": "^3.0.1" @@ -2631,16 +2086,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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/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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -2657,18 +2106,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -2684,9 +2131,8 @@ }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -2700,102 +2146,93 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.reduce": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", - "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", + "node_modules/asn1": { + "version": "0.2.6", + "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" + "safer-buffer": "~2.1.0" } }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + "node_modules/asn1.js": { + "version": "5.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } }, - "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==", + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "dev": true, + "license": "MIT" + }, + "node_modules/assert": { + "version": "1.5.0", + "dev": true, + "license": "MIT", "dependencies": { - "safer-buffer": "~2.1.0" + "object-assign": "^4.1.1", + "util": "0.10.3" } }, "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==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "2.0.1" + } + }, "node_modules/assertion-error": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "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, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "dependencies": { - "async": "^2.4.0" - } - }, - "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==" + "dev": true, + "license": "MIT" }, "node_modules/author-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/author-regex/-/author-regex-1.0.0.tgz", - "integrity": "sha512-KbWgR8wOYRAPekEmMXrYYdc7BRyhn2Ftk7KWfMUnQ43hFdojWEFRxhhRUm3/OFEdPa1r0KAvTTg9YQK57xTe0g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } }, "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, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2805,45 +2242,32 @@ }, "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==", + "dev": true, + "license": "Apache-2.0", "engines": { "node": "*" } }, "node_modules/aws4": { "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" - }, - "node_modules/axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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==", + "license": "MIT", "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==", + "dev": true, "funding": [ { "type": "github", @@ -2857,129 +2281,67 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "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==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { "tweetnacl": "^0.14.3" } }, "node_modules/bech32": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + "license": "MIT" }, "node_modules/big-integer": { "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", "dev": true, + "license": "Unlicense", "engines": { "node": ">=0.6" } }, "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==", + "license": "MIT", "engines": { "node": "*" } }, "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, + "license": "MIT", "engines": { "node": ">=8" } }, "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==" + "license": "MIT" }, "node_modules/bn.js": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "license": "MIT" }, - "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "node_modules/bplist-parser": { + "version": "0.2.0", + "dev": true, + "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "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.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "big-integer": "^1.6.44" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/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/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "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", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", - "dev": true, - "dependencies": { - "big-integer": "^1.6.44" - }, - "engines": { - "node": ">= 5.10.0" + "node": ">= 5.10.0" } }, "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, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2987,9 +2349,8 @@ }, "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, + "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -2999,19 +2360,101 @@ }, "node_modules/brorand": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + "license": "MIT" + }, + "node_modules/browser-pack": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "JSONStream": "^1.0.3", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + }, + "bin": { + "browser-pack": "bin/cmd.js" + } + }, + "node_modules/browser-resolve": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.17.0" + } }, "node_modules/browser-stdout": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true + "dev": true, + "license": "ISC" + }, + "node_modules/browserify": { + "version": "17.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^2.0.0", + "browserify-zlib": "~0.2.0", + "buffer": "~5.2.1", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.1", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^3.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.2.1", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.2.3", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "^1.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum-object": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^3.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.12.0", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "browserify": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8" + } }, "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==", + "license": "MIT", "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -3021,10 +2464,108 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "dev": true, + "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", + "dev": true, + "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", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "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" + } + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserify/node_modules/buffer": { + "version": "5.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/browserify/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/browserify/node_modules/punycode": { + "version": "1.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/browserify/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/browserify/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/browserify/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/browserslist": { "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, "funding": [ { @@ -3036,6 +2577,7 @@ "url": "https://tidelift.com/funding/github/npm/browserslist" } ], + "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001449", "electron-to-chromium": "^1.4.284", @@ -3051,70 +2593,39 @@ }, "node_modules/bs58": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", "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==", + "license": "MIT", "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-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, + "license": "MIT" }, "node_modules/buffer-reverse": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz", - "integrity": "sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg==" - }, - "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==" + "license": "MIT" }, "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==" + "license": "MIT" }, "node_modules/bufferutil": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", "hasInstallScript": true, + "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -3122,11 +2633,15 @@ "node": ">=6.14.2" } }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/bundle-name": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", - "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", "dev": true, + "license": "MIT", "dependencies": { "run-applescript": "^5.0.0" }, @@ -3137,66 +2652,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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-lookup": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", - "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==", - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "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/cached-path-relative": { + "version": "1.1.0", + "dev": true, + "license": "MIT" }, "node_modules/caching-transform": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", "dev": true, + "license": "MIT", "dependencies": { "hasha": "^5.0.0", "make-dir": "^3.0.0", @@ -3209,8 +2673,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==", + "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -3221,26 +2685,22 @@ }, "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, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camelcase": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { "version": "1.0.30001488", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001488.tgz", - "integrity": "sha512-NORIQuuL4xGpIy6iCCQGN4iFjlBXtfKWIenlUuyZJumLRIindLb7wXM+GO8erEhb7vXfcnf4BAg2PrSDN5TNLQ==", "dev": true, "funding": [ { @@ -3255,18 +2715,18 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + "dev": true, + "license": "Apache-2.0" }, "node_modules/chai": { "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "dev": true, + "license": "MIT", "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", @@ -3282,9 +2742,8 @@ }, "node_modules/chai-as-promised": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, + "license": "WTFPL", "dependencies": { "check-error": "^1.0.2" }, @@ -3294,9 +2753,8 @@ }, "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, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3310,9 +2768,8 @@ }, "node_modules/chalk/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -3322,25 +2779,14 @@ }, "node_modules/check-error": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, - "node_modules/checkpoint-store": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", - "integrity": "sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg==", - "dependencies": { - "functional-red-black-tree": "^1.0.1" - } - }, "node_modules/chokidar": { "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "funding": [ { @@ -3348,6 +2794,7 @@ "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -3366,9 +2813,8 @@ }, "node_modules/chokidar/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, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -3376,66 +2822,26 @@ "node": ">= 6" } }, - "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==", + "license": "MIT", "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/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, + "license": "MIT", "engines": { "node": ">=6" } }, "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, + "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -3445,9 +2851,8 @@ }, "node_modules/cli-truncate": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", "dev": true, + "license": "MIT", "dependencies": { "slice-ansi": "^5.0.0", "string-width": "^5.0.0" @@ -3461,9 +2866,8 @@ }, "node_modules/cliui": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -3475,24 +2879,21 @@ }, "node_modules/cliui/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 + "dev": true, + "license": "MIT" }, "node_modules/cliui/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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/cliui/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, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -3502,22 +2903,10 @@ "node": ">=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==", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "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, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -3527,36 +2916,57 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/colorette": { "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true + "dev": true, + "license": "MIT" }, - "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==", + "node_modules/combine-source-map": { + "version": "0.8.0", + "dev": true, + "license": "MIT", "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" } }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "node_modules/combine-source-map/node_modules/convert-source-map": { + "version": "1.1.3", "dev": true, - "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", + "license": "MIT" + }, + "node_modules/combine-source-map/node_modules/source-map": { + "version": "0.5.7", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", "typical": "^4.0.0" }, "engines": { @@ -3565,9 +2975,8 @@ }, "node_modules/command-line-usage": { "version": "6.1.3", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", - "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^4.0.2", "chalk": "^2.4.2", @@ -3580,9 +2989,8 @@ }, "node_modules/command-line-usage/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, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -3592,18 +3000,16 @@ }, "node_modules/command-line-usage/node_modules/array-back": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/command-line-usage/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, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -3615,42 +3021,37 @@ }, "node_modules/command-line-usage/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, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/command-line-usage/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 + "dev": true, + "license": "MIT" }, "node_modules/command-line-usage/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, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/command-line-usage/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, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/command-line-usage/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, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -3660,39 +3061,80 @@ }, "node_modules/command-line-usage/node_modules/typical": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/commander": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "dev": true, + "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/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream/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/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } }, "node_modules/concurrently": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.0.1.tgz", - "integrity": "sha512-Sh8bGQMEL0TAmAm2meAXMjcASHZa7V0xXQVDBLknCPa9TPtkY9yYs+0cnGGgfdkW0SV1Mlg+hVGfXcoI8d3MJA==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.2", "date-fns": "^2.29.3", @@ -3717,90 +3159,32 @@ }, "node_modules/confusing-browser-globals": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true - }, - "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" - } + "dev": true, + "license": "MIT" }, - "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/console-browserify": { + "version": "1.2.0", + "dev": true }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } + "node_modules/constants-browserify": { + "version": "1.0.0", + "dev": true, + "license": "MIT" }, "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/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": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/core-js-pure": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.2.tgz", - "integrity": "sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } + "dev": true, + "license": "MIT" }, "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": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, - "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" - } + "dev": true, + "license": "MIT" }, "node_modules/cosmiconfig": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, + "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -3814,18 +3198,16 @@ }, "node_modules/cosmiconfig/node_modules/yaml": { "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, + "license": "ISC", "engines": { "node": ">= 6" } }, "node_modules/coveralls": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.1.tgz", - "integrity": "sha512-+dxnG2NHncSD1NrqbSM3dn/lE57O6Qf/koe9+I7c+wzkqRmEvcp0kgJdxKInzYzkICKkFMZsX3Vct3++tsF9ww==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "js-yaml": "^3.13.1", "lcov-parse": "^1.0.0", @@ -3840,21 +3222,23 @@ "node": ">=6" } }, - "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", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" } }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "dev": true, + "license": "MIT" + }, "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==", + "license": "MIT", "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -3865,8 +3249,7 @@ }, "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==", + "license": "MIT", "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -3878,23 +3261,13 @@ }, "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-fetch": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.6.tgz", - "integrity": "sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g==", - "dependencies": { - "node-fetch": "^2.6.11" - } + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -3904,29 +3277,40 @@ "node": ">= 8" } }, + "node_modules/crypto-browserify": { + "version": "3.12.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" + }, + "engines": { + "node": "*" + } + }, "node_modules/crypto-js": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.3.0.tgz", - "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==" + "license": "MIT" }, - "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" - }, - "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/dash-ast": { + "version": "1.0.0", + "dev": true, + "license": "Apache-2.0" }, "node_modules/dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0" }, @@ -3936,17 +3320,15 @@ }, "node_modules/data-uri-to-buffer": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", "engines": { "node": ">= 12" } }, "node_modules/date-fns": { "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.21.0" }, @@ -3960,9 +3342,8 @@ }, "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, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -3977,51 +3358,16 @@ }, "node_modules/decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/deep-eql": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, + "license": "MIT", "dependencies": { "type-detect": "^4.0.0" }, @@ -4031,24 +3377,21 @@ }, "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, + "license": "MIT", "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 + "dev": true, + "license": "MIT" }, "node_modules/default-browser": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", - "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", "dev": true, + "license": "MIT", "dependencies": { "bundle-name": "^3.0.0", "default-browser-id": "^3.0.0", @@ -4064,9 +3407,8 @@ }, "node_modules/default-browser-id": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", - "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", "dev": true, + "license": "MIT", "dependencies": { "bplist-parser": "^0.2.0", "untildify": "^4.0.0" @@ -4080,9 +3422,8 @@ }, "node_modules/default-require-extensions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", - "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", "dev": true, + "license": "MIT", "dependencies": { "strip-bom": "^4.0.0" }, @@ -4093,31 +3434,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/deferred-leveldown": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-4.0.2.tgz", - "integrity": "sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww==", - "dependencies": { - "abstract-leveldown": "~5.0.0", - "inherits": "^2.0.3" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/define-lazy-prop": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -4127,8 +3447,8 @@ }, "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, + "license": "MIT", "dependencies": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -4140,50 +3460,88 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/defined": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "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": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", "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/deps-sort": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "JSONStream": "^1.0.3", + "shasum-object": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + }, + "bin": { + "deps-sort": "bin/cmd.js" } }, - "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/des.js": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "node_modules/detect-node": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", - "integrity": "sha512-64uDTOK+fKEa6XoSbkkDoeAX8Ep1XhwxwZtL1aw1En5p5UOK/ekJoFqd5BB1o+uOvF1iHVv6qDUxdOQ/VgWEQg==" + "node_modules/detective": { + "version": "5.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn-node": "^1.8.2", + "defined": "^1.0.0", + "minimist": "^1.2.6" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } }, "node_modules/diff": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "dev": true, + "license": "MIT" + }, "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, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -4193,9 +3551,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, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -4203,50 +3560,85 @@ "node": ">=6.0.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/domain-browser": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, "node_modules/dotenv": { "version": "16.0.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", - "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" } }, + "node_modules/duplexer2": { + "version": "0.1.4", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexer2/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/duplexer2/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/duplexer2/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/duplexer2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ecc-jsbn": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "license": "MIT", "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": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, "node_modules/electron-to-chromium": { "version": "1.4.397", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.397.tgz", - "integrity": "sha512-jwnPxhh350Q/aMatQia31KAIQdhEsYS0fFZ0BQQlN9tfvOEwShu6ZNwI4kL/xBabjcB/nTy6lSt17kNIluJZ8Q==", - "dev": true + "dev": true, + "license": "ISC" }, "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==", + "license": "MIT", "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -4259,70 +3651,17 @@ }, "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==" + "license": "MIT" }, "node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding-down": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-5.0.4.tgz", - "integrity": "sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw==", - "dependencies": { - "abstract-leveldown": "^5.0.0", - "inherits": "^2.0.3", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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" - } + "dev": true, + "license": "MIT" }, "node_modules/enhanced-resolve": { "version": "5.14.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz", - "integrity": "sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -4331,30 +3670,18 @@ "node": ">=10.13.0" } }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", "available-typed-arrays": "^1.0.5", @@ -4398,15 +3725,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" - }, "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, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3", "has": "^1.0.3", @@ -4418,17 +3740,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -4441,69 +3762,23 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "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-error": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "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" - } + "dev": true, + "license": "MIT" }, "node_modules/escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, "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, + "license": "MIT", "engines": { "node": ">=10" }, @@ -4513,9 +3788,8 @@ }, "node_modules/eslint": { "version": "8.41.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz", - "integrity": "sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", @@ -4569,9 +3843,8 @@ }, "node_modules/eslint-config-prettier": { "version": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", - "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", "dev": true, + "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -4581,9 +3854,8 @@ }, "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, + "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.11.0", @@ -4592,18 +3864,16 @@ }, "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, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-import-resolver-typescript": { "version": "3.5.5", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz", - "integrity": "sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==", "dev": true, + "license": "ISC", "dependencies": { "debug": "^4.3.4", "enhanced-resolve": "^5.12.0", @@ -4627,9 +3897,8 @@ }, "node_modules/eslint-import-resolver-typescript/node_modules/globby": { "version": "13.1.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", - "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", "dev": true, + "license": "MIT", "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.2.11", @@ -4646,9 +3915,8 @@ }, "node_modules/eslint-import-resolver-typescript/node_modules/slash": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -4658,9 +3926,8 @@ }, "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, + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -4675,18 +3942,16 @@ }, "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, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "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, + "license": "MIT", "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", @@ -4713,18 +3978,16 @@ }, "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, + "license": "MIT", "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, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -4734,42 +3997,16 @@ }, "node_modules/eslint-plugin-import/node_modules/semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, - "node_modules/eslint-plugin-jest": { - "version": "27.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.1.tgz", - "integrity": "sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==", - "dev": true, - "dependencies": { - "@typescript-eslint/utils": "^5.10.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.0.0", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } - } - }, "node_modules/eslint-plugin-prettier": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", "dev": true, + "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0" }, @@ -4788,9 +4025,8 @@ }, "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, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -4801,9 +4037,8 @@ }, "node_modules/eslint-visitor-keys": { "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4813,9 +4048,8 @@ }, "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, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -4829,15 +4063,13 @@ }, "node_modules/eslint/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 + "dev": true, + "license": "Python-2.0" }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -4851,18 +4083,16 @@ }, "node_modules/eslint/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, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/eslint/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, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -4872,15 +4102,13 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/espree": { "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", @@ -4895,9 +4123,8 @@ }, "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, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -4908,9 +4135,8 @@ }, "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, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -4920,18 +4146,16 @@ }, "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, + "license": "BSD-2-Clause", "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, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -4941,118 +4165,38 @@ }, "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, + "license": "BSD-2-Clause", "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, + "license": "BSD-2-Clause", "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, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "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": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==", - "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": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==" - }, - "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/eth-lib/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/eth-lib/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/eth-lib/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/ethashjs": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ethashjs/-/ethashjs-0.0.8.tgz", - "integrity": "sha512-/MSbf/r2/Ld8o0l15AymjOTlPqpN8Cr4ByUEA9GtR4x0yAh3TdtDzEg29zMjXCNPI7u6E5fOQdj/Cf9Tc7oVNw==", - "deprecated": "New package name format for new versions: @ethereumjs/ethash. Please update.", - "dependencies": { - "async": "^2.1.2", - "buffer-xor": "^2.0.1", - "ethereumjs-util": "^7.0.2", - "miller-rabin": "^4.0.0" - } - }, - "node_modules/ethashjs/node_modules/buffer-xor": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", - "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", - "dependencies": { - "safe-buffer": "^5.1.1" - } - }, "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==", + "license": "MIT", "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==", + "license": "MIT", "dependencies": { "@types/pbkdf2": "^3.0.0", "@types/secp256k1": "^4.0.1", @@ -5071,388 +4215,107 @@ "setimmediate": "^1.0.5" } }, - "node_modules/ethereum-types": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ethereum-types/-/ethereum-types-3.7.1.tgz", - "integrity": "sha512-EBQwTGnGZQ9oHK7Za3DFEOxiElksRCoZECkk418vHiE2d59lLSejDZ1hzRVphtFjAu5YqONz4/XuAYdMBg+gWA==", + "node_modules/ethereumjs-util": { + "version": "7.1.5", + "license": "MPL-2.0", "dependencies": { - "@types/node": "12.12.54", - "bignumber.js": "~9.0.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" }, "engines": { - "node": ">=6.12" + "node": ">=10.0.0" } }, - "node_modules/ethereum-types/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" + "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-abi": { - "version": "0.6.6", - "resolved": "git+ssh://git@github.com/ProjectWyvern/ethereumjs-abi.git#3d2d89641a6ad5984929b6ca4b646452ec74f73d", + "node_modules/ethjs-unit": { + "version": "0.1.6", "license": "MIT", "dependencies": { - "bn.js": "^4.10.0", - "ethereumjs-util": "^4.3.0" + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/ethereumjs-abi/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/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "license": "MIT" }, - "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.1.tgz", - "integrity": "sha512-WrckOZ7uBnei4+AKimpuF1B3Fv25OmoRgmYCpGsP7u8PFxXAmAgiJSYT2kRWnt6fVIlKaQlZvuwXp7PIrmn3/w==", - "dependencies": { - "bn.js": "^4.8.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.0.0" + "node_modules/eventemitter2": { + "version": "6.4.9", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", + "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==" + }, + "node_modules/events": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" } }, - "node_modules/ethereumjs-account": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-3.0.0.tgz", - "integrity": "sha512-WP6BdscjiiPkQfF9PVfMcwx/rDvfZTjFKY0Uwc09zSQr9JfIVH87dYIJu0gNhBhpmovV4yq295fdllS925fnBA==", - "deprecated": "Please use Util.Account class found on package ethereumjs-util@^7.0.6 https://github.com/ethereumjs/ethereumjs-util/releases/tag/v7.0.6", + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "license": "MIT", "dependencies": { - "ethereumjs-util": "^6.0.0", - "rlp": "^2.2.1", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-account/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/ethereumjs-account/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/ethereumjs-account/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", - "dependencies": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ethereumjs-block/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/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-blockchain": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.4.tgz", - "integrity": "sha512-zCxaRMUOzzjvX78DTGiKjA+4h2/sF0OYL1QuPux0DHpyq8XiNoF5GYHtb++GUxVlMsMfZV7AVyzbtgcRdIcEPQ==", - "deprecated": "New package name format for new versions: @ethereumjs/blockchain. Please update.", - "dependencies": { - "async": "^2.6.1", - "ethashjs": "~0.0.7", - "ethereumjs-block": "~2.2.2", - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.1.0", - "flow-stoplight": "^1.0.0", - "level-mem": "^3.0.1", - "lru-cache": "^5.1.1", - "rlp": "^2.2.2", - "semaphore": "^1.1.0" - } - }, - "node_modules/ethereumjs-blockchain/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/ethereumjs-blockchain/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/ethereumjs-blockchain/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ethereumjs-blockstream": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/ethereumjs-blockstream/-/ethereumjs-blockstream-7.0.0.tgz", - "integrity": "sha512-lt3uLKDEfNHEqqnl/+W0aC7xp2y7JEsgZsJMZ958CNrYIJH9tZ7oa8npwV2M0KhGlfzmJsyJIpvV/Lvb2mh0tA==", - "dependencies": { - "immutable": "3.8.2", - "source-map-support": "0.5.6", - "uuid": "3.2.1" - } - }, - "node_modules/ethereumjs-blockstream/node_modules/uuid": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", - "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/ethereumjs-common": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", - "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==", - "deprecated": "New package name format for new versions: @ethereumjs/common. Please update." - }, - "node_modules/ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", - "dependencies": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ethereumjs-tx/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/ethereumjs-tx/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/ethereumjs-tx/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ethereumjs-vm": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-4.2.0.tgz", - "integrity": "sha512-X6qqZbsY33p5FTuZqCnQ4+lo957iUJMM6Mpa6bL4UW0dxM6WmDSHuI4j/zOp1E2TDKImBGCJA9QPfc08PaNubA==", - "deprecated": "New package name format for new versions: @ethereumjs/vm. Please update.", - "dependencies": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "core-js-pure": "^3.0.1", - "ethereumjs-account": "^3.0.0", - "ethereumjs-block": "^2.2.2", - "ethereumjs-blockchain": "^4.0.3", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.2", - "ethereumjs-util": "^6.2.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1", - "util.promisify": "^1.0.0" - } - }, - "node_modules/ethereumjs-vm/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/ethereumjs-vm/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/ethereumjs-vm/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "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/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/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", - "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/ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "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", + "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" } }, "node_modules/execa": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", @@ -5471,161 +4334,33 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "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.11.0", - "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/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "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.11.0", - "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/express/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/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/express/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/express/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/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - }, "node_modules/extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "dev": true, + "license": "MIT" }, "node_modules/extsprintf": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, "engines": [ "node >=0.6.0" - ] - }, - "node_modules/fake-merkle-patricia-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", - "integrity": "sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==", - "dependencies": { - "checkpoint-store": "^1.1.0" - } + ], + "license": "MIT" }, "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, + "license": "MIT" }, "node_modules/fast-diff": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/fast-glob": { "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -5639,9 +4374,8 @@ }, "node_modules/fast-glob/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, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -5651,55 +4385,29 @@ }, "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, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "dev": true, + "license": "MIT" }, "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, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, - "node_modules/fbemitter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", - "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", - "dependencies": { - "fbjs": "^3.0.0" - } - }, - "node_modules/fbjs": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", - "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", - "dependencies": { - "cross-fetch": "^3.1.5", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.30" - } - }, - "node_modules/fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, "node_modules/fetch-blob": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", "funding": [ { "type": "github", @@ -5710,6 +4418,7 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" @@ -5720,9 +4429,8 @@ }, "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, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -5732,9 +4440,8 @@ }, "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, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -5742,50 +4449,10 @@ "node": ">=8" } }, - "node_modules/filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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/finalhandler/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/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, "node_modules/find-cache-dir": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -5800,9 +4467,8 @@ }, "node_modules/find-replace": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^3.0.1" }, @@ -5812,9 +4478,8 @@ }, "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, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -5828,18 +4493,16 @@ }, "node_modules/flat": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "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, + "license": "MIT", "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -5850,47 +4513,21 @@ }, "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/flow-stoplight": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/flow-stoplight/-/flow-stoplight-1.0.0.tgz", - "integrity": "sha512-rDjbZUKpN8OYhB0IE/vY/I8UWO/602IIJEU/76Tv4LvYnwHCk0BCsvz4eRr9n+FQcri7L5cyaXOo0+/Kh4HisA==" - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } + "dev": true, + "license": "ISC" }, "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, + "license": "MIT", "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, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^3.0.2" @@ -5901,34 +4538,15 @@ }, "node_modules/forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "license": "Apache-2.0", "engines": { "node": "*" } }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" - }, "node_modules/formdata-polyfill": { "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", "dependencies": { "fetch-blob": "^3.1.2" }, @@ -5936,26 +4554,8 @@ "node": ">=12.20.0" } }, - "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": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/fromentries": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", "dev": true, "funding": [ { @@ -5970,13 +4570,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/fs-extra": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -5986,26 +4586,15 @@ "node": ">=12" } }, - "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": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" }, "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, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -6016,13 +4605,13 @@ }, "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, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -6036,50 +4625,47 @@ "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==" - }, "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, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, + "node_modules/get-assigned-identifiers": { + "version": "1.2.0", + "dev": true, + "license": "Apache-2.0" + }, "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, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-func-name": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "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, + "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -6092,17 +4678,16 @@ }, "node_modules/get-package-type": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -6112,8 +4697,8 @@ }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -6127,26 +4712,24 @@ }, "node_modules/get-tsconfig": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.5.0.tgz", - "integrity": "sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, "node_modules/getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0" } }, "node_modules/glob": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6164,9 +4747,8 @@ }, "node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -6174,20 +4756,10 @@ "node": ">=10.13.0" } }, - "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/globals": { "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -6200,8 +4772,8 @@ }, "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, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3" }, @@ -6214,9 +4786,8 @@ }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -6234,8 +4805,8 @@ }, "node_modules/gopd": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -6243,62 +4814,33 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", - "dependencies": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, "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, + "license": "ISC" }, "node_modules/grapheme-splitter": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/graphemer": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/har-schema": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "dev": true, + "license": "ISC", "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", + "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -6309,8 +4851,8 @@ }, "node_modules/har-validator/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, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -6324,13 +4866,13 @@ }, "node_modules/har-validator/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, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "function-bind": "^1.1.1" }, @@ -6340,25 +4882,24 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -6368,8 +4909,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6379,8 +4920,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6390,8 +4931,8 @@ }, "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, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -6404,8 +4945,7 @@ }, "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==", + "license": "MIT", "dependencies": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", @@ -6417,8 +4957,7 @@ }, "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==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -6426,9 +4965,8 @@ }, "node_modules/hasha": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", "dev": true, + "license": "MIT", "dependencies": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" @@ -6442,9 +4980,8 @@ }, "node_modules/hasha/node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -6454,26 +4991,23 @@ }, "node_modules/hasha/node_modules/type-fest": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "node_modules/he": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, + "license": "MIT", "bin": { "he": "bin/he" } }, "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==", + "license": "MIT", "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -6482,39 +5016,21 @@ }, "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, + "license": "MIT" }, - "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" - }, + "node_modules/htmlescape": { + "version": "1.1.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=0.10" } }, - "node_modules/http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==" - }, "node_modules/http-signature": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dev": true, + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -6525,23 +5041,15 @@ "npm": ">=1.3.7" } }, - "node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } + "node_modules/https-browserify": { + "version": "1.0.0", + "dev": true, + "license": "MIT" }, "node_modules/human-signals": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=14.18.0" } @@ -6561,40 +5069,9 @@ "url": "https://github.com/sponsors/typicode" } }, - "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": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==", - "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==", + "dev": true, "funding": [ { "type": "github", @@ -6608,35 +5085,21 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, - "node_modules/immediate": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", - "integrity": "sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg==" - }, - "node_modules/immutable": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", - "engines": { - "node": ">=0.10.0" - } - }, "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, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -6650,27 +5113,24 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "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, + "license": "MIT", "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, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -6678,13 +5138,48 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "license": "ISC" + }, + "node_modules/inline-source-map": { + "version": "0.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map": "~0.5.3" + } + }, + "node_modules/inline-source-map/node_modules/source-map": { + "version": "0.5.7", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/insert-module-globals": { + "version": "7.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + }, + "bin": { + "insert-module-globals": "bin/cmd.js" + } }, "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, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.0", "has": "^1.0.3", @@ -6694,18 +5189,10 @@ "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==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -6719,8 +5206,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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.0", @@ -6732,14 +5219,13 @@ }, "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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -6749,9 +5235,8 @@ }, "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, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -6761,8 +5246,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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -6774,10 +5259,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-buffer": { + "version": "1.1.6", + "dev": true, + "license": "MIT" + }, "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, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6787,9 +5277,8 @@ }, "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, + "license": "MIT", "dependencies": { "has": "^1.0.3" }, @@ -6799,8 +5288,8 @@ }, "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, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -6813,9 +5302,8 @@ }, "node_modules/is-docker": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "dev": true, + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -6828,18 +5316,16 @@ }, "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -6847,15 +5333,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -6868,9 +5349,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, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -6880,8 +5360,7 @@ }, "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": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "license": "MIT", "engines": { "node": ">=6.5.0", "npm": ">=3" @@ -6889,9 +5368,8 @@ }, "node_modules/is-inside-container": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^3.0.0" }, @@ -6907,8 +5385,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, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6918,17 +5396,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -6941,26 +5418,24 @@ }, "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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-plain-obj": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -6974,8 +5449,8 @@ }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -6985,9 +5460,8 @@ }, "node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -6997,8 +5471,8 @@ }, "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, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -7011,8 +5485,8 @@ }, "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, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -7025,8 +5499,8 @@ }, "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, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -7043,14 +5517,13 @@ }, "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, + "license": "MIT" }, "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, + "license": "MIT", "engines": { "node": ">=10" }, @@ -7060,8 +5533,8 @@ }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -7071,18 +5544,16 @@ }, "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-wsl": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -7092,9 +5563,8 @@ }, "node_modules/is-wsl/node_modules/is-docker": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -7105,47 +5575,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, "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/isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", - "dependencies": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch/node_modules/node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dependencies": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } + "dev": true, + "license": "ISC" }, "node_modules/isomorphic-unfetch": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-4.0.2.tgz", - "integrity": "sha512-1Yd+CF/7al18/N2BDbsLBcp6RO3tucSW+jcLq24dqdX5MNbCNTw1z4BsGsp4zNmjr/Izm2cs/cEqZPp4kvWSCA==", + "license": "MIT", "dependencies": { "node-fetch": "^3.2.0", "unfetch": "^5.0.0" @@ -7153,8 +5590,7 @@ }, "node_modules/isomorphic-unfetch/node_modules/node-fetch": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "license": "MIT", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -7170,23 +5606,21 @@ }, "node_modules/isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + "dev": true, + "license": "MIT" }, "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, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-hook": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "append-transform": "^2.0.0" }, @@ -7196,9 +5630,8 @@ }, "node_modules/istanbul-lib-instrument": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.7.5", "@istanbuljs/schema": "^0.1.2", @@ -7211,18 +5644,16 @@ }, "node_modules/istanbul-lib-instrument/node_modules/semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/istanbul-lib-processinfo": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", - "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", "dev": true, + "license": "ISC", "dependencies": { "archy": "^1.0.0", "cross-spawn": "^7.0.3", @@ -7237,9 +5668,8 @@ }, "node_modules/istanbul-lib-processinfo/node_modules/p-map": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -7249,9 +5679,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, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", @@ -7263,9 +5692,8 @@ }, "node_modules/istanbul-lib-report/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, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -7275,9 +5703,8 @@ }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -7289,9 +5716,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, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -7307,19 +5733,17 @@ }, "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==" + "license": "MIT" }, "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, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -7330,14 +5754,13 @@ }, "node_modules/jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + "dev": true, + "license": "MIT" }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -7345,48 +5768,30 @@ "node": ">=4" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==" - }, "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 + "dev": true, + "license": "MIT" }, "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": "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, + "license": "(AFL-2.1 OR BSD-3-Clause)" }, "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 + "dev": true, + "license": "MIT" }, "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": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + "dev": true, + "license": "ISC" }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -7396,15 +5801,13 @@ }, "node_modules/jsonc-parser": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -7412,18 +5815,33 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsonschema": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", - "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "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/jsprim": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "license": "MIT", "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -7436,9 +5854,8 @@ }, "node_modules/keccak": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", - "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "node-addon-api": "^2.0.0", "node-gyp-build": "^4.2.0", @@ -7448,179 +5865,27 @@ "node": ">=10.0.0" } }, - "node_modules/keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "node_modules/labeled-stream-splicer": { + "version": "2.0.2", + "dev": true, + "license": "MIT", "dependencies": { - "json-buffer": "3.0.1" + "inherits": "^2.0.1", + "stream-splicer": "^2.0.0" } }, "node_modules/lcov-parse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", - "integrity": "sha512-aprLII/vPzuQvYZnDRU78Fns9I2Ag3gi4Ipga/hxnVMCZC8DnR2nI7XBqrPoywGfxqIx/DgarGvDJZAD3YBTgQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "lcov-parse": "bin/cli.js" } }, - "node_modules/level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dependencies": { - "errno": "~0.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-iterator-stream": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz", - "integrity": "sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g==", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-iterator-stream/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/level-iterator-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "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/level-iterator-stream/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/level-iterator-stream/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/level-mem": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-3.0.1.tgz", - "integrity": "sha512-LbtfK9+3Ug1UmvvhR2DqLqXiPW1OJ5jEh0a3m9ZgAipiwpSxGj/qaVVy54RG5vAQN1nCuXqjvprCuKSCxcJHBg==", - "dependencies": { - "level-packager": "~4.0.0", - "memdown": "~3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-4.0.1.tgz", - "integrity": "sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q==", - "dependencies": { - "encoding-down": "~5.0.0", - "levelup": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", - "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - } - }, - "node_modules/level-ws/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/level-ws/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==" - }, - "node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/level-ws/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/levelup": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-3.1.1.tgz", - "integrity": "sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg==", - "dependencies": { - "deferred-leveldown": "~4.0.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~3.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, "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, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -7631,18 +5896,16 @@ }, "node_modules/lilconfig": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "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 + "dev": true, + "license": "MIT" }, "node_modules/lint-staged": { "version": "13.2.2", @@ -7676,9 +5939,8 @@ }, "node_modules/lint-staged/node_modules/chalk": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -7688,9 +5950,8 @@ }, "node_modules/listr2": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.8.tgz", - "integrity": "sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==", "dev": true, + "license": "MIT", "dependencies": { "cli-truncate": "^2.1.0", "colorette": "^2.0.19", @@ -7715,9 +5976,8 @@ }, "node_modules/listr2/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, + "license": "MIT", "dependencies": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" @@ -7731,24 +5991,21 @@ }, "node_modules/listr2/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 + "dev": true, + "license": "MIT" }, "node_modules/listr2/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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/listr2/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, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -7760,9 +6017,8 @@ }, "node_modules/listr2/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, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7774,9 +6030,8 @@ }, "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, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -7789,46 +6044,41 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "dev": true, + "license": "MIT" }, "node_modules/lodash.camelcase": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.flattendeep": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "3.0.4", + "dev": true, + "license": "MIT" }, "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.values": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", - "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==" + "dev": true, + "license": "MIT" }, "node_modules/log-driver": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", "dev": true, + "license": "ISC", "engines": { "node": ">=0.8.6" } }, "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, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -7842,9 +6092,8 @@ }, "node_modules/log-update": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.3.0", "cli-cursor": "^3.1.0", @@ -7860,24 +6109,21 @@ }, "node_modules/log-update/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 + "dev": true, + "license": "MIT" }, "node_modules/log-update/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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/log-update/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, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -7892,9 +6138,8 @@ }, "node_modules/log-update/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, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7906,9 +6151,8 @@ }, "node_modules/log-update/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7918,61 +6162,31 @@ "node": ">=8" } }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, "node_modules/loupe": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", "dev": true, + "license": "MIT", "dependencies": { "get-func-name": "^2.0.0" } }, - "node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, - "node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==" - }, "node_modules/lunr": { "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -7985,24 +6199,21 @@ }, "node_modules/make-dir/node_modules/semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, + "license": "ISC", "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 + "dev": true, + "license": "ISC" }, "node_modules/marked": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", "dev": true, + "license": "MIT", "bin": { "marked": "bin/marked.js" }, @@ -8012,314 +6223,81 @@ }, "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==", + "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", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memdown": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-3.0.0.tgz", - "integrity": "sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA==", - "dependencies": { - "abstract-leveldown": "~5.0.0", - "functional-red-black-tree": "~1.0.1", - "immediate": "~3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/memdown/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/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "engines": { "node": ">= 8" } }, - "node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "node_modules/merkletreejs": { + "version": "0.3.10", + "license": "MIT", "dependencies": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" + "bignumber.js": "^9.0.1", + "buffer-reverse": "^1.0.1", + "crypto-js": "^3.1.9-1", + "treeify": "^1.1.0", + "web3-utils": "^1.3.4" + }, + "engines": { + "node": ">= 7.6.0" } }, - "node_modules/merkle-patricia-tree/node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "node_modules/micromatch": { + "version": "4.0.5", + "dev": true, + "license": "MIT", "dependencies": { - "xtend": "~4.0.0" + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" } }, - "node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" - }, - "node_modules/merkle-patricia-tree/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/merkle-patricia-tree/node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "node_modules/miller-rabin": { + "version": "4.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "abstract-leveldown": "~2.6.0" - } - }, - "node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/merkle-patricia-tree/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/merkle-patricia-tree/node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" - }, - "node_modules/merkle-patricia-tree/node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "dependencies": { - "errno": "~0.1.1" - } - }, - "node_modules/merkle-patricia-tree/node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", - "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - } - }, - "node_modules/merkle-patricia-tree/node_modules/level-iterator-stream/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/merkle-patricia-tree/node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/merkle-patricia-tree/node_modules/level-iterator-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/merkle-patricia-tree/node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - } - }, - "node_modules/merkle-patricia-tree/node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", - "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/merkle-patricia-tree/node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/merkle-patricia-tree/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "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/merkle-patricia-tree/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/merkle-patricia-tree/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/merkle-patricia-tree/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/merkletreejs": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/merkletreejs/-/merkletreejs-0.3.10.tgz", - "integrity": "sha512-lin42tKfRdkW+6iE5pjtQ9BnH+1Hk3sJ5Fn9hUUSjcXRcJbSISHgPCfYvMNEXiNqZPhz/TyRPEV30qgnujsQ7A==", - "dependencies": { - "bignumber.js": "^9.0.1", - "buffer-reverse": "^1.0.1", - "crypto-js": "^3.1.9-1", - "treeify": "^1.1.0", - "web3-utils": "^1.3.4" - }, - "engines": { - "node": ">= 7.6.0" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "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/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" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" } }, "node_modules/miller-rabin/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/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" - } + "dev": true, + "license": "MIT" }, "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==", + "dev": true, + "license": "MIT", "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==", + "dev": true, + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -8329,9 +6307,8 @@ }, "node_modules/mimic-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -8339,37 +6316,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", - "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==" + "license": "ISC" }, "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==" + "license": "MIT" }, "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, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -8379,33 +6337,16 @@ }, "node_modules/minimist": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "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": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -8413,23 +6354,15 @@ "node": ">=10" } }, - "node_modules/mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", - "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/mkdirp-classic": { + "version": "0.5.3", + "dev": true, + "license": "MIT" }, "node_modules/mocha": { "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", @@ -8467,24 +6400,21 @@ }, "node_modules/mocha/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 + "dev": true, + "license": "Python-2.0" }, "node_modules/mocha/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/mocha/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, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -8493,24 +6423,21 @@ }, "node_modules/mocha/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 + "dev": true, + "license": "MIT" }, "node_modules/mocha/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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/mocha/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, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -8520,9 +6447,8 @@ }, "node_modules/mocha/node_modules/minimatch": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -8532,15 +6458,13 @@ }, "node_modules/mocha/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 + "dev": true, + "license": "MIT" }, "node_modules/mocha/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, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -8552,9 +6476,8 @@ }, "node_modules/mocha/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, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -8568,66 +6491,75 @@ "node": ">=10" } }, - "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/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/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", + "node_modules/module-deps": { + "version": "6.2.3", + "dev": true, + "license": "MIT", "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" + "browser-resolve": "^2.0.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.2.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "module-deps": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8.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/module-deps/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" }, - "node_modules/multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", + "node_modules/module-deps/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.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" } }, - "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", + "node_modules/module-deps/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/module-deps/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" + "safe-buffer": "~5.1.0" } }, - "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": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==" + "node_modules/ms": { + "version": "2.1.2", + "dev": true, + "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true, + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -8637,38 +6569,20 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/natural-compare-lite": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "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==" + "dev": true, + "license": "MIT" }, "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==" + "license": "MIT" }, "node_modules/node-domexception": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", "funding": [ { "type": "github", @@ -8679,33 +6593,14 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "engines": { "node": ">=10.5.0" } }, - "node_modules/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", - "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", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "license": "MIT", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -8714,9 +6609,8 @@ }, "node_modules/node-preload": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", "dev": true, + "license": "MIT", "dependencies": { "process-on-spawn": "^1.0.0" }, @@ -8726,35 +6620,21 @@ }, "node_modules/node-releases": { "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/npm-run-path": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -8767,9 +6647,8 @@ }, "node_modules/npm-run-path/node_modules/path-key": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -8779,8 +6658,7 @@ }, "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": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", + "license": "MIT", "dependencies": { "bn.js": "4.11.6", "strip-hex-prefix": "1.0.0" @@ -8792,14 +6670,12 @@ }, "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==" + "license": "MIT" }, "node_modules/nyc": { "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", @@ -8838,9 +6714,8 @@ }, "node_modules/nyc/node_modules/cliui": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -8849,15 +6724,13 @@ }, "node_modules/nyc/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 + "dev": true, + "license": "MIT" }, "node_modules/nyc/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, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -8868,18 +6741,16 @@ }, "node_modules/nyc/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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/nyc/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, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -8889,9 +6760,8 @@ }, "node_modules/nyc/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, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -8904,9 +6774,8 @@ }, "node_modules/nyc/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, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -8916,9 +6785,8 @@ }, "node_modules/nyc/node_modules/p-map": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -8928,18 +6796,16 @@ }, "node_modules/nyc/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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/nyc/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, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -8951,9 +6817,8 @@ }, "node_modules/nyc/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -8965,15 +6830,13 @@ }, "node_modules/nyc/node_modules/y18n": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/nyc/node_modules/yargs": { "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -8993,9 +6856,8 @@ }, "node_modules/nyc/node_modules/yargs-parser": { "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -9006,40 +6868,40 @@ }, "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==", + "dev": true, + "license": "Apache-2.0", "engines": { "node": "*" } }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "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, + "license": "MIT", "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -9053,29 +6915,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz", - "integrity": "sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==", - "dependencies": { - "array.prototype.reduce": "^1.0.5", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.21.2", - "safe-array-concat": "^1.0.0" - }, - "engines": { - "node": ">= 0.8" - }, - "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -9088,38 +6931,18 @@ "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": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", - "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": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -9132,9 +6955,8 @@ }, "node_modules/open": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", - "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", "dev": true, + "license": "MIT", "dependencies": { "default-browser": "^4.0.0", "define-lazy-prop": "^3.0.0", @@ -9150,9 +6972,8 @@ }, "node_modules/optionator": { "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, + "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -9165,19 +6986,15 @@ "node": ">= 0.8.0" } }, - "node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "engines": { - "node": ">=12.20" - } + "node_modules/os-browserify": { + "version": "0.3.0", + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -9190,9 +7007,8 @@ }, "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, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -9205,9 +7021,8 @@ }, "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, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -9220,18 +7035,16 @@ }, "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, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/package-hash": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", "dev": true, + "license": "ISC", "dependencies": { "graceful-fs": "^4.1.15", "hasha": "^5.0.0", @@ -9242,11 +7055,15 @@ "node": ">=8" } }, + "node_modules/pako": { + "version": "1.0.11", + "dev": true, + "license": "(MIT AND Zlib)" + }, "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, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -9254,11 +7071,30 @@ "node": ">=6" } }, + "node_modules/parents": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-platform": "~0.11.15" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "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" + } + }, "node_modules/parse-author": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz", - "integrity": "sha512-yx5DfvkN8JsHL2xk2Os9oTia467qnvRgey4ahSm2X8epehBLx/gWLcy5KI+Y36ful5DzGbCS6RazqZGgy1gHNw==", "dev": true, + "license": "MIT", "dependencies": { "author-regex": "^1.0.0" }, @@ -9266,16 +7102,10 @@ "node": ">=0.10.0" } }, - "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/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, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -9289,74 +7119,67 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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-browserify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "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, + "license": "MIT", "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, + "license": "MIT", "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 + "dev": true, + "license": "MIT" }, - "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": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "node_modules/path-platform": { + "version": "0.11.15", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } }, "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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/pathval": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/pbkdf2": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "license": "MIT", "dependencies": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -9370,20 +7193,18 @@ }, "node_modules/performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + "dev": true, + "license": "MIT" }, "node_modules/picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -9393,9 +7214,8 @@ }, "node_modules/pidtree": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", "dev": true, + "license": "MIT", "bin": { "pidtree": "bin/pidtree.js" }, @@ -9405,9 +7225,8 @@ }, "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, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -9417,9 +7236,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, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -9430,9 +7248,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, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -9442,9 +7259,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, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -9457,9 +7273,8 @@ }, "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, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -9467,26 +7282,18 @@ "node": ">=8" } }, - "node_modules/popper.js": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.3.tgz", - "integrity": "sha512-3lmujhsHXzb83+sI0PzfrE3O1XHZG8m8MXNMTupvA6LrM1/nnsiqYaacYc/RIente9VqnTDPztGEM8uvPAMGyg==", - "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1" - }, "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, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "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, + "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -9499,9 +7306,8 @@ }, "node_modules/prettier-linter-helpers": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, + "license": "MIT", "dependencies": { "fast-diff": "^1.1.2" }, @@ -9511,9 +7317,8 @@ }, "node_modules/prettier-package-json": { "version": "2.8.0", - "resolved": "https://registry.npmjs.org/prettier-package-json/-/prettier-package-json-2.8.0.tgz", - "integrity": "sha512-WxtodH/wWavfw3MR7yK/GrS4pASEQ+iSTkdtSxPJWvqzG55ir5nvbLt9rw5AOiEcqqPCRM92WCtR1rk3TG3JSQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/parse-author": "^2.0.0", "commander": "^4.0.1", @@ -9531,31 +7336,29 @@ }, "node_modules/prettier-package-json/node_modules/commander": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/process": { "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "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==" + "dev": true, + "license": "MIT" }, "node_modules/process-on-spawn": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", "dev": true, + "license": "MIT", "dependencies": { "fromentries": "^1.2.0" }, @@ -9563,97 +7366,61 @@ "node": ">=8" } }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dependencies": { - "asap": "~2.0.3" - } - }, - "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/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" - }, "node_modules/psl": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + "dev": true, + "license": "MIT" }, - "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==", + "node_modules/public-encrypt": { + "version": "4.0.3", + "dev": true, + "license": "MIT", "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "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/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "dev": true, + "license": "MIT" + }, "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, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/qs": { "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.6" } }, - "node_modules/query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "node_modules/querystring": { + "version": "0.2.0", "dev": true, - "dependencies": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.4.x" } }, - "node_modules/query-string/node_modules/strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "node_modules/querystring-es3": { + "version": "0.2.1", "dev": true, "engines": { - "node": ">=4" + "node": ">=0.4.x" } }, "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": [ { @@ -9668,53 +7435,68 @@ "type": "consulting", "url": "https://feross.org/support" } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + ], + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", "dependencies": { "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/randomfill": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "node_modules/read-only-stream": { + "version": "2.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" + "readable-stream": "^2.0.2" + } + }, + "node_modules/read-only-stream/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/read-only-stream/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/read-only-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/read-only-stream/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" } }, "node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -9726,9 +7508,8 @@ }, "node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -9738,23 +7519,21 @@ }, "node_modules/reduce-flatten": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", - "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/regenerator-runtime": { "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -9769,9 +7548,8 @@ }, "node_modules/release-zalgo": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", "dev": true, + "license": "ISC", "dependencies": { "es6-error": "^4.0.1" }, @@ -9781,9 +7559,8 @@ }, "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", + "dev": true, + "license": "Apache-2.0", "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -9812,8 +7589,8 @@ }, "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==", + "dev": true, + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -9825,41 +7602,29 @@ }, "node_modules/request/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.", + "dev": true, + "license": "MIT", "bin": { "uuid": "bin/uuid" } }, "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==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "dev": true, + "license": "ISC" }, "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, + "license": "MIT", "dependencies": { "is-core-module": "^2.11.0", "path-parse": "^1.0.7", @@ -9872,44 +7637,18 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, "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, + "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/responselike/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/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, + "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -9920,18 +7659,16 @@ }, "node_modules/restore-cursor/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, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/restore-cursor/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, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -9944,9 +7681,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, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -9954,15 +7690,13 @@ }, "node_modules/rfdc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -9975,8 +7709,7 @@ }, "node_modules/ripemd160": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "license": "MIT", "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -9984,8 +7717,7 @@ }, "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==", + "license": "MPL-2.0", "dependencies": { "bn.js": "^5.2.0" }, @@ -9995,9 +7727,8 @@ }, "node_modules/run-applescript": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", - "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^5.0.0" }, @@ -10010,9 +7741,8 @@ }, "node_modules/run-applescript/node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -10033,18 +7763,16 @@ }, "node_modules/run-applescript/node_modules/human-signals": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/run-applescript/node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -10054,18 +7782,16 @@ }, "node_modules/run-applescript/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, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/run-applescript/node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -10075,9 +7801,8 @@ }, "node_modules/run-applescript/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, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -10090,17 +7815,14 @@ }, "node_modules/run-applescript/node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "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": [ { @@ -10116,45 +7838,21 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, - "node_modules/rustbn.js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==" - }, "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, + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, - "node_modules/safe-array-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", - "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", - "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", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "funding": [ { "type": "github", @@ -10168,12 +7866,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -10185,19 +7884,17 @@ }, "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, + "license": "MIT" }, "node_modules/scrypt-js": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "elliptic": "^6.5.4", "node-addon-api": "^2.0.0", @@ -10207,19 +7904,10 @@ "node": ">=10.0.0" } }, - "node_modules/semaphore": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", - "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/semver": { "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -10232,9 +7920,8 @@ }, "node_modules/semver/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, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10244,109 +7931,29 @@ }, "node_modules/semver/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/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/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/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "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==" + "dev": true, + "license": "ISC" }, "node_modules/serialize-javascript": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } }, - "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/set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/setimmediate": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "license": "MIT" }, "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==", + "license": "(MIT AND BSD-3-Clause)", "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -10355,11 +7962,18 @@ "sha.js": "bin.js" } }, + "node_modules/shasum-object": { + "version": "1.0.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "fast-safe-stringify": "^2.0.7" + } + }, "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, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -10369,27 +7983,24 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/shiki": { "version": "0.14.2", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.2.tgz", - "integrity": "sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-sequence-parser": "^1.1.0", "jsonc-parser": "^3.2.0", @@ -10399,8 +8010,8 @@ }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -10412,14 +8023,12 @@ }, "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 + "dev": true, + "license": "ISC" }, "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==", + "dev": true, "funding": [ { "type": "github", @@ -10433,43 +8042,21 @@ "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/simple-get/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==", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } + ], + "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/slice-ansi": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.0.0", "is-fullwidth-code-point": "^4.0.0" @@ -10483,9 +8070,8 @@ }, "node_modules/slice-ansi/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -10495,44 +8081,31 @@ }, "node_modules/sort-object-keys": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz", - "integrity": "sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/sort-order": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sort-order/-/sort-order-1.0.1.tgz", - "integrity": "sha512-BiExT7C1IVF4DNd5dttR/dEq3wunGOHpy4phvqFUQA1pY6j2ye8WWEAV8LhRbfdF0EWDX12FfyPPf9P71eT+cA==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", - "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "node_modules/spawn-command": { "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/spawn-wrap": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^2.0.0", "is-windows": "^1.0.2", @@ -10545,25 +8118,15 @@ "node": ">=8" } }, - "node_modules/split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "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 + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/sshpk": { "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, + "license": "MIT", "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -10584,50 +8147,132 @@ "node": ">=0.10.0" } }, - "node_modules/statuses": { + "node_modules/stream-browserify": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-combiner2": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-combiner2/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-combiner2/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/stream-combiner2/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-combiner2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/stream-http": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/stream-splicer": { "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" + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" } }, - "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": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", - "engines": { - "node": ">=0.10.0" + "node_modules/stream-splicer/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-splicer/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/stream-splicer/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-splicer/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.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==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/string-argv": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6.19" } }, "node_modules/string-format": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", - "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", - "dev": true + "dev": true, + "license": "WTFPL OR MIT" }, "node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -10642,9 +8287,8 @@ }, "node_modules/string-width/node_modules/ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -10654,9 +8298,8 @@ }, "node_modules/string-width/node_modules/strip-ansi": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -10669,8 +8312,8 @@ }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -10685,8 +8328,8 @@ }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -10698,8 +8341,8 @@ }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -10711,9 +8354,8 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -10723,18 +8365,16 @@ }, "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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -10744,8 +8384,7 @@ }, "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": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "license": "MIT", "dependencies": { "is-hex-prefixed": "1.0.0" }, @@ -10756,9 +8395,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, + "license": "MIT", "engines": { "node": ">=8" }, @@ -10766,11 +8404,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/subarg": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.1.0" + } + }, "node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -10783,9 +8428,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, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10793,126 +8437,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/swarm-js": { - "version": "0.1.42", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", - "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^11.8.5", - "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/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/swarm-js/node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/swarm-js/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/swarm-js/node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/swarm-js/node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/swarm-js/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/swarm-js/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/swarm-js/node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/swarm-js/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/synckit": { "version": "0.8.5", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", - "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", "dev": true, + "license": "MIT", "dependencies": { "@pkgr/utils": "^2.3.1", "tslib": "^2.5.0" @@ -10924,11 +8452,18 @@ "url": "https://opencollective.com/unts" } }, + "node_modules/syntax-error": { + "version": "1.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn-node": "^1.2.0" + } + }, "node_modules/table-layout": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", - "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^4.0.1", "deep-extend": "~0.6.0", @@ -10941,64 +8476,32 @@ }, "node_modules/table-layout/node_modules/array-back": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/table-layout/node_modules/typical": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/tapable": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, - "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/tar/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/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, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -11010,29 +8513,69 @@ }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, - "node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", + "node_modules/through2": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/through2/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/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/timers-browserify": { + "version": "1.4.2", + "dev": true, + "dependencies": { + "process": "~0.11.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=0.6.0" } }, "node_modules/titleize": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", - "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -11042,18 +8585,16 @@ }, "node_modules/to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "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, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -11061,18 +8602,10 @@ "node": ">=8.0" } }, - "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==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -11081,33 +8614,25 @@ "node": ">=0.8" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, "node_modules/tree-kill": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, + "license": "MIT", "bin": { "tree-kill": "cli.js" } }, "node_modules/treeify": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", - "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", + "license": "MIT", "engines": { "node": ">=0.6" } }, "node_modules/ts-command-line-args": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.0.tgz", - "integrity": "sha512-Ff7Xt04WWCjj/cmPO9eWTJX3qpBZWuPWyQYG1vnxJao+alWWYjwJBc5aYz3h5p5dE08A6AnpkgiCtP/0KXXBYw==", "dev": true, + "license": "ISC", "dependencies": { "@morgan-stanley/ts-mocking-bird": "^0.6.2", "chalk": "^4.1.0", @@ -11121,18 +8646,16 @@ }, "node_modules/ts-essentials": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", - "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", "dev": true, + "license": "MIT", "peerDependencies": { "typescript": ">=3.7.0" } }, "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, + "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -11173,18 +8696,16 @@ }, "node_modules/ts-node/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, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "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, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -11194,9 +8715,8 @@ }, "node_modules/tsconfig-paths/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, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -11206,24 +8726,21 @@ }, "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, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/tslib": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true + "dev": true, + "license": "0BSD" }, "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, + "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -11236,14 +8753,18 @@ }, "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 + "dev": true, + "license": "0BSD" + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "dev": true, + "license": "MIT" }, "node_modules/tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -11253,19 +8774,13 @@ }, "node_modules/tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + "dev": true, + "license": "Unlicense" }, "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, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -11275,18 +8790,16 @@ }, "node_modules/type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "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, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -11294,23 +8807,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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/typechain": { "version": "8.2.0", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.2.0.tgz", - "integrity": "sha512-tZqhqjxJ9xAS/Lh32jccTjMkpx7sTdUVVHAy5Bf0TIer5QFNYXotiX74oCvoVYjyxUKDK3MXHtMFzMyD3kE+jg==", "dev": true, + "license": "MIT", "dependencies": { "@types/prettier": "^2.1.1", "debug": "^4.3.1", @@ -11332,9 +8832,8 @@ }, "node_modules/typechain/node_modules/fs-extra": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -11346,9 +8845,8 @@ }, "node_modules/typechain/node_modules/glob": { "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -11366,26 +8864,24 @@ }, "node_modules/typechain/node_modules/jsonfile": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, + "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/typechain/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==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0.0" } }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -11395,19 +8891,23 @@ "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", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "license": "MIT", "dependencies": { "is-typedarray": "^1.0.0" } }, "node_modules/typedoc": { "version": "0.24.7", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.24.7.tgz", - "integrity": "sha512-zzfKDFIZADA+XRIp2rMzLe9xZ6pt12yQOhCr7cD7/PBTjhPmMyMvGrkZ2lPNJitg3Hj1SeiYFNzCsSDrlpxpKw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "lunr": "^2.3.9", "marked": "^4.3.0", @@ -11426,18 +8926,16 @@ }, "node_modules/typedoc/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/typedoc/node_modules/minimatch": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -11448,44 +8946,10 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/types-bn": { - "version": "0.0.1", - "resolved": "git+ssh://git@github.com/machinomy/types-bn.git#08ede69e138640d332b0dae0dc2e2fffee5f7160", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bn.js": "4.11.7" - } - }, - "node_modules/types-bn/node_modules/bn.js": { - "version": "4.11.7", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "integrity": "sha512-LxFiV5mefv0ley0SzqkOPR1bC4EbpPx8LkOz5vMe/Yi15t5hzwgO/G+tc7wOtL4PZTYjwHu8JnEiSLumuSjSfA==", - "dev": true - }, - "node_modules/types-ethereumjs-util": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/types-ethereumjs-util/-/types-ethereumjs-util-0.0.8.tgz", - "integrity": "sha512-S+I6Bu7Xs7jHYMcRrjw7y903pJIscLRrzDiB6PfhSzGMeoTX8DnOkFSk71/o6OoQNRuy87URNrm2M9gcWozh+g==", - "dev": true, - "dependencies": { - "@machinomy/types-safe-buffer": "^0.0.1", - "bn.js": "^4.11.7", - "rlp": "^2.0.0", - "types-bn": "https://github.com/machinomy/types-bn.git" - } - }, - "node_modules/types-ethereumjs-util/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==", - "dev": true - }, "node_modules/typescript": { "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -11496,40 +8960,24 @@ }, "node_modules/typical": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/ua-parser-js": { - "version": "0.7.35", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", - "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "engines": { - "node": "*" + "node_modules/umd": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "bin": { + "umd": "bin/cli.js" } }, - "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==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -11540,41 +8988,46 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undeclared-identifiers": { + "version": "1.1.3", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + }, + "bin": { + "undeclared-identifiers": "bin.js" + } + }, "node_modules/unfetch": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-5.0.0.tgz", - "integrity": "sha512-3xM2c89siXg0nHvlmYsQ2zkLASvVMBisZm5lF3gFDqfF2xonNStDJyMpvaOBe0a1Edxmqrf2E0HBdmy9QyZaeg==" + "license": "MIT", + "workspaces": [ + "./packages/isomorphic-unfetch" + ] }, "node_modules/universalify": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/untildify": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/update-browserslist-db": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "funding": [ { @@ -11590,6 +9043,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -11603,22 +9057,32 @@ }, "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, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, - "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": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==" + "node_modules/url": { + "version": "0.11.0", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "dev": true, + "license": "MIT" }, "node_modules/utf-8-validate": { "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", "hasInstallScript": true, + "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -11628,13 +9092,12 @@ }, "node_modules/utf8": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + "license": "MIT" }, "node_modules/util": { "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", @@ -11645,441 +9108,59 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/util.promisify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.2.tgz", - "integrity": "sha512-PBdZ03m1kBnQ5cjjO0ZvJMJS+QsbyIcFwi4hY4U76OQsCO9JrOYjbCFgIF76ccFg9xnJo7ZHPkqyj1GqmdS7MA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "object.getownpropertydescriptors": "^2.1.6", - "safe-array-concat": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } + "license": "MIT" }, "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, + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "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 - }, - "node_modules/valid-url": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", - "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==" - }, - "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": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } + "dev": true, + "license": "MIT" }, "node_modules/verror": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, "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/vm-browserify": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, "node_modules/vscode-oniguruma": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/vscode-textmate": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/web3": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", - "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", - "hasInstallScript": true, - "dependencies": { - "web3-bzz": "1.10.0", - "web3-core": "1.10.0", - "web3-eth": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-shh": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", - "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", - "hasInstallScript": true, - "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - }, - "node_modules/web3-core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", - "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", - "dependencies": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-requestmanager": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-helpers": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.0.tgz", - "integrity": "sha512-pIxAzFDS5vnbXvfvLSpaA1tfRykAe9adw43YCKsEYQwH0gCLL0kMLkaCX3q+Q8EVmAh+e1jWL/nl9U0de1+++g==", - "dependencies": { - "web3-eth-iban": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-method": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", - "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", - "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-promievent": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.0.tgz", - "integrity": "sha512-68N7k5LWL5R38xRaKFrTFT2pm2jBNFaM4GioS00YjAKXRQ3KjmhijOMG3TICz6Aa5+6GDWYelDNx21YAeZ4YTg==", - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-requestmanager": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", - "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", - "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.0", - "web3-providers-http": "1.10.0", - "web3-providers-ipc": "1.10.0", - "web3-providers-ws": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-subscriptions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", - "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - }, - "node_modules/web3-eth": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", - "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", - "dependencies": { - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-accounts": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-eth-ens": "1.10.0", - "web3-eth-iban": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-abi": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.0.tgz", - "integrity": "sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg==", - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", - "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", - "dependencies": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts/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/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": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/web3-eth-contract": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", - "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", - "dependencies": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-ens": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", - "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-iban": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.0.tgz", - "integrity": "sha512-0l+SP3IGhInw7Q20LY3IVafYEuufo4Dn75jAHT7c2aDJsIolvf2Lc6ugHkBajlwUneGfbRQs/ccYPQ9JeMUbrg==", - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", - "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - }, - "node_modules/web3-net": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", - "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", - "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-http": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", - "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", - "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ipc": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", - "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", - "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-shh": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", - "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", - "hasInstallScript": true, - "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-net": "1.10.0" - }, + "version": "3.2.1", + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">= 8" } }, "node_modules/web3-utils": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "license": "LGPL-3.0", "dependencies": { "bn.js": "^5.2.1", "ethereum-bloom-filters": "^1.0.6", @@ -12093,59 +9174,15 @@ "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": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/websocket/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/websocket/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" - }, - "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==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } + "node_modules/webextension-polyfill": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz", + "integrity": "sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==" }, "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, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -12158,8 +9195,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, + "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -12173,14 +9210,13 @@ }, "node_modules/which-module": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/which-typed-array": { "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -12198,18 +9234,16 @@ }, "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/wordwrapjs": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", - "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", "dev": true, + "license": "MIT", "dependencies": { "reduce-flatten": "^2.0.0", "typical": "^5.2.0" @@ -12220,24 +9254,21 @@ }, "node_modules/wordwrapjs/node_modules/typical": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/workerpool": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true + "dev": true, + "license": "Apache-2.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, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -12252,24 +9283,21 @@ }, "node_modules/wrap-ansi/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 + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi/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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/wrap-ansi/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, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -12281,14 +9309,13 @@ }, "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, + "license": "ISC" }, "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, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -12298,8 +9325,7 @@ }, "node_modules/ws": { "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -12316,190 +9342,39 @@ } } }, - "node_modules/wyvern-js": { - "version": "3.2.0", - "resolved": "git+ssh://git@github.com/ProjectOpenSea/wyvern-js.git#7429b1f2dd123f012cae1f3144a069e91ecd0682", - "integrity": "sha512-QI9U9j44pxCbgQB1OniOEqqxz+XdE3Wd8d9jxpoUibQgSIHBlANE1UPy+/LBUWFyUdWJsZfLUCvlpz4/0lcnog==", - "license": "MIT", - "dependencies": { - "@0x/assert": "3.0.31", - "@0x/base-contract": "6.4.2", - "@0x/json-schemas": "6.4.1", - "@0x/utils": "https://github.com/ProjectOpensea/0x-tools/raw/provider-patch/utils/0x-utils-6.5.0.tgz", - "@0x/web3-wrapper": "7.6.0", - "bn.js": "^4.11.8", - "ethereumjs-abi": "https://github.com/ProjectWyvern/ethereumjs-abi.git", - "ethereumjs-util": "^5.1.3", - "ethers": "^4.0.49", - "json-loader": "^0.5.7", - "jsonschema": "^1.2.2", - "lodash": "^4.17.21", - "web3": "^1.7.0" - } - }, - "node_modules/wyvern-js/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/wyvern-js/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/wyvern-js/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/wyvern-js/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/wyvern-js/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==" - }, - "node_modules/wyvern-js/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" - }, - "node_modules/wyvern-js/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" - }, - "node_modules/wyvern-js/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "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." - }, - "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/xhr-request/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/xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/xtend": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.4" } }, "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, + "license": "ISC", "engines": { "node": ">=10" } }, - "node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", - "engines": { - "node": ">=0.10.32" - } - }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "dev": true, + "license": "ISC" }, "node_modules/yaml": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", - "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", "dev": true, + "license": "ISC", "engines": { "node": ">= 14" } }, "node_modules/yargs": { "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -12515,18 +9390,16 @@ }, "node_modules/yargs-parser": { "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yargs-unparser": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", @@ -12539,9 +9412,8 @@ }, "node_modules/yargs-unparser/node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -12551,9 +9423,8 @@ }, "node_modules/yargs-unparser/node_modules/decamelize": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -12563,474 +9434,205 @@ }, "node_modules/yargs/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 + "dev": true, + "license": "MIT" }, "node_modules/yargs/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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/yargs/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/yargs/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "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": { - "@0x/assert": { - "version": "3.0.31", - "resolved": "https://registry.npmjs.org/@0x/assert/-/assert-3.0.31.tgz", - "integrity": "sha512-ZzlnldKNvhA78IOcH6KCH3kb65XB7fI3wyuocjL72Es3eGTmyVg1KNK7eJnmV+RHSGDTYLwhvmb5hfIvFHMArg==", - "requires": { - "@0x/json-schemas": "^6.4.1", - "@0x/typescript-typings": "^5.2.1", - "@0x/utils": "^6.5.0", - "@types/node": "12.12.54", - "lodash": "^4.17.11", - "valid-url": "^1.0.9" - }, - "dependencies": { - "@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - } - } - }, - "@0x/base-contract": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@0x/base-contract/-/base-contract-6.4.2.tgz", - "integrity": "sha512-lcmsXGJ2ImiO1tJoWefYiQ8/WRSdQ4BPA8XulYqVQ4su6PYjLa1XvU91zM779QrIPeRo8fL7FUvGE7CkyG/gwA==", - "requires": { - "@0x/assert": "^3.0.29", - "@0x/json-schemas": "^6.3.0", - "@0x/utils": "^6.4.4", - "@0x/web3-wrapper": "^7.6.0", - "@types/node": "12.12.54", - "ethereumjs-account": "^3.0.0", - "ethereumjs-blockstream": "^7.0.0", - "ethereumjs-util": "^7.1.0", - "ethereumjs-vm": "^4.2.0", - "ethers": "~4.0.4", - "js-sha3": "^0.7.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "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==" - }, - "ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "requires": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==" - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==" - } - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "js-sha3": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.7.0.tgz", - "integrity": "sha512-Wpks3yBDm0UcL5qlVhwW9Jr9n9i4FfeWBFOOXP5puDS/SiudJGhw7DPyBqn3487qD4F0lsC0q3zxink37f7zeA==" - }, - "scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" - }, - "setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - } - } - }, - "@0x/json-schemas": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@0x/json-schemas/-/json-schemas-6.4.1.tgz", - "integrity": "sha512-4LGe7/QNKAdfxBNu5e5w24JKUqEHGg08TgKhyotStW5m0TJNBGoyGavip1FJeI3KRqNilRN22lgo9HsCBnF5Qg==", - "requires": { - "@0x/typescript-typings": "^5.2.1", - "@types/node": "12.12.54", - "ajv": "^6.12.5", - "lodash.values": "^4.3.0" - }, - "dependencies": { - "@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "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" - } - }, - "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==" - } - } - }, - "@0x/typescript-typings": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/@0x/typescript-typings/-/typescript-typings-5.3.2.tgz", - "integrity": "sha512-VIo8PS/IRXrI1aEzM8TenUMViX4MFMKBnIAwqC4K/ewVDSnKyYZSk8fzw0XZph6tN07obchPf+1sHIWYe8EUow==", - "requires": { - "@types/bn.js": "^4.11.0", - "@types/node": "12.12.54", - "@types/react": "*", - "bignumber.js": "~9.0.2", - "ethereum-types": "^3.7.1", - "popper.js": "1.14.3" - }, - "dependencies": { - "@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/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - } - } - }, - "@0x/utils": { - "version": "6.5.0", - "resolved": "https://github.com/ProjectOpensea/0x-tools/raw/provider-patch/utils/0x-utils-6.5.0.tgz", - "integrity": "sha512-CtpyQ21syDT1HGJks38t2MU42uc1TTBSnXy0iqYeuVSnNG730OQZbMWvOTJqN7DRyAxYhC+xGwdDqL1k3Fsv3Q==", - "requires": { - "abortcontroller-polyfill": "^1.1.9", - "bignumber.js": "~9.0.0", - "chalk": "^2.3.0", - "detect-node": "2.0.3", - "ethereumjs-util": "^7.1.0", - "ethers": "~4.0.4", - "isomorphic-fetch": "2.2.1", - "js-sha3": "^0.7.0", - "lodash": "^4.17.11" - }, - "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==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "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==" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.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==", - "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==" - }, - "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==" - }, - "ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "requires": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==" - } - } - }, - "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==" - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "js-sha3": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.7.0.tgz", - "integrity": "sha512-Wpks3yBDm0UcL5qlVhwW9Jr9n9i4FfeWBFOOXP5puDS/SiudJGhw7DPyBqn3487qD4F0lsC0q3zxink37f7zeA==" - }, - "scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" - }, - "setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==" - } + "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" } }, - "@0x/web3-wrapper": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@0x/web3-wrapper/-/web3-wrapper-7.6.0.tgz", - "integrity": "sha512-yxvTT/w5PFfnbKZ9Xvt412fyhVfiNQ0ugFbJYr+X+Xye+Q9vZzzbfc2a3bJSO7w/HkZx7vND071F/jtqU1JsEg==", - "requires": { - "@0x/assert": "^3.0.29", - "@0x/json-schemas": "^6.3.0", - "@0x/typescript-typings": "^5.2.1", - "@0x/utils": "^6.4.4", - "@types/node": "12.12.54", - "ethereum-types": "^3.6.0", - "ethereumjs-util": "^7.1.0", - "ethers": "~4.0.4", - "lodash": "^4.17.11" - }, - "dependencies": { - "@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "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==" - }, - "ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "requires": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==" - }, - "scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" - }, - "setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==" - } + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "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": { "@0xsequence/abi": { - "version": "0.39.6", - "resolved": "https://registry.npmjs.org/@0xsequence/abi/-/abi-0.39.6.tgz", - "integrity": "sha512-ROHfAyQvN1N2G6DeVyWR4wxi0dd0HjJZQ+2UkxvYJrdywQZONmrUPD6MfT4Fd+JrQwdIxkcNu2/QfgkyZDerFw==" + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/abi/-/abi-0.43.29.tgz", + "integrity": "sha512-tx5rwgkIrNGmvfFPEjm9s0/eX6hyWo90FMCEf1yxLZqjxUIhKS8AJvAvGH4sjmQ5eeAx5ujkE8xNxWEFs6gZPQ==" + }, + "@0xsequence/api": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/api/-/api-0.43.29.tgz", + "integrity": "sha512-o/BW/KKX5SG+Rk58J1wv78MmKdW3OEqzcTZJ6isnUOSeG+4NYVrY+RV4r1zwu9BInI54jin2w0UGk9hjp5buqw==" + }, + "@0xsequence/auth": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/auth/-/auth-0.43.29.tgz", + "integrity": "sha512-yX5i5b2tx5a/eF3g8NxkqXYTXa9LSAhDgJQCwFNKa1Trb10Ev3ADj+SlCpkxSpLk8ikUyPkg2ELwf9Usro4v4Q==", + "requires": { + "@0xsequence/abi": "^0.43.29", + "@0xsequence/api": "^0.43.29", + "@0xsequence/config": "^0.43.29", + "@0xsequence/ethauth": "^0.8.0", + "@0xsequence/indexer": "^0.43.29", + "@0xsequence/metadata": "^0.43.29", + "@0xsequence/network": "^0.43.29", + "@0xsequence/provider": "^0.43.29", + "@0xsequence/utils": "^0.43.29", + "@0xsequence/wallet": "^0.43.29" + } + }, + "@0xsequence/config": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/config/-/config-0.43.29.tgz", + "integrity": "sha512-HT63jMmEtM8+fj76oSuCOxiDEUe4pXrFB3FRiA7K+/SHu5JWyRoK3rv9RoEB/MPUpHPcqIBkFtTXaYLjGRe4yg==", + "requires": { + "@0xsequence/abi": "^0.43.29", + "@0xsequence/multicall": "^0.43.29", + "@0xsequence/network": "^0.43.29", + "@0xsequence/utils": "^0.43.29" + } + }, + "@0xsequence/ethauth": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@0xsequence/ethauth/-/ethauth-0.8.1.tgz", + "integrity": "sha512-P21cxRSS+2mDAqFVAJt0lwQFtbObX+Ewlj8DMyDELp81+QbfHFh6LCyu8dTXNdBx6UbmRFOCSBno5Txd50cJPQ==", + "requires": { + "js-base64": "^3.7.2" + } + }, + "@0xsequence/guard": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/guard/-/guard-0.43.29.tgz", + "integrity": "sha512-IZ40BoChB/ws09NbSzytOi/8xojsR3g8sgwzZ/eth6YWeMP1MIuZc2BjRDAc59oStkspZxguWnE4HgVibTBHug==" + }, + "@0xsequence/indexer": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/indexer/-/indexer-0.43.29.tgz", + "integrity": "sha512-Myx/2D+vcoY/cPYKIqoB1VyALo4e4P3KQsOWxkb6o2JADOntY0mcFq9YIMPl+Zj1xPkGHTCNIk2p1udKMhbKzQ==" + }, + "@0xsequence/metadata": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/metadata/-/metadata-0.43.29.tgz", + "integrity": "sha512-wk15QFMaz0h0kNP2W9Ms1rVykG6N/tPzRdhqvBviq2vROZFHmBwq7TbWae4t/gIeoo+1FZI5507771edJ8KJaw==" }, "@0xsequence/multicall": { - "version": "0.39.6", - "resolved": "https://registry.npmjs.org/@0xsequence/multicall/-/multicall-0.39.6.tgz", - "integrity": "sha512-oHgxAuYoanYXKArrzPF+a8f9CAzDX5xYp+U+bcCd3qOagIn1xeQCEW4zbnGDRD+ZguhlcP2I7wiW1eImmoOi1g==", + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/multicall/-/multicall-0.43.29.tgz", + "integrity": "sha512-7kV3koB0aaLHjJjjoxIYhk8R/40WMIFOzJNZSRnzmeSKf67hvQNw9rkZwr0qx3B11IPANfZnmhs2gOnybAbiBQ==", "requires": { - "@0xsequence/abi": "^0.39.6", - "@0xsequence/network": "^0.39.6", - "@0xsequence/utils": "^0.39.6", - "@ethersproject/providers": "^5.5.1", - "ethers": "^5.5.2" + "@0xsequence/abi": "^0.43.29", + "@0xsequence/network": "^0.43.29", + "@0xsequence/utils": "^0.43.29" } }, "@0xsequence/network": { - "version": "0.39.6", - "resolved": "https://registry.npmjs.org/@0xsequence/network/-/network-0.39.6.tgz", - "integrity": "sha512-esmdTCT98tjjbYoiYjaOmJIG0aSgadg9wR1FB6lzPdAVuq+xOGvxygtTiqhTqXF+YI2Alc4b5EP7tUWC9OA10Q==", + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/network/-/network-0.43.29.tgz", + "integrity": "sha512-0CmgIpmfOVOmqzIbaDg8hzRc7aR/z2Lx4wwrqEAsfsggp7+y6mwm8rSda4Z6ZOtlBeWSod9w+x3AqpL8iZenYg==", "requires": { - "@0xsequence/utils": "^0.39.6", - "@ethersproject/providers": "^5.5.1", - "ethers": "^5.5.2" + "@0xsequence/indexer": "^0.43.29", + "@0xsequence/provider": "^0.43.29", + "@0xsequence/relayer": "^0.43.29", + "@0xsequence/utils": "^0.43.29" + } + }, + "@0xsequence/provider": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/provider/-/provider-0.43.29.tgz", + "integrity": "sha512-ZfKMh8YgtRcJ9gt5PChHjGA11R226IRjA5UjYHBYOSywcQxTUjpyEMrCEfFQ5x9n8X3MVF+0RJaFbPFs6FyDxg==", + "requires": { + "@0xsequence/abi": "^0.43.29", + "@0xsequence/auth": "^0.43.29", + "@0xsequence/config": "^0.43.29", + "@0xsequence/network": "^0.43.29", + "@0xsequence/relayer": "^0.43.29", + "@0xsequence/transactions": "^0.43.29", + "@0xsequence/utils": "^0.43.29", + "@0xsequence/wallet": "^0.43.29", + "eventemitter2": "^6.4.5", + "webextension-polyfill": "^0.10.0" + } + }, + "@0xsequence/relayer": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/relayer/-/relayer-0.43.29.tgz", + "integrity": "sha512-Yp1mrOvhzMLvrvLoxrH+qHo6kp6LEzTLzF0NYzM/j7wVKdY0FBOEHEO6sSCVNrSOv8YRDRjtnz/3K7Sh3eweXw==", + "requires": { + "@0xsequence/abi": "^0.43.29", + "@0xsequence/config": "^0.43.29", + "@0xsequence/network": "^0.43.29", + "@0xsequence/transactions": "^0.43.29", + "@0xsequence/utils": "^0.43.29" + } + }, + "@0xsequence/transactions": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/transactions/-/transactions-0.43.29.tgz", + "integrity": "sha512-htJ+vY372Yfe9ojufP2KzJRXaL9cnWGTP+dZD3KAp47AJbCfcf44/ggqL6rLzCFhQSqF3e6m2BoBNA2GvIsilQ==", + "requires": { + "@0xsequence/abi": "^0.43.29", + "@0xsequence/config": "^0.43.29", + "@0xsequence/network": "^0.43.29", + "@0xsequence/utils": "^0.43.29" } }, "@0xsequence/utils": { - "version": "0.39.6", - "resolved": "https://registry.npmjs.org/@0xsequence/utils/-/utils-0.39.6.tgz", - "integrity": "sha512-Zf5NTRSzrOrc48SXsmtRDs1uaJ0gaOjwQYkANoIco54Rq+IA1Dlz9HWRebgyjeCUrXLnGCckljBemAUoZbVgIg==", + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/utils/-/utils-0.43.29.tgz", + "integrity": "sha512-5GVIIoxlGESZ+GIPn/0IKu4oTcPTpteDbks4dKjfL+jF/jogZB7qWIWUpOF3O0wgZO5xbimZIur6GowcQq8aLw==", "requires": { - "@ethersproject/abstract-signer": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "ethers": "^5.5.2", "js-base64": "^3.7.2" } }, + "@0xsequence/wallet": { + "version": "0.43.29", + "resolved": "https://registry.npmjs.org/@0xsequence/wallet/-/wallet-0.43.29.tgz", + "integrity": "sha512-TBx+tQK/hM7QgfKdC+PtrEGNGsTHhEKmvbt7kiVzikKRcP5lWmQRfb2wrHds6/RpRvEUBg9yoUEGMdqCW+JjiQ==", + "requires": { + "@0xsequence/abi": "^0.43.29", + "@0xsequence/config": "^0.43.29", + "@0xsequence/guard": "^0.43.29", + "@0xsequence/network": "^0.43.29", + "@0xsequence/relayer": "^0.43.29", + "@0xsequence/transactions": "^0.43.29", + "@0xsequence/utils": "^0.43.29" + } + }, "@ampproject/remapping": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.3.0", @@ -13039,8 +9641,6 @@ }, "@babel/code-frame": { "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dev": true, "requires": { "@babel/highlight": "^7.18.6" @@ -13048,14 +9648,10 @@ }, "@babel/compat-data": { "version": "7.21.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", - "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", "dev": true }, "@babel/core": { "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz", - "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==", "dev": true, "requires": { "@ampproject/remapping": "^2.2.0", @@ -13077,16 +9673,12 @@ "dependencies": { "semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "@babel/generator": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", - "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", "dev": true, "requires": { "@babel/types": "^7.21.5", @@ -13097,8 +9689,6 @@ }, "@babel/helper-compilation-targets": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", - "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", "dev": true, "requires": { "@babel/compat-data": "^7.21.5", @@ -13110,22 +9700,16 @@ "dependencies": { "semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "@babel/helper-environment-visitor": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", - "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", "dev": true }, "@babel/helper-function-name": { "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", "dev": true, "requires": { "@babel/template": "^7.20.7", @@ -13134,8 +9718,6 @@ }, "@babel/helper-hoist-variables": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, "requires": { "@babel/types": "^7.18.6" @@ -13143,8 +9725,6 @@ }, "@babel/helper-module-imports": { "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", "dev": true, "requires": { "@babel/types": "^7.21.4" @@ -13152,8 +9732,6 @@ }, "@babel/helper-module-transforms": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", - "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.21.5", @@ -13168,8 +9746,6 @@ }, "@babel/helper-simple-access": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", - "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", "dev": true, "requires": { "@babel/types": "^7.21.5" @@ -13177,8 +9753,6 @@ }, "@babel/helper-split-export-declaration": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, "requires": { "@babel/types": "^7.18.6" @@ -13186,26 +9760,18 @@ }, "@babel/helper-string-parser": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", - "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", "dev": true }, "@babel/helper-validator-identifier": { "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true }, "@babel/helper-validator-option": { "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", "dev": true }, "@babel/helpers": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", - "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", "dev": true, "requires": { "@babel/template": "^7.20.7", @@ -13215,8 +9781,6 @@ }, "@babel/highlight": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.18.6", @@ -13226,8 +9790,6 @@ "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" @@ -13235,8 +9797,6 @@ }, "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", @@ -13246,8 +9806,6 @@ }, "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" @@ -13255,26 +9813,18 @@ }, "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 }, "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" @@ -13284,14 +9834,10 @@ }, "@babel/parser": { "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", - "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", "dev": true }, "@babel/runtime": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", - "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", "dev": true, "requires": { "regenerator-runtime": "^0.13.11" @@ -13299,8 +9845,6 @@ }, "@babel/template": { "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", @@ -13310,8 +9854,6 @@ }, "@babel/traverse": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", - "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", "dev": true, "requires": { "@babel/code-frame": "^7.21.4", @@ -13328,16 +9870,12 @@ "dependencies": { "globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true } } }, "@babel/types": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", - "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.21.5", @@ -13347,8 +9885,6 @@ }, "@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, "requires": { "@jridgewell/trace-mapping": "0.3.9" @@ -13356,8 +9892,6 @@ "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, "requires": { "@jridgewell/resolve-uri": "^3.0.3", @@ -13368,8 +9902,6 @@ }, "@eslint-community/eslint-utils": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "requires": { "eslint-visitor-keys": "^3.3.0" @@ -13377,14 +9909,10 @@ }, "@eslint-community/regexpp": { "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", "dev": true }, "@eslint/eslintrc": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", - "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -13400,8 +9928,6 @@ "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", @@ -13412,14 +9938,10 @@ }, "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 }, "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, "requires": { "argparse": "^2.0.1" @@ -13427,40 +9949,16 @@ }, "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/js": { "version": "8.41.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz", - "integrity": "sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==", "dev": true }, - "@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" - } - }, - "@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "requires": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" - } - }, "@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", @@ -13475,8 +9973,6 @@ }, "@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", @@ -13489,8 +9985,6 @@ }, "@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", @@ -13501,8 +9995,6 @@ }, "@ethersproject/address": { "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", @@ -13513,16 +10005,12 @@ }, "@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/bytes": "^5.7.0" } }, "@ethersproject/basex": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", "requires": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/properties": "^5.7.0" @@ -13530,8 +10018,6 @@ }, "@ethersproject/bignumber": { "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.7.0", "@ethersproject/logger": "^5.7.0", @@ -13540,24 +10026,18 @@ }, "@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/constants": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", "requires": { "@ethersproject/bignumber": "^5.7.0" } }, "@ethersproject/contracts": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", "requires": { "@ethersproject/abi": "^5.7.0", "@ethersproject/abstract-provider": "^5.7.0", @@ -13573,8 +10053,6 @@ }, "@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", @@ -13589,8 +10067,6 @@ }, "@ethersproject/hdnode": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", "requires": { "@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/basex": "^5.7.0", @@ -13608,8 +10084,6 @@ }, "@ethersproject/json-wallets": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", "requires": { "@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/address": "^5.7.0", @@ -13628,30 +10102,22 @@ }, "@ethersproject/keccak256": { "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.7.0", "js-sha3": "0.8.0" } }, "@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" + "version": "5.7.0" }, "@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/pbkdf2": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", "requires": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/sha2": "^5.7.0" @@ -13659,16 +10125,12 @@ }, "@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/providers": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", "requires": { "@ethersproject/abstract-provider": "^5.7.0", "@ethersproject/abstract-signer": "^5.7.0", @@ -13694,8 +10156,6 @@ }, "@ethersproject/random": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", "requires": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0" @@ -13703,8 +10163,6 @@ }, "@ethersproject/rlp": { "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.7.0", "@ethersproject/logger": "^5.7.0" @@ -13712,8 +10170,6 @@ }, "@ethersproject/sha2": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", "requires": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0", @@ -13722,8 +10178,6 @@ }, "@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", @@ -13735,8 +10189,6 @@ }, "@ethersproject/solidity": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", "requires": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", @@ -13748,8 +10200,6 @@ }, "@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", @@ -13758,8 +10208,6 @@ }, "@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", @@ -13774,8 +10222,6 @@ }, "@ethersproject/units": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", "requires": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/constants": "^5.7.0", @@ -13784,8 +10230,6 @@ }, "@ethersproject/wallet": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", "requires": { "@ethersproject/abstract-provider": "^5.7.0", "@ethersproject/abstract-signer": "^5.7.0", @@ -13806,8 +10250,6 @@ }, "@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", @@ -13818,8 +10260,6 @@ }, "@ethersproject/wordlists": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", "requires": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/hash": "^5.7.0", @@ -13830,8 +10270,6 @@ }, "@humanwhocodes/config-array": { "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -13841,20 +10279,14 @@ }, "@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true }, "@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/load-nyc-config": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "requires": { "camelcase": "^5.3.1", @@ -13866,8 +10298,6 @@ "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", @@ -13876,8 +10306,6 @@ }, "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" @@ -13885,8 +10313,6 @@ }, "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" @@ -13894,8 +10320,6 @@ }, "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" @@ -13903,22 +10327,16 @@ }, "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 } } }, "@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/gen-mapping": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, "requires": { "@jridgewell/set-array": "^1.0.1", @@ -13928,26 +10346,18 @@ }, "@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/set-array": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true }, "@jridgewell/sourcemap-codec": { "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "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", @@ -13956,22 +10366,12 @@ "dependencies": { "@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 } } }, - "@machinomy/types-safe-buffer": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@machinomy/types-safe-buffer/-/types-safe-buffer-0.0.1.tgz", - "integrity": "sha512-RZi6CQ4GJrwtz8iAt87vuUbaBnuA6T1jM/xDuXwZ63CuuEPGVPu4ElHcaUE42J66Yhpi2LWbrCeHFAiXnVzRlQ==", - "dev": true - }, "@morgan-stanley/ts-mocking-bird": { "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@morgan-stanley/ts-mocking-bird/-/ts-mocking-bird-0.6.4.tgz", - "integrity": "sha512-57VJIflP8eR2xXa9cD1LUawh+Gh+BVQfVu0n6GALyg/AqV/Nz25kDRvws3i9kIe1PTrbsZZOYpsYp6bXPd6nVA==", "dev": true, "requires": { "lodash": "^4.17.16", @@ -13980,16 +10380,12 @@ "dependencies": { "uuid": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", "dev": true } } }, "@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", @@ -13998,14 +10394,10 @@ }, "@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", @@ -14013,19 +10405,17 @@ } }, "@opensea/seaport-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opensea/seaport-js/-/seaport-js-1.3.0.tgz", - "integrity": "sha512-yKtjP4k2lLGfF/eBsjsIj0FPquD+WL2M1BfihrAiFTQuGIEb+PMAxZmVLUr9UAWX79TcAwnZGJW/qMxF3VsR3A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@opensea/seaport-js/-/seaport-js-2.0.0.tgz", + "integrity": "sha512-G6SiEfJAk085CY1d2WEl8fJcncGy2R1WDYDVsu3sE7DHrXg5yR8z9yMovxSff7Juq+dCOmQKyNGvixQubrlvxA==", "requires": { - "@0xsequence/multicall": "^0.39.0", - "ethers": "^5.6.7", - "merkletreejs": "^0.3.9" + "@0xsequence/multicall": "^0.43.29", + "ethers": "^5.7.2", + "merkletreejs": "^0.3.10" } }, "@pkgr/utils": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.0.tgz", - "integrity": "sha512-2OCURAmRtdlL8iUDTypMrrxfwe8frXTeXaxGsVOaYtc/wrUyk8Z/0OBetM7cdlsy7ZFWlMX72VogKeh+A4Xcjw==", "dev": true, "requires": { "cross-spawn": "^7.0.3", @@ -14036,47 +10426,24 @@ "tslib": "^2.5.0" } }, - "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "requires": { - "defer-to-connect": "^2.0.1" - } - }, "@tsconfig/node10": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", "dev": 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 }, "@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 }, "@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 }, - "@typechain/web3-v1": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@typechain/web3-v1/-/web3-v1-6.0.3.tgz", - "integrity": "sha512-bFBYiA/Wh9XSoPtZ0nnrvg0a0brAHXhL/nCsPnPS999f9EUD9MOwkdOh8zhvY5oNzi6GMD5+KEmwE7A/eTqgeQ==", + "@typechain/ethers-v5": { + "version": "11.0.0", "dev": true, "requires": { "lodash": "^4.17.15", @@ -14085,79 +10452,31 @@ }, "@types/bn.js": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", "requires": { "@types/node": "*" } }, - "@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, "@types/chai": { "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", - "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", "dev": true }, "@types/chai-as-promised": { "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz", - "integrity": "sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==", "dev": true, "requires": { "@types/chai": "*" } }, - "@types/fbemitter": { - "version": "2.0.32", - "resolved": "https://registry.npmjs.org/@types/fbemitter/-/fbemitter-2.0.32.tgz", - "integrity": "sha512-Hwq28bBlbmfCgLnNJvjl5ssTrbZCTSblI4vqPpqZrbbEL8vn5l2UivxhlMYfUY7a4SR8UB6RKoLjOZfljqAa6g==", - "dev": true - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" - }, "@types/json-schema": { "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "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/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "requires": { - "@types/node": "*" - } - }, - "@types/lodash": { - "version": "4.14.194", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", - "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==", "dev": true }, "@types/mocha": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", - "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", "dev": true }, "@types/node": { @@ -14167,85 +10486,34 @@ }, "@types/parse-author": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/parse-author/-/parse-author-2.0.1.tgz", - "integrity": "sha512-2RNXvvDY+7ITl/Q3znDpW9DxyAckKgLCXpoiBHN9BeLH1aV7z/W657P2+PK3wVUgGWXtc99ZQy3LkJTGlxLsvA==", "dev": true }, "@types/parse-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, "@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/prettier": { "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", "dev": true }, - "@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" - }, - "@types/query-string": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@types/query-string/-/query-string-6.3.0.tgz", - "integrity": "sha512-yuIv/WRffRzL7cBW+sla4HwBZrEXRNf1MKQ5SklPEadth+BKbDxiVG8A3iISN5B3yC4EeSCzMZP8llHTcUhOzQ==", - "dev": true, - "requires": { - "query-string": "*" - } - }, - "@types/react": { - "version": "18.2.6", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.6.tgz", - "integrity": "sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==", - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "requires": { - "@types/node": "*" - } - }, - "@types/scheduler": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" - }, "@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.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", "dev": true }, "@typescript-eslint/eslint-plugin": { "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.7.tgz", - "integrity": "sha512-BL+jYxUFIbuYwy+4fF86k5vdT9lT0CNJ6HtwrIvGh0PhH8s0yy5rjaKH2fDCrz5ITHy07WCzVGNvAmjJh4IJFA==", "dev": true, "requires": { "@eslint-community/regexpp": "^4.4.0", @@ -14262,8 +10530,6 @@ }, "@typescript-eslint/parser": { "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.7.tgz", - "integrity": "sha512-VhpsIEuq/8i5SF+mPg9jSdIwgMBBp0z9XqjiEay+81PYLJuroN+ET1hM5IhkiYMJd9MkTz8iJLt7aaGAgzWUbQ==", "dev": true, "requires": { "@typescript-eslint/scope-manager": "5.59.7", @@ -14274,8 +10540,6 @@ }, "@typescript-eslint/scope-manager": { "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.7.tgz", - "integrity": "sha512-FL6hkYWK9zBGdxT2wWEd2W8ocXMu3K94i3gvMrjXpx+koFYdYV7KprKfirpgY34vTGzEPPuKoERpP8kD5h7vZQ==", "dev": true, "requires": { "@typescript-eslint/types": "5.59.7", @@ -14284,8 +10548,6 @@ }, "@typescript-eslint/type-utils": { "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.7.tgz", - "integrity": "sha512-ozuz/GILuYG7osdY5O5yg0QxXUAEoI4Go3Do5xeu+ERH9PorHBPSdvD3Tjp2NN2bNLh1NJQSsQu2TPu/Ly+HaQ==", "dev": true, "requires": { "@typescript-eslint/typescript-estree": "5.59.7", @@ -14296,14 +10558,10 @@ }, "@typescript-eslint/types": { "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.7.tgz", - "integrity": "sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A==", "dev": true }, "@typescript-eslint/typescript-estree": { "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.7.tgz", - "integrity": "sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ==", "dev": true, "requires": { "@typescript-eslint/types": "5.59.7", @@ -14317,8 +10575,6 @@ }, "@typescript-eslint/utils": { "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.7.tgz", - "integrity": "sha512-yCX9WpdQKaLufz5luG4aJbOpdXf/fjwGMcLFXZVPUz3QqLirG5QcwwnIHNf8cjLjxK4qtzTO8udUtMQSAToQnQ==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", @@ -14333,91 +10589,61 @@ }, "@typescript-eslint/visitor-keys": { "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.7.tgz", - "integrity": "sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ==", "dev": true, "requires": { "@typescript-eslint/types": "5.59.7", "eslint-visitor-keys": "^3.3.0" } }, - "abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==" - }, - "abstract-leveldown": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", - "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", - "requires": { - "xtend": "~4.0.0" - } - }, - "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" - } - }, "acorn": { "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "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-node": { + "version": "1.8.2", + "dev": true, + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "dev": true + }, + "acorn-walk": { + "version": "7.2.0", + "dev": true + } + } + }, "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 }, "aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + "version": "3.0.0" }, "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.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "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.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "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" @@ -14425,28 +10651,20 @@ "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-sequence-parser": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", - "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", "dev": true }, "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" @@ -14454,8 +10672,6 @@ }, "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", @@ -14464,8 +10680,6 @@ }, "append-transform": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", "dev": true, "requires": { "default-require-extensions": "^3.0.0" @@ -14473,20 +10687,14 @@ }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", "dev": true }, "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" @@ -14494,28 +10702,18 @@ }, "array-back": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "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-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, "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", @@ -14527,14 +10725,10 @@ }, "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", @@ -14545,8 +10739,6 @@ }, "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", @@ -14555,267 +10747,329 @@ "es-shim-unscopables": "^1.0.0" } }, - "array.prototype.reduce": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", - "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", + "asn1": { + "version": "0.2.6", + "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" + "safer-buffer": "~2.1.0" } }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + "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 + } + } }, - "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==", + "assert": { + "version": "1.5.0", + "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "dev": true + }, + "util": { + "version": "0.10.3", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } } }, "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" + "dev": true }, "assertion-error": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "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 }, - "async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "requires": { - "lodash": "^4.17.14" - } - }, - "async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "requires": { - "async": "^2.4.0" - } - }, - "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==" + "dev": true }, "author-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/author-regex/-/author-regex-1.0.0.tgz", - "integrity": "sha512-KbWgR8wOYRAPekEmMXrYYdc7BRyhn2Ftk7KWfMUnQ43hFdojWEFRxhhRUm3/OFEdPa1r0KAvTTg9YQK57xTe0g==", "dev": true }, "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 }, "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==" + "dev": true }, "aws4": { "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" - }, - "axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } + "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": "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==" + "dev": true }, "bcrypt-pbkdf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, "requires": { "tweetnacl": "^0.14.3" } }, "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + "version": "1.1.4" }, "big-integer": { "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", "dev": true }, "bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" + "version": "9.0.2" }, "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 }, "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==" + "version": "1.2.1" }, "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "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.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "version": "5.2.1" + }, + "bplist-parser": { + "version": "0.2.0", + "dev": true, + "requires": { + "big-integer": "^1.6.44" + } + }, + "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-pack": { + "version": "6.1.0", + "dev": true, + "requires": { + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "JSONStream": "^1.0.3", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + } + }, + "browser-resolve": { + "version": "2.0.0", + "dev": true, + "requires": { + "resolve": "^1.17.0" + } + }, + "browser-stdout": { + "version": "1.3.1", + "dev": true + }, + "browserify": { + "version": "17.0.0", + "dev": true, + "requires": { + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^2.0.0", + "browserify-zlib": "~0.2.0", + "buffer": "~5.2.1", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.1", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^3.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.2.1", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.2.3", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "^1.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum-object": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^3.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.12.0", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "buffer": { + "version": "5.2.1", + "dev": true, "requires": { - "ms": "2.0.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "isarray": { + "version": "1.0.0", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "dev": true + }, + "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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "string_decoder": { + "version": "1.1.1", + "dev": true, "requires": { - "side-channel": "^1.0.4" + "safe-buffer": "~5.1.0" } } } }, - "bplist-parser": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", - "dev": true, + "browserify-aes": { + "version": "1.2.0", "requires": { - "big-integer": "^1.6.44" + "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" } }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "browserify-cipher": { + "version": "1.0.1", "dev": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "browserify-des": { + "version": "1.0.2", "dev": true, "requires": { - "fill-range": "^7.0.1" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + "browserify-rsa": { + "version": "4.1.0", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true + "browserify-sign": { + "version": "4.2.1", + "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" + } }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "browserify-zlib": { + "version": "0.2.0", + "dev": true, "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" + "pako": "~1.0.5" } }, "browserslist": { "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, "requires": { "caniuse-lite": "^1.0.30001449", @@ -14826,111 +11080,53 @@ }, "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-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 }, "buffer-reverse": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz", - "integrity": "sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg==" - }, - "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==" + "version": "1.0.1" }, "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + "version": "1.0.3" }, "bufferutil": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "optional": true, + "peer": true, "requires": { "node-gyp-build": "^4.3.0" } }, + "builtin-status-codes": { + "version": "3.0.0", + "dev": true + }, "bundle-name": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", - "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", "dev": true, "requires": { "run-applescript": "^5.0.0" } }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "cacheable-lookup": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", - "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==" - }, - "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "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==" - } - } + "cached-path-relative": { + "version": "1.1.0", + "dev": true }, "caching-transform": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", "dev": true, "requires": { "hasha": "^5.0.0", @@ -14941,8 +11137,7 @@ }, "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" @@ -14950,31 +11145,22 @@ }, "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": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "caniuse-lite": { "version": "1.0.30001488", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001488.tgz", - "integrity": "sha512-NORIQuuL4xGpIy6iCCQGN4iFjlBXtfKWIenlUuyZJumLRIindLb7wXM+GO8erEhb7vXfcnf4BAg2PrSDN5TNLQ==", "dev": true }, "caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + "dev": true }, "chai": { "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "dev": true, "requires": { "assertion-error": "^1.1.0", @@ -14988,8 +11174,6 @@ }, "chai-as-promised": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, "requires": { "check-error": "^1.0.2" @@ -14997,8 +11181,6 @@ }, "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", @@ -15007,8 +11189,6 @@ "dependencies": { "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" @@ -15018,22 +11198,10 @@ }, "check-error": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", "dev": true }, - "checkpoint-store": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", - "integrity": "sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg==", - "requires": { - "functional-red-black-tree": "^1.0.1" - } - }, "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", @@ -15048,8 +11216,6 @@ "dependencies": { "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" @@ -15057,58 +11223,19 @@ } } }, - "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==" - }, "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 }, "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" @@ -15116,8 +11243,6 @@ }, "cli-truncate": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", "dev": true, "requires": { "slice-ansi": "^5.0.0", @@ -15126,8 +11251,6 @@ }, "cliui": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "requires": { "string-width": "^4.2.0", @@ -15137,20 +11260,14 @@ "dependencies": { "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 }, "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 }, "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", @@ -15160,18 +11277,8 @@ } } }, - "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==", - "requires": { - "mimic-response": "^1.0.0" - } - }, "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" @@ -15179,28 +11286,41 @@ }, "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 }, "colorette": { "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, + "combine-source-map": { + "version": "0.8.0", + "dev": true, + "requires": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + }, + "dependencies": { + "convert-source-map": { + "version": "1.1.3", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "dev": true + } + } + }, "combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, "requires": { "delayed-stream": "~1.0.0" } }, "command-line-args": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dev": true, "requires": { "array-back": "^3.1.0", @@ -15211,8 +11331,6 @@ }, "command-line-usage": { "version": "6.1.3", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", - "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", "dev": true, "requires": { "array-back": "^4.0.2", @@ -15223,8 +11341,6 @@ "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" @@ -15232,14 +11348,10 @@ }, "array-back": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true }, "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", @@ -15249,8 +11361,6 @@ }, "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" @@ -15258,26 +11368,18 @@ }, "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 }, "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" @@ -15285,34 +11387,64 @@ }, "typical": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true } } }, "commander": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "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 }, + "concat-stream": { + "version": "1.6.2", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "dev": true + }, + "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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "concurrently": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.0.1.tgz", - "integrity": "sha512-Sh8bGQMEL0TAmAm2meAXMjcASHZa7V0xXQVDBLknCPa9TPtkY9yYs+0cnGGgfdkW0SV1Mlg+hVGfXcoI8d3MJA==", "dev": true, "requires": { "chalk": "^4.1.2", @@ -15328,72 +11460,26 @@ }, "confusing-browser-globals": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, - "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" - } + "console-browserify": { + "version": "1.2.0", + "dev": true }, - "content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + "constants-browserify": { + "version": "1.0.0", + "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 }, - "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": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "core-js-pure": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.2.tgz", - "integrity": "sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg==" - }, "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, - "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" - } + "dev": true }, "cosmiconfig": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "requires": { "@types/parse-json": "^4.0.0", @@ -15405,16 +11491,12 @@ "dependencies": { "yaml": { "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true } } }, "coveralls": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.1.tgz", - "integrity": "sha512-+dxnG2NHncSD1NrqbSM3dn/lE57O6Qf/koe9+I7c+wzkqRmEvcp0kgJdxKInzYzkICKkFMZsX3Vct3++tsF9ww==", "dev": true, "requires": { "js-yaml": "^3.13.1", @@ -15424,15 +11506,22 @@ "request": "^2.88.2" } }, - "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", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "dev": true + } + } }, "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", @@ -15443,8 +11532,6 @@ }, "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", @@ -15456,22 +11543,10 @@ }, "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-fetch": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.6.tgz", - "integrity": "sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g==", - "requires": { - "node-fetch": "^2.6.11" - } - }, "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", @@ -15479,42 +11554,42 @@ "which": "^2.0.1" } }, - "crypto-js": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.3.0.tgz", - "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==" - }, - "csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "crypto-browserify": { + "version": "3.12.0", + "dev": true, "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "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" } }, + "crypto-js": { + "version": "3.3.0" + }, + "dash-ast": { + "version": "1.0.0", + "dev": true + }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, "requires": { "assert-plus": "^1.0.0" } }, "data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==" + "version": "4.0.1" }, "date-fns": { "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", "dev": true, "requires": { "@babel/runtime": "^7.21.0" @@ -15522,8 +11597,6 @@ }, "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" @@ -15531,34 +11604,10 @@ }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true }, - "decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" - } - } - }, "deep-eql": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, "requires": { "type-detect": "^4.0.0" @@ -15566,20 +11615,14 @@ }, "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 }, "default-browser": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", - "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", "dev": true, "requires": { "bundle-name": "^3.0.0", @@ -15590,8 +11633,6 @@ }, "default-browser-id": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", - "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", "dev": true, "requires": { "bplist-parser": "^0.2.0", @@ -15600,72 +11641,79 @@ }, "default-require-extensions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", - "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", "dev": true, "requires": { "strip-bom": "^4.0.0" } }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" - }, - "deferred-leveldown": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-4.0.2.tgz", - "integrity": "sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww==", - "requires": { - "abstract-leveldown": "~5.0.0", - "inherits": "^2.0.3" - } - }, "define-lazy-prop": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "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" } }, + "defined": { + "version": "1.0.1", + "dev": true + }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + "dev": true }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + "deps-sort": { + "version": "2.0.1", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "shasum-object": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + } }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + "des.js": { + "version": "1.1.0", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } }, - "detect-node": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", - "integrity": "sha512-64uDTOK+fKEa6XoSbkkDoeAX8Ep1XhwxwZtL1aw1En5p5UOK/ekJoFqd5BB1o+uOvF1iHVv6qDUxdOQ/VgWEQg==" + "detective": { + "version": "5.2.1", + "dev": true, + "requires": { + "acorn-node": "^1.8.2", + "defined": "^1.0.0", + "minimist": "^1.2.6" + } }, "diff": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, + "diffie-hellman": { + "version": "5.0.3", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "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" @@ -15673,54 +11721,74 @@ }, "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" } }, - "dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + "domain-browser": { + "version": "1.2.0", + "dev": true }, "dotenv": { "version": "16.0.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", - "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", "dev": true }, + "duplexer2": { + "version": "0.1.4", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "dev": true + }, + "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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "eastasianwidth": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true }, "ecc-jsbn": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, "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": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, "electron-to-chromium": { "version": "1.4.397", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.397.tgz", - "integrity": "sha512-jwnPxhh350Q/aMatQia31KAIQdhEsYS0fFZ0BQQlN9tfvOEwShu6ZNwI4kL/xBabjcB/nTy6lSt17kNIluJZ8Q==", "dev": true }, "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", @@ -15732,83 +11800,24 @@ }, "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==" + "version": "4.12.0" } } }, "emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "encoding-down": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-5.0.4.tgz", - "integrity": "sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw==", - "requires": { - "abstract-leveldown": "^5.0.0", - "inherits": "^2.0.3", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0", - "xtend": "^4.0.1" - } - }, - "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" - } - }, "enhanced-resolve": { "version": "5.14.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz", - "integrity": "sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==", "dev": true, "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "requires": { - "prr": "~1.0.1" - } - }, "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" @@ -15816,8 +11825,7 @@ }, "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", @@ -15855,15 +11863,9 @@ "which-typed-array": "^1.1.9" } }, - "es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" - }, "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", @@ -15872,8 +11874,6 @@ }, "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" @@ -15881,75 +11881,27 @@ }, "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" } }, - "es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - } - }, "es6-error": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "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" - } - }, "escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, "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": { "version": "8.41.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz", - "integrity": "sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", @@ -15995,8 +11947,6 @@ "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", @@ -16007,14 +11957,10 @@ }, "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 }, "eslint-scope": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -16023,14 +11969,10 @@ }, "estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": 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, "requires": { "argparse": "^2.0.1" @@ -16038,23 +11980,17 @@ }, "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": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", - "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", "dev": true, "requires": {} }, "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", @@ -16064,8 +12000,6 @@ "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" @@ -16075,8 +12009,6 @@ }, "eslint-import-resolver-typescript": { "version": "3.5.5", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz", - "integrity": "sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==", "dev": true, "requires": { "debug": "^4.3.4", @@ -16091,8 +12023,6 @@ "dependencies": { "globby": { "version": "13.1.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", - "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", "dev": true, "requires": { "dir-glob": "^3.0.1", @@ -16104,16 +12034,12 @@ }, "slash": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true } } }, "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" @@ -16121,8 +12047,6 @@ "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" @@ -16132,8 +12056,6 @@ }, "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", @@ -16155,8 +12077,6 @@ "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" @@ -16164,8 +12084,6 @@ }, "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" @@ -16173,25 +12091,12 @@ }, "semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, - "eslint-plugin-jest": { - "version": "27.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.1.tgz", - "integrity": "sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==", - "dev": true, - "requires": { - "@typescript-eslint/utils": "^5.10.0" - } - }, "eslint-plugin-prettier": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", "dev": true, "requires": { "prettier-linter-helpers": "^1.0.0" @@ -16199,8 +12104,6 @@ }, "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", @@ -16209,14 +12112,10 @@ }, "eslint-visitor-keys": { "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true }, "espree": { "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", "dev": true, "requires": { "acorn": "^8.8.0", @@ -16226,388 +12125,70 @@ }, "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 - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" - }, - "eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==", - "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": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==" - } - } - }, - "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" - }, - "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==" - }, - "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==" - }, - "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" - } - } - } - }, - "ethashjs": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ethashjs/-/ethashjs-0.0.8.tgz", - "integrity": "sha512-/MSbf/r2/Ld8o0l15AymjOTlPqpN8Cr4ByUEA9GtR4x0yAh3TdtDzEg29zMjXCNPI7u6E5fOQdj/Cf9Tc7oVNw==", - "requires": { - "async": "^2.1.2", - "buffer-xor": "^2.0.1", - "ethereumjs-util": "^7.0.2", - "miller-rabin": "^4.0.0" - }, - "dependencies": { - "buffer-xor": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", - "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", - "requires": { - "safe-buffer": "^5.1.1" - } - } - } - }, - "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" - } - }, - "ethereum-types": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ethereum-types/-/ethereum-types-3.7.1.tgz", - "integrity": "sha512-EBQwTGnGZQ9oHK7Za3DFEOxiElksRCoZECkk418vHiE2d59lLSejDZ1hzRVphtFjAu5YqONz4/XuAYdMBg+gWA==", - "requires": { - "@types/node": "12.12.54", - "bignumber.js": "~9.0.2" - }, - "dependencies": { - "@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - } - } - }, - "ethereumjs-abi": { - "version": "git+ssh://git@github.com/ProjectWyvern/ethereumjs-abi.git#3d2d89641a6ad5984929b6ca4b646452ec74f73d", - "from": "ethereumjs-abi@git+https://github.com/ProjectWyvern/ethereumjs-abi.git", - "requires": { - "bn.js": "^4.10.0", - "ethereumjs-util": "^4.3.0" - }, - "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==" - }, - "ethereumjs-util": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.1.tgz", - "integrity": "sha512-WrckOZ7uBnei4+AKimpuF1B3Fv25OmoRgmYCpGsP7u8PFxXAmAgiJSYT2kRWnt6fVIlKaQlZvuwXp7PIrmn3/w==", - "requires": { - "bn.js": "^4.8.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.0.0" - } - } - } - }, - "ethereumjs-account": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-3.0.0.tgz", - "integrity": "sha512-WP6BdscjiiPkQfF9PVfMcwx/rDvfZTjFKY0Uwc09zSQr9JfIVH87dYIJu0gNhBhpmovV4yq295fdllS925fnBA==", - "requires": { - "ethereumjs-util": "^6.0.0", - "rlp": "^2.2.1", - "safe-buffer": "^5.1.1" - }, - "dependencies": { - "@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": "*" - } - }, - "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==" - }, - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - } - } - }, - "ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "requires": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - }, - "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==" - }, - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - } - } + "dev": true }, - "ethereumjs-blockchain": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.4.tgz", - "integrity": "sha512-zCxaRMUOzzjvX78DTGiKjA+4h2/sF0OYL1QuPux0DHpyq8XiNoF5GYHtb++GUxVlMsMfZV7AVyzbtgcRdIcEPQ==", - "requires": { - "async": "^2.6.1", - "ethashjs": "~0.0.7", - "ethereumjs-block": "~2.2.2", - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.1.0", - "flow-stoplight": "^1.0.0", - "level-mem": "^3.0.1", - "lru-cache": "^5.1.1", - "rlp": "^2.2.2", - "semaphore": "^1.1.0" + "esquery": { + "version": "1.5.0", + "dev": true, + "requires": { + "estraverse": "^5.1.0" }, "dependencies": { - "@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": "*" - } - }, - "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==" - }, - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } + "estraverse": { + "version": "5.3.0", + "dev": true } } }, - "ethereumjs-blockstream": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/ethereumjs-blockstream/-/ethereumjs-blockstream-7.0.0.tgz", - "integrity": "sha512-lt3uLKDEfNHEqqnl/+W0aC7xp2y7JEsgZsJMZ958CNrYIJH9tZ7oa8npwV2M0KhGlfzmJsyJIpvV/Lvb2mh0tA==", + "esrecurse": { + "version": "4.3.0", + "dev": true, "requires": { - "immutable": "3.8.2", - "source-map-support": "0.5.6", - "uuid": "3.2.1" + "estraverse": "^5.2.0" }, "dependencies": { - "uuid": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" + "estraverse": { + "version": "5.3.0", + "dev": true } } }, - "ethereumjs-common": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", - "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==" + "estraverse": { + "version": "4.3.0", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "dev": true }, - "ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "ethereum-bloom-filters": { + "version": "1.0.10", "requires": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - }, - "dependencies": { - "@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": "*" - } - }, - "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==" - }, - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - } + "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.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", "requires": { "@types/bn.js": "^5.1.0", "bn.js": "^5.1.2", @@ -16616,61 +12197,8 @@ "rlp": "^2.2.4" } }, - "ethereumjs-vm": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-4.2.0.tgz", - "integrity": "sha512-X6qqZbsY33p5FTuZqCnQ4+lo957iUJMM6Mpa6bL4UW0dxM6WmDSHuI4j/zOp1E2TDKImBGCJA9QPfc08PaNubA==", - "requires": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "core-js-pure": "^3.0.1", - "ethereumjs-account": "^3.0.0", - "ethereumjs-block": "^2.2.2", - "ethereumjs-blockchain": "^4.0.3", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.2", - "ethereumjs-util": "^6.2.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1", - "util.promisify": "^1.0.0" - }, - "dependencies": { - "@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": "*" - } - }, - "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==" - }, - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - } - } - }, "ethers": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", "requires": { "@ethersproject/abi": "5.7.0", "@ethersproject/abstract-provider": "5.7.0", @@ -16706,38 +12234,27 @@ }, "ethjs-unit": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", "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==" + "version": "4.11.6" } } }, - "ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "requires": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - } + "eventemitter2": { + "version": "6.4.9", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", + "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==" }, - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + "events": { + "version": "3.3.0", + "dev": true }, "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" @@ -16745,8 +12262,6 @@ }, "execa": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", "dev": true, "requires": { "cross-spawn": "^7.0.3", @@ -16760,145 +12275,24 @@ "strip-final-newline": "^3.0.0" } }, - "express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "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.11.0", - "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": { - "body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "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.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "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" - } - } - } - }, - "ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "requires": { - "type": "^2.7.2" - }, - "dependencies": { - "type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - } - } - }, "extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "dev": true }, "extsprintf": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" - }, - "fake-merkle-patricia-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", - "integrity": "sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==", - "requires": { - "checkpoint-store": "^1.1.0" - } + "dev": true }, "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.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, "fast-glob": { "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -16910,8 +12304,6 @@ "dependencies": { "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" @@ -16921,55 +12313,25 @@ }, "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-safe-stringify": { + "version": "2.1.1", "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" } }, - "fbemitter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", - "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", - "requires": { - "fbjs": "^3.0.0" - } - }, - "fbjs": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", - "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", - "requires": { - "cross-fetch": "^3.1.5", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.30" - } - }, - "fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, "fetch-blob": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", "requires": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" @@ -16977,8 +12339,6 @@ }, "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" @@ -16986,52 +12346,13 @@ }, "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" } }, - "filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", - "dev": true - }, - "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" - }, - "dependencies": { - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, "find-cache-dir": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "requires": { "commondir": "^1.0.1", @@ -17041,8 +12362,6 @@ }, "find-replace": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "dev": true, "requires": { "array-back": "^3.0.1" @@ -17050,8 +12369,6 @@ }, "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", @@ -17060,14 +12377,10 @@ }, "flat": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true }, "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", @@ -17076,32 +12389,17 @@ }, "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 }, - "flow-stoplight": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/flow-stoplight/-/flow-stoplight-1.0.0.tgz", - "integrity": "sha512-rDjbZUKpN8OYhB0IE/vY/I8UWO/602IIJEU/76Tv4LvYnwHCk0BCsvz4eRr9n+FQcri7L5cyaXOo0+/Kh4HisA==" - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, "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", @@ -17110,52 +12408,20 @@ }, "forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" + "dev": true }, "formdata-polyfill": { "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", "requires": { "fetch-blob": "^3.1.2" } }, - "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": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" - }, "fromentries": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", "dev": true }, "fs-extra": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "requires": { "graceful-fs": "^4.2.0", @@ -17163,36 +12429,22 @@ "universalify": "^2.0.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": "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", @@ -17200,38 +12452,29 @@ "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==" - }, "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 }, "gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-assigned-identifiers": { + "version": "1.2.0", "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-func-name": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", "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", @@ -17241,19 +12484,15 @@ }, "get-package-type": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, "get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + "dev": true }, "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" @@ -17261,22 +12500,17 @@ }, "get-tsconfig": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.5.0.tgz", - "integrity": "sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==", "dev": true }, "getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, "requires": { "assert-plus": "^1.0.0" } }, "glob": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -17289,26 +12523,13 @@ }, "glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { "is-glob": "^4.0.3" } }, - "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" - } - }, "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" @@ -17316,16 +12537,13 @@ }, "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", @@ -17338,58 +12556,30 @@ }, "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": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", - "requires": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.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 }, "grapheme-splitter": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, "graphemer": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, "har-schema": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" + "dev": true }, "har-validator": { "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, "requires": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -17397,8 +12587,7 @@ "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", @@ -17408,60 +12597,49 @@ }, "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 } } }, "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" } }, "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", @@ -17470,8 +12648,6 @@ }, "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" @@ -17479,8 +12655,6 @@ }, "hasha": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", "dev": true, "requires": { "is-stream": "^2.0.0", @@ -17489,28 +12663,20 @@ "dependencies": { "is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, "type-fest": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true } } }, "he": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "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", @@ -17519,55 +12685,27 @@ }, "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==" - }, - "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": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==" + "htmlescape": { + "version": "1.1.1", + "dev": true }, "http-signature": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", "sshpk": "^1.7.0" } }, - "http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - } + "https-browserify": { + "version": "1.0.0", + "dev": true }, "human-signals": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true }, "husky": { @@ -17576,54 +12714,16 @@ "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", "dev": true }, - "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": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==" - } - } - }, "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 }, - "immediate": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", - "integrity": "sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg==" - }, - "immutable": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==" - }, "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", @@ -17632,20 +12732,14 @@ }, "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", @@ -17653,29 +12747,49 @@ } }, "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "version": "2.0.4" + }, + "inline-source-map": { + "version": "0.6.2", + "dev": true, + "requires": { + "source-map": "~0.5.3" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "dev": true + } + } + }, + "insert-module-globals": { + "version": "7.2.1", + "dev": true, + "requires": { + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.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" } }, - "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==", + "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -17683,8 +12797,7 @@ }, "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", @@ -17693,22 +12806,17 @@ }, "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" @@ -17716,22 +12824,22 @@ }, "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-buffer": { + "version": "1.1.6", + "dev": true + }, "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-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" @@ -17739,61 +12847,42 @@ }, "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-docker": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "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": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true }, - "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==", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, "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-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==" + "version": "1.0.0" }, "is-inside-container": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", "dev": true, "requires": { "is-docker": "^3.0.0" @@ -17801,39 +12890,30 @@ }, "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-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-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-obj": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "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" @@ -17841,38 +12921,32 @@ }, "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-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true }, "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", @@ -17883,33 +12957,25 @@ }, "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-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-wsl": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, "requires": { "is-docker": "^2.0.0" @@ -17917,52 +12983,16 @@ "dependencies": { "is-docker": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true } } }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - }, - "dependencies": { - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==" - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - } - } - }, "isomorphic-unfetch": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-4.0.2.tgz", - "integrity": "sha512-1Yd+CF/7al18/N2BDbsLBcp6RO3tucSW+jcLq24dqdX5MNbCNTw1z4BsGsp4zNmjr/Izm2cs/cEqZPp4kvWSCA==", "requires": { "node-fetch": "^3.2.0", "unfetch": "^5.0.0" @@ -17970,8 +13000,6 @@ "dependencies": { "node-fetch": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", "requires": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -17982,19 +13010,14 @@ }, "isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + "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-hook": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", "dev": true, "requires": { "append-transform": "^2.0.0" @@ -18002,8 +13025,6 @@ }, "istanbul-lib-instrument": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, "requires": { "@babel/core": "^7.7.5", @@ -18014,16 +13035,12 @@ "dependencies": { "semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "istanbul-lib-processinfo": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", - "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", "dev": true, "requires": { "archy": "^1.0.0", @@ -18036,8 +13053,6 @@ "dependencies": { "p-map": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "dev": true, "requires": { "aggregate-error": "^3.0.0" @@ -18047,8 +13062,6 @@ }, "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", @@ -18058,8 +13071,6 @@ "dependencies": { "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" @@ -18069,8 +13080,6 @@ }, "istanbul-lib-source-maps": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "requires": { "debug": "^4.1.1", @@ -18080,8 +13089,6 @@ }, "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", @@ -18094,19 +13101,14 @@ "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" }, "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + "version": "0.8.0" }, "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", @@ -18115,83 +13117,59 @@ }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + "dev": true }, "jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==" - }, "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": { "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": "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 }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + "dev": true }, "json5": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true }, "jsonc-parser": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", "dev": true }, "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" } }, - "jsonschema": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", - "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==" + "jsonparse": { + "version": "1.3.1", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } }, "jsprim": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -18201,166 +13179,26 @@ }, "keccak": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", - "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", "requires": { "node-addon-api": "^2.0.0", "node-gyp-build": "^4.2.0", "readable-stream": "^3.6.0" } }, - "keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "labeled-stream-splicer": { + "version": "2.0.2", + "dev": true, "requires": { - "json-buffer": "3.0.1" + "inherits": "^2.0.1", + "stream-splicer": "^2.0.0" } }, "lcov-parse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", - "integrity": "sha512-aprLII/vPzuQvYZnDRU78Fns9I2Ag3gi4Ipga/hxnVMCZC8DnR2nI7XBqrPoywGfxqIx/DgarGvDJZAD3YBTgQ==", "dev": true }, - "level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "requires": { - "buffer": "^5.6.0" - } - }, - "level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "requires": { - "errno": "~0.1.1" - } - }, - "level-iterator-stream": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz", - "integrity": "sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g==", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "xtend": "^4.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "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" - } - } - } - }, - "level-mem": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-3.0.1.tgz", - "integrity": "sha512-LbtfK9+3Ug1UmvvhR2DqLqXiPW1OJ5jEh0a3m9ZgAipiwpSxGj/qaVVy54RG5vAQN1nCuXqjvprCuKSCxcJHBg==", - "requires": { - "level-packager": "~4.0.0", - "memdown": "~3.0.0" - } - }, - "level-packager": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-4.0.1.tgz", - "integrity": "sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q==", - "requires": { - "encoding-down": "~5.0.0", - "levelup": "^3.0.0" - } - }, - "level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", - "requires": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==" - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", - "requires": { - "object-keys": "~0.4.0" - } - } - } - }, - "levelup": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-3.1.1.tgz", - "integrity": "sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg==", - "requires": { - "deferred-leveldown": "~4.0.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~3.0.0", - "xtend": "~4.0.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", @@ -18369,14 +13207,10 @@ }, "lilconfig": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true }, "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 }, "lint-staged": { @@ -18402,16 +13236,12 @@ "dependencies": { "chalk": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", "dev": true } } }, "listr2": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.8.tgz", - "integrity": "sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==", "dev": true, "requires": { "cli-truncate": "^2.1.0", @@ -18426,8 +13256,6 @@ "dependencies": { "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", @@ -18436,20 +13264,14 @@ }, "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 }, "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 }, "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", @@ -18459,8 +13281,6 @@ }, "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", @@ -18472,8 +13292,6 @@ }, "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" @@ -18481,42 +13299,30 @@ }, "lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "dev": true }, "lodash.camelcase": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "dev": true }, "lodash.flattendeep": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true + }, + "lodash.memoize": { + "version": "3.0.4", "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.values": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", - "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==" - }, "log-driver": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", "dev": 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", @@ -18525,8 +13331,6 @@ }, "log-update": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, "requires": { "ansi-escapes": "^4.3.0", @@ -18537,20 +13341,14 @@ "dependencies": { "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 }, "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 }, "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", @@ -18560,8 +13358,6 @@ }, "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", @@ -18571,8 +13367,6 @@ }, "wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -18582,310 +13376,63 @@ } } }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, "loupe": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", "dev": true, "requires": { "get-func-name": "^2.0.0" } - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==" - }, - "lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "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.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "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 - }, - "marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true - }, - "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": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" - }, - "memdown": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-3.0.0.tgz", - "integrity": "sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA==", - "requires": { - "abstract-leveldown": "~5.0.0", - "functional-red-black-tree": "~1.0.1", - "immediate": "~3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - }, - "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==" - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "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 - }, - "merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "requires": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - }, - "dependencies": { - "abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "requires": { - "xtend": "~4.0.0" - } - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" - }, - "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==" - }, - "deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "requires": { - "abstract-leveldown": "~2.6.0" - } - }, - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" - }, - "level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "requires": { - "errno": "~0.1.1" - } - }, - "level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", - "requires": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - } - } - }, - "levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "requires": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - } - }, - "memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", - "requires": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "requires": { - "xtend": "~4.0.0" - } - } - } - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "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==" - }, + }, + "lru-cache": { + "version": "5.1.1", + "dev": true, + "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": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" - }, - "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" - } + "version": "6.3.0", + "dev": true } } }, + "make-error": { + "version": "1.3.6", + "dev": true + }, + "marked": { + "version": "4.3.0", + "dev": true + }, + "md5.js": { + "version": "1.3.5", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "merge-stream": { + "version": "2.0.0", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "dev": true + }, "merkletreejs": { "version": "0.3.10", - "resolved": "https://registry.npmjs.org/merkletreejs/-/merkletreejs-0.3.10.tgz", - "integrity": "sha512-lin42tKfRdkW+6iE5pjtQ9BnH+1Hk3sJ5Fn9hUUSjcXRcJbSISHgPCfYvMNEXiNqZPhz/TyRPEV30qgnujsQ7A==", "requires": { "bignumber.js": "^9.0.1", "buffer-reverse": "^1.0.1", @@ -18894,15 +13441,8 @@ "web3-utils": "^1.3.4" } }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" - }, "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", @@ -18911,8 +13451,7 @@ }, "miller-rabin": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" @@ -18920,62 +13459,33 @@ "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==" + "dev": true } } }, - "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==" + "dev": true }, "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==", + "dev": true, "requires": { "mime-db": "1.52.0" } }, "mimic-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "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==" - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", - "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==" + "version": "1.0.1" }, "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==" + "version": "1.0.1" }, "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" @@ -18983,43 +13493,18 @@ }, "minimist": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" - }, - "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" - } + "dev": true }, "mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "dev": true }, - "mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", - "requires": { - "mkdirp": "*" - } + "mkdirp-classic": { + "version": "0.5.3", + "dev": true }, "mocha": { "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "dev": true, "requires": { "ansi-colors": "4.1.1", @@ -19047,14 +13532,10 @@ "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 }, "brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "requires": { "balanced-match": "^1.0.0" @@ -19062,8 +13543,6 @@ }, "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", @@ -19073,20 +13552,14 @@ }, "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 }, "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 }, "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, "requires": { "argparse": "^2.0.1" @@ -19094,8 +13567,6 @@ }, "minimatch": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -19103,14 +13574,10 @@ }, "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 }, "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", @@ -19120,8 +13587,6 @@ }, "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", @@ -19135,115 +13600,84 @@ } } }, - "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==" - }, - "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 - }, - "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==", + "module-deps": { + "version": "6.2.3", + "dev": true, "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" + "browser-resolve": "^2.0.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.2.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" }, "dependencies": { - "multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", + "isarray": { + "version": "1.0.0", + "dev": true + }, + "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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "dev": true, "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" + "safe-buffer": "~5.1.0" } } } }, - "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": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==" + "ms": { + "version": "2.1.2", + "dev": true }, "nanoid": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "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 }, "natural-compare-lite": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", "dev": 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==" + "version": "2.0.2" }, "node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" - }, - "node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", - "requires": { - "whatwg-url": "^5.0.0" - } + "version": "1.0.0" }, "node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==" + "version": "4.6.0" }, "node-preload": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", "dev": true, "requires": { "process-on-spawn": "^1.0.0" @@ -19251,25 +13685,14 @@ }, "node-releases": { "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "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": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" - }, "npm-run-path": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", "dev": true, "requires": { "path-key": "^4.0.0" @@ -19277,32 +13700,24 @@ "dependencies": { "path-key": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true } } }, "number-to-bn": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", "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==" + "version": "4.11.6" } } }, "nyc": { "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", "dev": true, "requires": { "@istanbuljs/load-nyc-config": "^1.0.0", @@ -19336,8 +13751,6 @@ "dependencies": { "cliui": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { "string-width": "^4.2.0", @@ -19347,14 +13760,10 @@ }, "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 }, "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", @@ -19363,14 +13772,10 @@ }, "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 }, "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" @@ -19378,8 +13783,6 @@ }, "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" @@ -19387,8 +13790,6 @@ }, "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" @@ -19396,8 +13797,6 @@ }, "p-map": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "dev": true, "requires": { "aggregate-error": "^3.0.0" @@ -19405,14 +13804,10 @@ }, "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 }, "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", @@ -19422,8 +13817,6 @@ }, "wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -19433,14 +13826,10 @@ }, "y18n": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yargs": { "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "requires": { "cliui": "^6.0.0", @@ -19458,8 +13847,6 @@ }, "yargs-parser": { "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -19470,28 +13857,23 @@ }, "oauth-sign": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + "dev": true }, "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", @@ -19499,22 +13881,8 @@ "object-keys": "^1.1.1" } }, - "object.getownpropertydescriptors": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz", - "integrity": "sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==", - "requires": { - "array.prototype.reduce": "^1.0.5", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.21.2", - "safe-array-concat": "^1.0.0" - } - }, "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", @@ -19522,34 +13890,15 @@ "es-abstract": "^1.20.4" } }, - "oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", - "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": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "requires": { "wrappy": "1" } }, "onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, "requires": { "mimic-fn": "^4.0.0" @@ -19557,8 +13906,6 @@ }, "open": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", - "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", "dev": true, "requires": { "default-browser": "^4.0.0", @@ -19569,8 +13916,6 @@ }, "optionator": { "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { "deep-is": "^0.1.3", @@ -19581,15 +13926,12 @@ "word-wrap": "^1.2.3" } }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" + "os-browserify": { + "version": "0.3.0", + "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" @@ -19597,8 +13939,6 @@ }, "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" @@ -19606,8 +13946,6 @@ }, "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" @@ -19615,14 +13953,10 @@ }, "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-hash": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", "dev": true, "requires": { "graceful-fs": "^4.1.15", @@ -19631,33 +13965,44 @@ "release-zalgo": "^1.0.0" } }, + "pako": { + "version": "1.0.11", + "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" } }, + "parents": { + "version": "1.0.1", + "dev": true, + "requires": { + "path-platform": "~0.11.15" + } + }, + "parse-asn1": { + "version": "5.1.6", + "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" + } + }, "parse-author": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz", - "integrity": "sha512-yx5DfvkN8JsHL2xk2Os9oTia467qnvRgey4ahSm2X8epehBLx/gWLcy5KI+Y36ful5DzGbCS6RazqZGgy1gHNw==", "dev": true, "requires": { "author-regex": "^1.0.0" } }, - "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==" - }, "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", @@ -19666,56 +14011,40 @@ "lines-and-columns": "^1.1.6" } }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + "path-browserify": { + "version": "1.0.1", + "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-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "path-platform": { + "version": "0.11.15", + "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 }, "pathval": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true }, "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", @@ -19726,31 +14055,22 @@ }, "performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + "dev": true }, "picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "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.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", "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" @@ -19758,8 +14078,6 @@ "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", @@ -19768,8 +14086,6 @@ }, "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" @@ -19777,8 +14093,6 @@ }, "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" @@ -19786,8 +14100,6 @@ }, "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" @@ -19795,27 +14107,16 @@ } } }, - "popper.js": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.3.tgz", - "integrity": "sha512-3lmujhsHXzb83+sI0PzfrE3O1XHZG8m8MXNMTupvA6LrM1/nnsiqYaacYc/RIente9VqnTDPztGEM8uvPAMGyg==" - }, "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 }, "prettier": { "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true }, "prettier-linter-helpers": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, "requires": { "fast-diff": "^1.1.2" @@ -19823,8 +14124,6 @@ }, "prettier-package-json": { "version": "2.8.0", - "resolved": "https://registry.npmjs.org/prettier-package-json/-/prettier-package-json-2.8.0.tgz", - "integrity": "sha512-WxtodH/wWavfw3MR7yK/GrS4pASEQ+iSTkdtSxPJWvqzG55ir5nvbLt9rw5AOiEcqqPCRM92WCtR1rk3TG3JSQ==", "dev": true, "requires": { "@types/parse-author": "^2.0.0", @@ -19840,141 +14139,120 @@ "dependencies": { "commander": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true } } }, "process": { "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" + "dev": true }, "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==" + "dev": true }, "process-on-spawn": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", "dev": true, "requires": { "fromentries": "^1.2.0" } }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" - } - }, - "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" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" - }, "psl": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + "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==", + "public-encrypt": { + "version": "4.0.3", + "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "dev": true + } } }, "punycode": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" + "dev": true }, "qs": { "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" + "dev": true }, - "query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", - "dev": true, - "requires": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, - "dependencies": { - "strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", - "dev": true - } - } + "querystring": { + "version": "0.2.0", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "dev": true }, "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 }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" - }, "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" } }, - "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==" + "randomfill": { + "version": "1.0.4", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } }, - "raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "read-only-stream": { + "version": "2.0.0", + "dev": true, "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "readable-stream": "^2.0.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "dev": true + }, + "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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, "readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -19983,8 +14261,6 @@ }, "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" @@ -19992,20 +14268,15 @@ }, "reduce-flatten": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", - "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", "dev": true }, "regenerator-runtime": { "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "dev": true }, "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", @@ -20014,8 +14285,6 @@ }, "release-zalgo": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", "dev": true, "requires": { "es6-error": "^4.0.1" @@ -20023,8 +14292,7 @@ }, "request": { "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -20050,8 +14318,7 @@ "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==", + "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -20060,32 +14327,20 @@ }, "uuid": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "dev": true } } }, "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==" - }, "require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "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", @@ -20093,36 +14348,12 @@ "supports-preserve-symlinks-flag": "^1.0.0" } }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, "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 }, - "responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "requires": { - "lowercase-keys": "^2.0.0" - }, - "dependencies": { - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - } - } - }, "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", @@ -20131,14 +14362,10 @@ "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 }, "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" @@ -20148,20 +14375,14 @@ }, "reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, "rfdc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", "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" @@ -20169,8 +14390,6 @@ }, "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" @@ -20178,16 +14397,12 @@ }, "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" } }, "run-applescript": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", - "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", "dev": true, "requires": { "execa": "^5.0.0" @@ -20195,8 +14410,6 @@ "dependencies": { "execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { "cross-spawn": "^7.0.3", @@ -20212,26 +14425,18 @@ }, "human-signals": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, "is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, "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 }, "npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { "path-key": "^3.0.0" @@ -20239,8 +14444,6 @@ }, "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" @@ -20248,55 +14451,30 @@ }, "strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "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" } }, - "rustbn.js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==" - }, "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-array-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", - "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", - "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", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "version": "5.2.1" }, "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", @@ -20305,33 +14483,21 @@ }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "dev": true }, "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + "version": "3.0.1" }, "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" } }, - "semaphore": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", - "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==" - }, "semver": { "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -20339,8 +14505,6 @@ "dependencies": { "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" @@ -20348,115 +14512,40 @@ }, "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true } } }, - "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": { - "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" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, "serialize-javascript": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, "requires": { "randombytes": "^2.1.0" } }, - "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" - } - }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "version": "1.0.5" }, "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" } }, + "shasum-object": { + "version": "1.0.0", + "dev": true, + "requires": { + "fast-safe-stringify": "^2.0.7" + } + }, "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" @@ -20464,20 +14553,14 @@ }, "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 }, "shiki": { "version": "0.14.2", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.2.tgz", - "integrity": "sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==", "dev": true, "requires": { "ansi-sequence-parser": "^1.1.0", @@ -20488,8 +14571,7 @@ }, "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", @@ -20498,45 +14580,18 @@ }, "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 }, "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" - }, - "dependencies": { - "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==", - "requires": { - "mimic-response": "^1.0.0" - } - } - } + "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": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, "requires": { "ansi-styles": "^6.0.0", @@ -20545,48 +14600,28 @@ "dependencies": { "ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true } } }, "sort-object-keys": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz", - "integrity": "sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==", "dev": true }, "sort-order": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sort-order/-/sort-order-1.0.1.tgz", - "integrity": "sha512-BiExT7C1IVF4DNd5dttR/dEq3wunGOHpy4phvqFUQA1pY6j2ye8WWEAV8LhRbfdF0EWDX12FfyPPf9P71eT+cA==", "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==" - }, - "source-map-support": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", - "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } + "dev": true }, "spawn-command": { "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", "dev": true }, "spawn-wrap": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", "dev": true, "requires": { "foreground-child": "^2.0.0", @@ -20597,22 +14632,13 @@ "which": "^2.0.1" } }, - "split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "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 }, "sshpk": { "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -20625,40 +14651,116 @@ "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==" + "stream-browserify": { + "version": "3.0.0", + "dev": true, + "requires": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==" + "stream-combiner2": { + "version": "1.1.1", + "dev": true, + "requires": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "dev": true + }, + "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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-http": { + "version": "3.2.0", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "stream-splicer": { + "version": "2.0.1", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "dev": true + }, + "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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "dev": true, + "requires": { + "safe-buffer": "~5.1.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==", "requires": { "safe-buffer": "~5.2.0" } }, "string-argv": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", "dev": true }, "string-format": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", - "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", "dev": true }, "string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "requires": { "eastasianwidth": "^0.2.0", @@ -20668,14 +14770,10 @@ "dependencies": { "ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true }, "strip-ansi": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, "requires": { "ansi-regex": "^6.0.1" @@ -20685,8 +14783,7 @@ }, "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", @@ -20695,8 +14792,7 @@ }, "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", @@ -20705,8 +14801,7 @@ }, "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", @@ -20715,8 +14810,6 @@ }, "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" @@ -20724,34 +14817,31 @@ }, "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-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true }, "strip-hex-prefix": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", "requires": { "is-hex-prefixed": "1.0.0" } }, "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 }, + "subarg": { + "version": "1.0.0", + "dev": true, + "requires": { + "minimist": "^1.1.0" + } + }, "supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -20759,117 +14849,25 @@ }, "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 - }, - "swarm-js": { - "version": "0.1.42", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", - "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^11.8.5", - "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": { - "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "requires": { - "defer-to-connect": "^2.0.0" - } - }, - "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" - }, - "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" - } - }, - "got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - } - }, - "http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - }, - "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - } - } + "dev": true }, "synckit": { "version": "0.8.5", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", - "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", "dev": true, "requires": { "@pkgr/utils": "^2.3.1", "tslib": "^2.5.0" } }, + "syntax-error": { + "version": "1.4.0", + "dev": true, + "requires": { + "acorn-node": "^1.2.0" + } + }, "table-layout": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", - "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", "dev": true, "requires": { "array-back": "^4.0.1", @@ -20880,52 +14878,20 @@ "dependencies": { "array-back": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true }, "typical": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true } } }, "tapable": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, - "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" - }, - "dependencies": { - "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" - } - } - } - }, "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", @@ -20935,76 +14901,89 @@ }, "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 }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==" + "through2": { + "version": "2.0.5", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "dev": true + }, + "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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "timers-browserify": { + "version": "1.4.2", + "dev": true, + "requires": { + "process": "~0.11.0" + } }, "titleize": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", - "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", "dev": true }, "to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "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" - } - }, - "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==", + "dev": true, "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": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, "tree-kill": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true }, "treeify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", - "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==" + "version": "1.1.0" }, "ts-command-line-args": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.0.tgz", - "integrity": "sha512-Ff7Xt04WWCjj/cmPO9eWTJX3qpBZWuPWyQYG1vnxJao+alWWYjwJBc5aYz3h5p5dE08A6AnpkgiCtP/0KXXBYw==", "dev": true, "requires": { "@morgan-stanley/ts-mocking-bird": "^0.6.2", @@ -21016,15 +14995,11 @@ }, "ts-essentials": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", - "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", "dev": 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, "requires": { "@cspotcode/source-map-support": "^0.8.0", @@ -21044,16 +15019,12 @@ "dependencies": { "diff": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true } } }, "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", @@ -21064,8 +15035,6 @@ "dependencies": { "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" @@ -21073,22 +15042,16 @@ }, "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.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "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" @@ -21096,34 +15059,27 @@ "dependencies": { "tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, + "tty-browserify": { + "version": "0.0.1", + "dev": true + }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, "requires": { "safe-buffer": "^5.0.1" } }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + "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" @@ -21131,29 +15087,14 @@ }, "type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, "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 }, - "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" - } - }, "typechain": { "version": "8.2.0", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.2.0.tgz", - "integrity": "sha512-tZqhqjxJ9xAS/Lh32jccTjMkpx7sTdUVVHAy5Bf0TIer5QFNYXotiX74oCvoVYjyxUKDK3MXHtMFzMyD3kE+jg==", "dev": true, "requires": { "@types/prettier": "^2.1.1", @@ -21170,8 +15111,6 @@ "dependencies": { "fs-extra": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -21181,8 +15120,6 @@ }, "glob": { "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -21195,8 +15132,6 @@ }, "jsonfile": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, "requires": { "graceful-fs": "^4.1.6" @@ -21204,34 +15139,32 @@ }, "universalify": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "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": { + "version": "0.0.6", + "dev": true + }, "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" } }, "typedoc": { "version": "0.24.7", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.24.7.tgz", - "integrity": "sha512-zzfKDFIZADA+XRIp2rMzLe9xZ6pt12yQOhCr7cD7/PBTjhPmMyMvGrkZ2lPNJitg3Hj1SeiYFNzCsSDrlpxpKw==", "dev": true, "requires": { "lunr": "^2.3.9", @@ -21242,8 +15175,6 @@ "dependencies": { "brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "requires": { "balanced-match": "^1.0.0" @@ -21251,8 +15182,6 @@ }, "minimatch": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -21260,68 +15189,21 @@ } } }, - "types-bn": { - "version": "git+ssh://git@github.com/machinomy/types-bn.git#08ede69e138640d332b0dae0dc2e2fffee5f7160", - "dev": true, - "from": "types-bn@^0.0.1", - "requires": { - "bn.js": "4.11.7" - }, - "dependencies": { - "bn.js": { - "version": "4.11.7", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "integrity": "sha512-LxFiV5mefv0ley0SzqkOPR1bC4EbpPx8LkOz5vMe/Yi15t5hzwgO/G+tc7wOtL4PZTYjwHu8JnEiSLumuSjSfA==", - "dev": true - } - } - }, - "types-ethereumjs-util": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/types-ethereumjs-util/-/types-ethereumjs-util-0.0.8.tgz", - "integrity": "sha512-S+I6Bu7Xs7jHYMcRrjw7y903pJIscLRrzDiB6PfhSzGMeoTX8DnOkFSk71/o6OoQNRuy87URNrm2M9gcWozh+g==", - "dev": true, - "requires": { - "@machinomy/types-safe-buffer": "^0.0.1", - "bn.js": "^4.11.7", - "rlp": "^2.0.0", - "types-bn": "https://github.com/machinomy/types-bn.git" - }, - "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==", - "dev": true - } - } - }, "typescript": { "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true }, "typical": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", "dev": true }, - "ua-parser-js": { - "version": "0.7.35", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", - "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==" - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + "umd": { + "version": "3.0.3", + "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", @@ -21329,32 +15211,30 @@ "which-boxed-primitive": "^1.0.2" } }, + "undeclared-identifiers": { + "version": "1.1.3", + "dev": true, + "requires": { + "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + } + }, "unfetch": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-5.0.0.tgz", - "integrity": "sha512-3xM2c89siXg0nHvlmYsQ2zkLASvVMBisZm5lF3gFDqfF2xonNStDJyMpvaOBe0a1Edxmqrf2E0HBdmy9QyZaeg==" + "version": "5.0.0" }, "universalify": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" - }, "untildify": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true }, "update-browserslist-db": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -21363,34 +15243,39 @@ }, "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-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==" + "url": { + "version": "0.11.0", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "dev": true + } + } }, "utf-8-validate": { "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "optional": true, + "peer": true, "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==" + "version": "3.0.0" }, "util": { "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, "requires": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", @@ -21400,366 +15285,42 @@ } }, "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "util.promisify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.2.tgz", - "integrity": "sha512-PBdZ03m1kBnQ5cjjO0ZvJMJS+QsbyIcFwi4hY4U76OQsCO9JrOYjbCFgIF76ccFg9xnJo7ZHPkqyj1GqmdS7MA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "object.getownpropertydescriptors": "^2.1.6", - "safe-array-concat": "^1.0.0" - } - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + "version": "1.0.2" }, "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-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 }, - "valid-url": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", - "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==" - }, - "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": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" - }, "verror": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, + "vm-browserify": { + "version": "1.1.2", + "dev": true + }, "vscode-oniguruma": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", "dev": true }, "vscode-textmate": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", "dev": true }, "web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==" - }, - "web3": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", - "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", - "requires": { - "web3-bzz": "1.10.0", - "web3-core": "1.10.0", - "web3-eth": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-shh": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-bzz": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", - "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", - "requires": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - }, - "dependencies": { - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - } - } - }, - "web3-core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", - "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", - "requires": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-requestmanager": "1.10.0", - "web3-utils": "1.10.0" - }, - "dependencies": { - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - } - } - }, - "web3-core-helpers": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.0.tgz", - "integrity": "sha512-pIxAzFDS5vnbXvfvLSpaA1tfRykAe9adw43YCKsEYQwH0gCLL0kMLkaCX3q+Q8EVmAh+e1jWL/nl9U0de1+++g==", - "requires": { - "web3-eth-iban": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-core-method": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", - "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", - "requires": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-core-promievent": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.0.tgz", - "integrity": "sha512-68N7k5LWL5R38xRaKFrTFT2pm2jBNFaM4GioS00YjAKXRQ3KjmhijOMG3TICz6Aa5+6GDWYelDNx21YAeZ4YTg==", - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-core-requestmanager": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", - "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", - "requires": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.0", - "web3-providers-http": "1.10.0", - "web3-providers-ipc": "1.10.0", - "web3-providers-ws": "1.10.0" - } - }, - "web3-core-subscriptions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", - "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0" - } - }, - "web3-eth": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", - "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", - "requires": { - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-accounts": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-eth-ens": "1.10.0", - "web3-eth-iban": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-eth-abi": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.0.tgz", - "integrity": "sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg==", - "requires": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.0" - } - }, - "web3-eth-accounts": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", - "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", - "requires": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, - "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==" - }, - "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": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" - } - } - }, - "web3-eth-contract": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", - "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", - "requires": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-eth-ens": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", - "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-eth-iban": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.0.tgz", - "integrity": "sha512-0l+SP3IGhInw7Q20LY3IVafYEuufo4Dn75jAHT7c2aDJsIolvf2Lc6ugHkBajlwUneGfbRQs/ccYPQ9JeMUbrg==", - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.0" - } - }, - "web3-eth-personal": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", - "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - }, - "dependencies": { - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - } - } - }, - "web3-net": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", - "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", - "requires": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - } - }, - "web3-providers-http": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", - "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", - "requires": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.0" - } - }, - "web3-providers-ipc": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", - "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.0" - } - }, - "web3-providers-ws": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", - "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0", - "websocket": "^1.0.32" - } - }, - "web3-shh": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", - "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", - "requires": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-net": "1.10.0" - } + "version": "3.2.1" }, "web3-utils": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", "requires": { "bn.js": "^5.2.1", "ethereum-bloom-filters": "^1.0.6", @@ -21770,57 +15331,13 @@ "utf8": "3.0.0" } }, - "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==" - }, - "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" - }, - "dependencies": { - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } + "webextension-polyfill": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz", + "integrity": "sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==" }, "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" @@ -21828,8 +15345,7 @@ }, "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", @@ -21840,14 +15356,11 @@ }, "which-module": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "dev": true }, "which-typed-array": { "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -21859,14 +15372,10 @@ }, "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 }, "wordwrapjs": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", - "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", "dev": true, "requires": { "reduce-flatten": "^2.0.0", @@ -21875,22 +15384,16 @@ "dependencies": { "typical": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true } } }, "workerpool": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", "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", @@ -21900,20 +15403,14 @@ "dependencies": { "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 }, "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 }, "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", @@ -21925,13 +15422,10 @@ }, "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", @@ -21942,177 +15436,26 @@ }, "ws": { "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "requires": {} }, - "wyvern-js": { - "version": "git+ssh://git@github.com/ProjectOpenSea/wyvern-js.git#7429b1f2dd123f012cae1f3144a069e91ecd0682", - "integrity": "sha512-QI9U9j44pxCbgQB1OniOEqqxz+XdE3Wd8d9jxpoUibQgSIHBlANE1UPy+/LBUWFyUdWJsZfLUCvlpz4/0lcnog==", - "from": "wyvern-js@git+https://github.com/ProjectOpenSea/wyvern-js.git#7429b1f2dd123f012cae1f3144a069e91ecd0682", - "requires": { - "@0x/assert": "3.0.31", - "@0x/base-contract": "6.4.2", - "@0x/json-schemas": "6.4.1", - "@0x/utils": "https://github.com/ProjectOpensea/0x-tools/raw/provider-patch/utils/0x-utils-6.5.0.tgz", - "@0x/web3-wrapper": "7.6.0", - "bn.js": "^4.11.8", - "ethereumjs-abi": "https://github.com/ProjectWyvern/ethereumjs-abi.git", - "ethereumjs-util": "^5.1.3", - "ethers": "^4.0.49", - "json-loader": "^0.5.7", - "jsonschema": "^1.2.2", - "lodash": "^4.17.21", - "web3": "^1.7.0" - }, - "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==" - }, - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "requires": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==" - }, - "scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" - }, - "setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==" - } - } - }, - "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" - }, - "dependencies": { - "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" - } - } - } - }, - "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" - } - }, - "xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==" - }, "xtend": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "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 }, - "yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==" - }, "yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "dev": true }, "yaml": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", - "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", "dev": true }, "yargs": { "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "requires": { "cliui": "^8.0.1", @@ -22126,20 +15469,14 @@ "dependencies": { "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 }, "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 }, "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", @@ -22149,22 +15486,16 @@ }, "yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true } } }, "yargs-parser": { "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true }, "yargs-unparser": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, "requires": { "camelcase": "^6.0.0", @@ -22175,28 +15506,20 @@ "dependencies": { "camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true }, "decamelize": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "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/package.json b/package.json index 29b95f045..1040216f1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "opensea-js", - "version": "5.0.3", + "version": "6.0.0", "description": "JavaScript SDK for the OpenSea marketplace helps developers build new experiences using NFTs and our marketplace data!", "license": "MIT", "author": "OpenSea Developers", @@ -18,48 +18,38 @@ "src" ], "scripts": { - "abi-type-gen": "yarn run typechain --target=web3-v1 src/abi/*.json --out-dir=src/typechain/contracts", - "build": "yarn abi-type-gen && tsc -p tsconfig.build.json", + "postinstall": "husky install", + "prepare": "npm run build", + "build": "npm run abi-type-gen && tsc -p tsconfig.build.json && npm run bundle", + "bundle": "browserify lib/index.js -o lib/bundle.js", + "abi-type-gen": "typechain --target=ethers-v5 src/abi/*.json --out-dir=src/typechain/contracts", "check-types": "tsc --noEmit --project tsconfig.json", "coverage-report": "nyc report --reporter=text-lcov | coveralls", "docs-build": "typedoc --out docs src/index.ts", + "lint": "concurrently \"npm run check-types\" \"npm run prettier:check\" \"npm run eslint:check\"", "eslint:check": "eslint . --max-warnings 0 --ext .js,.ts", - "eslint:fix": "eslint . --fix --max-warnings 0 --ext .js,.ts", - "integration_tests": "TS_NODE_COMPILER_OPTIONS='{\"module\":\"commonjs\"}' TS_NODE_TRANSPILE_ONLY=true nyc mocha -r ts-node/register -r dotenv/config src/__integration_tests__/**/*.ts --timeout 15000", - "lint:check": "concurrently \"yarn check-types\" \"yarn prettier:check\" \"yarn eslint:check\"", - "prepare": "husky install && npm run build", + "eslint:fix": "npm run eslint:check -- --fix", "prettier:check": "prettier --check .", - "prettier:check:package.json": "yarn prettier-package-json --list-different", + "prettier:check:package.json": "prettier-package-json --list-different", "prettier:fix": "prettier --write .", - "test": "TS_NODE_COMPILER_OPTIONS='{\"module\":\"commonjs\"}' TS_NODE_TRANSPILE_ONLY=true nyc mocha -r ts-node/register src/__tests__/**/*.ts --timeout 15000" + "test": "TS_NODE_COMPILER_OPTIONS='{\"module\":\"commonjs\"}' TS_NODE_TRANSPILE_ONLY=true nyc mocha -r ts-node/register test/**/*.spec.ts --exclude test/integration/**/*.ts --timeout 15000", + "test:integration": "TS_NODE_COMPILER_OPTIONS='{\"module\":\"commonjs\"}' TS_NODE_TRANSPILE_ONLY=true nyc mocha -r ts-node/register -r dotenv/config test/integration/**/*.spec.ts --timeout 15000" }, "types": "lib/index.d.ts", "dependencies": { - "@opensea/seaport-js": "^1.2.1", - "ajv": "8.11.0", - "axios": "^1.3.4", - "bignumber.js": "9.0.2", - "ethereumjs-abi": "git+https://github.com/ProjectWyvern/ethereumjs-abi.git", - "ethereumjs-util": "^7.0.0", - "ethers": "^5.6.6", - "fbemitter": "^3.0.0", - "isomorphic-unfetch": "^4.0.0", - "lodash": "^4.17.21", - "safe-buffer": "^5.2.1", - "web3": "^1.8.1", - "wyvern-js": "git+https://github.com/ProjectOpenSea/wyvern-js.git#7429b1f2dd123f012cae1f3144a069e91ecd0682" + "@opensea/seaport-js": "^2.0.0", + "ethers": "^5.7.2", + "isomorphic-unfetch": "^4.0.2" }, "devDependencies": { - "@typechain/web3-v1": "^6.0.0", + "@typechain/ethers-v5": "^11.0.0", "@types/chai": "4.3.5", "@types/chai-as-promised": "^7.1.5", - "@types/fbemitter": "^2.0.32", - "@types/lodash": "^4.14.178", "@types/mocha": "^10.0.0", "@types/node": "^18.0.0", - "@types/query-string": "^6.1.0", "@typescript-eslint/eslint-plugin": "^5.7.0", "@typescript-eslint/parser": "^5.7.0", + "browserify": "^17.0.0", "chai": "4.3.7", "chai-as-promised": "^7.1.1", "concurrently": "8.0.1", @@ -70,11 +60,9 @@ "eslint-config-prettier": "^8.3.0", "eslint-import-resolver-typescript": "^3.0.0", "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^27.0.0", "eslint-plugin-prettier": "^4.0.0", - "ethereum-types": "^3.7.1", - "husky": "8.0.3", - "lint-staged": "13.2.2", + "husky": "^8.0.3", + "lint-staged": "^13.2.2", "mocha": "^10.0.0", "nyc": "^15.1.0", "prettier": "2.8.8", @@ -82,8 +70,6 @@ "ts-node": "10.9.1", "typechain": "^8.0.0", "typedoc": "^0.24.0", - "types-bn": "^0.0.1", - "types-ethereumjs-util": "0.0.8", "typescript": "5.0.4" }, "keywords": [ @@ -116,8 +102,7 @@ "nyc": { "exclude": [ "src/utils/tokens/**/*.ts", - "src/utils/schemas/**/*.ts", - "src/__tests__/**/*" + "src/typechain" ] } } diff --git a/src/__integration_tests__/README.md b/src/__integration_tests__/README.md deleted file mode 100644 index 96ccbdfa6..000000000 --- a/src/__integration_tests__/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# Integration Tests - -These tests were built to test the order posting functionality of the SDK. Signing and posting order requires a bit more setup than the other tests, so we detail that here. - -### Environment variables: - -Environment variables for integration tests are set using `.env`. This file is not in the source code for the repository so you will need to create a file with the following fields: - -``` -API_KEY = "" # OpenSea API Key -WALLET_PRIV_KEY = "" -ALCHEMY_API_KEY = "" -# The following needs to be an NFT owned by the WALLET_ADDRESS -SELL_ORDER_CONTRACT_ADDRESS = "" # If not set, postSellOrder test will fail -SELL_ORDER_TOKEN_ID = "" # If not set, postSellOrder test will fail -``` - -Optional: - -``` -OFFER_AMOUNT = "" # Defaults to 0.004 -LISTING_AMOUNT = "" # Defaults to 40 - -### How to run: - -``` - -npm run integration_tests - -``` - -``` diff --git a/src/__integration_tests__/init.ts b/src/__integration_tests__/init.ts deleted file mode 100644 index 94609ef3e..000000000 --- a/src/__integration_tests__/init.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { ethers } from "ethers"; -import Web3 from "web3"; -import { Network } from "wyvern-js/lib/types"; -import { - ALCHEMY_API_KEY, - MAINNET_API_KEY, - WALLET_PRIV_KEY, -} from "../__tests__/constants"; -import { OpenSeaSDK } from "../sdk"; - -export const TOKEN_ADDRESS = process.env.SELL_ORDER_CONTRACT_ADDRESS; -export const TOKEN_ID = process.env.SELL_ORDER_TOKEN_ID; -export const LISTING_AMOUNT = process.env.LISTING_AMOUNT; - -const webProvider = new Web3.providers.HttpProvider( - `https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}` -); - -const rpcProvider = new ethers.providers.JsonRpcProvider( - `https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}` -); - -const wallet = new ethers.Wallet(WALLET_PRIV_KEY ?? "", rpcProvider); - -export const walletAddress = wallet.address; - -export const sdk = new OpenSeaSDK( - webProvider, - { - networkName: Network.Main, - apiKey: MAINNET_API_KEY, - }, - (line) => console.info(`MAINNET: ${line}`), - wallet -); diff --git a/src/__tests__/constants.ts b/src/__tests__/constants.ts deleted file mode 100644 index b55e745d1..000000000 --- a/src/__tests__/constants.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { OpenSeaAPI } from "../api"; -import { Network } from "../types"; - -export const MAINNET_API_KEY = process.env.API_KEY; -export const WALLET_PRIV_KEY = process.env.WALLET_PRIV_KEY; -export const ALCHEMY_API_KEY = process.env.ALCHEMY_API_KEY; -export const OFFER_AMOUNT = process.env.OFFER_AMOUNT; - -export const mainApi = new OpenSeaAPI( - { - apiKey: MAINNET_API_KEY, - networkName: Network.Main, - }, - console.info -); - -export const testnetApi = new OpenSeaAPI( - { - networkName: Network.Goerli, - }, - console.info -); - -export const DAPPER_ADDRESS = "0x4819352bd7fadcCFAA8A2cDA4b2825a9ec51417c"; - -export const BAYC_CONTRACT_ADDRESS = - "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d"; -export const BAYC_TOKEN_ID = "1"; -export const BAYC_TOKEN_IDS = ["1", "2", "3", "4", "5", "6", "7", "8", "9"]; -export const WETH_ADDRESS = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"; diff --git a/src/__tests__/fixtures/orders.json b/src/__tests__/fixtures/orders.json deleted file mode 100644 index 9fbd7d7a7..000000000 --- a/src/__tests__/fixtures/orders.json +++ /dev/null @@ -1,248 +0,0 @@ -[ - { - "created_date": "2019-01-29T04:04:03.258323", - "order_hash": "0x3f8d16507c4d9905815e860324d64b9c9f5933a70e59c2a07a63320459f67826", - "metadata": { - "asset": { - "id": "505", - "address": "0x16baf0de678e52367adc69fd067e5edd1d33e3bf" - }, - "schema": "ERC721" - }, - "exchange": "0x5206e78b21ce315ce284fb24cf05e0585a93b1d9", - "maker": { - "user": { "username": "alex2" }, - "profile_img_url": "https://storage.googleapis.com/opensea-static/opensea-profile/11.png", - "address": "0xe96a1b303a1eb8d04fb973eb2b291b8d591c8f72", - "config": "affiliate" - }, - "taker": { - "user": null, - "profile_img_url": "https://storage.googleapis.com/opensea-static/opensea-profile/1.png", - "address": "0x0000000000000000000000000000000000000000", - "config": "" - }, - "current_price": "10000000000000000", - "current_bounty": "100000000000000.0", - "maker_relayer_fee": "100", - "taker_relayer_fee": "250", - "maker_protocol_fee": "0", - "taker_protocol_fee": "0", - "maker_referrer_fee": "0", - "fee_recipient": { - "user": null, - "profile_img_url": "https://storage.googleapis.com/opensea-static/opensea-profile/1.png", - "address": "0x0000000000000000000000000000000000000000", - "config": "" - }, - "fee_method": 1, - "side": 1, - "sale_kind": 0, - "target": "0x16baf0de678e52367adc69fd067e5edd1d33e3bf", - "how_to_call": 0, - "calldata": "0x23b872dd000000000000000000000000e96a1b303a1eb8d04fb973eb2b291b8d591c8f72000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f9", - "replacement_pattern": "0x000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000", - "static_target": "0x0000000000000000000000000000000000000000", - "static_extradata": "0x", - "payment_token": "0xc778417e063141139fce010982780140aa0cd5ab", - "payment_token_contract": { - "address": "0xc778417e063141139fce010982780140aa0cd5ab", - "image_url": null, - "name": "Wrapped Ether", - "symbol": "WETH", - "decimals": 18, - "eth_price": "1.000000000000000" - }, - "base_price": "10000000000000000", - "extra": "0", - "listing_time": 1548734810, - "expiration_time": 0, - "salt": "83006245783548033686093530747847303952463217644495033304999143031082661844460", - "v": 28, - "r": "0x2a0b0f3b8e6705cdf7894d9f1fb547646c5502a9d1d993c308ed0310620cf660", - "s": "0x19211a9a0c3ab3bb94b840774a2f9badf637b95d90b68965a4cf3734d5eaba98", - "cancelled": false, - "finalized": false, - "marked_invalid": false, - "prefixed_hash": "0x98a07dfb9e4da7ffc0ad0fb230afc8684dc4a0ac44623eded6a4c42e1df99954" - }, - { - "exchange": "0x0000000000000000000000000000000000000000", - "maker": { "address": "0x0000000000000000000000000000000000000000" }, - "taker": { "address": "0x0000000000000000000000000000000000000000" }, - "maker_relayer_fee": "0", - "taker_relayer_fee": "0", - "maker_protocol_fee": "0", - "taker_protocol_fee": "0", - "fee_recipient": { - "address": "0x0000000000000000000000000000000000000000" - }, - "fee_method": "0", - "side": "0", - "sale_kind": "0", - "target": "0x0000000000000000000000000000000000000000", - "how_to_call": "0", - "calldata": "0x", - "replacement_pattern": "0x", - "static_target": "0x0000000000000000000000000000000000000000", - "static_extradata": "0x", - "payment_token": "0x0000000000000000000000000000000000000000", - "base_price": "0", - "extra": "0", - "listing_time": "0", - "expiration_time": "0", - "salt": "0", - "order_hash": "0x611bdaa1abb525bcc8a261575b72b1dd796cd309cfbf25783df67d88385e458a" - }, - { - "exchange": "0x3177ea64b90543b5706f6661549fd4bd8baebb1e", - "maker": { "address": "0x065abe5f01cf94d37762780695cf19b151ed5809" }, - "taker": { "address": "0x0000000000000000000000000000000000000000" }, - "maker_relayer_fee": "0", - "taker_relayer_fee": "0", - "maker_protocol_fee": "0", - "taker_protocol_fee": "0", - "fee_method": "0", - "fee_recipient": { - "address": "0x11db40014e2985c360b3f2a4ba350fbf104dc326" - }, - "side": "0", - "sale_kind": "0", - "target": "0x16baf0de678e52367adc69fd067e5edd1d33e3bf", - "how_to_call": "0", - "calldata": "0x23b872dd0000000000000000000000001111111111111111111111111111111111111111000000000000000000000000065abe5f01cf94d37762780695cf19b151ed5809000000000000000000000000000000000000000000000000000000000000006f", - "replacement_pattern": "0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "static_target": "0x0000000000000000000000000000000000000000", - "static_extradata": "0x", - "payment_token": "0xc778417e063141139fce010982780140aa0cd5ab", - "base_price": "20000000000000000", - "extra": "0", - "listing_time": "1528769775", - "expiration_time": "0", - "salt": "53846990274470578006430928947393045524278076945060732094139894196992264138607", - "order_hash": "0x9ff08c3956db7cc4fcdad563e65f280ec561dd68e84d6b212ccde09c712a9aba", - "metadata": { - "asset": { - "id": 111, - "address": "0x16baf0de678e52367adc69fd067e5edd1d33e3bf" - }, - "schema": "ERC721" - } - }, - { - "order_hash": "0x5045ff865c3b1a0ca4c99e760127b6b969979863f2d3417f4ce06b3e448d7b5a", - "metadata": { - "asset": { - "id": "8576", - "address": "0xcfbc9103362aec4ce3089f155c2da2eea1cb7602" - }, - "schema": "ERC721" - }, - "exchange": "0x7be8076f4ea4a4ad08075c2508e481d6c946d12b", - "maker": { - "user": 462, - "profile_img_url": "https://storage.googleapis.com/opensea-static/opensea-profile/30.png", - "address": "0x223edbc8166ba1b514729261ff53fb8c73ab4d79", - "config": "" - }, - "taker": { - "user": 1766, - "profile_img_url": "https://storage.googleapis.com/opensea-static/opensea-profile/1.png", - "address": "0x0000000000000000000000000000000000000000", - "config": "" - }, - "current_price": "7174257768513290", - "maker_relayer_fee": "250", - "taker_relayer_fee": "0", - "maker_protocol_fee": "0", - "taker_protocol_fee": "0", - "fee_recipient": { - "user": null, - "profile_img_url": "https://storage.googleapis.com/opensea-static/opensea-profile/28.png", - "address": "0x5b3256965e7c3cf26e11fcaf296dfc8807c01073", - "config": "" - }, - "fee_method": 1, - "side": 1, - "sale_kind": 1, - "target": "0xcfbc9103362aec4ce3089f155c2da2eea1cb7602", - "how_to_call": 0, - "calldata": "0x23b872dd000000000000000000000000223edbc8166ba1b514729261ff53fb8c73ab4d7900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002180", - "replacement_pattern": "0x000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000", - "static_target": "0x0000000000000000000000000000000000000000", - "static_extradata": "0x", - "payment_token": "0x0000000000000000000000000000000000000000", - "base_price": "8500000000000000", - "extra": "3000000000000001", - "listing_time": 1534620227, - "expiration_time": 1535829926, - "salt": "79790726582490632926414916888561832909222048588204370740711320601991661022189", - "v": 27, - "r": "0x6670e13713f0c748b7b679d1263ee444d9ae888ff8a51e86eee308b38284b56b", - "s": "0x722915ae24400e802ee8d71683629f3ef271517cabcf6b25240719680b841afe", - "cancelled": false, - "finalized": false, - "marked_invalid": false, - "prefixed_hash": "0x044665f3aca521068b7e2b4b7497c541fcbedf73f64f7fd78d45e74be3b3e6a6" - }, - { - "order_hash": "0xa1d001b2bf6db176d53cf58433eccebf35c964ab5c52d1a01870c1346a105fcd", - "metadata": { - "asset": { - "id": "764", - "address": "0xcfbc9103362aec4ce3089f155c2da2eea1cb7602" - }, - "schema": "ERC721" - }, - "exchange": "0x7be8076f4ea4a4ad08075c2508e481d6c946d12b", - "maker": { - "user": { - "username": "wanderer" - }, - "profile_img_url": "https://storage.googleapis.com/opensea-static/opensea-profile/4.png", - "address": "0x6be4a7bbb812bfa6a63126ee7b76c8a13529bdb8", - "config": "" - }, - "taker": { - "user": { - "username": "NullAddress" - }, - "profile_img_url": "https://storage.googleapis.com/opensea-static/opensea-profile/1.png", - "address": "0x0000000000000000000000000000000000000000", - "config": "" - }, - "current_price": "0.01", - "maker_relayer_fee": "0", - "taker_relayer_fee": "0", - "maker_protocol_fee": "0", - "taker_protocol_fee": "0", - "fee_recipient": { - "user": null, - "profile_img_url": "https://storage.googleapis.com/opensea-static/opensea-profile/20.png", - "address": "0x11db40014e2985c360b3f2a4ba350fbf104dc326", - "config": "" - }, - "fee_method": 0, - "side": 0, - "sale_kind": 0, - "target": "0xcfbc9103362aec4ce3089f155c2da2eea1cb7602", - "how_to_call": 0, - "calldata": "0x23b872dd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000006be4a7bbb812bfa6a63126ee7b76c8a13529bdb800000000000000000000000000000000000000000000000000000000000002fc", - "replacement_pattern": "0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "static_target": "0x0000000000000000000000000000000000000000", - "static_extradata": "0x", - "payment_token": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "base_price": "10000000000000000", - "extra": "0", - "listing_time": 1529186191, - "expiration_time": 0, - "salt": "40568100110604210101393766805325371426576667098111185846452878965970704361888", - "v": 28, - "r": "0x96ccf4bb243e5c95d9f72364c0fd8daeb036e791c9244bb8c7c9ce1b41f78692", - "s": "0x56c515bd9c3292864c1dd0b4baebd0aae8610b3fb38597a77a54228297fb9f58", - "cancelled": false, - "finalized": false, - "marked_invalid": false, - "prefixed_hash": null - } -] diff --git a/src/__tests__/support/setup.ts b/src/__tests__/support/setup.ts deleted file mode 100644 index f92674322..000000000 --- a/src/__tests__/support/setup.ts +++ /dev/null @@ -1,5 +0,0 @@ -import chai from "chai"; -import chaiAsPromised from "chai-as-promised"; - -chai.should(); -chai.use(chaiAsPromised); diff --git a/src/__tests__/utils.ts b/src/__tests__/utils.ts deleted file mode 100644 index 99eb91349..000000000 --- a/src/__tests__/utils.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { expect } from "chai"; -import { validateOrder } from "../orders/schemas"; -import { OrderV2 } from "../orders/types"; - -export const expectValidOrder = (order: OrderV2) => { - const isOrderValid = validateOrder(order); - expect( - isOrderValid, - `Order type is invalid: ${JSON.stringify(validateOrder.errors)}` - ).to.be.true; -}; diff --git a/src/abi/CanonicalWETH.ts b/src/abi/CanonicalWETH.ts deleted file mode 100644 index 2bc34d044..000000000 --- a/src/abi/CanonicalWETH.ts +++ /dev/null @@ -1,155 +0,0 @@ -import { PartialReadonlyContractAbi } from "../types"; - -export const CanonicalWETH: PartialReadonlyContractAbi = [ - { - constant: true, - inputs: [], - name: "name", - outputs: [{ name: "", type: "string" }], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: false, - inputs: [ - { name: "guy", type: "address" }, - { name: "wad", type: "uint256" }, - ], - name: "approve", - outputs: [{ name: "", type: "bool" }], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: true, - inputs: [], - name: "totalSupply", - outputs: [{ name: "", type: "uint256" }], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: false, - inputs: [ - { name: "src", type: "address" }, - { name: "dst", type: "address" }, - { name: "wad", type: "uint256" }, - ], - name: "transferFrom", - outputs: [{ name: "", type: "bool" }], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: false, - inputs: [{ name: "wad", type: "uint256" }], - name: "withdraw", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: true, - inputs: [], - name: "decimals", - outputs: [{ name: "", type: "uint8" }], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [{ name: "", type: "address" }], - name: "balanceOf", - outputs: [{ name: "", type: "uint256" }], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [], - name: "symbol", - outputs: [{ name: "", type: "string" }], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: false, - inputs: [ - { name: "dst", type: "address" }, - { name: "wad", type: "uint256" }, - ], - name: "transfer", - outputs: [{ name: "", type: "bool" }], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: false, - inputs: [], - name: "deposit", - outputs: [], - payable: true, - stateMutability: "payable", - type: "function", - }, - { - constant: true, - inputs: [ - { name: "", type: "address" }, - { name: "", type: "address" }, - ], - name: "allowance", - outputs: [{ name: "", type: "uint256" }], - payable: false, - stateMutability: "view", - type: "function", - }, - { payable: true, stateMutability: "payable", type: "fallback" }, - { - anonymous: false, - inputs: [ - { indexed: true, name: "src", type: "address" }, - { indexed: true, name: "guy", type: "address" }, - { indexed: false, name: "wad", type: "uint256" }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { indexed: true, name: "src", type: "address" }, - { indexed: true, name: "dst", type: "address" }, - { indexed: false, name: "wad", type: "uint256" }, - ], - name: "Transfer", - type: "event", - }, - { - anonymous: false, - inputs: [ - { indexed: true, name: "dst", type: "address" }, - { indexed: false, name: "wad", type: "uint256" }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { indexed: true, name: "src", type: "address" }, - { indexed: false, name: "wad", type: "uint256" }, - ], - name: "Withdrawal", - type: "event", - }, -]; diff --git a/src/abi/ERC1155Abi.json b/src/abi/ERC1155.json similarity index 100% rename from src/abi/ERC1155Abi.json rename to src/abi/ERC1155.json diff --git a/src/abi/ERC1155.ts b/src/abi/ERC1155.ts deleted file mode 100644 index 8078c735d..000000000 --- a/src/abi/ERC1155.ts +++ /dev/null @@ -1,4 +0,0 @@ -import ERC1155Abi from "./ERC1155Abi.json"; -import { PartialReadonlyContractAbi } from "../types"; - -export const ERC1155 = ERC1155Abi as PartialReadonlyContractAbi; diff --git a/src/abi/ERC20.json b/src/abi/ERC20.json new file mode 100644 index 000000000..405d6b364 --- /dev/null +++ b/src/abi/ERC20.json @@ -0,0 +1,222 @@ +[ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + } +] diff --git a/src/abi/ERC20.ts b/src/abi/ERC20.ts deleted file mode 100644 index 12381f3e3..000000000 --- a/src/abi/ERC20.ts +++ /dev/null @@ -1,139 +0,0 @@ -import { PartialReadonlyContractAbi } from "../types"; - -export const ERC20: PartialReadonlyContractAbi = [ - { - constant: true, - inputs: [], - name: "name", - outputs: [{ name: "", type: "string" }], - payable: false, - type: "function", - }, - { - constant: false, - inputs: [ - { name: "_spender", type: "address" }, - { name: "_value", type: "uint256" }, - ], - name: "approve", - outputs: [{ name: "success", type: "bool" }], - payable: false, - type: "function", - }, - { - constant: true, - inputs: [], - name: "totalSupply", - outputs: [{ name: "", type: "uint256" }], - payable: false, - type: "function", - }, - { - constant: false, - inputs: [ - { name: "_from", type: "address" }, - { name: "_to", type: "address" }, - { name: "_value", type: "uint256" }, - ], - name: "transferFrom", - outputs: [{ name: "success", type: "bool" }], - payable: false, - type: "function", - }, - { - constant: true, - inputs: [], - name: "decimals", - outputs: [{ name: "", type: "uint8" }], - payable: false, - type: "function", - }, - { - constant: true, - inputs: [], - name: "version", - outputs: [{ name: "", type: "string" }], - payable: false, - type: "function", - }, - { - constant: true, - inputs: [{ name: "_owner", type: "address" }], - name: "balanceOf", - outputs: [{ name: "balance", type: "uint256" }], - payable: false, - type: "function", - }, - { - constant: true, - inputs: [], - name: "symbol", - outputs: [{ name: "", type: "string" }], - payable: false, - type: "function", - }, - { - constant: false, - inputs: [ - { name: "_to", type: "address" }, - { name: "_value", type: "uint256" }, - ], - name: "transfer", - outputs: [{ name: "success", type: "bool" }], - payable: false, - type: "function", - }, - { - constant: false, - inputs: [ - { name: "_spender", type: "address" }, - { name: "_value", type: "uint256" }, - { name: "_extraData", type: "bytes" }, - ], - name: "approveAndCall", - outputs: [{ name: "success", type: "bool" }], - payable: false, - type: "function", - }, - { - constant: true, - inputs: [ - { name: "_owner", type: "address" }, - { name: "_spender", type: "address" }, - ], - name: "allowance", - outputs: [{ name: "remaining", type: "uint256" }], - payable: false, - type: "function", - }, - { - inputs: [ - { name: "_initialAmount", type: "uint256" }, - { name: "_tokenName", type: "string" }, - { name: "_decimalUnits", type: "uint8" }, - { name: "_tokenSymbol", type: "string" }, - ], - type: "constructor", - }, - { payable: false, type: "fallback" }, - { - anonymous: false, - inputs: [ - { indexed: true, name: "_from", type: "address" }, - { indexed: true, name: "_to", type: "address" }, - { indexed: false, name: "_value", type: "uint256" }, - ], - name: "Transfer", - type: "event", - }, - { - anonymous: false, - inputs: [ - { indexed: true, name: "_owner", type: "address" }, - { indexed: true, name: "_spender", type: "address" }, - { indexed: false, name: "_value", type: "uint256" }, - ], - name: "Approval", - type: "event", - }, -]; diff --git a/src/abi/ERC721v3Abi.json b/src/abi/ERC721.json similarity index 100% rename from src/abi/ERC721v3Abi.json rename to src/abi/ERC721.json diff --git a/src/abi/ERC721v3.ts b/src/abi/ERC721v3.ts deleted file mode 100644 index ca0e7be8b..000000000 --- a/src/abi/ERC721v3.ts +++ /dev/null @@ -1,4 +0,0 @@ -import ERC721v3Abi from "./ERC721v3Abi.json"; -import { PartialReadonlyContractAbi } from "../types"; - -export const ERC721 = ERC721v3Abi as PartialReadonlyContractAbi; diff --git a/src/abi/Proxy.ts b/src/abi/Proxy.ts deleted file mode 100644 index f805351ff..000000000 --- a/src/abi/Proxy.ts +++ /dev/null @@ -1,27 +0,0 @@ -export const proxyABI = { - constant: false, - inputs: [ - { name: "dest", type: "address" }, - { name: "howToCall", type: "uint8" }, - { name: "calldata", type: "bytes" }, - ], - name: "proxy", - outputs: [{ name: "success", type: "bool" }], - payable: false, - stateMutability: "nonpayable", - type: "function", -}; - -export const proxyAssertABI = { - constant: false, - inputs: [ - { name: "dest", type: "address" }, - { name: "howToCall", type: "uint8" }, - { name: "calldata", type: "bytes" }, - ], - name: "proxyAssert", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function", -}; diff --git a/src/abi/UniswapExchange.ts b/src/abi/UniswapExchange.ts deleted file mode 100644 index 667e0f300..000000000 --- a/src/abi/UniswapExchange.ts +++ /dev/null @@ -1,4 +0,0 @@ -import UniswapExchangeAbi from "./UniswapExchangeAbi.json"; -import { PartialReadonlyContractAbi } from "../types"; - -export const UniswapExchange = UniswapExchangeAbi as PartialReadonlyContractAbi; diff --git a/src/abi/UniswapExchangeAbi.json b/src/abi/UniswapExchangeAbi.json deleted file mode 100644 index 021dcfcf0..000000000 --- a/src/abi/UniswapExchangeAbi.json +++ /dev/null @@ -1,451 +0,0 @@ -[ - { - "name": "TokenPurchase", - "inputs": [ - { "type": "address", "name": "buyer", "indexed": true }, - { "type": "uint256", "name": "eth_sold", "indexed": true }, - { "type": "uint256", "name": "tokens_bought", "indexed": true } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "EthPurchase", - "inputs": [ - { "type": "address", "name": "buyer", "indexed": true }, - { "type": "uint256", "name": "tokens_sold", "indexed": true }, - { "type": "uint256", "name": "eth_bought", "indexed": true } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "AddLiquidity", - "inputs": [ - { "type": "address", "name": "provider", "indexed": true }, - { "type": "uint256", "name": "eth_amount", "indexed": true }, - { "type": "uint256", "name": "token_amount", "indexed": true } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RemoveLiquidity", - "inputs": [ - { "type": "address", "name": "provider", "indexed": true }, - { "type": "uint256", "name": "eth_amount", "indexed": true }, - { "type": "uint256", "name": "token_amount", "indexed": true } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "Transfer", - "inputs": [ - { "type": "address", "name": "_from", "indexed": true }, - { "type": "address", "name": "_to", "indexed": true }, - { "type": "uint256", "name": "_value", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "Approval", - "inputs": [ - { "type": "address", "name": "_owner", "indexed": true }, - { "type": "address", "name": "_spender", "indexed": true }, - { "type": "uint256", "name": "_value", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "setup", - "outputs": [], - "inputs": [{ "type": "address", "name": "token_addr" }], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "addLiquidity", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256", "name": "min_liquidity" }, - { "type": "uint256", "name": "max_tokens" }, - { "type": "uint256", "name": "deadline" } - ], - "constant": false, - "payable": true, - "type": "function" - }, - { - "name": "removeLiquidity", - "outputs": [ - { "type": "uint256", "name": "out_a" }, - { "type": "uint256", "name": "out_b" } - ], - "inputs": [ - { "type": "uint256", "name": "amount" }, - { "type": "uint256", "name": "min_eth" }, - { "type": "uint256", "name": "min_tokens" }, - { "type": "uint256", "name": "deadline" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "__default__", - "outputs": [], - "inputs": [], - "constant": false, - "payable": true, - "type": "function" - }, - { - "name": "ethToTokenSwapInput", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256", "name": "min_tokens" }, - { "type": "uint256", "name": "deadline" } - ], - "constant": false, - "payable": true, - "type": "function" - }, - { - "name": "ethToTokenTransferInput", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256", "name": "min_tokens" }, - { "type": "uint256", "name": "deadline" }, - { "type": "address", "name": "recipient" } - ], - "constant": false, - "payable": true, - "type": "function" - }, - { - "name": "ethToTokenSwapOutput", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256", "name": "tokens_bought" }, - { "type": "uint256", "name": "deadline" } - ], - "constant": false, - "payable": true, - "type": "function" - }, - { - "name": "ethToTokenTransferOutput", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256", "name": "tokens_bought" }, - { "type": "uint256", "name": "deadline" }, - { "type": "address", "name": "recipient" } - ], - "constant": false, - "payable": true, - "type": "function" - }, - { - "name": "tokenToEthSwapInput", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256", "name": "tokens_sold" }, - { "type": "uint256", "name": "min_eth" }, - { "type": "uint256", "name": "deadline" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "tokenToEthTransferInput", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256", "name": "tokens_sold" }, - { "type": "uint256", "name": "min_eth" }, - { "type": "uint256", "name": "deadline" }, - { "type": "address", "name": "recipient" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "tokenToEthSwapOutput", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256", "name": "eth_bought" }, - { "type": "uint256", "name": "max_tokens" }, - { "type": "uint256", "name": "deadline" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "tokenToEthTransferOutput", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256", "name": "eth_bought" }, - { "type": "uint256", "name": "max_tokens" }, - { "type": "uint256", "name": "deadline" }, - { "type": "address", "name": "recipient" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "tokenToTokenSwapInput", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256", "name": "tokens_sold" }, - { "type": "uint256", "name": "min_tokens_bought" }, - { "type": "uint256", "name": "min_eth_bought" }, - { "type": "uint256", "name": "deadline" }, - { "type": "address", "name": "token_addr" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "tokenToTokenTransferInput", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256", "name": "tokens_sold" }, - { "type": "uint256", "name": "min_tokens_bought" }, - { "type": "uint256", "name": "min_eth_bought" }, - { "type": "uint256", "name": "deadline" }, - { "type": "address", "name": "recipient" }, - { "type": "address", "name": "token_addr" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "tokenToTokenSwapOutput", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256", "name": "tokens_bought" }, - { "type": "uint256", "name": "max_tokens_sold" }, - { "type": "uint256", "name": "max_eth_sold" }, - { "type": "uint256", "name": "deadline" }, - { "type": "address", "name": "token_addr" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "tokenToTokenTransferOutput", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256", "name": "tokens_bought" }, - { "type": "uint256", "name": "max_tokens_sold" }, - { "type": "uint256", "name": "max_eth_sold" }, - { "type": "uint256", "name": "deadline" }, - { "type": "address", "name": "recipient" }, - { "type": "address", "name": "token_addr" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "tokenToExchangeSwapInput", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256", "name": "tokens_sold" }, - { "type": "uint256", "name": "min_tokens_bought" }, - { "type": "uint256", "name": "min_eth_bought" }, - { "type": "uint256", "name": "deadline" }, - { "type": "address", "name": "exchange_addr" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "tokenToExchangeTransferInput", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256", "name": "tokens_sold" }, - { "type": "uint256", "name": "min_tokens_bought" }, - { "type": "uint256", "name": "min_eth_bought" }, - { "type": "uint256", "name": "deadline" }, - { "type": "address", "name": "recipient" }, - { "type": "address", "name": "exchange_addr" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "tokenToExchangeSwapOutput", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256", "name": "tokens_bought" }, - { "type": "uint256", "name": "max_tokens_sold" }, - { "type": "uint256", "name": "max_eth_sold" }, - { "type": "uint256", "name": "deadline" }, - { "type": "address", "name": "exchange_addr" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "tokenToExchangeTransferOutput", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256", "name": "tokens_bought" }, - { "type": "uint256", "name": "max_tokens_sold" }, - { "type": "uint256", "name": "max_eth_sold" }, - { "type": "uint256", "name": "deadline" }, - { "type": "address", "name": "recipient" }, - { "type": "address", "name": "exchange_addr" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "getEthToTokenInputPrice", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [{ "type": "uint256", "name": "eth_sold" }], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "getEthToTokenOutputPrice", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [{ "type": "uint256", "name": "tokens_bought" }], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "getTokenToEthInputPrice", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [{ "type": "uint256", "name": "tokens_sold" }], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "getTokenToEthOutputPrice", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [{ "type": "uint256", "name": "eth_bought" }], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "tokenAddress", - "outputs": [{ "type": "address", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "factoryAddress", - "outputs": [{ "type": "address", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "balanceOf", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [{ "type": "address", "name": "_owner" }], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "transfer", - "outputs": [{ "type": "bool", "name": "out" }], - "inputs": [ - { "type": "address", "name": "_to" }, - { "type": "uint256", "name": "_value" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "transferFrom", - "outputs": [{ "type": "bool", "name": "out" }], - "inputs": [ - { "type": "address", "name": "_from" }, - { "type": "address", "name": "_to" }, - { "type": "uint256", "name": "_value" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "approve", - "outputs": [{ "type": "bool", "name": "out" }], - "inputs": [ - { "type": "address", "name": "_spender" }, - { "type": "uint256", "name": "_value" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "allowance", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "address", "name": "_owner" }, - { "type": "address", "name": "_spender" } - ], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "name", - "outputs": [{ "type": "bytes32", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "symbol", - "outputs": [{ "type": "bytes32", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "decimals", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "totalSupply", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - } -] diff --git a/src/abi/UniswapFactory.ts b/src/abi/UniswapFactory.ts deleted file mode 100644 index 2c5183546..000000000 --- a/src/abi/UniswapFactory.ts +++ /dev/null @@ -1,4 +0,0 @@ -import UniswapFactoryAbi from "./UniswapFactoryAbi.json"; -import { PartialReadonlyContractAbi } from "../types"; - -export const UniswapFactory = UniswapFactoryAbi as PartialReadonlyContractAbi; diff --git a/src/abi/UniswapFactoryAbi.json b/src/abi/UniswapFactoryAbi.json deleted file mode 100644 index cbdf5fa5c..000000000 --- a/src/abi/UniswapFactoryAbi.json +++ /dev/null @@ -1,67 +0,0 @@ -[ - { - "name": "NewExchange", - "inputs": [ - { "type": "address", "name": "token", "indexed": true }, - { "type": "address", "name": "exchange", "indexed": true } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "initializeFactory", - "outputs": [], - "inputs": [{ "type": "address", "name": "template" }], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "createExchange", - "outputs": [{ "type": "address", "name": "out" }], - "inputs": [{ "type": "address", "name": "token" }], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "getExchange", - "outputs": [{ "type": "address", "name": "out" }], - "inputs": [{ "type": "address", "name": "token" }], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "getToken", - "outputs": [{ "type": "address", "name": "out" }], - "inputs": [{ "type": "address", "name": "exchange" }], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "getTokenWithId", - "outputs": [{ "type": "address", "name": "out" }], - "inputs": [{ "type": "uint256", "name": "token_id" }], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "exchangeTemplate", - "outputs": [{ "type": "address", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "tokenCount", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - } -] diff --git a/src/abi/WrappedNFT.ts b/src/abi/WrappedNFT.ts deleted file mode 100644 index 6eab0fc41..000000000 --- a/src/abi/WrappedNFT.ts +++ /dev/null @@ -1,4 +0,0 @@ -import WrappedNFTAbi from "./WrappedNFTAbi.json"; -import { PartialReadonlyContractAbi } from "../types"; - -export const WrappedNFT = WrappedNFTAbi as PartialReadonlyContractAbi; diff --git a/src/abi/WrappedNFTAbi.json b/src/abi/WrappedNFTAbi.json deleted file mode 100644 index c786e522f..000000000 --- a/src/abi/WrappedNFTAbi.json +++ /dev/null @@ -1,331 +0,0 @@ -[ - { - "constant": false, - "inputs": [ - { "internalType": "uint256[]", "name": "_nftIds", "type": "uint256[]" }, - { - "internalType": "address[]", - "name": "_destinationAddresses", - "type": "address[]" - } - ], - "name": "burnTokensAndWithdrawNfts", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "value", "type": "uint256" } - ], - "name": "approve", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_operator", "type": "address" }, - { "internalType": "address", "name": "_from", "type": "address" }, - { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, - { "internalType": "bytes", "name": "_data", "type": "bytes" } - ], - "name": "onERC721Received", - "outputs": [{ "internalType": "bytes4", "name": "", "type": "bytes4" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "_numSlotsToCheck", - "type": "uint256" - } - ], - "name": "batchRemoveWithdrawnNFTsFromStorage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "from", "type": "address" }, - { "internalType": "address", "name": "to", "type": "address" }, - { "internalType": "uint256", "name": "value", "type": "uint256" } - ], - "name": "transferFrom", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "wyvernTokenTransferProxyAddress", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "uniswapFactoryAddress", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "addedValue", "type": "uint256" } - ], - "name": "increaseAllowance", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "owner", "type": "address" } - ], - "name": "balanceOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "name": "nftIsDepositedInContract", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256[]", "name": "_nftIds", "type": "uint256[]" } - ], - "name": "depositNftsAndMintTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "to", "type": "address" }, - { "internalType": "uint256", "name": "value", "type": "uint256" } - ], - "name": "transfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "owner", "type": "address" }, - { "internalType": "address", "name": "spender", "type": "address" } - ], - "name": "allowance", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "nftCoreAddress", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "wrappedNFTLiquidationProxyAddress", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_nftCoreAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_uniswapFactoryAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_wyvernTokenTransferProxyAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_wrappedNFTLiquidationProxyAddress", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { "payable": true, "stateMutability": "payable", "type": "fallback" }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "nftId", - "type": "uint256" - } - ], - "name": "DepositNFTAndMintToken", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "nftId", - "type": "uint256" - } - ], - "name": "BurnTokenAndWithdrawNFT", - "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" - }, - { - "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" - } -] diff --git a/src/abi/WrappedNFTFactory.ts b/src/abi/WrappedNFTFactory.ts deleted file mode 100644 index 147bb64f9..000000000 --- a/src/abi/WrappedNFTFactory.ts +++ /dev/null @@ -1,5 +0,0 @@ -import WrappedNFTFactoryAbi from "./WrappedNFTFactoryAbi.json"; -import { PartialReadonlyContractAbi } from "../types"; - -export const WrappedNFTFactory = - WrappedNFTFactoryAbi as PartialReadonlyContractAbi; diff --git a/src/abi/WrappedNFTFactoryAbi.json b/src/abi/WrappedNFTFactoryAbi.json deleted file mode 100644 index d06b288d4..000000000 --- a/src/abi/WrappedNFTFactoryAbi.json +++ /dev/null @@ -1,250 +0,0 @@ -[ - { - "constant": true, - "inputs": [], - "name": "wyvernTokenTransferProxyAddress", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "uniswapFactoryAddress", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_startIndex", "type": "uint256" }, - { "internalType": "uint256", "name": "_endIndex", "type": "uint256" }, - { - "internalType": "address", - "name": "_previousFactoryAddress", - "type": "address" - } - ], - "name": "importMappingsFromPreviousFactory", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "name": "idToNftContract", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "wrapperContractsCreated", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "wrapperContractToNftContract", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_nftContractAddress", - "type": "address" - } - ], - "name": "createWrapperContract", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOwner", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_newWyvernTokenTransferProxyAddress", - "type": "address" - } - ], - "name": "updateWyvernTokenTransferProxyAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_newWrappedNFTLiquidationProxyAddress", - "type": "address" - } - ], - "name": "updateWrappedNFTLiquidationProxyAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "nftContractToWrapperContract", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_nftContractAddress", - "type": "address" - } - ], - "name": "getWrapperContractForNFTContractAddress", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_newUniswapFactoryAddress", - "type": "address" - } - ], - "name": "updateUniswapFactoryContractAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "wrappedNFTLiquidationProxyAddress", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_uniswapFactoryAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_wyvernTokenTransferProxyAddress", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "nftContract", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "wrapperContract", - "type": "address" - } - ], - "name": "NewWrapperContractCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - } -] diff --git a/src/abi/WrappedNFTLiquidationProxy.ts b/src/abi/WrappedNFTLiquidationProxy.ts deleted file mode 100644 index 64bc30fbc..000000000 --- a/src/abi/WrappedNFTLiquidationProxy.ts +++ /dev/null @@ -1,137 +0,0 @@ -import { PartialReadonlyContractAbi } from "../types"; - -export const WrappedNFTLiquidationProxy: PartialReadonlyContractAbi = [ - { - constant: false, - inputs: [ - { name: "_operator", type: "address" }, - { name: "_from", type: "address" }, - { name: "_tokenId", type: "uint256" }, - { name: "_data", type: "bytes" }, - ], - name: "onERC721Received", - outputs: [{ name: "", type: "bytes4" }], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: false, - inputs: [ - { name: "_nftIds", type: "uint256[]" }, - { name: "_nftContractAddresses", type: "address[]" }, - { name: "_isMixedBatchOfNFTs", type: "bool" }, - ], - name: "wrapNFTs", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: true, - inputs: [], - name: "uniswapFactoryAddress", - outputs: [{ name: "", type: "address" }], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: true, - inputs: [], - name: "wrappedNFTFactoryAddress", - outputs: [{ name: "", type: "address" }], - payable: false, - stateMutability: "view", - type: "function", - }, - { - constant: false, - inputs: [ - { name: "_nftContractAddress", type: "address" }, - { name: "_numTokensToPurchase", type: "uint256" }, - ], - name: "purchaseNFTs", - outputs: [], - payable: true, - stateMutability: "payable", - type: "function", - }, - { - constant: false, - inputs: [ - { name: "_nftIds", type: "uint256[]" }, - { name: "_nftContractAddresses", type: "address[]" }, - { name: "_isMixedBatchOfNFTs", type: "bool" }, - { name: "_uniswapSlippageAllowedInBasisPoints", type: "uint256" }, - ], - name: "liquidateNFTs", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - constant: false, - inputs: [ - { name: "_nftIds", type: "uint256[]" }, - { name: "_nftContractAddresses", type: "address[]" }, - { name: "_destinationAddresses", type: "address[]" }, - { name: "_isMixedBatchOfNFTs", type: "bool" }, - ], - name: "unwrapNFTs", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { name: "_wrappedNFTFactoryAddress", type: "address" }, - { name: "_uniswapFactoryAddress", type: "address" }, - ], - payable: false, - stateMutability: "nonpayable", - type: "constructor", - }, - { payable: true, stateMutability: "payable", type: "fallback" }, - { - anonymous: false, - inputs: [ - { indexed: false, name: "numTokensMelted", type: "uint256" }, - { indexed: false, name: "nftContractAddress", type: "address" }, - { indexed: false, name: "ethReceived", type: "uint256" }, - ], - name: "LiquidateNFTs", - type: "event", - }, - { - anonymous: false, - inputs: [ - { indexed: false, name: "numTokensBought", type: "uint256" }, - { indexed: false, name: "nftContractAddress", type: "address" }, - { indexed: false, name: "ethSpent", type: "uint256" }, - ], - name: "PurchaseNFTs", - type: "event", - }, - { - anonymous: false, - inputs: [ - { indexed: false, name: "numTokensWrapped", type: "uint256" }, - { indexed: false, name: "nftContractAddress", type: "address" }, - ], - name: "WrapNFTs", - type: "event", - }, - { - anonymous: false, - inputs: [ - { indexed: false, name: "numTokensUnwrapped", type: "uint256" }, - { indexed: false, name: "nftContractAddress", type: "address" }, - ], - name: "UnwrapNFTs", - type: "event", - }, -]; diff --git a/src/api.ts b/src/api.ts index 20033c9b5..e33163989 100644 --- a/src/api.ts +++ b/src/api.ts @@ -1,6 +1,5 @@ import "isomorphic-unfetch"; import { URLSearchParams } from "url"; -import _ from "lodash"; import { API_BASE_MAINNET, API_BASE_TESTNET, API_PATH } from "./constants"; import { BuildOfferResponse, @@ -30,7 +29,7 @@ import { getPostCollectionOfferPayload, } from "./orders/utils"; import { - Network, + Chain, OpenSeaAPIConfig, OpenSeaAsset, OpenSeaAssetBundle, @@ -63,30 +62,30 @@ export class OpenSeaAPI { public logger: (arg: string) => void; private apiKey: string | undefined; - private networkName: Network; + private chain: Chain; private retryDelay = 3000; /** * Create an instance of the OpenSea API - * @param config OpenSeaAPIConfig for setting up the API, including an optional API key, network name, and base URL + * @param config OpenSeaAPIConfig for setting up the API, including an optional API key, Chain name, and base URL * @param logger Optional function for logging debug strings before and after requests are made */ constructor(config: OpenSeaAPIConfig, logger?: (arg: string) => void) { this.apiKey = config.apiKey; - this.networkName = config.networkName ?? Network.Main; + this.chain = config.chain ?? Chain.Mainnet; - switch (config.networkName) { - case Network.Goerli: - this.apiBaseUrl = config.apiBaseUrl || API_BASE_TESTNET; + switch (config.chain) { + case Chain.Goerli: + this.apiBaseUrl = config.apiBaseUrl ?? API_BASE_TESTNET; break; - case Network.Main: + case Chain.Mainnet: default: - this.apiBaseUrl = config.apiBaseUrl || API_BASE_MAINNET; + this.apiBaseUrl = config.apiBaseUrl ?? API_BASE_MAINNET; break; } // Debugging: default to nothing - this.logger = logger || ((arg: string) => arg); + this.logger = logger ?? ((arg: string) => arg); } /** @@ -100,7 +99,7 @@ export class OpenSeaAPI { ...restOptions }: Omit): Promise { const { orders } = await this.get( - getOrdersAPIPath(this.networkName, protocol, side), + getOrdersAPIPath(this.chain, protocol, side), serializeOrdersQueryOptions({ limit: 1, orderBy, @@ -130,7 +129,7 @@ export class OpenSeaAPI { } > { const response = await this.get( - getOrdersAPIPath(this.networkName, protocol, side), + getOrdersAPIPath(this.chain, protocol, side), serializeOrdersQueryOptions({ limit: this.pageSize, orderBy, @@ -159,14 +158,14 @@ export class OpenSeaAPI { fulfillerAddress, orderHash, protocolAddress, - this.networkName + this.chain ); } else { payload = getFulfillOfferPayload( fulfillerAddress, orderHash, protocolAddress, - this.networkName + this.chain ); } const response = await this.post( @@ -189,7 +188,7 @@ export class OpenSeaAPI { const { protocol = "seaport", side, protocolAddress } = apiOptions; try { response = await this.post( - getOrdersAPIPath(this.networkName, protocol, side), + getOrdersAPIPath(this.chain, protocol, side), { ...order, protocol_address: protocolAddress } ); } catch (error) { @@ -229,8 +228,6 @@ export class OpenSeaAPI { retries = 0 ): Promise { const payload = getPostCollectionOfferPayload(slug, order); - console.log("Post Order Payload"); - console.log(JSON.stringify(payload, null, 4)); try { return await this.post( getPostCollectionOfferPath(), @@ -243,30 +240,6 @@ export class OpenSeaAPI { } } - /** - * Create a whitelist entry for an asset to prevent others from buying. - * Buyers will have to have verified at least one of the emails - * on an asset in order to buy. - * This will throw a 403 if the given API key isn't allowed to create whitelist entries for this contract or asset. - * @param tokenAddress Address of the asset's contract - * @param tokenId The asset's token ID - * @param email The email allowed to buy. - */ - public async postAssetWhitelist( - tokenAddress: string, - tokenId: string | number, - email: string - ): Promise { - const json = await this.post<{ success: boolean }>( - `${API_PATH}/asset/${tokenAddress}/${tokenId}/whitelist/`, - { - email, - } - ); - - return !!json.success; - } - /** * Fetch an asset from the API, throwing if none is found * @param tokenAddress Address of the asset's contract @@ -286,7 +259,7 @@ export class OpenSeaAPI { let json; try { json = await this.get( - `${API_PATH}/asset/${tokenAddress}/${tokenId || 0}/` + `${API_PATH}/asset/${tokenAddress}/${tokenId ?? 0}/` ); } catch (error) { _throwOrContinue(error, retries); @@ -411,7 +384,6 @@ export class OpenSeaAPI { public async get(apiPath: string, query: object = {}): Promise { const qs = this.objectToSearchParams(query); const url = `${apiPath}?${qs}`; - console.log(url); const response = await this._fetch(url); return response.json(); @@ -443,20 +415,6 @@ export class OpenSeaAPI { return response.json(); } - /** - * PUT JSON data to API, sending auth token in headers - * @param apiPath Path to URL endpoint under API - * @param body Data to send - * @param opts RequestInit opts, similar to Fetch API. If it contains - * a body, it won't be stringified. - */ - public async put(apiPath: string, body: object, opts: RequestInit = {}) { - return this.post(apiPath, body, { - method: "PUT", - ...opts, - }); - } - private objectToSearchParams(params: object = {}) { const urlSearchParams = new URLSearchParams(); @@ -485,7 +443,7 @@ export class OpenSeaAPI { headers: { ...(apiKey ? { "X-API-KEY": apiKey } : {}), "x-app-id": "opensea-js", - ...(opts.headers || {}), + ...(opts.headers ?? {}), }, }; diff --git a/src/constants.ts b/src/constants.ts index 710b7ee85..954d3c800 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,69 +1,29 @@ -import BigNumber from "bignumber.js"; -import { Network } from "./types"; +import { Chain } from "./types"; -export const DEFAULT_GAS_INCREASE_FACTOR = 1.01; -export const NULL_ADDRESS = "0x0000000000000000000000000000000000000000"; -export const NULL_BLOCK_HASH = - "0x0000000000000000000000000000000000000000000000000000000000000000"; -export const OPENSEA_LEGACY_FEE_RECIPIENT = - "0x5b3256965e7c3cf26e11fcaf296dfc8807c01073"; export const INVERSE_BASIS_POINT = 10_000; // 100 basis points per 1% -export const SHARED_STOREFRONT_LAZY_MINT_ADAPTER_ADDRESS = - "0xa604060890923ff400e8c6f5290461a83aedacec"; // Same address on mainnet and Rinkeby -export const SHARED_STORE_FRONT_ADDRESS_MAINNET = - "0x495f947276749ce646f68ac8c248420045cb7b5e"; -export const SHARED_STORE_FRONT_ADDRESS_RINKEBY = - "0x88b48f654c30e99bc2e4a1559b4dcf1ad93fa656"; -export const ENJIN_COIN_ADDRESS = "0xf629cbd94d3791c9250152bd8dfbdf380e2a3b9c"; -export const MANA_ADDRESS = "0x0f5d2fb29fb7d3cfee444a200298f468908cc942"; -export const ENJIN_ADDRESS = "0xfaaFDc07907ff5120a76b34b731b278c38d6043C"; -export const CK_ADDRESS = "0x06012c8cf97bead5deae237070f9587f8e7a266d"; -export const WRAPPED_NFT_FACTORY_ADDRESS_MAINNET = - "0xf11b5815b143472b7f7c52af0bfa6c6a2c8f40e1"; -export const WRAPPED_NFT_FACTORY_ADDRESS_RINKEBY = - "0x94c71c87244b862cfd64d36af468309e4804ec09"; -export const WRAPPED_NFT_LIQUIDATION_PROXY_ADDRESS_MAINNET = - "0x995835145dd85c012f3e2d7d5561abd626658c04"; -export const WRAPPED_NFT_LIQUIDATION_PROXY_ADDRESS_RINKEBY = - "0xaa775Eb452353aB17f7cf182915667c2598D43d3"; -export const UNISWAP_FACTORY_ADDRESS_MAINNET = - "0xc0a47dFe034B400B47bDaD5FecDa2621de6c4d95"; -export const UNISWAP_FACTORY_ADDRESS_RINKEBY = - "0xf5D915570BC477f9B8D6C0E980aA81757A3AaC36"; -export const DEFAULT_WRAPPED_NFT_LIQUIDATION_UNISWAP_SLIPPAGE_IN_BASIS_POINTS = 1000; -export const MIN_EXPIRATION_MINUTES = 15; export const MAX_EXPIRATION_MONTHS = 1; -export const ORDER_MATCHING_LATENCY_SECONDS = 60 * 60 * 24 * 7; -const ORDERBOOK_VERSION = 1 as number; + +const API_VERSION = 1; export const API_BASE_MAINNET = "https://api.opensea.io"; export const API_BASE_TESTNET = "https://testnets-api.opensea.io"; -export const RPC_URL_PATH = "jsonrpc/v1/"; -export const MAINNET_PROVIDER_URL = `${API_BASE_MAINNET}/${RPC_URL_PATH}`; -export const API_PATH = `/api/v${ORDERBOOK_VERSION}`; -export const MAX_UINT_256 = new BigNumber(2).pow(256).minus(1); +export const API_PATH = `/api/v${API_VERSION}`; export const MERKLE_VALIDATOR_MAINNET = "0xbaf2127b49fc93cbca6269fade0f7f31df4c88a7"; -export const MERKLE_VALIDATOR_RINKEBY = - "0x45b594792a5cdc008d0de1c1d69faa3d16b3ddc1"; - -export const CROSS_CHAIN_DEFAULT_CONDUIT_KEY = - "0x0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000"; -const CROSS_CHAIN_DEFAULT_CONDUIT = - "0x1e0049783f008a0085193e00003d00cd54003c71"; - -export const CONDUIT_KEYS_TO_CONDUIT = { - [CROSS_CHAIN_DEFAULT_CONDUIT_KEY]: CROSS_CHAIN_DEFAULT_CONDUIT, -}; export const WETH_ADDRESS_BY_NETWORK = { - [Network.Main]: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - [Network.Rinkeby]: "0xc778417e063141139fce010982780140aa0cd5ab", - [Network.Goerli]: "0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6", + [Chain.Mainnet]: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + [Chain.Goerli]: "0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6", } as const; export const DEFAULT_ZONE_BY_NETWORK = { - [Network.Main]: "0x0000000000000000000000000000000000000000", - [Network.Rinkeby]: "0x0000000000000000000000000000000000000000", - [Network.Goerli]: "0x0000000000000000000000000000000000000000", + [Chain.Mainnet]: "0x0000000000000000000000000000000000000000", + [Chain.Goerli]: "0x0000000000000000000000000000000000000000", } as const; + +export const SHARED_STOREFRONT_ADDRESS_MAINNET = + "0x495f947276749ce646f68ac8c248420045cb7b5e"; +export const SHARED_STOREFRONT_ADDRESS_GOERLI = + "0x804159144aefb1dc17b171afcefa5b33746c722f"; +export const SHARED_STOREFRONT_LAZY_MINT_ADAPTER_CROSS_CHAIN_ADDRESS = + "0xa604060890923ff400e8c6f5290461a83aedacec"; diff --git a/src/contracts.ts b/src/contracts.ts deleted file mode 100644 index 36792f6ee..000000000 --- a/src/contracts.ts +++ /dev/null @@ -1,24 +0,0 @@ -import type { AnnotatedFunctionABI, PartialReadonlyContractAbi } from "./types"; - -export const getMethod = ( - abi: PartialReadonlyContractAbi, - name: string -): AnnotatedFunctionABI => { - const methodAbi = abi.find((x) => x.type == "function" && x.name == name); - if (!methodAbi) { - throw new Error(`ABI ${name} not found`); - } - // Have to cast since there's a bug in - // web3 types on the 'type' field - return methodAbi as AnnotatedFunctionABI; -}; - -export { ERC20 } from "./abi/ERC20"; -export { ERC721 } from "./abi/ERC721v3"; -export { ERC1155 } from "./abi/ERC1155"; -export { CanonicalWETH } from "./abi/CanonicalWETH"; -export { WrappedNFT } from "./abi/WrappedNFT"; -export { WrappedNFTFactory } from "./abi/WrappedNFTFactory"; -export { WrappedNFTLiquidationProxy } from "./abi/WrappedNFTLiquidationProxy"; -export { UniswapFactory } from "./abi/UniswapFactory"; -export { UniswapExchange } from "./abi/UniswapExchange"; diff --git a/src/global.d.ts b/src/global.d.ts deleted file mode 100644 index f8d9dcd9f..000000000 --- a/src/global.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* eslint-disable import/no-unused-modules */ -// NO IMPORTS HERE -// Should be top-level - -// Taken from wyvern and 0x -declare module "web3_beta"; -declare module "web3-provider-engine"; -declare module "web3-provider-engine/subproviders/rpc"; - -/* tslint:enable */ -declare module "*.json" { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const json: any; - /* tslint:disable */ - export default json; - /* tslint:enable */ -} - -declare module "ethereumjs-abi" { - const soliditySHA3: (argTypes: string[], args: unknown[]) => Buffer; - const methodID: (name: string, types: string[]) => Buffer; - const rawEncode: (argTypes: string[], args: unknown[]) => Buffer; - const encodeSingle: (type: string, arg: unknown) => Buffer; - const elementaryName: (name: string) => string; - const isDynamic: (type: string) => boolean; -} diff --git a/src/index.ts b/src/index.ts index 85479d8d9..dd27be52e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,18 +1,16 @@ /* eslint-disable import/no-unused-modules */ import { OpenSeaAPI } from "./api"; import { OpenSeaSDK } from "./sdk"; -import { Network, EventData, EventType } from "./types"; -export { orderToJSON, orderFromJSON } from "./utils/utils"; -export { encodeDefaultCall } from "./utils/schemas/schema"; +import { Chain, EventData, EventType } from "./types"; /** * Example setup: * - * import * as Web3 from 'web3' - * import { OpenSeaPort, Network } from 'opensea-js' - * const provider = new Web3.providers.HttpProvider('https://mainnet.infura.io') + * import { ethers } from 'ethers' + * import { OpenSeaPort, Chain } from 'opensea-js' + * const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io') * const client = new OpenSeaPort(provider, { - * networkName: Network.Main + * chain: Chain.Mainnet * }) */ @@ -26,7 +24,7 @@ export { // Useful for serializing and deserializing orders: // Types to help initialize SDK and listen to events. EventType, - Network, + Chain, }; export type { EventData }; diff --git a/src/orders/schemas.ts b/src/orders/schemas.ts deleted file mode 100644 index 1c3258acc..000000000 --- a/src/orders/schemas.ts +++ /dev/null @@ -1,80 +0,0 @@ -import Ajv, { JSONSchemaType, ValidateFunction } from "ajv"; -import { OrderFee, OrderV2 } from "./types"; -import { - accountSchema, - assetBundleSchema, - PartialAssetBundleType, -} from "../schemas"; - -const ajv = new Ajv(); - -const feeSchema: JSONSchemaType = { - type: "object", - properties: { - account: accountSchema, - basisPoints: { type: "string" }, - }, - required: ["account", "basisPoints"], -}; - -// TODO: Validate entire OrderV2 type -type PartialOrderV2Type = Omit< - OrderV2, - "makerAssetBundle" | "takerAssetBundle" | "protocolData" -> & { - makerAssetBundle: PartialAssetBundleType; - takerAssetBundle: PartialAssetBundleType; - protocolData: object; -}; - -const orderSchema: JSONSchemaType = { - type: "object", - properties: { - createdDate: { type: "string" }, - closingDate: { type: "string", nullable: true }, - listingTime: { type: "number" }, - expirationTime: { type: "number" }, - orderHash: { type: "string", nullable: true }, - maker: accountSchema, - taker: { ...accountSchema, nullable: true }, - protocolData: { type: "object" }, - protocolAddress: { type: "string" }, - currentPrice: { type: "string" }, - makerFees: { type: "array", items: feeSchema }, - takerFees: { type: "array", items: feeSchema }, - side: { type: "string" }, - orderType: { type: "string" }, - cancelled: { type: "boolean" }, - finalized: { type: "boolean" }, - markedInvalid: { type: "boolean" }, - clientSignature: { type: "string", nullable: true }, - makerAssetBundle: assetBundleSchema, - takerAssetBundle: assetBundleSchema, - }, - required: [ - "createdDate", - "closingDate", - "listingTime", - "expirationTime", - "orderHash", - "maker", - "taker", - "protocolData", - "protocolAddress", - "currentPrice", - "makerFees", - "takerFees", - "side", - "orderType", - "cancelled", - "finalized", - "markedInvalid", - "makerAssetBundle", - "takerAssetBundle", - ], -}; - -// TODO: Remove cast once all schemas are written -export const validateOrder = ajv.compile( - orderSchema -) as ValidateFunction; diff --git a/src/orders/types.ts b/src/orders/types.ts index 99cd4c73e..08527151d 100644 --- a/src/orders/types.ts +++ b/src/orders/types.ts @@ -2,6 +2,7 @@ import { ConsiderationItem, OrderWithCounter, } from "@opensea/seaport-js/lib/types"; +import { BigNumber } from "ethers"; import { OpenSeaAccount, OpenSeaAssetBundle } from "../types"; // Protocol data @@ -15,7 +16,7 @@ export type ProtocolData = // Protocol agnostic order data type OrderType = "basic" | "dutch" | "english" | "criteria"; export type OrderSide = "ask" | "bid"; -export type OrderFee = { +type OrderFee = { account: OpenSeaAccount; basisPoints: string; }; @@ -30,7 +31,7 @@ export type OrderV2 = { taker: OpenSeaAccount | null; protocolData: ProtocolData; protocolAddress: string; - currentPrice: string; + currentPrice: BigNumber; makerFees: OrderFee[]; takerFees: OrderFee[]; side: OrderSide; diff --git a/src/orders/utils.ts b/src/orders/utils.ts index f90b18b17..fa3e48d4f 100644 --- a/src/orders/utils.ts +++ b/src/orders/utils.ts @@ -1,4 +1,5 @@ import { CROSS_CHAIN_SEAPORT_V1_5_ADDRESS } from "@opensea/seaport-js/lib/constants"; +import { BigNumber } from "ethers"; import { OrderProtocol, OrdersQueryOptions, @@ -7,26 +8,25 @@ import { SerializedOrderV2, ProtocolData, } from "./types"; -import { Network } from "../types"; +import { Chain } from "../types"; import { accountFromJSON, assetBundleFromJSON } from "../utils"; -const NETWORK_TO_CHAIN = { - [Network.Main]: "ethereum", - [Network.Rinkeby]: "rinkeby", - [Network.Goerli]: "goerli", +const CHAIN_TO_NAME = { + [Chain.Mainnet]: "ethereum", + [Chain.Goerli]: "goerli", }; export const DEFAULT_SEAPORT_CONTRACT_ADDRESS = CROSS_CHAIN_SEAPORT_V1_5_ADDRESS; export const getOrdersAPIPath = ( - network: Network, + chain: Chain, protocol: OrderProtocol, side: OrderSide ) => { - const chain = NETWORK_TO_CHAIN[network]; + const chainName = CHAIN_TO_NAME[chain]; const sidePath = side === "ask" ? "listings" : "offers"; - return `/v2/orders/${chain}/${protocol}/${sidePath}`; + return `/v2/orders/${chainName}/${protocol}/${sidePath}`; }; export const getCollectionPath = (slug: string) => { @@ -80,13 +80,13 @@ export const getFulfillListingPayload = ( fulfillerAddress: string, order_hash: string, protocolAddress: string, - network: Network + chain: Chain ) => { - const chain = NETWORK_TO_CHAIN[network]; + const chainName = CHAIN_TO_NAME[chain]; return { listing: { hash: order_hash, - chain, + chain: chainName, protocol_address: protocolAddress, }, fulfiller: { @@ -99,13 +99,13 @@ export const getFulfillOfferPayload = ( fulfillerAddress: string, order_hash: string, protocolAddress: string, - network: Network + chain: Chain ) => { - const chain = NETWORK_TO_CHAIN[network]; + const chainName = CHAIN_TO_NAME[chain]; return { offer: { hash: order_hash, - chain, + chain: chainName, protocol_address: protocolAddress, }, fulfiller: { @@ -149,7 +149,7 @@ export const deserializeOrder = (order: SerializedOrderV2): OrderV2 => { taker: order.taker ? accountFromJSON(order.taker) : null, protocolData: order.protocol_data, protocolAddress: order.protocol_address, - currentPrice: order.current_price, + currentPrice: BigNumber.from(order.current_price), makerFees: order.maker_fees.map(({ account, basis_points }) => ({ account: accountFromJSON(account), basisPoints: basis_points, diff --git a/src/schemas.ts b/src/schemas.ts deleted file mode 100644 index 55ead7c1f..000000000 --- a/src/schemas.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JSONSchemaType } from "ajv"; -import { OpenSeaAccount, OpenSeaAssetBundle, OpenSeaUser } from "./types"; - -const userSchema: JSONSchemaType = { - type: "object", - properties: { - username: { type: "string", nullable: true }, - }, -}; - -export const accountSchema: JSONSchemaType = { - type: "object", - properties: { - address: { type: "string" }, - config: { type: "string" }, - profileImgUrl: { type: "string" }, - user: { ...userSchema, nullable: true }, - }, - required: ["address", "config", "profileImgUrl", "user"], -}; - -// TODO: Support entire OpenSeaAssetBundle type -export type PartialAssetBundleType = Omit< - OpenSeaAssetBundle, - "assets" | "sellOrders" | "assetContract" -> & { - assets: object[]; - sellOrders: object[] | null; - assetContract?: object; -}; - -export const assetBundleSchema: JSONSchemaType = { - type: "object", - properties: { - maker: { ...accountSchema, nullable: true }, - assets: { type: "array", items: { type: "object" } }, - name: { type: "string", nullable: true }, - slug: { type: "string", nullable: true }, - permalink: { type: "string", nullable: true }, - - sellOrders: { - type: "array", - items: { type: "object" }, - nullable: true, - }, - - assetContract: { type: "object", nullable: true }, - description: { type: "string", nullable: true }, - externalLink: { type: "string", nullable: true }, - }, - required: ["maker", "assets", "name", "slug", "permalink", "sellOrders"], -}; diff --git a/src/sdk.ts b/src/sdk.ts index d61e0a75f..73801e876 100644 --- a/src/sdk.ts +++ b/src/sdk.ts @@ -1,53 +1,27 @@ +import EventEmitter = require("events"); import { Seaport } from "@opensea/seaport-js"; +import { OPENSEA_CONDUIT_KEY } from "@opensea/seaport-js/lib/constants"; import { ConsiderationInputItem, CreateInputItem, OrderComponents, } from "@opensea/seaport-js/lib/types"; -import { BigNumber } from "bignumber.js"; -import { Web3JsProvider } from "ethereum-types"; -import { ethers, providers } from "ethers"; -import { EventEmitter, EventSubscription } from "fbemitter"; -import * as _ from "lodash"; -import Web3 from "web3"; -import { WyvernProtocol } from "wyvern-js"; +import { + BigNumber, + BigNumberish, + Contract, + FixedNumber, + Wallet, + ethers, + providers, +} from "ethers"; +import { parseEther } from "ethers/lib/utils"; import { OpenSeaAPI } from "./api"; import { - CK_ADDRESS, - CONDUIT_KEYS_TO_CONDUIT, - DEFAULT_GAS_INCREASE_FACTOR, - DEFAULT_WRAPPED_NFT_LIQUIDATION_UNISWAP_SLIPPAGE_IN_BASIS_POINTS, - ENJIN_COIN_ADDRESS, INVERSE_BASIS_POINT, - MANA_ADDRESS, - MIN_EXPIRATION_MINUTES, - NULL_ADDRESS, - NULL_BLOCK_HASH, - CROSS_CHAIN_DEFAULT_CONDUIT_KEY, DEFAULT_ZONE_BY_NETWORK, - ORDER_MATCHING_LATENCY_SECONDS, - RPC_URL_PATH, - UNISWAP_FACTORY_ADDRESS_MAINNET, - UNISWAP_FACTORY_ADDRESS_RINKEBY, WETH_ADDRESS_BY_NETWORK, - WRAPPED_NFT_FACTORY_ADDRESS_MAINNET, - WRAPPED_NFT_FACTORY_ADDRESS_RINKEBY, - WRAPPED_NFT_LIQUIDATION_PROXY_ADDRESS_MAINNET, - WRAPPED_NFT_LIQUIDATION_PROXY_ADDRESS_RINKEBY, - OPENSEA_LEGACY_FEE_RECIPIENT, - MAX_UINT_256, } from "./constants"; -import { - CanonicalWETH, - ERC20, - ERC721, - getMethod, - UniswapFactory, - WrappedNFT, - WrappedNFTFactory, - WrappedNFTLiquidationProxy, - UniswapExchange, -} from "./contracts"; import { constructPrivateListingCounterOrder, getPrivateListingConsiderations, @@ -55,183 +29,86 @@ import { } from "./orders/privateListings"; import { OrderV2, PostOfferResponse } from "./orders/types"; import { DEFAULT_SEAPORT_CONTRACT_ADDRESS } from "./orders/utils"; -import { ERC1155Abi } from "./typechain/contracts/ERC1155Abi"; -import { ERC721v3Abi } from "./typechain/contracts/ERC721v3Abi"; -import { UniswapExchangeAbi } from "./typechain/contracts/UniswapExchangeAbi"; -import { UniswapFactoryAbi } from "./typechain/contracts/UniswapFactoryAbi"; -import { WrappedNFTAbi } from "./typechain/contracts/WrappedNFTAbi"; -import { WrappedNFTFactoryAbi } from "./typechain/contracts/WrappedNFTFactoryAbi"; +import { + ERC1155__factory, + ERC20__factory, + ERC721__factory, +} from "./typechain/contracts"; import { Asset, ComputedFees, EventData, EventType, - FeeMethod, - HowToCall, - Network, + Chain, OpenSeaAPIConfig, OpenSeaAsset, OpenSeaCollection, - OpenSeaFungibleToken, OrderSide, - PartialReadonlyContractAbi, - TokenStandardVersion, - UnhashedOrder, - WyvernAsset, - WyvernFTAsset, - WyvernNFTAsset, - WyvernSchemaName, + TokenStandard, } from "./types"; +import { getCanonicalWrappedEther } from "./utils/tokens"; import { - encodeAtomicizedTransfer, - encodeCall, - encodeProxyCall, - encodeTransferCall, - schemas, - Schema, -} from "./utils/schemas/schema"; -import { getCanonicalWrappedEther, getTokens } from "./utils/tokens"; -import { - annotateERC20TransferABI, - annotateERC721TransferABI, - confirmTransaction, delay, - estimateGas, - getCurrentGasPrice, - getNonCompliantApprovalAddress, - getWyvernAsset, - makeBigNumber, - onDeprecated, - rawCall, - sendRawTransaction, - validateAndFormatWalletAddress, getMaxOrderExpirationTimestamp, hasErrorCode, getAssetItemType, - BigNumberInput, getAddressAfterRemappingSharedStorefrontAddressToLazyMintAdapterAddress, feesToBasisPoints, isValidProtocol, - toBaseUnitAmount, } from "./utils/utils"; export class OpenSeaSDK { - // Web3 instance to use - public web3: Web3; - public web3ReadOnly: Web3; - // Ethers provider - public ethersProvider: providers.Web3Provider; - // Seaport v1.5 client + /** Provider */ + public provider: providers.JsonRpcProvider; + /** Seaport v1.5 client */ public seaport_v1_5: Seaport; - // Logger function to use when debugging + /** Logger function to use when debugging */ public logger: (arg: string) => void; - // API instance on this seaport + /** API instance on this seaport */ public readonly api: OpenSeaAPI; - // Extra gwei to add to the mean gas price when making transactions - public gasPriceAddition = new BigNumber(3); - // Multiply gas estimate by this factor when making transactions - public gasIncreaseFactor = DEFAULT_GAS_INCREASE_FACTOR; - - private _networkName: Network; - private _wyvernProtocol: WyvernProtocol; - private _wyvernProtocolReadOnly: WyvernProtocol; - private _wyvernConfigOverride?: OpenSeaAPIConfig["wyvernConfig"]; + /** The configured chain */ + public readonly chain: Chain; + private _emitter: EventEmitter; - private _wrappedNFTFactoryAddress: string; - private _wrappedNFTLiquidationProxyAddress: string; - private _uniswapFactoryAddress: string; + private _signerOrProvider: Wallet | providers.JsonRpcProvider; /** * Your very own seaport. * Create a new instance of OpenSeaJS. - * @param provider Web3 Provider to use for transactions. For example: - * `const provider = new Web3.providers.HttpProvider('https://mainnet.infura.io')` - * @param apiConfig configuration options, including `networkName` + * @param provider Provider to use for transactions. For example: + * `const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io')` + * @param apiConfig configuration options, including `chain` * @param logger logger, optional, a function that will be called with debugging * @param wallet optional, if you'd like to use an ethers wallet for order posting * information */ constructor( - provider: Web3["currentProvider"], + provider: providers.JsonRpcProvider, apiConfig: OpenSeaAPIConfig = {}, logger?: (arg: string) => void, - wallet?: ethers.Wallet + wallet?: Wallet ) { // API config - apiConfig.networkName = apiConfig.networkName || Network.Main; + apiConfig.chain ??= Chain.Mainnet; + this.chain = apiConfig.chain; this.api = new OpenSeaAPI(apiConfig); - this._networkName = apiConfig.networkName; - - const readonlyProvider = new Web3.providers.HttpProvider( - `${this.api.apiBaseUrl}/${RPC_URL_PATH}` - ); - - const useReadOnlyProvider = apiConfig.useReadOnlyProvider ?? true; - - // Web3 Config - this.web3 = new Web3(provider); - this.web3ReadOnly = useReadOnlyProvider - ? new Web3(readonlyProvider) - : this.web3; - - // Ethers Config - this.ethersProvider = new providers.Web3Provider( - provider as providers.ExternalProvider - ); - - const providerOrSinger = wallet ? wallet : this.ethersProvider; - - this.seaport_v1_5 = new Seaport(providerOrSinger, { - conduitKeyToConduit: CONDUIT_KEYS_TO_CONDUIT, - overrides: { - defaultConduitKey: CROSS_CHAIN_DEFAULT_CONDUIT_KEY, - }, - seaportVersion: "1.5", - }); - - let networkForWyvernConfig = this._networkName; - if (this._networkName == Network.Goerli) { - networkForWyvernConfig = Network.Rinkeby; - } + this.provider = provider; + this._signerOrProvider = wallet ?? this.provider; - // WyvernJS config - this._wyvernProtocol = new WyvernProtocol(provider as Web3JsProvider, { - network: networkForWyvernConfig, - ...apiConfig.wyvernConfig, + this.seaport_v1_5 = new Seaport(this._signerOrProvider, { + overrides: { defaultConduitKey: OPENSEA_CONDUIT_KEY }, }); - // WyvernJS config for readonly (optimization for infura calls) - this._wyvernProtocolReadOnly = useReadOnlyProvider - ? new WyvernProtocol(readonlyProvider as Web3JsProvider, { - network: networkForWyvernConfig, - ...apiConfig.wyvernConfig, - }) - : this._wyvernProtocol; - - // WrappedNFTLiquidationProxy Config - this._wrappedNFTFactoryAddress = - this._networkName == Network.Main - ? WRAPPED_NFT_FACTORY_ADDRESS_MAINNET - : WRAPPED_NFT_FACTORY_ADDRESS_RINKEBY; - this._wrappedNFTLiquidationProxyAddress = - this._networkName == Network.Main - ? WRAPPED_NFT_LIQUIDATION_PROXY_ADDRESS_MAINNET - : WRAPPED_NFT_LIQUIDATION_PROXY_ADDRESS_RINKEBY; - this._uniswapFactoryAddress = - this._networkName == Network.Main - ? UNISWAP_FACTORY_ADDRESS_MAINNET - : UNISWAP_FACTORY_ADDRESS_RINKEBY; - // Emit events this._emitter = new EventEmitter(); - // Debugging: default to nothing - this.logger = logger || ((arg: string) => arg); + // Logger: default to no logging if fn not provided + this.logger = logger ?? ((arg: string) => arg); } /** - * Add a listener to a marketplace event + * Add a listener to a marketplace event. * @param event An event to listen for * @param listener A callback that will accept an object with event data * @param once Whether the listener should only be called once @@ -240,20 +117,22 @@ export class OpenSeaSDK { event: EventType, listener: (data: EventData) => void, once = false - ): EventSubscription { - const subscription = once - ? this._emitter.once(event, listener) - : this._emitter.addListener(event, listener); - return subscription; + ) { + if (once) { + this._emitter.once(event, listener); + } else { + this._emitter.addListener(event, listener); + } } /** - * Remove an event listener, included here for completeness. - * Simply calls `.remove()` on a subscription - * @param subscription The event subscription returned from `addListener` + * Remove an event listener, included for completeness. + * Simply calls `.removeListener()` on an event and listener. + * @param event The event to remove a listener for + * @param listener The listener to remove */ - public removeListener(subscription: EventSubscription) { - subscription.remove(); + public removeListener(event: EventType, listener: (data: EventData) => void) { + this._emitter.removeListener(event, listener); } /** @@ -265,312 +144,10 @@ export class OpenSeaSDK { this._emitter.removeAllListeners(event); } - /** - * Wraps an arbitrary group of NFTs into their corresponding WrappedNFT ERC20 tokens. - * Emits the `WrapAssets` event when the transaction is prompted. - * @param param0 __namedParameters Object - * @param assets An array of objects with the tokenId and tokenAddress of each of the assets to bundle together. - * @param accountAddress Address of the user's wallet - */ - public async wrapAssets({ - assets, - accountAddress, - }: { - assets: Asset[]; - accountAddress: string; - }) { - const schema = this._getSchema(WyvernSchemaName.ERC721); - const wyAssets = assets.map((a) => getWyvernAsset(schema, a)); - - // Separate assets out into two arrays of tokenIds and tokenAddresses - const tokenIds = wyAssets.map((a) => a.id); - const tokenAddresses = wyAssets.map((a) => a.address); - - // Check if all tokenAddresses match. If not, then we have a mixedBatch of - // NFTs from different NFT core contracts - const isMixedBatchOfAssets = !tokenAddresses.every( - (val, _i, arr) => val === arr[0] - ); - - this._dispatch(EventType.WrapAssets, { assets: wyAssets, accountAddress }); - - const txHash = await sendRawTransaction( - this.web3, - { - from: accountAddress, - to: this._wrappedNFTLiquidationProxyAddress, - value: 0, - data: encodeCall(getMethod(WrappedNFTLiquidationProxy, "wrapNFTs"), [ - tokenIds, - tokenAddresses, - isMixedBatchOfAssets, - ]), - }, - (error) => { - this._dispatch(EventType.TransactionDenied, { error, accountAddress }); - } - ); - - await this._confirmTransaction( - txHash, - EventType.WrapAssets, - "Wrapping Assets" - ); - } - - /** - * Unwraps an arbitrary group of NFTs from their corresponding WrappedNFT ERC20 tokens back into ERC721 tokens. - * Emits the `UnwrapAssets` event when the transaction is prompted. - * @param param0 __namedParameters Object - * @param assets An array of objects with the tokenId and tokenAddress of each of the assets to bundle together. - * @param destinationAddresses Addresses that each resulting ERC721 token will be sent to. Must be the same length as `tokenIds`. Each address corresponds with its respective token ID in the `tokenIds` array. - * @param accountAddress Address of the user's wallet - */ - public async unwrapAssets({ - assets, - destinationAddresses, - accountAddress, - }: { - assets: Asset[]; - destinationAddresses: string[]; - accountAddress: string; - }) { - if ( - !assets || - !destinationAddresses || - assets.length != destinationAddresses.length - ) { - throw new Error( - "The 'assets' and 'destinationAddresses' arrays must exist and have the same length." - ); - } - - const schema = this._getSchema(WyvernSchemaName.ERC721); - const wyAssets = assets.map((a) => getWyvernAsset(schema, a)); - - // Separate assets out into two arrays of tokenIds and tokenAddresses - const tokenIds = wyAssets.map((a) => a.id); - const tokenAddresses = wyAssets.map((a) => a.address); - - // Check if all tokenAddresses match. If not, then we have a mixedBatch of - // NFTs from different NFT core contracts - const isMixedBatchOfAssets = !tokenAddresses.every( - (val, _i, arr) => val === arr[0] - ); - - this._dispatch(EventType.UnwrapAssets, { - assets: wyAssets, - accountAddress, - }); - - const txHash = await sendRawTransaction( - this.web3, - { - from: accountAddress, - to: this._wrappedNFTLiquidationProxyAddress, - value: 0, - data: encodeCall(getMethod(WrappedNFTLiquidationProxy, "unwrapNFTs"), [ - tokenIds, - tokenAddresses, - destinationAddresses, - isMixedBatchOfAssets, - ]), - }, - (error) => { - this._dispatch(EventType.TransactionDenied, { error, accountAddress }); - } - ); - - await this._confirmTransaction( - txHash, - EventType.UnwrapAssets, - "Unwrapping Assets" - ); - } - - /** - * Liquidates an arbitrary group of NFTs by atomically wrapping them into their - * corresponding WrappedNFT ERC20 tokens, and then immediately selling those - * ERC20 tokens on their corresponding Uniswap exchange. - * Emits the `LiquidateAssets` event when the transaction is prompted. - * @param param0 __namedParameters Object - * @param assets An array of objects with the tokenId and tokenAddress of each of the assets to bundle together. - * @param accountAddress Address of the user's wallet - * @param uniswapSlippageAllowedInBasisPoints The amount of slippage that a user will tolerate in their Uniswap trade; if Uniswap cannot fulfill the order without more slippage, the whole function will revert. - */ - public async liquidateAssets({ - assets, - accountAddress, - uniswapSlippageAllowedInBasisPoints, - }: { - assets: Asset[]; - accountAddress: string; - uniswapSlippageAllowedInBasisPoints: number; - }) { - // If no slippage parameter is provided, use a sane default value - const uniswapSlippage = - uniswapSlippageAllowedInBasisPoints === 0 - ? DEFAULT_WRAPPED_NFT_LIQUIDATION_UNISWAP_SLIPPAGE_IN_BASIS_POINTS - : uniswapSlippageAllowedInBasisPoints; - - const schema = this._getSchema(WyvernSchemaName.ERC721); - const wyAssets = assets.map((a) => getWyvernAsset(schema, a)); - - // Separate assets out into two arrays of tokenIds and tokenAddresses - const tokenIds = wyAssets.map((a) => a.id); - const tokenAddresses = wyAssets.map((a) => a.address); - - // Check if all tokenAddresses match. If not, then we have a mixedBatch of - // NFTs from different NFT core contracts - const isMixedBatchOfAssets = !tokenAddresses.every( - (val, _i, arr) => val === arr[0] - ); - - this._dispatch(EventType.LiquidateAssets, { - assets: wyAssets, - accountAddress, - }); - - const txHash = await sendRawTransaction( - this.web3, - { - from: accountAddress, - to: this._wrappedNFTLiquidationProxyAddress, - value: 0, - data: encodeCall( - getMethod(WrappedNFTLiquidationProxy, "liquidateNFTs"), - [tokenIds, tokenAddresses, isMixedBatchOfAssets, uniswapSlippage] - ), - }, - (error) => { - this._dispatch(EventType.TransactionDenied, { error, accountAddress }); - } - ); - - await this._confirmTransaction( - txHash, - EventType.LiquidateAssets, - "Liquidating Assets" - ); - } - - /** - * Purchases a bundle of WrappedNFT tokens from Uniswap and then unwraps them into ERC721 tokens. - * Emits the `PurchaseAssets` event when the transaction is prompted. - * @param param0 __namedParameters Object - * @param numTokensToBuy The number of WrappedNFT tokens to purchase and unwrap - * @param amount The estimated cost in wei for tokens (probably some ratio above the minimum amount to avoid the transaction failing due to frontrunning, minimum amount is found by calling UniswapExchange(uniswapAddress).getEthToTokenOutputPrice(numTokensToBuy.mul(10**18)); - * @param contractAddress Address of the corresponding NFT core contract for these NFTs. - * @param accountAddress Address of the user's wallet - */ - public async purchaseAssets({ - numTokensToBuy, - amount, - contractAddress, - accountAddress, - }: { - numTokensToBuy: number; - amount: BigNumber; - contractAddress: string; - accountAddress: string; - }) { - this._dispatch(EventType.PurchaseAssets, { - amount, - contractAddress, - accountAddress, - }); - - const txHash = await sendRawTransaction( - this.web3, - { - from: accountAddress, - to: this._wrappedNFTLiquidationProxyAddress, - value: amount, - data: encodeCall( - getMethod(WrappedNFTLiquidationProxy, "purchaseNFTs"), - [numTokensToBuy, contractAddress] - ), - }, - (error) => { - this._dispatch(EventType.TransactionDenied, { error, accountAddress }); - } - ); - - await this._confirmTransaction( - txHash, - EventType.PurchaseAssets, - "Purchasing Assets" - ); - } - - /** - * Gets the estimated cost or payout of either buying or selling NFTs to Uniswap using either purchaseAssts() or liquidateAssets() - * @param param0 __namedParameters Object - * @param numTokens The number of WrappedNFT tokens to either purchase or sell - * @param isBuying A bool for whether the user is buying or selling - * @param contractAddress Address of the corresponding NFT core contract for these NFTs. - */ - public async getQuoteFromUniswap({ - numTokens, - isBuying, - contractAddress, - }: { - numTokens: number; - isBuying: boolean; - contractAddress: string; - }) { - // Get UniswapExchange for WrappedNFTContract for contractAddress - const wrappedNFTFactory = new this.web3.eth.Contract( - WrappedNFTFactory, - this._wrappedNFTFactoryAddress - ) as unknown as WrappedNFTFactoryAbi; - - const wrappedNFTAddress: string = await wrappedNFTFactory.methods - .nftContractToWrapperContract(contractAddress) - .call(); - const wrappedNFT = new this.web3.eth.Contract( - WrappedNFT, - wrappedNFTAddress - ) as unknown as WrappedNFTAbi; - const uniswapFactory = new this.web3.eth.Contract( - UniswapFactory, - this._uniswapFactoryAddress - ) as unknown as UniswapFactoryAbi; - const uniswapExchangeAddress = await uniswapFactory.methods - .getExchange(wrappedNFTAddress) - .call(); - const uniswapExchange = new this.web3.eth.Contract( - UniswapExchange, - uniswapExchangeAddress - ) as unknown as UniswapExchangeAbi; - - // Convert desired WNFT to wei - const amount = toBaseUnitAmount( - makeBigNumber(numTokens), - Number(wrappedNFT.methods.decimals().call()) - ); - - // Return quote from Uniswap - if (isBuying) { - return parseInt( - await uniswapExchange.methods - .getEthToTokenOutputPrice(amount.toString()) - .call() - ); - } else { - return parseInt( - await uniswapExchange.methods - .getTokenToEthInputPrice(amount.toString()) - .call() - ); - } - } - /** * Wrap ETH into W-ETH. * W-ETH is needed for placing buy orders (making offers). * Emits the `WrapEth` event when the transaction is prompted. - * @param param0 __namedParameters Object * @param amountInEth How much ether to wrap * @param accountAddress Address of the user's wallet containing the ether */ @@ -578,35 +155,38 @@ export class OpenSeaSDK { amountInEth, accountAddress, }: { - amountInEth: number; + amountInEth: BigNumberish; accountAddress: string; }) { - const token = getCanonicalWrappedEther(this._networkName); + const token = getCanonicalWrappedEther(this.chain); - const amount = toBaseUnitAmount(makeBigNumber(amountInEth), token.decimals); + const value = parseEther(FixedNumber.from(amountInEth).toString()); - this._dispatch(EventType.WrapEth, { accountAddress, amount }); + this._dispatch(EventType.WrapEth, { accountAddress, amount: value }); - const txHash = await sendRawTransaction( - this.web3, - { - from: accountAddress, - to: token.address, - value: amount, - data: encodeCall(getMethod(CanonicalWETH, "deposit"), []), - }, - (error) => { - this._dispatch(EventType.TransactionDenied, { error, accountAddress }); - } + const wethContract = new Contract( + token.address, + ["function deposit() payable"], + this._signerOrProvider ); - await this._confirmTransaction(txHash, EventType.WrapEth, "Wrapping ETH"); + wethContract.connect(this.provider); + try { + const transaction = await wethContract.deposit({ value }); + await this._confirmTransaction( + transaction.hash, + EventType.WrapEth, + "Wrapping ETH" + ); + } catch (error) { + console.error(error); + this._dispatch(EventType.TransactionDenied, { error, accountAddress }); + } } /** * Unwrap W-ETH into ETH. * Emits the `UnwrapWeth` event when the transaction is prompted. - * @param param0 __namedParameters Object * @param amountInEth How much W-ETH to unwrap * @param accountAddress Address of the user's wallet containing the W-ETH */ @@ -614,45 +194,40 @@ export class OpenSeaSDK { amountInEth, accountAddress, }: { - amountInEth: number; + amountInEth: BigNumberish; accountAddress: string; }) { - const token = getCanonicalWrappedEther(this._networkName); + const token = getCanonicalWrappedEther(this.chain); - const amount = toBaseUnitAmount(makeBigNumber(amountInEth), token.decimals); + const amount = parseEther(FixedNumber.from(amountInEth).toString()); this._dispatch(EventType.UnwrapWeth, { accountAddress, amount }); - const txHash = await sendRawTransaction( - this.web3, - { - from: accountAddress, - to: token.address, - value: 0, - data: encodeCall(getMethod(CanonicalWETH, "withdraw"), [ - amount.toString(), - ]), - }, - (error) => { - this._dispatch(EventType.TransactionDenied, { error, accountAddress }); - } + const wethContract = new Contract( + token.address, + ["function withdraw(uint wad) public"], + this._signerOrProvider ); - await this._confirmTransaction( - txHash, - EventType.UnwrapWeth, - "Unwrapping W-ETH" - ); + wethContract.connect(this.provider); + try { + const transaction = await wethContract.withdraw(amount); + await this._confirmTransaction( + transaction.hash, + EventType.UnwrapWeth, + "Unwrapping W-ETH" + ); + } catch (error) { + console.error(error); + this._dispatch(EventType.TransactionDenied, { error, accountAddress }); + } } private getAmountWithBasisPointsApplied = ( amount: BigNumber, basisPoints: number - ) => { - return amount - .multipliedBy(basisPoints) - .dividedBy(INVERSE_BASIS_POINT) - .toString(); + ): string => { + return amount.mul(basisPoints).div(INVERSE_BASIS_POINT).toString(); }; private async getFees({ @@ -719,12 +294,11 @@ export class OpenSeaSDK { } private getAssetItems( - assets: Asset[], - quantities: BigNumber[] = [], - fallbackSchema?: WyvernSchemaName + assets: OpenSeaAsset[], + quantities: BigNumber[] = [] ): CreateInputItem[] { return assets.map((asset, index) => ({ - itemType: getAssetItemType(this._getSchemaName(asset) ?? fallbackSchema), + itemType: getAssetItemType(asset.assetContract.tokenStandard), token: getAddressAfterRemappingSharedStorefrontAddressToLazyMintAdapterAddress( asset.tokenAddress @@ -758,30 +332,30 @@ export class OpenSeaSDK { }: { asset: Asset; accountAddress: string; - startAmount: BigNumberInput; - quantity?: BigNumberInput; + startAmount: BigNumberish; + quantity?: BigNumberish; domain?: string; - salt?: string; - expirationTime?: BigNumberInput; + salt?: BigNumberish; + expirationTime?: BigNumberish; paymentTokenAddress?: string; }): Promise { if (!asset.tokenId) { throw new Error("Asset must have a tokenId"); } paymentTokenAddress = - paymentTokenAddress ?? WETH_ADDRESS_BY_NETWORK[this._networkName]; + paymentTokenAddress ?? WETH_ADDRESS_BY_NETWORK[this.chain]; const openseaAsset = await this.api.getAsset(asset); const considerationAssetItems = this.getAssetItems( [openseaAsset], - [makeBigNumber(quantity)] + [BigNumber.from(quantity ?? 1)] ); const { basePrice } = await this._getPriceParameters( OrderSide.Buy, paymentTokenAddress, - makeBigNumber(expirationTime ?? getMaxOrderExpirationTimestamp()), - makeBigNumber(startAmount) + expirationTime ?? getMaxOrderExpirationTimestamp(), + startAmount ); const { openseaSellerFees, collectionSellerFees: collectionSellerFees } = @@ -805,11 +379,12 @@ export class OpenSeaSDK { ], consideration: [...considerationAssetItems, ...considerationFeeItems], endTime: - expirationTime?.toString() ?? - getMaxOrderExpirationTimestamp().toString(), - zone: DEFAULT_ZONE_BY_NETWORK[this._networkName], + expirationTime !== undefined + ? BigNumber.from(expirationTime).toString() + : getMaxOrderExpirationTimestamp().toString(), + zone: DEFAULT_ZONE_BY_NETWORK[this.chain], domain, - salt, + salt: BigNumber.from(salt ?? 0).toString(), restrictedByZone: false, allowPartialFills: true, }, @@ -849,18 +424,18 @@ export class OpenSeaSDK { salt, listingTime, expirationTime, - paymentTokenAddress = NULL_ADDRESS, + paymentTokenAddress = ethers.constants.AddressZero, buyerAddress, }: { asset: Asset; accountAddress: string; - startAmount: BigNumberInput; - endAmount?: BigNumberInput; - quantity?: BigNumberInput; + startAmount: BigNumberish; + endAmount?: BigNumberish; + quantity?: BigNumberish; domain?: string; - salt?: string; - listingTime?: string; - expirationTime?: BigNumberInput; + salt?: BigNumberish; + listingTime?: number; + expirationTime?: number; paymentTokenAddress?: string; buyerAddress?: string; }): Promise { @@ -871,15 +446,15 @@ export class OpenSeaSDK { const openseaAsset = await this.api.getAsset(asset); const offerAssetItems = this.getAssetItems( [openseaAsset], - [makeBigNumber(quantity)] + [BigNumber.from(quantity ?? 1)] ); const { basePrice, endPrice } = await this._getPriceParameters( OrderSide.Sell, paymentTokenAddress, - makeBigNumber(expirationTime ?? getMaxOrderExpirationTimestamp()), - makeBigNumber(startAmount), - endAmount !== undefined ? makeBigNumber(endAmount) : undefined + expirationTime ?? getMaxOrderExpirationTimestamp(), + startAmount, + endAmount ?? undefined ); const { @@ -908,13 +483,13 @@ export class OpenSeaSDK { { offer: offerAssetItems, consideration: considerationFeeItems, - startTime: listingTime, + startTime: listingTime?.toString(), endTime: expirationTime?.toString() ?? getMaxOrderExpirationTimestamp().toString(), - zone: DEFAULT_ZONE_BY_NETWORK[this._networkName], + zone: DEFAULT_ZONE_BY_NETWORK[this.chain], domain, - salt, + salt: BigNumber.from(salt ?? 0).toString(), restrictedByZone: false, allowPartialFills: true, }, @@ -944,11 +519,11 @@ export class OpenSeaSDK { }: { collectionSlug: string; accountAddress: string; - amount: string; + amount: BigNumberish; quantity: number; domain?: string; - salt?: string; - expirationTime?: BigNumberInput; + salt?: BigNumberish; + expirationTime?: number | string; paymentTokenAddress: string; }): Promise { const collection = await this.api.getCollection(collectionSlug); @@ -968,8 +543,8 @@ export class OpenSeaSDK { const { basePrice } = await this._getPriceParameters( OrderSide.Buy, paymentTokenAddress, - makeBigNumber(expirationTime ?? getMaxOrderExpirationTimestamp()), - makeBigNumber(amount) + expirationTime ?? getMaxOrderExpirationTimestamp(), + amount ); const { openseaSellerFees, collectionSellerFees: collectionSellerFees } = await this.getFees({ @@ -997,9 +572,9 @@ export class OpenSeaSDK { endTime: expirationTime?.toString() ?? getMaxOrderExpirationTimestamp().toString(), - zone: DEFAULT_ZONE_BY_NETWORK[this._networkName], + zone: DEFAULT_ZONE_BY_NETWORK[this.chain], domain, - salt, + salt: BigNumber.from(salt ?? 0).toString(), restrictedByZone: false, allowPartialFills: true, }; @@ -1147,7 +722,6 @@ export class OpenSeaSDK { /** * Cancel an order on-chain, preventing it from ever being fulfilled. - * @param param0 __namedParameters Object * @param order The order to cancel * @param accountAddress The order maker's wallet address * @param domain An optional domain to be hashed and included at the end of fulfillment calldata @@ -1184,845 +758,117 @@ export class OpenSeaSDK { } /** - * Approve a non-fungible token for use in trades. - * Requires an account to be initialized first. - * Called internally, but exposed for dev flexibility. - * Checks to see if already approved, first. Then tries different approval methods from best to worst. - * @param param0 __namedParameters Object - * @param tokenId Token id to approve, but only used if approve-all isn't - * supported by the token contract - * @param tokenAddress The contract address of the token being approved - * @param accountAddress The user's wallet address - * @param proxyAddress Address of the user's proxy contract. If not provided, - * will attempt to fetch it from Wyvern. - * @param tokenAbi ABI of the token's contract. Defaults to a flexible ERC-721 - * contract. - * @param skipApproveAllIfTokenAddressIn an optional list of token addresses that, if a token is approve-all type, will skip approval - * @param schemaName The Wyvern schema name corresponding to the asset type - * @returns Transaction hash if a new transaction was created, otherwise null + * Returns whether an order is fulfillable. + * An order may not be fulfillable if a target item's transfer function + * is locked for some reason, e.g. an item is being rented within a game + * or trading has been locked for an item type. + * @param order Order to check + * @param accountAddress The account address that will be fulfilling the order */ - public async approveSemiOrNonFungibleToken({ - tokenId, - tokenAddress, + public async isOrderFulfillable({ + order, accountAddress, - proxyAddress, - tokenAbi = ERC721, - skipApproveAllIfTokenAddressIn = new Set(), - schemaName = WyvernSchemaName.ERC721, }: { - tokenId: string; - tokenAddress: string; + order: OrderV2; accountAddress: string; - proxyAddress?: string; - tokenAbi?: PartialReadonlyContractAbi; - skipApproveAllIfTokenAddressIn?: Set; - schemaName?: WyvernSchemaName; - }): Promise { - const schema = this._getSchema(schemaName); - const tokenContract = new this.web3.eth.Contract( - tokenAbi, - tokenAddress - ) as unknown as ERC721v3Abi | ERC1155Abi; - - if (!proxyAddress) { - proxyAddress = (await this._getProxy(accountAddress)) || undefined; - if (!proxyAddress) { - throw new Error("Uninitialized account"); - } + }): Promise { + if (!isValidProtocol(order.protocolAddress)) { + throw new Error("Unsupported protocol"); } - const approvalAllCheck = async () => { - // NOTE: - // Use this long way of calling so we can check for method existence on a bool-returning method. - const isApprovedForAllRaw = await rawCall(this.web3ReadOnly, { - from: accountAddress, - to: tokenContract.options.address, - data: tokenContract.methods - .isApprovedForAll(accountAddress, proxyAddress as string) - .encodeABI(), - }); - return parseInt(isApprovedForAllRaw); - }; - - const isApprovedForAll = await approvalAllCheck(); - - if (isApprovedForAll == 1) { - // Supports ApproveAll - this.logger("Already approved proxy for all tokens"); - return null; + try { + const isValid = await this.seaport_v1_5 + .validate([order.protocolData], accountAddress) + .callStatic(); + return !!isValid; + } catch (error) { + if (hasErrorCode(error) && error.code === "CALL_EXCEPTION") { + return false; + } + throw error; } + } - if (isApprovedForAll == 0) { - // Supports ApproveAll - // not approved for all yet + /** + * Get an account's balance of any Asset. + * @param accountAddress Account address to check + * @param asset The Asset to check balance for + * @param retries How many times to retry if balance is 0 + */ + public async getBalance( + { accountAddress, asset }: { accountAddress: string; asset: Asset }, + retries = 1 + ): Promise { + if ( + asset.tokenStandard == TokenStandard.ERC20 || + asset.tokenStandard == TokenStandard.ERC1155 + ) { + const contract = new ethers.Contract( + asset.tokenAddress, + asset.tokenStandard == TokenStandard.ERC20 + ? ERC20__factory.createInterface() + : ERC1155__factory.createInterface(), + this.provider + ); - if (skipApproveAllIfTokenAddressIn.has(tokenAddress)) { - this.logger( - "Already approving proxy for all tokens in another transaction" - ); - return null; - } - skipApproveAllIfTokenAddressIn.add(tokenAddress); + const count = await contract.methods + .balanceOf(accountAddress, asset.tokenId ?? undefined) + .call(); - try { - this._dispatch(EventType.ApproveAllAssets, { - accountAddress, - proxyAddress, - contractAddress: tokenAddress, - }); - - const txHash = await sendRawTransaction( - this.web3, - { - from: accountAddress, - to: tokenContract.options.address, - data: tokenContract.methods - .setApprovalForAll(proxyAddress, true) - .encodeABI(), - }, - (error) => { - this._dispatch(EventType.TransactionDenied, { - error, - accountAddress, - }); - } - ); - await this._confirmTransaction( - txHash, - EventType.ApproveAllAssets, - "Approving all tokens of this type for trading", - async () => { - const result = await approvalAllCheck(); - return result == 1; - } - ); - return txHash; - } catch (error) { - console.error(error); - throw new Error( - "Couldn't get permission to approve these tokens for trading. Their contract might not be implemented correctly. Please contact the developer!" - ); + if (count !== undefined) { + return count; } - } - - // Does not support ApproveAll (ERC721 v1 or v2) - this.logger("Contract does not support Approve All"); + } else if (asset.tokenStandard == TokenStandard.ERC721) { + const contract = new ethers.Contract( + asset.tokenAddress, + ERC721__factory.createInterface(), + this.provider + ); - const approvalOneCheck = async () => { - // Note: approvedAddr will be 'undefined' if not supported - let approvedAddr: string | undefined; try { - approvedAddr = await (tokenContract as ERC721v3Abi).methods - .getApproved(tokenId) - .call(); - if (typeof approvedAddr === "string" && approvedAddr == "0x") { - // Geth compatibility - approvedAddr = undefined; - } - } catch (error) { - console.error(error); - } - - if (approvedAddr == proxyAddress) { - this.logger("Already approved proxy for this token"); - return true; - } - this.logger(`Approve response: ${approvedAddr}`); - - // SPECIAL CASING non-compliant contracts - if (!approvedAddr) { - approvedAddr = await getNonCompliantApprovalAddress( - // @ts-expect-error This is an actual contract instance - tokenContract, - tokenId, - accountAddress - ); - if (approvedAddr == proxyAddress) { - this.logger("Already approved proxy for this item"); - return true; + const owner = await contract.methods.ownerOf(asset.tokenId).call(); + if (owner) { + return owner.toLowerCase() == accountAddress.toLowerCase() + ? BigNumber.from(1) + : BigNumber.from(0); } - this.logger(`Special-case approve response: ${approvedAddr}`); - } - return false; - }; - - const isApprovedForOne = await approvalOneCheck(); - if (isApprovedForOne) { - return null; + // eslint-disable-next-line no-empty + } catch {} + } else { + // Missing ownership call - skip check to allow listings + // by default + throw new Error("Missing ownership schema for this asset type"); } - // Call `approve` - - try { - this._dispatch(EventType.ApproveAsset, { - accountAddress, - proxyAddress, - asset: getWyvernAsset(schema, { tokenId, tokenAddress }), - }); - - const txHash = await sendRawTransaction( - this.web3, - { - from: accountAddress, - to: tokenContract.options.address, - data: (tokenContract as ERC721v3Abi).methods - .approve(proxyAddress, tokenId) - .encodeABI(), - }, - (error) => { - this._dispatch(EventType.TransactionDenied, { - error, - accountAddress, - }); - } - ); - - await this._confirmTransaction( - txHash, - EventType.ApproveAsset, - "Approving single token for trading", - approvalOneCheck - ); - return txHash; - } catch (error) { - console.error(error); - throw new Error( - "Couldn't get permission to approve this token for trading. Its contract might not be implemented correctly. Please contact the developer!" - ); + if (retries <= 0) { + throw new Error("Unable to get current owner from smart contract"); + } else { + await delay(500); + // Recursively check owner again + return await this.getBalance({ accountAddress, asset }, retries - 1); } } /** - * Approve a fungible token (e.g. W-ETH) for use in trades. - * Called internally, but exposed for dev flexibility. - * Checks to see if the minimum amount is already approved, first. - * @param param0 __namedParameters Object - * @param accountAddress The user's wallet address - * @param tokenAddress The contract address of the token being approved - * @param proxyAddress The user's proxy address. If unspecified, uses the Wyvern token transfer proxy address. - * @param minimumAmount The minimum amount needed to skip a transaction. Defaults to the max-integer. - * @returns Transaction hash if a new transaction occurred, otherwise null + * Compute the fees for an order + * @param asset Asset to use for fees. May be blank ONLY for multi-collection bundles. + * @param side The side of the order (buy or sell) */ - public async approveFungibleToken({ - accountAddress, - tokenAddress, - proxyAddress, - minimumAmount = MAX_UINT_256, + public async computeFees({ + asset, }: { - accountAddress: string; - tokenAddress: string; - proxyAddress?: string; - minimumAmount?: BigNumber; - }): Promise { - proxyAddress = - proxyAddress || - this._wyvernConfigOverride?.wyvernTokenTransferProxyContractAddress || - WyvernProtocol.getTokenTransferProxyAddress(this._networkName); - - const approvedAmount = await this._getApprovedTokenCount({ - accountAddress, - tokenAddress, - proxyAddress, - }); + asset?: OpenSeaAsset; + side: OrderSide; + }): Promise { + const openseaBuyerFeeBasisPoints = 0; + let openseaSellerFeeBasisPoints = 0; + const devBuyerFeeBasisPoints = 0; + let devSellerFeeBasisPoints = 0; - if (approvedAmount.isGreaterThanOrEqualTo(minimumAmount)) { - this.logger("Already approved enough currency for trading"); - return null; - } - - this.logger( - `Not enough token approved for trade: ${approvedAmount} approved to transfer ${tokenAddress}` - ); - - this._dispatch(EventType.ApproveCurrency, { - accountAddress, - contractAddress: tokenAddress, - proxyAddress, - }); - - const hasOldApproveMethod = [ENJIN_COIN_ADDRESS, MANA_ADDRESS].includes( - tokenAddress.toLowerCase() - ); - - if (minimumAmount.isGreaterThan(0) && hasOldApproveMethod) { - // Older erc20s require initial approval to be 0 - await this.unapproveFungibleToken({ - accountAddress, - tokenAddress, - proxyAddress, - }); - } - - const txHash = await sendRawTransaction( - this.web3, - { - from: accountAddress, - to: tokenAddress, - data: encodeCall( - getMethod(ERC20, "approve"), - // Always approve maximum amount, to prevent the need for followup - // transactions (and because old ERC20s like MANA/ENJ are non-compliant) - [proxyAddress, MAX_UINT_256.toString()] - ), - }, - (error) => { - this._dispatch(EventType.TransactionDenied, { error, accountAddress }); - } - ); - - await this._confirmTransaction( - txHash, - EventType.ApproveCurrency, - "Approving currency for trading", - async () => { - const newlyApprovedAmount = await this._getApprovedTokenCount({ - accountAddress, - tokenAddress, - proxyAddress, - }); - return newlyApprovedAmount.isGreaterThanOrEqualTo(minimumAmount); - } - ); - return txHash; - } - - /** - * Un-approve a fungible token (e.g. W-ETH) for use in trades. - * Called internally, but exposed for dev flexibility. - * Useful for old ERC20s that require a 0 approval count before - * changing the count - * @param param0 __namedParameters Object - * @param accountAddress The user's wallet address - * @param tokenAddress The contract address of the token being approved - * @param proxyAddress The user's proxy address. If unspecified, uses the Wyvern token transfer proxy address. - * @returns Transaction hash - */ - public async unapproveFungibleToken({ - accountAddress, - tokenAddress, - proxyAddress, - }: { - accountAddress: string; - tokenAddress: string; - proxyAddress?: string; - }): Promise { - proxyAddress = - proxyAddress || - this._wyvernConfigOverride?.wyvernTokenTransferProxyContractAddress || - WyvernProtocol.getTokenTransferProxyAddress(this._networkName); - - const txHash = await sendRawTransaction( - this.web3, - { - from: accountAddress, - to: tokenAddress, - data: encodeCall(getMethod(ERC20, "approve"), [proxyAddress, 0]), - }, - (error) => { - this._dispatch(EventType.TransactionDenied, { error, accountAddress }); - } - ); - - await this._confirmTransaction( - txHash, - EventType.UnapproveCurrency, - "Resetting Currency Approval", - async () => { - const newlyApprovedAmount = await this._getApprovedTokenCount({ - accountAddress, - tokenAddress, - proxyAddress, - }); - return newlyApprovedAmount.isZero(); - } - ); - return txHash; - } - - /** - * Register a domain on the Domain Registry contract. - * @param domain The string domain to be hashed and registered on the Registry. - * @returns Transaction hash - */ - public async setDomain(domain: string): Promise { - const transaction = await this.seaport_v1_5.setDomain(domain).transact(); - - await transaction.wait(); - - return transaction.hash; - } - - /** - * Get the domain for a specific tag at a given index. - * @param tag The tag to look up. - * @param index The index of the domain to return. - * @returns Domain - */ - public async getDomain(tag: string, index: number): Promise { - return this.seaport_v1_5.getDomain(tag, index); - } - - /** - * Get the full array of domains for a specific tag. - * @param tag The tag to look up. - * @returns Array of domains - */ - public async getDomains(tag: string): Promise { - return this.seaport_v1_5.getDomains(tag); - } - - /** - * Get the number of registered domains for a specific tag. - * @param tag The tag to look up. - * @returns Number of registered domains for input tag. - */ - public async getNumberOfDomains(tag: string): Promise { - return new BigNumber(this.seaport_v1_5.getNumberOfDomains(tag).toString()); - } - - /** - * Gets the current price for the order. - */ - public async getCurrentPrice({ - order, - }: { - order: OrderV2; - }): Promise { - return new BigNumber(order.currentPrice); - } - - /** - * Returns whether an order is fulfillable. - * An order may not be fulfillable if a target item's transfer function - * is locked for some reason, e.g. an item is being rented within a game - * or trading has been locked for an item type. - * @param param0 __namedParameters Object - * @param order Order to check - * @param accountAddress The account address that will be fulfilling the order - * @param recipientAddress The optional address to receive the order's item(s) or curriencies. If not specified, defaults to accountAddress. - * @param referrerAddress The optional address that referred the order - */ - public async isOrderFulfillable({ - order, - accountAddress, - }: { - order: OrderV2; - accountAddress: string; - }): Promise { - if (!isValidProtocol(order.protocolAddress)) { - throw new Error("Unsupported protocol"); - } - - try { - const isValid = await this.seaport_v1_5 - .validate([order.protocolData], accountAddress) - .callStatic(); - return !!isValid; - } catch (error) { - if (hasErrorCode(error) && error.code === "CALL_EXCEPTION") { - return false; - } - throw error; - } - } - - /** - * Returns whether an asset is transferrable. - * An asset may not be transferrable if its transfer function - * is locked for some reason, e.g. an item is being rented within a game - * or trading has been locked for an item type. - * @param param0 __namedParameters Object - * @param tokenId DEPRECATED: Token ID. Use `asset` instead. - * @param tokenAddress DEPRECATED: Address of the token's contract. Use `asset` instead. - * @param asset The asset to trade - * @param fromAddress The account address that currently owns the asset - * @param toAddress The account address that will be acquiring the asset - * @param quantity The amount of the asset to transfer, if it's fungible (optional). In units (not base units), e.g. not wei. - * @param useProxy Use the `fromAddress`'s proxy contract only if the `fromAddress` has already approved the asset for sale. Required if checking an ERC-721 v1 asset (like CryptoKitties) that doesn't check if the transferFrom caller is the owner of the asset (only allowing it if it's an approved address). - * @param retries How many times to retry if false - */ - public async isAssetTransferrable( - { - asset, - fromAddress, - toAddress, - quantity, - useProxy = false, - }: { - asset: Asset; - fromAddress: string; - toAddress: string; - quantity?: number | BigNumber; - useProxy?: boolean; - }, - retries = 1 - ): Promise { - const schema = this._getSchema(this._getSchemaName(asset)); - const quantityBN = quantity - ? toBaseUnitAmount(makeBigNumber(quantity), asset.decimals || 0) - : makeBigNumber(1); - const wyAsset = getWyvernAsset(schema, asset, quantityBN); - const abi = schema.functions.transfer(wyAsset); - - let from = fromAddress; - if (useProxy) { - const proxyAddress = await this._getProxy(fromAddress); - if (!proxyAddress) { - console.error( - `This asset's owner (${fromAddress}) does not have a proxy!` - ); - return false; - } - from = proxyAddress; - } - - const data = encodeTransferCall(abi, fromAddress, toAddress); - - try { - const gas = await estimateGas(this._getClientsForRead({ retries }).web3, { - from, - to: abi.target, - data, - }); - return gas > 0; - } catch (error) { - if (retries <= 0) { - console.error(error); - console.error(from, abi.target, data); - return false; - } - await delay(500); - return await this.isAssetTransferrable( - { asset, fromAddress, toAddress, quantity, useProxy }, - retries - 1 - ); - } - } - - /** - * Transfer a fungible or non-fungible asset to another address - * @param param0 __namedParamaters Object - * @param fromAddress The owner's wallet address - * @param toAddress The recipient's wallet address - * @param asset The fungible or non-fungible asset to transfer - * @param quantity The amount of the asset to transfer, if it's fungible (optional). In units (not base units), e.g. not wei. - * @returns Transaction hash - */ - public async transfer({ - fromAddress, - toAddress, - asset, - quantity = 1, - }: { - fromAddress: string; - toAddress: string; - asset: Asset; - quantity?: number | BigNumber; - }): Promise { - const schema = this._getSchema(this._getSchemaName(asset)); - const quantityBN = toBaseUnitAmount( - makeBigNumber(quantity), - asset.decimals || 0 - ); - const wyAsset = getWyvernAsset(schema, asset, quantityBN); - const isCryptoKitties = [CK_ADDRESS].includes(wyAsset.address); - // Since CK is common, infer isOldNFT from it in case user - // didn't pass in `version` - const isOldNFT = - isCryptoKitties || - (!!asset.version && - [TokenStandardVersion.ERC721v1, TokenStandardVersion.ERC721v2].includes( - asset.version - )); - - const abi = - this._getSchemaName(asset) === WyvernSchemaName.ERC20 - ? annotateERC20TransferABI(wyAsset as WyvernFTAsset) - : isOldNFT - ? annotateERC721TransferABI(wyAsset as WyvernNFTAsset) - : schema.functions.transfer(wyAsset); - - this._dispatch(EventType.TransferOne, { - accountAddress: fromAddress, - toAddress, - asset: wyAsset, - }); - - const data = encodeTransferCall(abi, fromAddress, toAddress); - const txHash = await sendRawTransaction( - this.web3, - { - from: fromAddress, - to: abi.target, - data, - }, - (error) => { - this._dispatch(EventType.TransactionDenied, { - error, - accountAddress: fromAddress, - }); - } - ); - - await this._confirmTransaction( - txHash, - EventType.TransferOne, - `Transferring asset` - ); - return txHash; - } - - /** - * Transfer one or more assets to another address. - * ERC-721 and ERC-1155 assets are supported - * @param param0 __namedParamaters Object - * @param assets An array of objects with the tokenId and tokenAddress of each of the assets to transfer. - * @param fromAddress The owner's wallet address - * @param toAddress The recipient's wallet address - * @param schemaName The Wyvern schema name corresponding to the asset type, if not in each Asset definition - * @returns Transaction hash - */ - public async transferAll({ - assets, - fromAddress, - toAddress, - schemaName = WyvernSchemaName.ERC721, - }: { - assets: Asset[]; - fromAddress: string; - toAddress: string; - schemaName?: WyvernSchemaName; - }): Promise { - toAddress = validateAndFormatWalletAddress(this.web3, toAddress); - - const schemaNames = assets.map( - (asset) => this._getSchemaName(asset) || schemaName - ); - const wyAssets = assets.map((asset) => - getWyvernAsset(this._getSchema(this._getSchemaName(asset)), asset) - ); - - const { calldata, target } = encodeAtomicizedTransfer( - schemaNames.map((name) => this._getSchema(name)), - wyAssets, - fromAddress, - toAddress, - this._wyvernProtocol, - this._networkName - ); - - let proxyAddress = await this._getProxy(fromAddress); - if (!proxyAddress) { - proxyAddress = await this._initializeProxy(fromAddress); - } - - await this._approveAll({ - schemaNames, - wyAssets, - accountAddress: fromAddress, - proxyAddress, - }); - - this._dispatch(EventType.TransferAll, { - accountAddress: fromAddress, - toAddress, - assets: wyAssets, - }); - - const txHash = await sendRawTransaction( - this.web3, - { - from: fromAddress, - to: proxyAddress, - data: encodeProxyCall(target, HowToCall.DelegateCall, calldata), - }, - (error) => { - this._dispatch(EventType.TransactionDenied, { - error, - accountAddress: fromAddress, - }); - } - ); - - await this._confirmTransaction( - txHash, - EventType.TransferAll, - `Transferring ${assets.length} asset${assets.length == 1 ? "" : "s"}` - ); - return txHash; - } - - /** - * Get known payment tokens (ERC-20) that match your filters. - * @param param0 __namedParameters Object - * @param symbol Filter by the ERC-20 symbol for the token, - * e.g. "DAI" for Dai stablecoin - * @param address Filter by the ERC-20 contract address for the token, - * e.g. "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359" for Dai - * @param name Filter by the name of the ERC-20 contract. - * Not guaranteed to exist or be unique for each token type. - * e.g. '' for Dai and 'Decentraland' for MANA - * FUTURE: officiallySupported: Filter for tokens that are - * officially supported and shown on opensea.io - */ - public async getFungibleTokens({ - symbol, - address, - name, - }: { symbol?: string; address?: string; name?: string } = {}): Promise< - OpenSeaFungibleToken[] - > { - onDeprecated("Use `api.getPaymentTokens` instead"); - - const tokenSettings = getTokens(this._networkName); - - const { tokens } = await this.api.getPaymentTokens({ - symbol, - address, - name, - }); - - const offlineTokens: OpenSeaFungibleToken[] = [ - tokenSettings.canonicalWrappedEther, - ...tokenSettings.otherTokens, - ].filter((t) => { - if (symbol != null && t.symbol.toLowerCase() != symbol.toLowerCase()) { - return false; - } - if (address != null && t.address.toLowerCase() != address.toLowerCase()) { - return false; - } - if (name != null && t.name != name) { - return false; - } - return true; - }); - - return [...offlineTokens, ...tokens]; - } - - /** - * Get an account's balance of any Asset. - * @param param0 __namedParameters Object - * @param accountAddress Account address to check - * @param asset The Asset to check balance for - * @param retries How many times to retry if balance is 0 - */ - public async getAssetBalance( - { accountAddress, asset }: { accountAddress: string; asset: Asset }, - retries = 1 - ): Promise { - const schema = this._getSchema(this._getSchemaName(asset)); - const wyAsset = getWyvernAsset(schema, asset); - - if (schema.functions.countOf) { - // ERC20 or ERC1155 (non-Enjin) - - const abi = schema.functions.countOf(wyAsset); - const contract = new (this._getClientsForRead({ - retries, - }).web3.eth.Contract)([abi], abi.target); - const inputValues = abi.inputs - .filter((x) => x.value !== undefined) - .map((x) => x.value); - - const count = await contract.methods[abi.name]( - accountAddress, - ...inputValues - ).call(); - - if (count !== undefined) { - return new BigNumber(count); - } - } else if (schema.functions.ownerOf) { - // ERC721 asset - - const abi = schema.functions.ownerOf(wyAsset); - const contract = new (this._getClientsForRead({ - retries, - }).web3.eth.Contract)([abi], abi.target); - - if (abi.inputs.filter((x) => x.value === undefined)[0]) { - throw new Error( - "Missing an argument for finding the owner of this asset" - ); - } - const inputValues = abi.inputs.map((i) => i.value.toString()); - try { - const owner = await contract.methods[abi.name](...inputValues).call(); - if (owner) { - return owner.toLowerCase() == accountAddress.toLowerCase() - ? new BigNumber(1) - : new BigNumber(0); - } - // eslint-disable-next-line no-empty - } catch {} - } else { - // Missing ownership call - skip check to allow listings - // by default - throw new Error("Missing ownership schema for this asset type"); - } - - if (retries <= 0) { - throw new Error("Unable to get current owner from smart contract"); - } else { - await delay(500); - // Recursively check owner again - return await this.getAssetBalance({ accountAddress, asset }, retries - 1); - } - } - - /** - * Get the balance of a fungible token. - * Convenience method for getAssetBalance for fungibles - * @param param0 __namedParameters Object - * @param accountAddress Account address to check - * @param tokenAddress The address of the token to check balance for - * @param schemaName Optional schema name for the fungible token - * @param retries Number of times to retry if balance is undefined - */ - public async getTokenBalance( - { - accountAddress, - tokenAddress, - schemaName = WyvernSchemaName.ERC20, - }: { - accountAddress: string; - tokenAddress: string; - schemaName?: WyvernSchemaName; - }, - retries = 1 - ) { - const asset: Asset = { - tokenId: null, - tokenAddress, - schemaName, - }; - return this.getAssetBalance({ accountAddress, asset }, retries); - } - - /** - * Compute the fees for an order - * @param param0 __namedParameters - * @param asset Asset to use for fees. May be blank ONLY for multi-collection bundles. - * @param side The side of the order (buy or sell) - * @param accountAddress The account to check fees for (useful if fees differ by account, like transfer fees) - */ - public async computeFees({ - asset, - }: { - asset?: OpenSeaAsset; - side: OrderSide; - }): Promise { - const openseaBuyerFeeBasisPoints = 0; - let openseaSellerFeeBasisPoints = 0; - const devBuyerFeeBasisPoints = 0; - let devSellerFeeBasisPoints = 0; - - if (asset) { - const fees = asset.collection.fees; - openseaSellerFeeBasisPoints = +feesToBasisPoints(fees?.openseaFees); - devSellerFeeBasisPoints = +feesToBasisPoints(fees?.sellerFees); + if (asset) { + const fees = asset.collection.fees; + openseaSellerFeeBasisPoints = +feesToBasisPoints(fees?.openseaFees); + devSellerFeeBasisPoints = +feesToBasisPoints(fees?.sellerFees); } return { @@ -2037,156 +883,6 @@ export class OpenSeaSDK { }; } - /** - * DEPRECATED: ERC-1559 - * https://eips.ethereum.org/EIPS/eip-1559 - * Compute the gas price for sending a txn, in wei - * Will be slightly above the mean to make it faster - */ - public async _computeGasPrice(): Promise { - const meanGas = await getCurrentGasPrice(this.web3); - const weiToAdd = this.web3.utils.toWei( - this.gasPriceAddition.toString(), - "gwei" - ); - return meanGas.plus(weiToAdd); - } - - /** - * Compute the gas amount for sending a txn - * Will be slightly above the result of estimateGas to make it more reliable - * @param estimation The result of estimateGas for a transaction - */ - public _correctGasAmount(estimation: number): number { - return Math.ceil(estimation * this.gasIncreaseFactor); - } - - /** - * Get the proxy address for a user's wallet. - * Internal method exposed for dev flexibility. - * @param accountAddress The user's wallet address - * @param retries Optional number of retries to do - * @param wyvernProtocol optional wyvern protocol override - */ - public async _getProxy( - accountAddress: string, - retries = 0 - ): Promise { - let proxyAddress: string | null = - await this._wyvernProtocolReadOnly.wyvernProxyRegistry - .proxies(accountAddress) - .callAsync(); - - if (proxyAddress == "0x") { - throw new Error( - "Couldn't retrieve your account from the blockchain - make sure you're on the correct Ethereum network!" - ); - } - - if (!proxyAddress || proxyAddress == NULL_ADDRESS) { - if (retries > 0) { - await delay(1000); - return await this._getProxy(accountAddress, retries - 1); - } - proxyAddress = null; - } - return proxyAddress; - } - - /** - * Initialize the proxy for a user's wallet. - * Proxies are used to make trades on behalf of the order's maker so that - * trades can happen when the maker isn't online. - * Internal method exposed for dev flexibility. - * @param accountAddress The user's wallet address - * @param wyvernProtocol optional wyvern protocol override - */ - public async _initializeProxy(accountAddress: string): Promise { - this._dispatch(EventType.InitializeAccount, { accountAddress }); - this.logger(`Initializing proxy for account: ${accountAddress}`); - - const txnData = { from: accountAddress }; - const gasEstimate = await this._wyvernProtocol.wyvernProxyRegistry - .registerProxy() - .estimateGasAsync(txnData); - const transactionHash = await this._wyvernProtocol.wyvernProxyRegistry - .registerProxy() - .sendTransactionAsync({ - ...txnData, - gas: this._correctGasAmount(gasEstimate), - }); - - await this._confirmTransaction( - transactionHash, - EventType.InitializeAccount, - "Initializing proxy for account", - async () => { - const polledProxy = await this._getProxy(accountAddress, 0); - return !!polledProxy; - } - ); - - const proxyAddress = await this._getProxy(accountAddress, 10); - if (!proxyAddress) { - throw new Error( - "Failed to initialize your account :( Please restart your wallet/browser and try again!" - ); - } - - return proxyAddress; - } - - /** - * For a fungible token to use in trades (like W-ETH), get the amount - * approved for use by the Wyvern transfer proxy. - * Internal method exposed for dev flexibility. - * @param param0 __namedParameters Object - * @param accountAddress Address for the user's wallet - * @param tokenAddress Address for the token's contract - * @param proxyAddress User's proxy address. If undefined, uses the token transfer proxy address - */ - public async _getApprovedTokenCount({ - accountAddress, - tokenAddress, - proxyAddress, - }: { - accountAddress: string; - tokenAddress?: string; - proxyAddress?: string; - }) { - if (!tokenAddress) { - tokenAddress = getCanonicalWrappedEther(this._networkName).address; - } - const addressToApprove = - proxyAddress || - this._wyvernConfigOverride?.wyvernTokenTransferProxyContractAddress || - WyvernProtocol.getTokenTransferProxyAddress(this._networkName); - const approved = await rawCall(this.web3, { - from: accountAddress, - to: tokenAddress, - data: encodeCall(getMethod(ERC20, "allowance"), [ - accountAddress, - addressToApprove, - ]), - }); - return makeBigNumber(approved); - } - - // For creating email whitelists on order takers - public async _createEmailWhitelistEntry({ - order, - buyerEmail, - }: { - order: UnhashedOrder; - buyerEmail: string; - }) { - const asset = "asset" in order.metadata ? order.metadata.asset : undefined; - if (!asset || !asset.id) { - throw new Error("Whitelisting only available for non-fungible assets."); - } - await this.api.postAssetWhitelist(asset.address, asset.id, buyerEmail); - } - /** * Instead of signing an off-chain order, you can approve an order * with on on-chain transaction using this method @@ -2217,294 +913,6 @@ export class OpenSeaSDK { return transaction.hash; } - public async _approveAll({ - schemaNames, - wyAssets, - accountAddress, - proxyAddress, - }: { - schemaNames: WyvernSchemaName[]; - wyAssets: WyvernAsset[]; - accountAddress: string; - proxyAddress?: string; - }) { - proxyAddress = - proxyAddress || (await this._getProxy(accountAddress, 0)) || undefined; - if (!proxyAddress) { - proxyAddress = await this._initializeProxy(accountAddress); - } - const contractsWithApproveAll: Set = new Set(); - - return Promise.all( - wyAssets.map(async (wyAsset, i) => { - const schemaName = schemaNames[i]; - // Verify that the taker owns the asset - let isOwner; - try { - isOwner = await this._ownsAssetOnChain({ - accountAddress, - proxyAddress, - wyAsset, - schemaName, - }); - } catch (error) { - // let it through for assets we don't support yet - isOwner = true; - } - if (!isOwner) { - const minAmount = "quantity" in wyAsset ? wyAsset.quantity : 1; - console.error( - `Failed on-chain ownership check: ${accountAddress} on ${schemaName}:`, - wyAsset - ); - throw new Error( - `You don't own enough to do that (${minAmount} base units of ${ - wyAsset.address - }${wyAsset.id ? " token " + wyAsset.id : ""})` - ); - } - switch (schemaName) { - case WyvernSchemaName.ERC721: - case WyvernSchemaName.ERC721v3: - case WyvernSchemaName.ERC1155: - case WyvernSchemaName.LegacyEnjin: - case WyvernSchemaName.ENSShortNameAuction: - // Handle NFTs and SFTs - // eslint-disable-next-line no-case-declarations - const wyNFTAsset = wyAsset as WyvernNFTAsset; - return await this.approveSemiOrNonFungibleToken({ - tokenId: wyNFTAsset.id.toString(), - tokenAddress: wyNFTAsset.address, - accountAddress, - proxyAddress, - schemaName, - skipApproveAllIfTokenAddressIn: contractsWithApproveAll, - }); - case WyvernSchemaName.ERC20: - // Handle FTs - // eslint-disable-next-line no-case-declarations - const wyFTAsset = wyAsset as WyvernFTAsset; - if (contractsWithApproveAll.has(wyFTAsset.address)) { - // Return null to indicate no tx occurred - return null; - } - contractsWithApproveAll.add(wyFTAsset.address); - return await this.approveFungibleToken({ - tokenAddress: wyFTAsset.address, - accountAddress, - proxyAddress, - }); - // For other assets, including contracts: - // Send them to the user's proxy - // if (where != WyvernAssetLocation.Proxy) { - // return this.transferOne({ - // schemaName: schema.name, - // asset: wyAsset, - // isWyvernAsset: true, - // fromAddress: accountAddress, - // toAddress: proxy - // }) - // } - // return true - } - }) - ); - } - - /** - * Check if an account, or its proxy, owns an asset on-chain - * @param accountAddress Account address for the wallet - * @param proxyAddress Proxy address for the account - * @param wyAsset asset to check. If fungible, the `quantity` attribute will be the minimum amount to own - * @param schemaName WyvernSchemaName for the asset - */ - public async _ownsAssetOnChain({ - accountAddress, - proxyAddress, - wyAsset, - schemaName, - }: { - accountAddress: string; - proxyAddress?: string | null; - wyAsset: WyvernAsset; - schemaName: WyvernSchemaName; - }): Promise { - const asset: Asset = { - tokenId: wyAsset.id || null, - tokenAddress: wyAsset.address, - schemaName, - }; - - const minAmount = new BigNumber( - "quantity" in wyAsset ? wyAsset.quantity : 1 - ); - - const accountBalance = await this.getAssetBalance({ - accountAddress, - asset, - }); - if (accountBalance.isGreaterThanOrEqualTo(minAmount)) { - return true; - } - - proxyAddress = proxyAddress || (await this._getProxy(accountAddress)); - if (proxyAddress) { - const proxyBalance = await this.getAssetBalance({ - accountAddress: proxyAddress, - asset, - }); - if (proxyBalance.isGreaterThanOrEqualTo(minAmount)) { - return true; - } - } - - return false; - } - - public _getBuyFeeParameters( - totalBuyerFeeBasisPoints: number, - totalSellerFeeBasisPoints: number, - sellOrder?: UnhashedOrder - ) { - this._validateFees(totalBuyerFeeBasisPoints, totalSellerFeeBasisPoints); - - let makerRelayerFee; - let takerRelayerFee; - - if (sellOrder) { - // Use the sell order's fees to ensure compatiblity and force the order - // to only be acceptable by the sell order maker. - // Swap maker/taker depending on whether it's an English auction (taker) - // TODO add extraBountyBasisPoints when making bidder bounties - makerRelayerFee = sellOrder.waitingForBestCounterOrder - ? makeBigNumber(sellOrder.makerRelayerFee) - : makeBigNumber(sellOrder.takerRelayerFee); - takerRelayerFee = sellOrder.waitingForBestCounterOrder - ? makeBigNumber(sellOrder.takerRelayerFee) - : makeBigNumber(sellOrder.makerRelayerFee); - } else { - makerRelayerFee = makeBigNumber(totalBuyerFeeBasisPoints); - takerRelayerFee = makeBigNumber(totalSellerFeeBasisPoints); - } - - return { - makerRelayerFee, - takerRelayerFee, - makerProtocolFee: makeBigNumber(0), - takerProtocolFee: makeBigNumber(0), - makerReferrerFee: makeBigNumber(0), // TODO use buyerBountyBPS - feeRecipient: OPENSEA_LEGACY_FEE_RECIPIENT, - feeMethod: FeeMethod.SplitFee, - }; - } - - /** - * Validate fee parameters - * @param totalBuyerFeeBasisPoints Total buyer fees - * @param totalSellerFeeBasisPoints Total seller fees - */ - private _validateFees( - totalBuyerFeeBasisPoints: number, - totalSellerFeeBasisPoints: number - ) { - const maxFeePercent = INVERSE_BASIS_POINT / 100; - - if ( - totalBuyerFeeBasisPoints > INVERSE_BASIS_POINT || - totalSellerFeeBasisPoints > INVERSE_BASIS_POINT - ) { - throw new Error( - `Invalid buyer/seller fees: must be less than ${maxFeePercent}%` - ); - } - - if (totalBuyerFeeBasisPoints < 0 || totalSellerFeeBasisPoints < 0) { - throw new Error(`Invalid buyer/seller fees: must be at least 0%`); - } - } - - /** - * Get the listing and expiration time parameters for a new order - * @param expirationTimestamp Timestamp to expire the order (in seconds), or 0 for non-expiring - * @param listingTimestamp Timestamp to start the order (in seconds), or undefined to start it now - * @param waitingForBestCounterOrder Whether this order should be hidden until the best match is found - */ - private _getTimeParameters({ - expirationTimestamp = getMaxOrderExpirationTimestamp(), - listingTimestamp, - waitingForBestCounterOrder = false, - isMatchingOrder = false, - }: { - expirationTimestamp?: number; - listingTimestamp?: number; - waitingForBestCounterOrder?: boolean; - isMatchingOrder?: boolean; - }) { - const maxExpirationTimeStamp = getMaxOrderExpirationTimestamp(); - - const minListingTimestamp = Math.round(Date.now() / 1000); - - if (!isMatchingOrder && expirationTimestamp === 0) { - throw new Error("Expiration time cannot be 0"); - } - if (listingTimestamp && listingTimestamp < minListingTimestamp) { - throw new Error("Listing time cannot be in the past."); - } - if (listingTimestamp && listingTimestamp >= expirationTimestamp) { - throw new Error("Listing time must be before the expiration time."); - } - - if (waitingForBestCounterOrder && listingTimestamp) { - throw new Error(`Cannot schedule an English auction for the future.`); - } - if (parseInt(expirationTimestamp.toString()) != expirationTimestamp) { - throw new Error(`Expiration timestamp must be a whole number of seconds`); - } - if (expirationTimestamp > maxExpirationTimeStamp) { - throw new Error("Expiration time must not exceed six months from now"); - } - - if (waitingForBestCounterOrder) { - listingTimestamp = expirationTimestamp; - // Expire one week from now, to ensure server can match it - // Later, this will expire closer to the listingTime - expirationTimestamp = - expirationTimestamp + ORDER_MATCHING_LATENCY_SECONDS; - - // The minimum expiration time has to be at least fifteen minutes from now - const minEnglishAuctionListingTimestamp = - minListingTimestamp + MIN_EXPIRATION_MINUTES * 60; - - if ( - !isMatchingOrder && - listingTimestamp < minEnglishAuctionListingTimestamp - ) { - throw new Error( - `Expiration time must be at least ${MIN_EXPIRATION_MINUTES} minutes from now` - ); - } - } else { - // Small offset to account for latency - listingTimestamp = - listingTimestamp || Math.round(Date.now() / 1000 - 100); - - // The minimum expiration time has to be at least fifteen minutes from now - const minExpirationTimestamp = - listingTimestamp + MIN_EXPIRATION_MINUTES * 60; - - if (!isMatchingOrder && expirationTimestamp < minExpirationTimestamp) { - throw new Error( - `Expiration time must be at least ${MIN_EXPIRATION_MINUTES} minutes from the listing date` - ); - } - } - - return { - listingTime: makeBigNumber(listingTimestamp), - expirationTime: makeBigNumber(expirationTimestamp), - }; - } - /** * Compute the `basePrice` and `extra` parameters to be used to price an order. * Also validates the expiration time and auction type. @@ -2513,31 +921,59 @@ export class OpenSeaSDK { * @param expirationTime When the auction expires, or 0 if never. * @param startAmount The base value for the order, in the token's main units (e.g. ETH instead of wei) * @param endAmount The end value for the order, in the token's main units (e.g. ETH instead of wei). If unspecified, the order's `extra` attribute will be 0 + * @param waitingForBestCounterOrder + * @param englishAuctionReservePrice */ private async _getPriceParameters( orderSide: OrderSide, tokenAddress: string, - expirationTime: BigNumber, - startAmount: BigNumber, - endAmount?: BigNumber, + expirationTime: BigNumberish, + startAmount: BigNumberish, + endAmount?: BigNumberish, waitingForBestCounterOrder = false, - englishAuctionReservePrice?: BigNumber + englishAuctionReservePrice?: BigNumberish ) { - const priceDiff = - endAmount != null ? startAmount.minus(endAmount) : new BigNumber(0); - const paymentToken = tokenAddress.toLowerCase(); - const isEther = tokenAddress == NULL_ADDRESS; - const { tokens } = await this.api.getPaymentTokens({ - address: paymentToken, - }); - const token = tokens[0]; + const isEther = tokenAddress === ethers.constants.AddressZero; + let paymentToken; + if (!isEther) { + const { tokens } = await this.api.getPaymentTokens({ + address: tokenAddress.toLowerCase(), + }); + paymentToken = tokens[0]; + } + const decimals = paymentToken?.decimals ?? 18; + + const startAmountWei = ethers.utils.parseUnits( + FixedNumber.from(startAmount).toString(), + decimals + ); + const endAmountWei = endAmount + ? ethers.utils.parseUnits( + FixedNumber.from(endAmount).toString(), + decimals + ) + : undefined; + const priceDiffWei = + endAmountWei !== undefined + ? startAmountWei.sub(endAmountWei) + : BigNumber.from(0); + + const basePrice = startAmountWei; + const endPrice = endAmountWei; + const extra = priceDiffWei; + const reservePrice = englishAuctionReservePrice + ? ethers.utils.parseUnits( + FixedNumber.from(startAmount).toString(), + decimals + ) + : undefined; // Validation - if (startAmount.isNaN() || startAmount == null || startAmount.lt(0)) { + if (startAmount == null || startAmountWei.lt(0)) { throw new Error(`Starting price must be a number >= 0`); } - if (!isEther && !token) { - throw new Error(`No ERC-20 token found for '${paymentToken}'`); + if (!isEther && !paymentToken) { + throw new Error(`No ERC-20 token found for ${tokenAddress}`); } if (isEther && waitingForBestCounterOrder) { throw new Error( @@ -2547,151 +983,45 @@ export class OpenSeaSDK { if (isEther && orderSide === OrderSide.Buy) { throw new Error(`Offers must use wrapped ETH or an ERC-20 token.`); } - if (priceDiff.lt(0)) { + if (priceDiffWei.lt(0)) { throw new Error( "End price must be less than or equal to the start price." ); } - if (priceDiff.gt(0) && expirationTime.eq(0)) { + if (priceDiffWei.gt(0) && BigNumber.from(expirationTime).isZero()) { throw new Error( "Expiration time must be set if order will change in price." ); } - if ( - englishAuctionReservePrice && - !englishAuctionReservePrice.isZero() && - !waitingForBestCounterOrder - ) { + const reservePriceIsDefinedAndNonZero = + reservePrice && !reservePrice.isZero(); + if (reservePriceIsDefinedAndNonZero && !waitingForBestCounterOrder) { throw new Error("Reserve prices may only be set on English auctions."); } - if ( - englishAuctionReservePrice && - !englishAuctionReservePrice.isZero() && - englishAuctionReservePrice < startAmount - ) { + if (reservePriceIsDefinedAndNonZero && reservePrice?.lt(startAmountWei)) { throw new Error( "Reserve price must be greater than or equal to the start amount." ); } - // Note: toBaseUnitAmount(makeBigNumber(startAmount), token.decimals) - // will fail if too many decimal places, so special-case ether - const basePrice = isEther - ? makeBigNumber( - this.web3.utils.toWei(startAmount.toString(), "ether") - ).integerValue() - : toBaseUnitAmount(startAmount, token.decimals); - - const endPrice = endAmount - ? isEther - ? makeBigNumber( - this.web3.utils.toWei(endAmount.toString(), "ether") - ).integerValue() - : toBaseUnitAmount(endAmount, token.decimals) - : undefined; - - const extra = isEther - ? makeBigNumber( - this.web3.utils.toWei(priceDiff.toString(), "ether") - ).integerValue() - : toBaseUnitAmount(priceDiff, token.decimals); - - const reservePrice = englishAuctionReservePrice - ? isEther - ? makeBigNumber( - this.web3.utils.toWei( - englishAuctionReservePrice.toString(), - "ether" - ) - ).integerValue() - : toBaseUnitAmount(englishAuctionReservePrice, token.decimals) - : undefined; - return { basePrice, extra, paymentToken, reservePrice, endPrice }; } - private _getSchemaName(asset: Asset | OpenSeaAsset) { - if (asset.schemaName) { - return asset.schemaName; - } else if ("assetContract" in asset) { - return asset.assetContract.schemaName; - } - - return undefined; - } - - private _getSchema(schemaName?: WyvernSchemaName): Schema { - const schemaName_ = schemaName || WyvernSchemaName.ERC721; - - const schema = schemas[this._networkName].filter( - (s) => s.name == schemaName_ - )[0]; - - if (!schema) { - throw new Error( - `Trading for this asset (${schemaName_}) is not yet supported. Please contact us or check back later!` - ); - } - return schema; - } - private _dispatch(event: EventType, data: EventData) { this._emitter.emit(event, data); } - /** - * Get the clients to use for a read call - * @param retries current retry value - * @param wyvernProtocol optional wyvern protocol to use, has default - * @param wyvernProtocol optional readonly wyvern protocol to use, has default - */ - private _getClientsForRead({ retries }: { retries: number }): { - web3: Web3; - } { - if (retries > 0) { - // Use injected provider by default - return { - web3: this.web3, - }; - } else { - // Use provided provider as fallback - return { - web3: this.web3ReadOnly, - }; - } - } - private async _confirmTransaction( transactionHash: string, event: EventType, - description: string, - testForSuccess?: () => Promise + description: string ): Promise { const transactionEventData = { transactionHash, event }; this.logger(`Transaction started: ${description}`); - if (transactionHash == NULL_BLOCK_HASH) { - // This was a smart contract wallet that doesn't know the transaction - this._dispatch(EventType.TransactionCreated, { event }); - - if (!testForSuccess) { - // Wait if test not implemented - this.logger(`Unknown action, waiting 1 minute: ${description}`); - await delay(60 * 1000); - return; - } - - return await this._pollCallbackForConfirmation( - event, - description, - testForSuccess - ); - } - - // Normal wallet try { this._dispatch(EventType.TransactionCreated, transactionEventData); - await confirmTransaction(this.web3, transactionHash); + await this.provider.waitForTransaction(transactionHash); this.logger(`Transaction succeeded: ${description}`); this._dispatch(EventType.TransactionConfirmed, transactionEventData); } catch (error) { @@ -2703,82 +1033,4 @@ export class OpenSeaSDK { throw error; } } - - private async _pollCallbackForConfirmation( - event: EventType, - description: string, - testForSuccess: () => Promise - ): Promise { - return new Promise((resolve, reject) => { - const initialRetries = 60; - - const testResolve: (r: number) => Promise = async (retries) => { - const wasSuccessful = await testForSuccess(); - if (wasSuccessful) { - this.logger(`Transaction succeeded: ${description}`); - this._dispatch(EventType.TransactionConfirmed, { event }); - return resolve(); - } else if (retries <= 0) { - return reject(); - } - - if (retries % 10 == 0) { - this.logger( - `Tested transaction ${ - initialRetries - retries + 1 - } times: ${description}` - ); - } - await delay(5000); - return testResolve(retries - 1); - }; - - return testResolve(initialRetries); - }); - } - - /** - * Returns whether or not an authenticated proxy is revoked for a specific account address - * @param accountAddress - * @returns - */ - public async isAuthenticatedProxyRevoked( - accountAddress: string - ): Promise { - const proxy = await this._wyvernProtocol.getAuthenticatedProxy( - accountAddress - ); - - return proxy.revoked().callAsync(); - } - - /** - * Revokes an authenticated proxy's access i.e. for freezing listings - * @param accountAddress - * @returns transaction hash - */ - public async revokeAuthenticatedProxyAccess( - accountAddress: string - ): Promise { - const proxy = await this._wyvernProtocol.getAuthenticatedProxy( - accountAddress - ); - return proxy.setRevoke(true).sendTransactionAsync({ from: accountAddress }); - } - - /** - * Unrevokes an authenticated proxy's access i.e. for unfreezing listings - * @param accountAddress - * @returns transaction hash - */ - public async unrevokeAuthenticatedProxyAccess( - accountAddress: string - ): Promise { - const proxy = await this._wyvernProtocol.getAuthenticatedProxy( - accountAddress - ); - return proxy.setRevoke(false).sendTransactionAsync({ - from: accountAddress, - }); - } } diff --git a/src/types.ts b/src/types.ts index b9f8e183f..8dc1e5949 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,6 +1,5 @@ /* eslint-disable import/no-unused-modules */ -import BigNumber from "bignumber.js"; -import { AbiItem } from "web3-utils"; +import { BigNumber, BigNumberish } from "ethers"; import type { OrderV2 } from "./orders/types"; /** @@ -8,7 +7,7 @@ import type { OrderV2 } from "./orders/types"; * 1. Transaction events, which tell you when a new transaction was * created, confirmed, denied, or failed. * 2. pre-transaction events, which are named (like "WrapEth") and indicate - * that Web3 is asking for a signature on a transaction that needs to occur before + * that ethers is asking for a signature on a transaction that needs to occur before * an order is made or fulfilled. This includes approval events and account * initialization. * 3. Basic actions: matching, cancelling, and creating orders. @@ -60,11 +59,10 @@ export enum EventType { export interface EventData { accountAddress?: string; toAddress?: string; - proxyAddress?: string; - amount?: BigNumber; + amount?: BigNumberish; contractAddress?: string; - assets?: WyvernAsset[]; - asset?: WyvernAsset; + assets?: AssetType[]; + asset?: AssetType; transactionHash?: string; event?: EventType; @@ -74,44 +72,25 @@ export interface EventData { orderV2?: OrderV2; buy?: Order; sell?: Order; - matchMetadata?: string; } /** * OpenSea API configuration object * @param apiKey Optional key to use for API - * @param networkName `Network` type to use. Defaults to `Network.Main` (mainnet) - * @param gasPrice Default gas price to send to the Wyvern Protocol + * @param chain `Chain` type to use. Defaults to `Chain.Mainnet` (mainnet) * @param apiBaseUrl Optional base URL to use for the API */ export interface OpenSeaAPIConfig { - networkName?: Network; + chain?: Chain; apiKey?: string; apiBaseUrl?: string; - useReadOnlyProvider?: boolean; - // Sent to WyvernJS - gasPrice?: BigNumber; - - wyvernConfig?: WyvernConfig; } -export enum Network { - Main = "main", +export enum Chain { + Mainnet = "main", Goerli = "goerli", - Rinkeby = "rinkeby", } -export type WyvernConfig = { - network: Network; - gasPrice?: BigNumber; - wyvernExchangeContractAddress?: string; - wyvernProxyRegistryContractAddress?: string; - wyvernDAOContractAddress?: string; - wyvernTokenContractAddress?: string; - wyvernAtomicizerContractAddress?: string; - wyvernTokenTransferProxyContractAddress?: string; -}; - /** * Seaport order side: buy or sell. */ @@ -121,7 +100,7 @@ export enum OrderSide { } /** - * Wyvern fee method + * Fee method * ProtocolFee: Charge maker fee to seller and charge taker fee to buyer. * SplitFee: Maker fees are deducted from the token amount that the maker receives. Taker fees are extra tokens that must be paid by the taker. */ @@ -131,9 +110,7 @@ export enum FeeMethod { } /** - * Wyvern: type of sale. Fixed or Dutch auction - * Note: not imported from wyvern.js because it uses - * EnglishAuction as 1 and DutchAuction as 2 + * Type of sale. */ export enum SaleKind { FixedPrice = 0, @@ -151,36 +128,13 @@ export enum AssetContractType { Unknown = "unknown", } -// Wyvern Schemas (see https://github.com/ProjectOpenSea/wyvern-schemas) -export enum WyvernSchemaName { +/** + * Token standards + */ +export enum TokenStandard { ERC20 = "ERC20", ERC721 = "ERC721", - ERC721v3 = "ERC721v3", ERC1155 = "ERC1155", - LegacyEnjin = "Enjin", - ENSShortNameAuction = "ENSShortNameAuction", - // CryptoPunks = 'CryptoPunks' -} - -/** - * The NFT version that this contract uses. - * ERC721 versions are: - * 1.0: CryptoKitties and early 721s, which lack approve-all and - * have problems calling `transferFrom` from the owner's account. - * 2.0: CryptoSaga and others that lack `transferFrom` and have - * `takeOwnership` instead - * 3.0: The current OpenZeppelin standard: - * https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/token/ERC721/ERC721.sol - * Special cases: - * locked: When the transfer function has been locked by the dev - */ -export enum TokenStandardVersion { - Unsupported = "unsupported", - Locked = "locked", - Enjin = "1155-1.0", - ERC721v1 = "1.0", - ERC721v2 = "2.0", - ERC721v3 = "3.0", } /** @@ -205,40 +159,26 @@ export interface Fees { sellerFees: Map; } -export interface WyvernNFTAsset { +export interface NFTAsset { id: string; address: string; } -export interface WyvernFTAsset { +export interface FungibleAsset { id?: string; address: string; quantity: string; } -export type WyvernAsset = WyvernNFTAsset | WyvernFTAsset; +export type AssetType = NFTAsset | FungibleAsset; -// Abstractions over Wyvern assets for bundles -export interface WyvernBundle { - assets: WyvernAsset[]; - schemas: WyvernSchemaName[]; +// Abstractions over assets for bundles +export interface Bundle { + assets: AssetType[]; + standards: TokenStandard[]; name?: string; description?: string; external_link?: string; } -export type WyvernAtomicMatchParameters = [ - string[], - BigNumber[], - Array, - string, - string, - string, - string, - string, - string, - Array, - string[] -]; - /** * The OpenSea account object appended to orders, providing extra metadata, profile images and usernames */ @@ -268,10 +208,8 @@ export interface Asset { tokenId: string | null; // The asset's contract address tokenAddress: string; - // The Wyvern schema name (e.g. "ERC721") for this asset - schemaName?: WyvernSchemaName; - // The token standard version of this asset - version?: TokenStandardVersion; + // The token standard (e.g. "ERC721") for this asset + tokenStandard?: TokenStandard; // Optional for ENS names name?: string; // Optional for fungible items @@ -288,8 +226,8 @@ export interface OpenSeaAssetContract extends OpenSeaFees { address: string; // Type of token (fungible/NFT) type: AssetContractType; - // Wyvern Schema Name for this contract - schemaName: WyvernSchemaName; + // Token Standard for this contract + tokenStandard: TokenStandard; // Total fee levied on sellers by this contract, in basis points sellerFeeBasisPoints: number; @@ -467,12 +405,6 @@ export interface OpenSeaAsset extends Asset { description: string; // Owner of the asset owner: OpenSeaAccount; - // Orders on the asset. Null if asset was fetched in a list - orders: Order[] | null; - // Buy orders (offers) on the asset. Null if asset in a list and didn't prefetch buy orders - buyOrders: Order[] | null; - // Sell orders (auctions) on the asset. Null if asset in a list and didn't prefetch sell orders - sellOrders: Order[] | null; // Whether the asset is on a pre-sale (so token ids aren't real) isPresale: boolean; @@ -607,10 +539,6 @@ export interface OpenSeaAssetBundle { name: string; slug: string; permalink: string; - - // Sell orders (auctions) on the bundle. Null if bundle in a list and didn't prefetch sell orders - sellOrders: Order[] | null; - assetContract?: OpenSeaAssetContract; description?: string; externalLink?: string; @@ -663,13 +591,13 @@ export interface ComputedFees extends OpenSeaFees { } interface ExchangeMetadataForAsset { - asset: WyvernAsset; - schema: WyvernSchemaName; + asset: AssetType; + schema: TokenStandard; referrerAddress?: string; } interface ExchangeMetadataForBundle { - bundle: WyvernBundle; + bundle: Bundle; referrerAddress?: string; } @@ -677,7 +605,15 @@ export type ExchangeMetadata = | ExchangeMetadataForAsset | ExchangeMetadataForBundle; -export interface UnhashedOrder { +export enum HowToCall { + Call = 0, + DelegateCall = 1, + StaticCall = 2, + Create = 3, +} + +export interface UnsignedOrder { + hash?: string; exchange: string; maker: string; taker: string; @@ -712,17 +648,6 @@ export interface UnhashedOrder { metadata: ExchangeMetadata; } -export enum HowToCall { - Call = 0, - DelegateCall = 1, - StaticCall = 2, - Create = 3, -} - -export interface UnsignedOrder extends UnhashedOrder { - hash?: string; -} - export interface ECSignature { v: number; r: string; @@ -755,7 +680,7 @@ export interface Order extends UnsignedOrder, Partial { * list of API query parameters and documentation. */ export interface OrderJSON extends Partial { - // Base wyvern fields + // Base fields exchange: string; maker: string; taker: string; @@ -791,45 +716,6 @@ export interface OrderJSON extends Partial { nonce?: number; } -export type RawWyvernOrderJSON = Omit< - OrderJSON, - | "makerReferrerFee" - | "quantity" - | "englishAuctionReservePrice" - | "createdTime" - | "metadata" - | "hash" - | "v" - | "r" - | "s" ->; - -/** - * Query interface for Orders - * Includes `maker`, `taker` and `side` from above - * See https://docs.opensea.io/reference#retrieving-orders for - * full docs. - */ -export interface OrderQuery extends Partial { - owner?: string; - sale_kind?: SaleKind; - side?: OrderSide; - asset_contract_address?: string; - payment_token_address?: string; - is_english?: boolean; - is_expired?: boolean; - bundled?: boolean; - include_invalid?: boolean; - token_id?: number | string; - token_ids?: Array; - // This means listing_time > value in seconds - listed_after?: number | string; - // This means listing_time <= value in seconds - listed_before?: number | string; - limit?: number; - offset?: number; -} - /** * Query interface for Assets */ @@ -854,78 +740,3 @@ export interface OpenSeaFungibleTokenQuery // Typescript bug requires this duplication symbol?: string; } - -export interface OrderbookResponse { - orders: OrderJSON[]; - count: number; -} - -// Types related to Web3 -export type Web3Callback = (err: Error | null, result: T) => void; -export type TxnCallback = (result: boolean) => void; - -export type PartialReadonlyContractAbi = AbiItem[]; - -// Types extracted from wyvern-js: https://github.com/ProjectOpenSea/wyvern-js#7429b1f2dd123f012cae1f3144a069e91ecd0682 -export interface AnnotatedFunctionABI { - type: AbiType; - name: string; - target: string; - inputs: AnnotatedFunctionInput[]; - outputs: AnnotatedFunctionOutput[]; - constant: boolean; - stateMutability: StateMutability; - payable: boolean; -} - -export enum AbiType { - Function = "function", - Constructor = "constructor", - Event = "event", - Fallback = "fallback", -} - -export interface AnnotatedFunctionInput { - name: string; - type: string; - kind: FunctionInputKind; - value?: any; // eslint-disable-line @typescript-eslint/no-explicit-any -} - -export interface AnnotatedFunctionOutput { - name: string; - type: string; - kind: FunctionOutputKind; -} - -export enum FunctionInputKind { - Replaceable = "replaceable", - Asset = "asset", - Owner = "owner", - Index = "index", - Count = "count", - Data = "data", -} - -export enum FunctionOutputKind { - Owner = "owner", - Asset = "asset", - Count = "count", - Other = "other", -} - -export enum StateMutability { - Pure = "pure", - View = "view", - Payable = "payable", - Nonpayable = "nonpayable", -} - -export enum SolidityTypes { - Address = "address", - Uint256 = "uint256", - Uint8 = "uint8", - Uint = "uint", - Bytes = "bytes", - String = "string", -} diff --git a/src/utils/assert.ts b/src/utils/assert.ts deleted file mode 100644 index c81c84dba..000000000 --- a/src/utils/assert.ts +++ /dev/null @@ -1,103 +0,0 @@ -/* Sourced from 0x.js */ - -import { assert as sharedAssert } from "@0x/assert"; -// We need those two unused imports because they're actually used by sharedAssert which gets injected here -// eslint-disable-next-line @typescript-eslint/no-unused-vars -import { schemas } from "@0x/json-schemas"; -// eslint-disable-next-line @typescript-eslint/no-unused-vars -import { BigNumber } from "@0x/utils"; -import { Web3Wrapper } from "@0x/web3-wrapper"; -import * as ethUtil from "ethereumjs-util"; -import * as _ from "lodash"; -import { ECSignature } from "../types"; - -/* Sourced from: https://github.com/ProjectOpenSea/wyvern-js/blob/master/src/utils/assert.ts */ -export const assert = { - ...sharedAssert, - isValidSignature( - orderHash: string, - ecSignature: ECSignature, - signerAddress: string - ) { - const isValidSignature = signatureUtils.isValidSignature( - orderHash, - ecSignature, - signerAddress - ); - this.assert( - isValidSignature, - `Expected order with hash '${orderHash}' to have a valid signature` - ); - }, - async isSenderAddressAsync( - variableName: string, - senderAddressHex: string, - web3Wrapper: Web3Wrapper - ): Promise { - sharedAssert.isETHAddressHex(variableName, senderAddressHex); - const isSenderAddressAvailable = - await web3Wrapper.isSenderAddressAvailableAsync(senderAddressHex); - sharedAssert.assert( - isSenderAddressAvailable, - `Specified ${variableName} ${senderAddressHex} isn't available through the supplied web3 provider` - ); - }, - async isUserAddressAvailableAsync(web3Wrapper: Web3Wrapper): Promise { - const availableAddresses = await web3Wrapper.getAvailableAddressesAsync(); - this.assert( - !_.isEmpty(availableAddresses), - "No addresses were available on the provided web3 provider" - ); - }, -}; - -/* Sourced from https://github.com/ProjectOpenSea/wyvern-js/blob/master/src/utils/signature_utils.ts */ -const signatureUtils = { - isValidSignature( - data: string, - signature: ECSignature, - signerAddress: string - ): boolean { - const dataBuff = ethUtil.toBuffer(data); - // const msgHashBuff = ethUtil.hashPersonalMessage(dataBuff); - const msgHashBuff = dataBuff; - try { - const pubKey = ethUtil.ecrecover( - msgHashBuff, - signature.v, - ethUtil.toBuffer(signature.r), - ethUtil.toBuffer(signature.s) - ); - const retrievedAddress = ethUtil.bufferToHex( - ethUtil.pubToAddress(pubKey) - ); - return retrievedAddress === signerAddress; - } catch (err) { - return false; - } - }, - parseSignatureHexAsVRS(signatureHex: string): ECSignature { - const signatureBuffer = ethUtil.toBuffer(signatureHex); - let v = +ethUtil.bufferToHex(signatureBuffer.slice(0, 1)); - if (v < 27) { - v += 27; - } - const r = signatureBuffer.slice(1, 33); - const s = signatureBuffer.slice(33, 65); - const ecSignature: ECSignature = { - v, - r: ethUtil.bufferToHex(r), - s: ethUtil.bufferToHex(s), - }; - return ecSignature; - }, - parseSignatureHexAsRSV(signatureHex: string): ECSignature { - const { v, r, s } = ethUtil.fromRpcSig(signatureHex); - const ecSignature: ECSignature = { - v, - r: ethUtil.bufferToHex(r), - s: ethUtil.bufferToHex(s), - }; - return ecSignature; - }, -}; diff --git a/src/utils/index.ts b/src/utils/index.ts index 81e3b5354..178cd64f8 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,2 +1 @@ -export * from "./schemas/schema"; export * from "./utils"; diff --git a/src/utils/schemas/ContractRole/index.ts b/src/utils/schemas/ContractRole/index.ts deleted file mode 100644 index 057f21bf0..000000000 --- a/src/utils/schemas/ContractRole/index.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { Schema } from "../schema"; -import { - AbiType, - FunctionInputKind, - FunctionOutputKind, - StateMutability, -} from "../types"; - -interface ContractRoleType { - roleGetter: string; - roleSetter: string; - address: string; - name?: string; - description?: string; -} - -export const ContractRoleSchema: Schema = { - version: 1, - deploymentBlock: 0, // Not indexed (for now; need asset-specific indexing strategy) - name: "ContractRole", - description: "Transferrable role on a smart contract.", - thumbnail: - "https://i.redditmedia.com/NaFzmSbDX2T2RALMxy2tmGJN_gPVNH9lJggCKUDDqcc.jpg?w=320&s=3913239508209aaf6ba1188fe3d3b5fc", - website: - "https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/ownership/Ownable.sol", - fields: [ - { name: "Name", type: "string", description: "Contract Name" }, - { - name: "Description", - type: "string", - description: "Contract Description", - }, - { name: "Address", type: "address", description: "Contract Address" }, - { - name: "RoleGetter", - type: "string", - description: - "Name of method to get value of role. Should take no arguments.", - }, - { - name: "RoleSetter", - type: "string", - description: - "Name of method to set value of role. Should take one argument, an address.", - }, - ], - // eslint-disable-next-line @typescript-eslint/no-explicit-any - assetFromFields: (fields: any) => ({ - name: fields.Name, - address: fields.Address, - description: fields.Description, - roleGetter: fields.RoleGetter, - roleSetter: fields.RoleSetter, - }), - formatter: async (asset) => { - return { - thumbnail: - "https://i.redditmedia.com/NaFzmSbDX2T2RALMxy2tmGJN_gPVNH9lJggCKUDDqcc.jpg?w=320&s=3913239508209aaf6ba1188fe3d3b5fc", - title: `Smart Contract Role: ${asset.roleGetter} for ${asset.name}`, - description: - asset.description || - `${asset.roleGetter} for smart contract at ${asset.address}`, - url: "https://etherscan.io/address/" + asset.address, - properties: [], - }; - }, - functions: { - transfer: (asset) => ({ - type: AbiType.Function, - name: asset.roleSetter, - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: asset.address, - inputs: [ - { - kind: FunctionInputKind.Replaceable, - name: "newOwner", - type: "address", - }, - ], - outputs: [], - }), - ownerOf: (asset) => ({ - type: AbiType.Function, - name: asset.roleGetter, - payable: false, - constant: true, - stateMutability: StateMutability.View, - target: asset.address, - inputs: [], - outputs: [ - { kind: FunctionOutputKind.Owner, name: "owner", type: "address" }, - ], - }), - assetsOfOwnerByIndex: [], - }, - events: { - transfer: [], - }, - hash: (a) => a.address, -}; diff --git a/src/utils/schemas/ERC1155/index.ts b/src/utils/schemas/ERC1155/index.ts deleted file mode 100644 index 863c0cd58..000000000 --- a/src/utils/schemas/ERC1155/index.ts +++ /dev/null @@ -1,150 +0,0 @@ -import { Schema } from "../schema"; -import { - AbiType, - StateMutability, - FunctionInputKind, - FunctionOutputKind, -} from "../types"; - -export interface SemiFungibleTradeType { - id: string; - address: string; - quantity: string; -} - -export const ERC1155Schema: Schema = { - version: 1, - deploymentBlock: 0, // Not indexed (for now; need asset-specific indexing strategy) - name: "ERC1155", - description: "Items conforming to the ERC1155 spec, using transferFrom.", - thumbnail: "https://opensea.io/static/images/opensea-icon.png", - website: "https://github.com/ethereum/eips/issues/1155", - fields: [ - { name: "ID", type: "uint256", description: "Asset Token ID" }, - { name: "Address", type: "address", description: "Asset Contract Address" }, - { name: "Quantity", type: "uint256", description: "Quantity to transfer" }, - ], - // eslint-disable-next-line @typescript-eslint/no-explicit-any - assetFromFields: (fields: any) => ({ - id: fields.ID, - address: fields.Address, - quantity: fields.Quantity, - }), - assetToFields: (asset) => ({ - ID: asset.id, - Address: asset.address, - Quantity: asset.quantity, - }), - formatter: async (asset) => { - return { - title: "ERC1155 Asset: Token ID " + asset.id + " at " + asset.address, - description: "Trading " + asset.quantity.toString(), - url: "", - thumbnail: "", - properties: [], - }; - }, - functions: { - transfer: (asset) => ({ - type: AbiType.Function, - name: "safeTransferFrom", - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: asset.address, - inputs: [ - { kind: FunctionInputKind.Owner, name: "_from", type: "address" }, - { kind: FunctionInputKind.Replaceable, name: "_to", type: "address" }, - { - kind: FunctionInputKind.Asset, - name: "_id", - type: "uint256", - value: asset.id, - }, - { - kind: FunctionInputKind.Count, - name: "_value", - type: "uint256", - value: asset.quantity, - }, - { - kind: FunctionInputKind.Data, - name: "_data", - type: "bytes", - value: "", - }, - ], - outputs: [], - }), - checkAndTransfer: (asset, validatorAddress, merkle) => ({ - type: AbiType.Function, - name: "matchERC1155UsingCriteria", - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: validatorAddress, - inputs: [ - { kind: FunctionInputKind.Owner, name: "from", type: "address" }, - { kind: FunctionInputKind.Replaceable, name: "to", type: "address" }, - { - kind: FunctionInputKind.Asset, - name: "token", - type: "address", - value: asset.address, - }, - { - kind: FunctionInputKind.Asset, - name: "tokenId", - type: "uint256", - value: asset.id, - }, - { - kind: FunctionInputKind.Count, - name: "amount", - type: "uint256", - value: asset.quantity, - }, - { - kind: FunctionInputKind.Data, - name: "root", - type: "bytes32", - value: merkle ? merkle.root : "", - }, - { - kind: FunctionInputKind.Data, - name: "proof", - type: "bytes32[]", - value: merkle ? merkle.proof : "[]", - }, - ], - outputs: [], - }), - countOf: (asset) => ({ - type: AbiType.Function, - name: "balanceOf", - payable: false, - constant: true, - stateMutability: StateMutability.View, - target: asset.address, - inputs: [ - { kind: FunctionInputKind.Owner, name: "_owner", type: "address" }, - { - kind: FunctionInputKind.Asset, - name: "_id", - type: "uint256", - value: asset.id, - }, - ], - outputs: [ - { kind: FunctionOutputKind.Count, name: "balance", type: "uint" }, - ], - // eslint-disable-next-line @typescript-eslint/no-explicit-any - assetFromOutputs: (outputs: any) => outputs.balance, - }), - assetsOfOwnerByIndex: [], - }, - events: { - transfer: [], - }, - hash: (asset) => asset.address + "-" + asset.id, -}; diff --git a/src/utils/schemas/ERC20/index.ts b/src/utils/schemas/ERC20/index.ts deleted file mode 100644 index 98b1e47d7..000000000 --- a/src/utils/schemas/ERC20/index.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { Schema } from "../schema"; -import { - AbiType, - StateMutability, - FunctionInputKind, - FunctionOutputKind, -} from "../types"; - -interface FungibleTradeType { - address: string; - quantity: string; -} - -export const ERC20Schema: Schema = { - version: 1, - deploymentBlock: 0, // Not indexed (for now; need asset-specific indexing strategy) - name: "ERC20", - description: "Items conforming to the ERC20 spec, using transferFrom.", - thumbnail: "https://opensea.io/static/images/opensea-icon.png", - website: "https://github.com/ethereum/eips/issues/20", - fields: [ - { name: "Address", type: "address", description: "Asset Contract Address" }, - { name: "Quantity", type: "uint256", description: "Quantity to transfer" }, - ], - // eslint-disable-next-line @typescript-eslint/no-explicit-any - assetFromFields: (fields: any) => ({ - address: fields.Address, - quantity: fields.Quantity, - }), - assetToFields: (asset) => ({ - Address: asset.address, - Quantity: asset.quantity, - }), - formatter: async (asset) => { - return { - title: "ERC20 Asset at " + asset.address, - description: "Trading " + asset.quantity.toString(), - url: "", - thumbnail: "", - properties: [], - }; - }, - functions: { - transfer: (asset) => ({ - type: AbiType.Function, - name: "transferFrom", - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: asset.address, - inputs: [ - { kind: FunctionInputKind.Owner, name: "_from", type: "address" }, - { kind: FunctionInputKind.Replaceable, name: "_to", type: "address" }, - { - kind: FunctionInputKind.Count, - name: "_value", - type: "uint256", - value: asset.quantity, - }, - ], - outputs: [], - }), - countOf: (asset) => ({ - type: AbiType.Function, - name: "balanceOf", - payable: false, - constant: true, - stateMutability: StateMutability.View, - target: asset.address, - inputs: [ - { kind: FunctionInputKind.Owner, name: "_owner", type: "address" }, - ], - outputs: [ - { kind: FunctionOutputKind.Count, name: "balance", type: "uint" }, - ], - // eslint-disable-next-line @typescript-eslint/no-explicit-any - assetFromOutputs: (outputs: any) => outputs.balance, - }), - assetsOfOwnerByIndex: [], - }, - events: { - transfer: [], - }, - hash: (asset) => asset.address, -}; diff --git a/src/utils/schemas/ERC721/index.ts b/src/utils/schemas/ERC721/index.ts deleted file mode 100644 index 2449d0852..000000000 --- a/src/utils/schemas/ERC721/index.ts +++ /dev/null @@ -1,192 +0,0 @@ -import { Schema } from "../schema"; -import { - AbiType, - StateMutability, - FunctionInputKind, - FunctionOutputKind, -} from "../types"; - -interface NonFungibleContractType { - id: string; - address: string; -} - -export const ERC721Schema: Schema = { - version: 2, - deploymentBlock: 0, // Not indexed (for now; need asset-specific indexing strategy) - name: "ERC721", - description: "Items conforming to the ERC721 spec, using transferFrom.", - thumbnail: "https://opensea.io/static/images/opensea-icon.png", - website: "http://erc721.org/", - fields: [ - { name: "ID", type: "uint256", description: "Asset Token ID" }, - { name: "Address", type: "address", description: "Asset Contract Address" }, - ], - // eslint-disable-next-line @typescript-eslint/no-explicit-any - assetFromFields: (fields: any) => ({ - id: fields.ID, - address: fields.Address, - }), - assetToFields: (asset) => ({ - ID: asset.id, - Address: asset.address, - }), - formatter: async (asset) => { - return { - title: "ERC721 Asset: Token ID " + asset.id + " at " + asset.address, - description: "", - url: "", - thumbnail: "", - properties: [], - }; - }, - functions: { - transfer: (asset) => ({ - type: AbiType.Function, - name: "transferFrom", - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: asset.address, - inputs: [ - { kind: FunctionInputKind.Owner, name: "_from", type: "address" }, - { kind: FunctionInputKind.Replaceable, name: "_to", type: "address" }, - { - kind: FunctionInputKind.Asset, - name: "_tokenId", - type: "uint256", - value: asset.id, - }, - ], - outputs: [], - }), - checkAndTransfer: (asset, validatorAddress, merkle) => ({ - type: AbiType.Function, - name: "matchERC721UsingCriteria", - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: validatorAddress, - inputs: [ - { kind: FunctionInputKind.Owner, name: "from", type: "address" }, - { kind: FunctionInputKind.Replaceable, name: "to", type: "address" }, - { - kind: FunctionInputKind.Asset, - name: "token", - type: "address", - value: asset.address, - }, - { - kind: FunctionInputKind.Asset, - name: "tokenId", - type: "uint256", - value: asset.id, - }, - { - kind: FunctionInputKind.Data, - name: "root", - type: "bytes32", - value: merkle ? merkle.root : "", - }, - { - kind: FunctionInputKind.Data, - name: "proof", - type: "bytes32[]", - value: merkle ? merkle.proof : "[]", - }, - ], - outputs: [], - }), - ownerOf: (asset) => ({ - type: AbiType.Function, - name: "ownerOf", - payable: false, - constant: true, - stateMutability: StateMutability.View, - target: asset.address, - inputs: [ - { - kind: FunctionInputKind.Asset, - name: "_tokenId", - type: "uint256", - value: asset.id, - }, - ], - outputs: [ - { kind: FunctionOutputKind.Owner, name: "owner", type: "address" }, - ], - }), - assetsOfOwnerByIndex: [], - }, - events: { - transfer: [], - }, - hash: (asset) => asset.address + "-" + asset.id, -}; - -export const ERC721v3Schema: Schema = { - ...ERC721Schema, - version: 3, - name: "ERC721v3", - description: - "Items conforming to the ERC721 v3 spec, using safeTransferFrom.", - functions: { - ...ERC721Schema.functions, - transfer: (asset) => ({ - type: AbiType.Function, - name: "safeTransferFrom", - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: asset.address, - inputs: [ - { kind: FunctionInputKind.Owner, name: "_from", type: "address" }, - { kind: FunctionInputKind.Replaceable, name: "_to", type: "address" }, - { - kind: FunctionInputKind.Asset, - name: "_tokenId", - type: "uint256", - value: asset.id, - }, - ], - outputs: [], - }), - checkAndTransfer: (asset, validatorAddress, merkle) => ({ - type: AbiType.Function, - name: "matchERC721WithSafeTransferUsingCriteria", - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: validatorAddress, - inputs: [ - { kind: FunctionInputKind.Owner, name: "from", type: "address" }, - { kind: FunctionInputKind.Replaceable, name: "to", type: "address" }, - { - kind: FunctionInputKind.Asset, - name: "token", - type: "address", - value: asset.address, - }, - { - kind: FunctionInputKind.Asset, - name: "tokenId", - type: "uint256", - value: asset.id, - }, - { - kind: FunctionInputKind.Data, - name: "root", - type: "bytes32", - value: merkle ? merkle.root : "", - }, - { - kind: FunctionInputKind.Data, - name: "proof", - type: "bytes32[]", - value: merkle ? merkle.proof : "[]", - }, - ], - outputs: [], - }), - }, -}; diff --git a/src/utils/schemas/ens.ts b/src/utils/schemas/ens.ts deleted file mode 100644 index 605929d94..000000000 --- a/src/utils/schemas/ens.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { sha3 } from "ethereumjs-util"; -import { Buffer } from "safe-buffer"; -import { Schema } from "./schema"; - -export interface ENSName { - nodeHash: string; - nameHash: string; - name: string; -} - -const namehash = (name: string) => { - let node = "0000000000000000000000000000000000000000000000000000000000000000"; - if (name !== "") { - const labels = name.split("."); - for (let i = labels.length - 1; i >= 0; i--) { - const labelHash = sha3(labels[i]).toString("hex"); - const buffer: Buffer = Buffer.from(node + labelHash, "hex"); - node = sha3(buffer).toString("hex"); - } - } - return "0x" + node.toString(); -}; - -export const nodehash = (name: string) => { - const label = name.split(".")[0]; - if (label) { - return "0x" + sha3(label).toString("hex"); - } else { - return ""; - } -}; - -export const ENSNameBaseSchema: Required< - Pick, "fields" | "assetFromFields" | "checkAsset" | "hash"> -> = { - fields: [ - { name: "Name", type: "string", description: "ENS Name" }, - { - name: "NodeHash", - type: "bytes32", - description: "ENS Node Hash", - readOnly: true, - }, - { - name: "NameHash", - type: "bytes32", - description: "ENS Name Hash", - readOnly: true, - }, - ], - // eslint-disable-next-line @typescript-eslint/no-explicit-any - assetFromFields: (fields: any) => ({ - id: fields.ID, - address: fields.Address, - name: fields.Name, - nodeHash: nodehash(fields.Name), - nameHash: namehash(fields.Name), - }), - checkAsset: (asset: ENSName) => { - return asset.name - ? namehash(asset.name) === asset.nameHash && - nodehash(asset.name) === asset.nodeHash - : true; - }, - hash: ({ nodeHash }) => nodeHash, -}; diff --git a/src/utils/schemas/goerli/index.ts b/src/utils/schemas/goerli/index.ts deleted file mode 100644 index 13bf60dfc..000000000 --- a/src/utils/schemas/goerli/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { ContractRoleSchema } from "../ContractRole/index"; -import { ERC1155Schema } from "../ERC1155"; -import { ERC20Schema } from "../ERC20"; -import { ERC721Schema, ERC721v3Schema } from "../ERC721/index"; -import { Schema } from "../schema"; - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const goerliSchemas: Array> = [ - ERC20Schema, - ERC721Schema, - ERC721v3Schema, - ERC1155Schema, - ContractRoleSchema, -]; diff --git a/src/utils/schemas/main/CryptoKitties/index.ts b/src/utils/schemas/main/CryptoKitties/index.ts deleted file mode 100644 index fae96df72..000000000 --- a/src/utils/schemas/main/CryptoKitties/index.ts +++ /dev/null @@ -1,135 +0,0 @@ -import axios from "axios"; -import { Schema } from "../../schema"; -import { - AbiType, - EventInputKind, - FunctionInputKind, - FunctionOutputKind, - StateMutability, -} from "../../types"; - -type CryptoKittiesType = string; - -export const CryptoKittiesSchema: Schema = { - version: 1, - deploymentBlock: 4605167, - name: "CryptoKitties", - description: "The virtual kitties that started the craze.", - thumbnail: "https://www.cryptokitties.co/images/kitty-eth.svg", - website: "https://cryptokitties.co", - fields: [{ name: "ID", type: "uint256", description: "CryptoKitty number." }], - // eslint-disable-next-line @typescript-eslint/no-explicit-any - assetFromFields: (fields: any) => fields.ID, - assetToFields: (asset) => ({ ID: asset }), - formatter: async (asset) => { - const response = await axios - .get(`https://api.cryptokitties.co/kitties/${asset}`) - .catch((err) => { - if ( - err.response && - (err.response.status === 404 || err.response.status === 400) - ) { - return null; - } else { - throw err; - } - }); - if (response === null) { - return { - thumbnail: "https://www.cryptokitties.co/images/kitty-eth.svg", - title: "CryptoKitty #" + asset, - description: "", - url: "https://www.cryptokitties.co/kitty/" + asset, - properties: [], - }; - } else { - const data = response.data; - const attrs = data.enhanced_cattributes || data.cattributes || []; - return { - thumbnail: data.image_url_cdn, - title: "CryptoKitty #" + asset, - description: data.bio, - url: "https://www.cryptokitties.co/kitty/" + asset, - // eslint-disable-next-line @typescript-eslint/no-explicit-any - properties: attrs.map((c: any) => ({ - key: c.type, - kind: "string", - value: c.description, - })), - }; - } - }, - functions: { - transfer: (asset) => ({ - type: AbiType.Function, - name: "transfer", - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: "0x06012c8cf97bead5deae237070f9587f8e7a266d", - inputs: [ - { kind: FunctionInputKind.Replaceable, name: "_to", type: "address" }, - { - kind: FunctionInputKind.Asset, - name: "_tokenId", - type: "uint256", - value: asset, - }, - ], - outputs: [], - }), - ownerOf: (asset) => ({ - type: AbiType.Function, - name: "ownerOf", - payable: false, - constant: true, - stateMutability: StateMutability.View, - target: "0x06012c8cf97bead5deae237070f9587f8e7a266d", - inputs: [ - { - kind: FunctionInputKind.Asset, - name: "_tokenId", - type: "uint256", - value: asset, - }, - ], - outputs: [ - { kind: FunctionOutputKind.Owner, name: "owner", type: "address" }, - ], - }), - assetsOfOwnerByIndex: [], - }, - events: { - transfer: [ - { - type: AbiType.Event, - name: "Transfer", - target: "0x06012c8cf97bead5deae237070f9587f8e7a266d", - anonymous: false, - inputs: [ - { - kind: EventInputKind.Source, - indexed: false, - name: "from", - type: "address", - }, - { - kind: EventInputKind.Destination, - indexed: false, - name: "to", - type: "address", - }, - { - kind: EventInputKind.Asset, - indexed: false, - name: "tokenId", - type: "uint256", - }, - ], - // eslint-disable-next-line @typescript-eslint/no-explicit-any - assetFromInputs: async (inputs: any) => inputs.tokenId, - }, - ], - }, - hash: (a) => a, -}; diff --git a/src/utils/schemas/main/CryptoPunks/index.ts b/src/utils/schemas/main/CryptoPunks/index.ts deleted file mode 100644 index b3c765cd4..000000000 --- a/src/utils/schemas/main/CryptoPunks/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { Schema } from "../../schema"; -import { - AbiType, - EventInputKind, - FunctionInputKind, - FunctionOutputKind, - StateMutability, -} from "../../types"; - -type CryptoPunksType = string; - -/* eslint-disable @typescript-eslint/no-explicit-any */ -export const CryptoPunksSchema: Schema = { - version: 1, - deploymentBlock: 3914495, - name: "CryptoPunks", - description: - "10,000 unique collectible characters with proof of ownership stored on the Ethereum blockchain.", - thumbnail: "https://www.larvalabs.com/cryptopunks/cryptopunk2838.png", - website: "https://www.larvalabs.com/cryptopunks", - fields: [{ name: "ID", type: "uint256", description: "CryptoPunk number." }], - assetFromFields: (fields: any) => fields.ID, - assetToFields: (asset) => ({ ID: asset }), - formatter: async (asset) => { - return { - thumbnail: - "https://www.larvalabs.com/cryptopunks/cryptopunk" + asset + ".png", - title: "CryptoPunk #" + asset, - description: "", - url: "https://www.larvalabs.com/cryptopunks/details/" + asset, - properties: [], - }; - }, - functions: { - transfer: (asset) => ({ - type: AbiType.Function, - name: "transferPunk", - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: "0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb", - inputs: [ - { kind: FunctionInputKind.Replaceable, name: "to", type: "address" }, - { - kind: FunctionInputKind.Asset, - name: "punkIndex", - type: "uint256", - value: asset, - }, - ], - outputs: [], - }), - ownerOf: (asset) => ({ - type: AbiType.Function, - name: "punkIndexToAddress", - payable: false, - constant: true, - stateMutability: StateMutability.View, - target: "0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb", - inputs: [ - { - kind: FunctionInputKind.Asset, - name: "", - type: "uint256", - value: asset, - }, - ], - outputs: [{ kind: FunctionOutputKind.Owner, name: "", type: "address" }], - }), - assetsOfOwnerByIndex: [], - }, - events: { - transfer: [ - { - type: AbiType.Event, - name: "PunkTransfer", - target: "0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb", - anonymous: false, - inputs: [ - { - kind: EventInputKind.Source, - indexed: true, - name: "from", - type: "address", - }, - { - kind: EventInputKind.Destination, - indexed: true, - name: "to", - type: "address", - }, - { - kind: EventInputKind.Asset, - indexed: false, - name: "punkIndex", - type: "uint256", - }, - ], - assetFromInputs: async (inputs: any) => inputs.punkIndex, - }, - ], - }, - hash: (a) => a, -}; - -/* eslint-enable @typescript-eslint/no-explicit-any */ diff --git a/src/utils/schemas/main/ENSName/index.ts b/src/utils/schemas/main/ENSName/index.ts deleted file mode 100644 index ce5e49c89..000000000 --- a/src/utils/schemas/main/ENSName/index.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { ENSName, ENSNameBaseSchema } from "../../ens"; -import { Schema } from "../../schema"; -import { - AbiType, - FunctionInputKind, - FunctionOutputKind, - StateMutability, -} from "../../types"; - -export const ENSNameSchema: Schema = { - ...ENSNameBaseSchema, - version: 2, - deploymentBlock: 3605331, - name: "ENSName", - description: "Ethereum Name Service Name (EIP 137)", - thumbnail: "https://ens.domains/img/ens.svg", - website: "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-137.md", - formatter: async (asset) => { - return { - thumbnail: "https://ens.domains/img/ens.svg", - title: - "ENS Name " + - (asset.name ? asset.name : asset.nodeHash.slice(0, 4) + "..."), - description: "ENS node " + asset.nodeHash, - url: "https://etherscan.io/enslookup?q=" + asset.name, - properties: [], - }; - }, - functions: { - transfer: (asset) => ({ - type: AbiType.Function, - name: "transfer", - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: "0x6090a6e47849629b7245dfa1ca21d94cd15878ef", - inputs: [ - { - kind: FunctionInputKind.Asset, - name: "_hash", - type: "bytes32", - value: asset.nodeHash, - }, - { - kind: FunctionInputKind.Replaceable, - name: "newOwner", - type: "address", - }, - ], - outputs: [], - }), - ownerOf: (asset) => ({ - type: AbiType.Function, - name: "owner", - payable: false, - constant: true, - stateMutability: StateMutability.View, - target: "0x314159265dD8dbb310642f98f50C066173C1259b", - inputs: [ - { - kind: FunctionInputKind.Asset, - name: "node", - type: "bytes32", - value: asset.nameHash, - }, - ], - outputs: [{ kind: FunctionOutputKind.Owner, name: "", type: "address" }], - }), - assetsOfOwnerByIndex: [], - }, - events: { - transfer: [], - }, -}; diff --git a/src/utils/schemas/main/ENSShortNameAuction/index.ts b/src/utils/schemas/main/ENSShortNameAuction/index.ts deleted file mode 100644 index 81b214cc1..000000000 --- a/src/utils/schemas/main/ENSShortNameAuction/index.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { namehash } from "ethers/lib/utils"; -import { ENSName, ENSNameBaseSchema, nodehash } from "../../ens"; -import { Schema } from "../../schema"; -import { - AbiType, - EventInputKind, - FunctionInputKind, - StateMutability, -} from "../../types"; - -const ENS_SHORT_NAME_AUCTION_ADDRESS = - "0x699c7f511c9e2182e89f29b3bfb68bd327919d17"; - -export const ENSShortNameAuctionSchema: Schema = { - ...ENSNameBaseSchema, - version: 0, - deploymentBlock: 8488908, - name: "ENSShortNameAuction", - description: "ERC721 ENS short (3-6 character) names sold via auction.", - thumbnail: "", // TODO: put SVG body directly here or host a PNG ourselves? - website: "https://ens.domains/", - formatter: async ({ name }) => { - return { - title: "ENS Short Name: " + name, - description: "", - url: "", - thumbnail: "", - properties: [], - }; - }, - functions: { - transfer: ({ name }) => ({ - type: AbiType.Function, - name: "register", - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: ENS_SHORT_NAME_AUCTION_ADDRESS, - inputs: [ - { - kind: FunctionInputKind.Data, - name: "name", - type: "string", - value: name.split(".")[0], - }, - { kind: FunctionInputKind.Replaceable, name: "owner", type: "address" }, - ], - outputs: [], - }), - assetsOfOwnerByIndex: [], - }, - events: { - transfer: [ - { - type: AbiType.Event, - name: "NameRegistered", - target: ENS_SHORT_NAME_AUCTION_ADDRESS, - anonymous: false, - inputs: [ - { - kind: EventInputKind.Asset, - indexed: false, - name: "name", - type: "string", - }, - { - kind: EventInputKind.Destination, - indexed: false, - name: "owner", - type: "address", - }, - ], - assetFromInputs: async (inputs: { name: string }) => ({ - name: inputs.name, - nodeHash: nodehash(inputs.name), - nameHash: namehash(inputs.name), - }), - }, - ], - }, -}; diff --git a/src/utils/schemas/main/EnjinItem/index.ts b/src/utils/schemas/main/EnjinItem/index.ts deleted file mode 100644 index 8ce31c485..000000000 --- a/src/utils/schemas/main/EnjinItem/index.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { SemiFungibleTradeType, ERC1155Schema } from "../../ERC1155"; -import { Schema } from "../../schema"; -import { - AbiType, - StateMutability, - FunctionInputKind, - FunctionOutputKind, -} from "../../types"; - -/* eslint-disable @typescript-eslint/no-explicit-any */ -export const EnjinItemSchema: Schema = { - ...ERC1155Schema, - version: 1, - deploymentBlock: 0, // Not indexed (for now; need asset-specific indexing strategy) - name: "Enjin", - description: - "Items conforming to the Enjin implementation of the ERC1155 spec.", - website: "https://enjincoin.io/", - functions: { - ...ERC1155Schema.functions, - ownerOf: (asset) => ({ - type: AbiType.Function, - name: "ownerOf", - payable: false, - constant: true, - stateMutability: StateMutability.View, - target: asset.address, - inputs: [ - { - kind: FunctionInputKind.Asset, - name: "_id", - type: "uint256", - value: asset.id, - }, - ], - outputs: [ - { kind: FunctionOutputKind.Owner, name: "owner", type: "address" }, - ], - }), - // Parameters are flipped from 1155 - countOf: (asset) => ({ - type: AbiType.Function, - name: "balanceOf", - payable: false, - constant: true, - stateMutability: StateMutability.View, - target: asset.address, - inputs: [ - { - kind: FunctionInputKind.Asset, - name: "_id", - type: "uint256", - value: asset.id, - }, - { kind: FunctionInputKind.Owner, name: "_owner", type: "address" }, - ], - outputs: [ - { kind: FunctionOutputKind.Count, name: "balance", type: "uint" }, - ], - assetFromOutputs: (outputs: any) => outputs.balance, - }), - assetsOfOwnerByIndex: [], - }, -}; - -/* eslint-enable @typescript-eslint/no-explicit-any */ diff --git a/src/utils/schemas/main/OwnableContract/index.ts b/src/utils/schemas/main/OwnableContract/index.ts deleted file mode 100644 index 5c4399e29..000000000 --- a/src/utils/schemas/main/OwnableContract/index.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { Schema } from "../../schema"; -import { - AbiType, - StateMutability, - FunctionInputKind, - FunctionOutputKind, -} from "../../types"; - -interface OwnableContractType { - name?: string; - description?: string; - address: string; -} - -/* eslint-disable @typescript-eslint/no-explicit-any */ -export const OwnableContractSchema: Schema = { - version: 1, - deploymentBlock: 0, // Not indexed (for now; need asset-specific indexing strategy) - name: "OwnableContract", - description: "Smart contract with transferrable ownership.", - thumbnail: - "https://i.redditmedia.com/NaFzmSbDX2T2RALMxy2tmGJN_gPVNH9lJggCKUDDqcc.jpg?w=320&s=3913239508209aaf6ba1188fe3d3b5fc", - website: - "https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/ownership/Ownable.sol", - fields: [ - { name: "Name", type: "string", description: "Contract Name" }, - { - name: "Description", - type: "string", - description: "Contract Description", - }, - { name: "Address", type: "address", description: "Contract Address" }, - ], - assetFromFields: (fields: any) => ({ - name: fields.Name, - address: fields.Address, - description: fields.Description, - }), - formatter: async (asset) => { - return { - thumbnail: - "https://i.redditmedia.com/NaFzmSbDX2T2RALMxy2tmGJN_gPVNH9lJggCKUDDqcc.jpg?w=320&s=3913239508209aaf6ba1188fe3d3b5fc", - title: 'Smart Contract: "' + asset.name + '"', - description: - asset.description || "Ownable smart contract at " + asset.address, - url: "https://etherscan.io/address/" + asset.address, - properties: [], - }; - }, - functions: { - transfer: (asset) => ({ - type: AbiType.Function, - name: "transferOwnership", - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: asset.address, - inputs: [ - { - kind: FunctionInputKind.Replaceable, - name: "newOwner", - type: "address", - }, - ], - outputs: [], - }), - ownerOf: (asset) => ({ - type: AbiType.Function, - name: "owner", - payable: false, - constant: true, - stateMutability: StateMutability.View, - target: asset.address, - inputs: [], - outputs: [ - { kind: FunctionOutputKind.Owner, name: "owner", type: "address" }, - ], - }), - assetsOfOwnerByIndex: [], - }, - events: { - transfer: [], - }, - hash: (a) => a.address, -}; -/* eslint-enable @typescript-eslint/no-explicit-any */ diff --git a/src/utils/schemas/main/index.ts b/src/utils/schemas/main/index.ts deleted file mode 100644 index 8f2c5112b..000000000 --- a/src/utils/schemas/main/index.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { CryptoKittiesSchema } from "./CryptoKitties/index"; -import { CryptoPunksSchema } from "./CryptoPunks/index"; -import { EnjinItemSchema } from "./EnjinItem"; -import { ENSNameSchema } from "./ENSName/index"; -import { ENSShortNameAuctionSchema } from "./ENSShortNameAuction/index"; -import { OwnableContractSchema } from "./OwnableContract/index"; -import { ContractRoleSchema } from "../ContractRole"; -import { ERC1155Schema } from "../ERC1155"; -import { ERC20Schema } from "../ERC20"; -import { ERC721Schema, ERC721v3Schema } from "../ERC721"; -import { Schema } from "../schema"; - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const mainSchemas: Array> = [ - CryptoKittiesSchema, - CryptoPunksSchema, - ENSNameSchema, - ENSShortNameAuctionSchema, - OwnableContractSchema, - ERC20Schema, - ERC721Schema, - ERC721v3Schema, - ERC1155Schema, - EnjinItemSchema, - ContractRoleSchema, -]; diff --git a/src/utils/schemas/rinkeby/index.ts b/src/utils/schemas/rinkeby/index.ts deleted file mode 100644 index 0c08ae205..000000000 --- a/src/utils/schemas/rinkeby/index.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { rinkebyCryptoKittiesSchema } from "./rinkebyCryptoKitties/index"; -import { rinkebyCustomSchema } from "./rinkebyCustom/index"; -import { rinkebyENSNameSchema } from "./rinkebyENSName/index"; -import { rinkebyENSShortNameAuctionSchema } from "./rinkebyENSShortNameAuction/index"; -import { rinkebyOwnableContractSchema } from "./rinkebyOwnableContract/index"; -import { testRinkebyNFTSchema } from "./testRinkebyNFT/index"; -import { ContractRoleSchema } from "../ContractRole"; -import { ERC1155Schema } from "../ERC1155"; -import { ERC20Schema } from "../ERC20"; -import { ERC721Schema, ERC721v3Schema } from "../ERC721"; -import { Schema } from "../schema"; - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const rinkebySchemas: Array> = [ - rinkebyCryptoKittiesSchema, - rinkebyCustomSchema, - rinkebyENSNameSchema, - rinkebyENSShortNameAuctionSchema, - rinkebyOwnableContractSchema, - testRinkebyNFTSchema, - ERC20Schema, - ERC721Schema, - ERC721v3Schema, - ERC1155Schema, - ContractRoleSchema, -]; diff --git a/src/utils/schemas/rinkeby/rinkebyCryptoKitties/index.ts b/src/utils/schemas/rinkeby/rinkebyCryptoKitties/index.ts deleted file mode 100644 index 2b533a7b7..000000000 --- a/src/utils/schemas/rinkeby/rinkebyCryptoKitties/index.ts +++ /dev/null @@ -1,129 +0,0 @@ -import { Schema } from "../../schema"; -import { - AbiType, - EventInputKind, - FunctionInputKind, - FunctionOutputKind, - StateMutability, -} from "../../types"; - -type RinkebyCryptoKittiesType = string; - -/* eslint-disable @typescript-eslint/no-explicit-any */ -export const rinkebyCryptoKittiesSchema: Schema = { - version: 1, - deploymentBlock: 0, - name: "RinkebyCryptoKitties", - description: "Rinkeby Testnet CryptoKitties", - thumbnail: "https://www.cryptokitties.co/images/kitty-eth.svg", - website: "https://cryptokitties.co", - fields: [{ name: "ID", type: "uint256", description: "CryptoKitty number." }], - assetFromFields: (fields: any) => fields.ID, - assetToFields: (asset) => ({ ID: asset }), - formatter: async (asset) => { - return { - thumbnail: "https://www.cryptokitties.co/images/kitty-eth.svg", - title: "RinkebyCryptoKitty #" + asset, - description: "A Rinkeby kitten!", - url: "https://www.cryptokitties.co/kitty/" + asset, - properties: [], - }; - }, - functions: { - transfer: (asset) => ({ - type: AbiType.Function, - name: "transfer", - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: "0x16baf0de678e52367adc69fd067e5edd1d33e3bf", - inputs: [ - { kind: FunctionInputKind.Replaceable, name: "_to", type: "address" }, - { - kind: FunctionInputKind.Asset, - name: "_tokenId", - type: "uint256", - value: asset, - }, - ], - outputs: [], - }), - ownerOf: (asset) => ({ - type: AbiType.Function, - name: "ownerOf", - payable: false, - constant: true, - stateMutability: StateMutability.View, - target: "0x16baf0de678e52367adc69fd067e5edd1d33e3bf", - inputs: [ - { - kind: FunctionInputKind.Asset, - name: "_tokenId", - type: "uint256", - value: asset, - }, - ], - outputs: [ - { kind: FunctionOutputKind.Owner, name: "owner", type: "address" }, - ], - }), - assetsOfOwnerByIndex: [ - { - type: AbiType.Function, - name: "tokensOfOwnerByIndex", - payable: false, - constant: true, - stateMutability: StateMutability.View, - target: "0x16baf0de678e52367adc69fd067e5edd1d33e3bf", - inputs: [ - { kind: FunctionInputKind.Owner, name: "_owner", type: "address" }, - { kind: FunctionInputKind.Index, name: "_index", type: "uint" }, - ], - outputs: [ - { kind: FunctionOutputKind.Asset, name: "tokenId", type: "uint" }, - ], - assetFromOutputs: (output: any) => { - if (output.toNumber() === 0) { - return null; - } else { - return output.toString(); - } - }, - }, - ], - }, - events: { - transfer: [ - { - type: AbiType.Event, - name: "Transfer", - target: "0x16baf0de678e52367adc69fd067e5edd1d33e3bf", - anonymous: false, - inputs: [ - { - kind: EventInputKind.Source, - indexed: true, - name: "from", - type: "address", - }, - { - kind: EventInputKind.Destination, - indexed: true, - name: "to", - type: "address", - }, - { - kind: EventInputKind.Asset, - indexed: true, - name: "tokenId", - type: "uint256", - }, - ], - assetFromInputs: async (inputs: any) => inputs.tokenId, - }, - ], - }, - hash: (a) => a, -}; - -/* eslint-enable @typescript-eslint/no-explicit-any */ diff --git a/src/utils/schemas/rinkeby/rinkebyCustom/index.ts b/src/utils/schemas/rinkeby/rinkebyCustom/index.ts deleted file mode 100644 index 28240c089..000000000 --- a/src/utils/schemas/rinkeby/rinkebyCustom/index.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { Schema } from "../../schema"; -import { AnnotatedFunctionABI } from "../../types"; - -interface RinkebyCustomType { - name: string; - description: string; - thumbnail: string; - url: string; - transfer: AnnotatedFunctionABI; -} - -/* eslint-disable @typescript-eslint/no-explicit-any */ -export const rinkebyCustomSchema: Schema = { - version: 1, - deploymentBlock: 0, - name: "RinkebyCustom", - description: "Rinkeby Custom (manual ABI specification)", - thumbnail: "https://d30y9cdsu7xlg0.cloudfront.net/png/45447-200.png", - website: "https://github.com/projectwyvern/wyvern-schemas", - fields: [ - { name: "Name", type: "string", description: "Name of Asset" }, - { - name: "Description", - type: "string", - description: "Description of Asset", - }, - { - name: "Thumbnail", - type: "string", - description: "URL of asset thumbnail image", - }, - { name: "URL", type: "string", description: "URL of asset" }, - { name: "Transfer", type: "abi", description: "ABI of transfer function" }, - ], - assetFromFields: (fields: any) => ({ - name: fields.Name, - description: fields.Description, - thumbnail: fields.Thumbnail, - url: fields.URL, - transfer: fields.Transfer, - }), - formatter: async (asset) => { - return { - thumbnail: asset.thumbnail, - title: asset.name, - description: asset.description, - url: asset.url, - properties: [], - }; - }, - functions: { - transfer: (asset) => asset.transfer, - assetsOfOwnerByIndex: [], - }, - events: { - transfer: [], - }, - hash: (a) => JSON.stringify(a), -}; - -/* eslint-enable @typescript-eslint/no-explicit-any */ diff --git a/src/utils/schemas/rinkeby/rinkebyENSName/index.ts b/src/utils/schemas/rinkeby/rinkebyENSName/index.ts deleted file mode 100644 index 7f986a5ae..000000000 --- a/src/utils/schemas/rinkeby/rinkebyENSName/index.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { ENSName, ENSNameBaseSchema } from "../../ens"; -import { Schema } from "../../schema"; -import { - AbiType, - StateMutability, - FunctionInputKind, - FunctionOutputKind, -} from "../../types"; - -export const rinkebyENSNameSchema: Schema = { - ...ENSNameBaseSchema, - version: 1, - deploymentBlock: 0, - name: "ENSName", - description: "Rinkeby Ethereum Name Service (EIP 137)", - thumbnail: "https://ens.domains/img/ens.svg", - website: "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-137.md", - formatter: async (asset) => { - return { - thumbnail: "https://ens.domains/img/ens.svg", - title: "ENS Name " + asset.name, - description: "(ENS node " + asset.nodeHash + ")", - url: "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-137.md", - properties: [], - }; - }, - functions: { - transfer: (asset) => ({ - type: AbiType.Function, - name: "setOwner", - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: "0xe7410170f87102df0055eb195163a03b7f2bff4a", - inputs: [ - { - kind: FunctionInputKind.Asset, - name: "node", - type: "bytes32", - value: asset.nodeHash, - }, - { kind: FunctionInputKind.Replaceable, name: "owner", type: "address" }, - ], - outputs: [], - }), - ownerOf: (asset) => ({ - type: AbiType.Function, - name: "owner", - payable: false, - constant: true, - stateMutability: StateMutability.View, - target: "0xe7410170f87102df0055eb195163a03b7f2bff4a", - inputs: [ - { - kind: FunctionInputKind.Asset, - name: "node", - type: "bytes32", - value: asset.nodeHash, - }, - ], - outputs: [{ kind: FunctionOutputKind.Owner, name: "", type: "address" }], - }), - assetsOfOwnerByIndex: [], - }, - events: { - transfer: [], - }, -}; diff --git a/src/utils/schemas/rinkeby/rinkebyENSShortNameAuction/index.ts b/src/utils/schemas/rinkeby/rinkebyENSShortNameAuction/index.ts deleted file mode 100644 index cac2453eb..000000000 --- a/src/utils/schemas/rinkeby/rinkebyENSShortNameAuction/index.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { namehash } from "ethers/lib/utils"; -import { ENSName, ENSNameBaseSchema, nodehash } from "../../ens"; -import { Schema } from "../../schema"; -import { - AbiType, - EventInputKind, - FunctionInputKind, - StateMutability, -} from "../../types"; - -const RINKEBY_ENS_SHORT_NAME_AUCTION_ADDRESS = - "0x76b6481a334783be36f2fc35b8f0b9bc7835d57b"; - -export const rinkebyENSShortNameAuctionSchema: Schema = { - ...ENSNameBaseSchema, - version: 0, - deploymentBlock: 4791629, - name: "ENSShortNameAuction", - description: "ERC721 ENS short (3-6 character) names sold via auction.", - thumbnail: "", // TODO: put SVG body directly here or host a PNG ourselves? - website: "https://ens.domains/", - formatter: async ({ name }) => { - return { - title: "ENS Short Name: " + name, - description: "", - url: "", - thumbnail: "", - properties: [], - }; - }, - functions: { - transfer: ({ name }) => ({ - type: AbiType.Function, - name: "register", - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: RINKEBY_ENS_SHORT_NAME_AUCTION_ADDRESS, - inputs: [ - { - kind: FunctionInputKind.Data, - name: "name", - type: "string", - value: name.split(".")[0], - }, - { kind: FunctionInputKind.Replaceable, name: "owner", type: "address" }, - ], - outputs: [], - }), - assetsOfOwnerByIndex: [], - }, - events: { - transfer: [ - { - type: AbiType.Event, - name: "NameRegistered", - target: RINKEBY_ENS_SHORT_NAME_AUCTION_ADDRESS, - anonymous: false, - inputs: [ - { - kind: EventInputKind.Asset, - indexed: false, - name: "name", - type: "string", - }, - { - kind: EventInputKind.Destination, - indexed: false, - name: "owner", - type: "address", - }, - ], - assetFromInputs: async (inputs: { name: string }) => ({ - name: inputs.name, - nodeHash: nodehash(inputs.name), - nameHash: namehash(inputs.name), - }), - }, - ], - }, -}; diff --git a/src/utils/schemas/rinkeby/rinkebyOwnableContract/index.ts b/src/utils/schemas/rinkeby/rinkebyOwnableContract/index.ts deleted file mode 100644 index 82a17b86d..000000000 --- a/src/utils/schemas/rinkeby/rinkebyOwnableContract/index.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { Schema } from "../../schema"; -import { - AbiType, - StateMutability, - FunctionInputKind, - FunctionOutputKind, -} from "../../types"; - -interface RinkebyOwnableContractType { - name?: string; - address: string; -} - -/* eslint-disable @typescript-eslint/no-explicit-any */ -export const rinkebyOwnableContractSchema: Schema = - { - version: 1, - deploymentBlock: 0, - name: "OwnableContract", - description: "Rinkeby Ownable Smart Contract", - thumbnail: - "https://i.redditmedia.com/NaFzmSbDX2T2RALMxy2tmGJN_gPVNH9lJggCKUDDqcc.jpg?w=320&s=3913239508209aaf6ba1188fe3d3b5fc", - website: - "https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/ownership/Ownable.sol", - fields: [ - { name: "Name", type: "string", description: "Contract Name" }, - { name: "Address", type: "address", description: "Contract Address" }, - ], - assetFromFields: (fields: any) => ({ - name: fields.Name, - address: fields.Address, - }), - formatter: async (asset) => { - return { - thumbnail: - "https://i.redditmedia.com/NaFzmSbDX2T2RALMxy2tmGJN_gPVNH9lJggCKUDDqcc.jpg?w=320&s=3913239508209aaf6ba1188fe3d3b5fc", - title: 'Ownable Contract: "' + asset.name + '"', - description: "Ownable at address " + asset.address, - url: "https://rinkeby.etherscan.io/address/" + asset.address, - properties: [], - }; - }, - functions: { - transfer: (asset) => ({ - type: AbiType.Function, - name: "transferOwnership", - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: asset.address, - inputs: [ - { - kind: FunctionInputKind.Replaceable, - name: "newOwner", - type: "address", - }, - ], - outputs: [], - }), - ownerOf: (asset) => ({ - type: AbiType.Function, - name: "owner", - payable: false, - constant: true, - stateMutability: StateMutability.View, - target: asset.address, - inputs: [], - outputs: [ - { kind: FunctionOutputKind.Owner, name: "owner", type: "address" }, - ], - }), - assetsOfOwnerByIndex: [], - }, - events: { - transfer: [], - }, - hash: (a) => a.address, - }; - -/* eslint-enable @typescript-eslint/no-explicit-any */ diff --git a/src/utils/schemas/rinkeby/testRinkebyNFT/index.ts b/src/utils/schemas/rinkeby/testRinkebyNFT/index.ts deleted file mode 100644 index d21936962..000000000 --- a/src/utils/schemas/rinkeby/testRinkebyNFT/index.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { Schema } from "../../schema"; -import { - AbiType, - EventInputKind, - FunctionInputKind, - FunctionOutputKind, - StateMutability, -} from "../../types"; - -type TestRinkebyNFTType = string; - -export const testRinkebyNFTSchema: Schema = { - version: 1, - deploymentBlock: 0, - name: "TestRinkebyNFT", - description: "Rinkeby ERC721 non-fungible token for Wyvern Exchange testing", - thumbnail: - "https://cointelegraph.com/storage/uploads/view/f88e17e41f607dc0aef238230dd40cc6.png", - website: "https://projectwyvern.com", - fields: [ - { - name: "ID", - type: "uint256", - description: "Token identification number.", - }, - ], - assetFromFields: (fields: any) => fields.ID, // eslint-disable-line @typescript-eslint/no-explicit-any - assetToFields: (asset) => ({ ID: asset }), - formatter: async (asset) => { - return { - thumbnail: - "https://cointelegraph.com/storage/uploads/view/f88e17e41f607dc0aef238230dd40cc6.png", - title: "TestRinkebyNFT #" + asset, - description: "A useless NFT!", - url: "https://www.projectwyvern.com", - properties: [], - }; - }, - functions: { - transfer: (asset) => ({ - type: AbiType.Function, - name: "transfer", - payable: false, - constant: false, - stateMutability: StateMutability.Nonpayable, - target: "0x07a6dc6e3f1120ca03658d473d10aee3af5f8abb", - inputs: [ - { kind: FunctionInputKind.Replaceable, name: "_to", type: "address" }, - { - kind: FunctionInputKind.Asset, - name: "_tokenId", - type: "uint256", - value: asset, - }, - ], - outputs: [], - }), - ownerOf: (asset) => ({ - type: AbiType.Function, - name: "ownerOf", - payable: false, - constant: true, - stateMutability: StateMutability.View, - target: "0x07a6dc6e3f1120ca03658d473d10aee3af5f8abb", - inputs: [ - { - kind: FunctionInputKind.Asset, - name: "_tokenId", - type: "uint256", - value: asset, - }, - ], - outputs: [ - { kind: FunctionOutputKind.Owner, name: "_owner", type: "address" }, - ], - }), - assetsOfOwnerByIndex: [], - }, - events: { - transfer: [ - { - type: AbiType.Event, - name: "Transfer", - target: "0x07a6dc6e3f1120ca03658d473d10aee3af5f8abb", - anonymous: false, - inputs: [ - { - kind: EventInputKind.Source, - indexed: true, - name: "_from", - type: "address", - }, - { - kind: EventInputKind.Destination, - indexed: true, - name: "_to", - type: "address", - }, - { - kind: EventInputKind.Asset, - indexed: false, - name: "_tokenId", - type: "uint256", - }, - ], - assetFromInputs: async (inputs: any) => inputs._tokenId.toString(), // eslint-disable-line @typescript-eslint/no-explicit-any - }, - ], - }, - hash: (a) => a, -}; diff --git a/src/utils/schemas/schema.ts b/src/utils/schemas/schema.ts deleted file mode 100644 index c7dcd40d0..000000000 --- a/src/utils/schemas/schema.ts +++ /dev/null @@ -1,246 +0,0 @@ -import { BigNumber } from "bignumber.js"; -import * as ethABI from "ethereumjs-abi"; -import { WyvernProtocol } from "wyvern-js"; -import { goerliSchemas } from "./goerli/index"; -import { mainSchemas } from "./main/index"; -import { rinkebySchemas } from "./rinkeby/index"; -import { EventInputKind } from "./types"; -import { proxyABI, proxyAssertABI } from "../../abi/Proxy"; -import { - AbiType, - AnnotatedFunctionABI, - FunctionInputKind, - HowToCall, - Network, - WyvernAsset, -} from "../../types"; - -export interface LimitedCallSpec { - target: string; - calldata: string; -} - -export interface CallSpec { - target: string; - calldata: string; - replacementPattern: string; -} - -export interface MerkleProof { - root: string; - proof: string[]; -} - -export interface AnnotatedFunctionABIReturning extends AnnotatedFunctionABI { - assetFromOutputs: (outputs: any) => T; // eslint-disable-line @typescript-eslint/no-explicit-any -} - -export interface SchemaFunctions { - transfer: (asset: T) => AnnotatedFunctionABI; - checkAndTransfer?: ( - asset: T, - validatorAddress: string, - proof?: MerkleProof - ) => AnnotatedFunctionABI; - ownerOf?: (asset: T) => AnnotatedFunctionABI; - countOf?: (asset: T) => AnnotatedFunctionABIReturning; - assetsOfOwnerByIndex: Array>; - initializeProxy?: (owner: string) => AnnotatedFunctionABI; -} - -export interface SchemaField { - name: string; - type: string; - description: string; - values?: any[]; // eslint-disable-line @typescript-eslint/no-explicit-any - readOnly?: boolean; -} - -export interface AnnotatedEventInput { - name: string; - type: string; - indexed: boolean; - kind: EventInputKind; -} - -export interface AnnotatedEventABI { - type: AbiType.Event; - name: string; - target: string; - anonymous: boolean; - inputs: AnnotatedEventInput[]; - assetFromInputs: (inputs: any, web3: any) => Promise; // eslint-disable-line @typescript-eslint/no-explicit-any -} - -export interface SchemaEvents { - transfer: Array>; -} - -export interface Property { - key: string; - kind: string; - value: any; // eslint-disable-line @typescript-eslint/no-explicit-any -} - -export interface FormatInfo { - thumbnail: string; - title: string; - description: string; - url: string; - properties: Property[]; -} - -/* eslint-disable @typescript-eslint/no-explicit-any */ -export interface Schema { - version: number; - deploymentBlock: number; - name: string; - description: string; - thumbnail: string; - website: string; - fields: SchemaField[]; - checkAsset?: (asset: T) => boolean; - assetFromFields: (fields: any) => T; - assetToFields?: (asset: T) => any; - allAssets?: (web3: any) => Promise; - functions: SchemaFunctions; - events: SchemaEvents; - formatter: (obj: T, web3: any) => Promise; - hash: (obj: T) => any; -} -/* eslint-enable @typescript-eslint/no-explicit-any */ - -export const encodeCall = ( - abi: AnnotatedFunctionABI, - parameters: unknown[] -): string => { - const inputTypes = abi.inputs.map((i) => i.type); - return ( - "0x" + - Buffer.concat([ - ethABI.methodID(abi.name, inputTypes), - ethABI.rawEncode(inputTypes, parameters), - ]).toString("hex") - ); -}; - -export type DefaultCallEncoder = ( - abi: AnnotatedFunctionABI, - address: string -) => string; - -export const encodeDefaultCall: DefaultCallEncoder = (abi, address) => { - const parameters = abi.inputs.map((input) => { - switch (input.kind) { - case FunctionInputKind.Replaceable: - return WyvernProtocol.generateDefaultValue(input.type); - case FunctionInputKind.Owner: - return address; - case FunctionInputKind.Asset: - default: - return input.value; - } - }); - return encodeCall(abi, parameters); -}; - -/** - * Encode the atomicized transfer of many assets - * @param schema Wyvern Schema for the assets - * @param assets List of assets to transfer - * @param from Current address owning the assets - * @param to Destination address - * @param atomicizer Wyvern Atomicizer instance - */ -export function encodeAtomicizedTransfer( - schemas: Array>, - assets: WyvernAsset[], - from: string, - to: string, - wyvernProtocol: WyvernProtocol, - networkName: Network -): LimitedCallSpec { - const atomicizer = wyvernProtocol.wyvernAtomicizer; - - const transactions = assets.map((asset: WyvernAsset, i) => { - const schema = schemas[i]; - const transfer = schema.functions.transfer(asset); - const calldata = encodeTransferCall(transfer, from, to); - return { - calldata, - address: transfer.target, - value: new BigNumber(0), - }; - }); - - const atomicizedCalldata = atomicizer - .atomicize( - transactions.map((t) => t.address), - transactions.map((t) => t.value), - transactions.map((t) => new BigNumber((t.calldata.length - 2) / 2)), // subtract 2 for '0x', divide by 2 for hex - transactions - .map((t) => t.calldata) - .reduce((x: string, current: string) => x + current.slice(2), "0x") // cut off the '0x' - ) - .getABIEncodedTransactionData(); - - return { - calldata: atomicizedCalldata, - target: WyvernProtocol.getAtomicizerContractAddress(networkName), - }; -} - -/** - * Encode a transfer call for a Wyvern schema function - * @param transferAbi Annotated Wyvern ABI - * @param from From address - * @param to To address - */ -export function encodeTransferCall( - transferAbi: AnnotatedFunctionABI, - from: string, - to: string -) { - const parameters = transferAbi.inputs.map((input) => { - switch (input.kind) { - case FunctionInputKind.Replaceable: - return to; - case FunctionInputKind.Owner: - return from; - case FunctionInputKind.Asset: - default: - if (input.value == null) { - throw new Error(`Unsupported function input kind: ${input.kind}`); - } - return input.value; - } - }); - return encodeCall(transferAbi, parameters); -} - -/** - * Encode a call to a user's proxy contract - * @param address The address for the proxy to call - * @param howToCall How to call the addres - * @param calldata The data to use in the call - * @param shouldAssert Whether to assert success in the proxy call - */ -export function encodeProxyCall( - address: string, - howToCall: HowToCall, - calldata: string, - shouldAssert = true -) { - const abi = shouldAssert ? proxyAssertABI : proxyABI; - return encodeCall(abi as AnnotatedFunctionABI, [ - address, - howToCall, - Buffer.from(calldata.slice(2), "hex"), - ]); -} - -export const schemas = { - goerli: goerliSchemas, - rinkeby: rinkebySchemas, - main: mainSchemas, -}; diff --git a/src/utils/schemas/types.ts b/src/utils/schemas/types.ts deleted file mode 100644 index 4cc1acaa0..000000000 --- a/src/utils/schemas/types.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { - AbiType, - AnnotatedFunctionABI, - FunctionInputKind, - FunctionOutputKind, - StateMutability, -} from "../../types"; - -export enum EventInputKind { - Source = "source", - Destination = "destination", - Asset = "asset", - Other = "other", -} - -export { AbiType, FunctionInputKind, FunctionOutputKind, StateMutability }; - -export type { AnnotatedFunctionABI }; diff --git a/src/utils/tokens/index.ts b/src/utils/tokens/index.ts index f4553dbb1..8febd9fb1 100644 --- a/src/utils/tokens/index.ts +++ b/src/utils/tokens/index.ts @@ -1,7 +1,6 @@ import { tokens as goerliTokens } from "./goerli"; import { tokens as mainTokens } from "./main"; -import { tokens as rinkebyTokens } from "./rinkeby"; -import { Network } from "../../types"; +import { Chain } from "../../types"; interface Token { name: string; @@ -15,30 +14,16 @@ export interface NetworkTokens { otherTokens: Token[]; } -export const getCanonicalWrappedEther = function (network: Network): Token { - switch (network) { - case Network.Main: +export const getCanonicalWrappedEther = function (chain: Chain): Token { + switch (chain) { + case Chain.Mainnet: return tokens.main.canonicalWrappedEther; - case Network.Goerli: + case Chain.Goerli: return tokens.goerli.canonicalWrappedEther; - case Network.Rinkeby: - return tokens.rinkeby.canonicalWrappedEther; - } -}; - -export const getTokens = function (network: Network): NetworkTokens { - switch (network) { - case Network.Main: - return tokens.main; - case Network.Goerli: - return tokens.goerli; - case Network.Rinkeby: - return tokens.rinkeby; } }; const tokens = { goerli: goerliTokens, - rinkeby: rinkebyTokens, main: mainTokens, }; diff --git a/src/utils/tokens/main.ts b/src/utils/tokens/main.ts index d07b372fa..b7ebcdcc5 100644 --- a/src/utils/tokens/main.ts +++ b/src/utils/tokens/main.ts @@ -7,5304 +7,5 @@ export const tokens: NetworkTokens = { decimals: 18, address: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", }, - otherTokens: [ - { - name: "Stox", - symbol: "STX", - decimals: 18, - address: "0x006bea43baa3f7a6f765f14f10a1a1b08334ef45", - }, - { - name: "Knoxstertoken", - symbol: "FKX", - decimals: 18, - address: "0x009e864923b49263c7f10d19b7f8ab7a9a5aad33", - }, - { - name: "EETHER", - symbol: "EETHER", - decimals: 18, - address: "0x00a0cbe98e4d110b0fa82646152d77babf2951d0", - }, - { - name: "BALI COIN", - symbol: "BALI", - decimals: 18, - address: "0x013a06558f07d9e6f9a00c95a33f3a0e0255176b", - }, - { - name: "ICOS", - symbol: "ICOS", - decimals: 6, - address: "0x014b50466590340d41307cc54dcee990c8d58aa8", - }, - { - name: "eDash", - symbol: "EDASH", - decimals: 18, - address: "0x01a28adc0edd796b570ec4da734e1aa809f6f1fc", - }, - { - name: "TokenWrapper", - symbol: "GNTM", - decimals: 18, - address: "0x01afc37f4f85babc47c0e2d0eababc7fb49793c8", - }, - { - name: "CCB", - symbol: "CCB", - decimals: 18, - address: "0x01c67791309c71aa4ed373025a0c089696d7c9e4", - }, - { - name: "Follow Coin", - symbol: "FLLW", - decimals: 18, - address: "0x0200412995f1bafef0d3f97c4e28ac2515ec1ece", - }, - { - name: "Original Crypto Coin", - symbol: "OCC", - decimals: 18, - address: "0x0235fe624e044a05eed7a43e16e3083bc8a4287a", - }, - { - name: "GoldenTickets", - symbol: "GTKT", - decimals: 0, - address: "0x025abad9e518516fdaafbdcdb9701b37fb7ef0fa", - }, - { - name: "Delphi", - symbol: "DEL", - decimals: 18, - address: "0x02b9806a64cb05f02aa8dcc1c178b88159a61304", - }, - { - name: "bitjob", - symbol: "STU", - decimals: 18, - address: "0x0371a82e4a9d0a4312f3ee2ac9c6958512891372", - }, - { - name: "Bitcoinereum", - symbol: "BTCM", - decimals: 8, - address: "0x03df4c372a29376d2c8df33a1b5f001cd8d68b0e", - }, - { - name: "Happyfbr", - symbol: "FBR", - decimals: 18, - address: "0x0425cbbc5ff784203fe8d82beefa2b02634351f5", - }, - { - name: "Engraved Token", - symbol: "EGR", - decimals: 3, - address: "0x044dd17bbbcbf1cf65f543918561bf8cf8130e7b", - }, - { - name: "DataTrading Token", - symbol: "DTT", - decimals: 18, - address: "0x049a5bf874f241d94232137ef728a9c7dd0d7550", - }, - { - name: "Wyvern Token", - symbol: "WYV", - decimals: 18, - address: "0x056017c55aE7AE32d12AeF7C679dF83A85ca75Ff", - }, - { - name: "Litecoin Red", - symbol: "LTCRED", - decimals: 8, - address: "0x059e3ead0a5675e4139c820d799e20be9c75bc3d", - }, - { - name: "LendConnect Token", - symbol: "LCT", - decimals: 18, - address: "0x05c7065d644096a4e4c3fe24af86e36de021074b", - }, - { - name: "EthereumLyte", - symbol: "ELYTE", - decimals: 18, - address: "0x05d379b48a8622ae4018309e116420db4a38a225", - }, - { - name: "Zilliqa", - symbol: "ZIL", - decimals: 12, - address: "0x05f4a42e251f2d52b8ed15e9fedaacfcef1fad27", - }, - { - name: "ACE Token", - symbol: "ACE", - decimals: 0, - address: "0x06147110022b768ba8f99a8f385df11a151a9cc8", - }, - { - name: "EXN", - symbol: "EXN", - decimals: 18, - address: "0x0766e79a6fd74469733e8330b3b461c0320ff059", - }, - { - name: "IBTC", - symbol: "IBTC", - decimals: 18, - address: "0x0784dbabb6c6834bddfb7cfee116ba049e5dafab", - }, - { - name: "DALECOIN", - symbol: "DALC", - decimals: 8, - address: "0x07d9e49ea402194bf48a8276dafb16e4ed633317", - }, - { - name: "Delta", - symbol: "DLT", - decimals: 18, - address: "0x07e3c70653548b04f0a75970c1f81b4cbbfb606f", - }, - { - name: "ArtisTurba", - symbol: "ARTIS", - decimals: 8, - address: "0x082e13494f12ebb7206fbf67e22a6e1975a1a669", - }, - { - name: "PlusCoin", - symbol: "PLC", - decimals: 18, - address: "0x0835ecd15ddf08d4786304d71b4672dc5c40f011", - }, - { - name: "Edgeless", - symbol: "EDG", - decimals: 0, - address: "0x08711d3b02c8758f2fb3ab4e80228418a7f8e39c", - }, - { - name: "LiteCoinGold", - symbol: "LTG", - decimals: 0, - address: "0x0879e0c9822b75f31f0b0ed2a30be9f484a57c2f", - }, - { - name: "EthereumBitcoin", - symbol: "BTCE", - decimals: 8, - address: "0x0886949c1b8c412860c4264ceb8083d1365e86cf", - }, - { - name: "Token Prospectors Gold", - symbol: "PGL", - decimals: 18, - address: "0x089a6d83282fb8988a656189f1e7a73fa6c1cac2", - }, - { - name: "Dentacoin", - symbol: "٨", - decimals: 0, - address: "0x08d32b0da63e2c3bcf8019c9c5d849d7a9d791e6", - }, - { - name: "Tierion Network Token", - symbol: "TNT", - decimals: 8, - address: "0x08f5a9235b08173b7569f83645d2c7fb55e8ccd8", - }, - { - name: "DASH GOLD", - symbol: "DHG", - decimals: 18, - address: "0x08f8117155aa9414b67113a47ad269d47974e9dc", - }, - { - name: "ClusterToken", - symbol: "CLRT", - decimals: 18, - address: "0x08fd34559f2ed8585d3810b4d96ab8a05c9f97c5", - }, - { - name: "Nova Token", - symbol: "NVT", - decimals: 18, - address: "0x09d8b66c48424324b25754a873e290cae5dca439", - }, - { - name: "MolikToken", - symbol: "MOL", - decimals: 18, - address: "0x09debe702678140c1be278213109719fab98d0d8", - }, - { - name: "Ethereum Lite", - symbol: "ELITE", - decimals: 18, - address: "0x0a76aad21948ea1ef447d26dee91a54370e151e0", - }, - { - name: "district0x Network Token", - symbol: "DNT", - decimals: 18, - address: "0x0abdace70d3790235af448c88547603b945604ea", - }, - { - name: "FARAD", - symbol: "FRD", - decimals: 18, - address: "0x0abefb7611cb3a01ea3fad85f33c3c934f8e2cf4", - }, - { - name: "Intelligent Trading Technologies", - symbol: "ITT", - decimals: 8, - address: "0x0aef06dcccc531e581f0440059e6ffcc206039ee", - }, - { - name: "MatryxToken", - symbol: "MTX", - decimals: 18, - address: "0x0af44e2784637218dd1d32a322d44e603a8f0c6a", - }, - { - name: "Polybius", - symbol: "PLBT", - decimals: 6, - address: "0x0affa06e7fbe5bc9a764c979aa66e8256a631f02", - }, - { - name: "Etheriya", - symbol: "RIYA", - decimals: 8, - address: "0x0b1724cc9fda0186911ef6a75949e9c0d3f0f2f3", - }, - { - name: "Just", - symbol: "JWT", - decimals: 0, - address: "0x0b24fdf35876bbe2a1cc925321b8c301017474d4", - }, - { - name: "Internet Node Token", - symbol: "INT", - decimals: 6, - address: "0x0b76544f6c413a555f309bf76260d1e02377c02a", - }, - { - name: "SwftCoin", - symbol: "SWFTC", - decimals: 8, - address: "0x0bb217e40f8a5cb79adf04e1aab60e5abd0dfc1e", - }, - { - name: "Virtual Cash", - symbol: "VCA", - decimals: 8, - address: "0x0bee5ca8dda2c0b8edd1c4369f7cc35d243e547f", - }, - { - name: "eZCash", - symbol: "EZEC", - decimals: 18, - address: "0x0c6c9beeeb5de377210930f09a7ac9a99ff5e981", - }, - { - name: "DATAcoin", - symbol: "DATA", - decimals: 18, - address: "0x0cf0ee63788a0849fe5297f3407f701e122cc023", - }, - { - name: "Basic Attention Token", - symbol: "BAT", - decimals: 18, - address: "0x0d8775f648430679a709e98d2b0cb6250d2887ef", - }, - { - name: "AVENTUS", - symbol: "AVT", - decimals: 18, - address: "0x0d88ed6e74bbfd96b831231638b66c05571e824f", - }, - { - name: "Po.et", - symbol: "POE", - decimals: 8, - address: "0x0e0989b1f9b8a38983c2ba8053269ca62ec9b195", - }, - { - name: "Leverj", - symbol: "LEV", - decimals: 9, - address: "0x0f4ca92660efad97a9a70cb0fe969c755439772c", - }, - { - name: "CrowdstartCoin", - symbol: "XSC", - decimals: 18, - address: "0x0f513ffb4926ff82d7f60a05069047aca295c413", - }, - { - name: "Monero Gold", - symbol: "XMRG", - decimals: 8, - address: "0x0f598112679b78e17a4a9febc83703710d33489c", - }, - { - name: "Decentraland", - symbol: "MANA", - decimals: 18, - address: "0x0f5d2fb29fb7d3cfee444a200298f468908cc942", - }, - { - name: "wellieat", - symbol: "WEA", - decimals: 0, - address: "0x0f9b1d1d39118480cf8b9575419ea4e5189c88dd", - }, - { - name: "Silver", - symbol: "SVB", - decimals: 5, - address: "0x0fcf5c6b20577d48ba209e077975b9f2eac55798", - }, - { - name: "Indicoin", - symbol: "INDI", - decimals: 18, - address: "0x0ffab58ea5a71cc3ca40217706c3c401407fa4a8", - }, - { - name: "Genesis Vision Token", - symbol: "GVT", - decimals: 18, - address: "0x103c3a209da59d3e7c4a89307e66521e081cfdf0", - }, - { - name: "", - symbol: "STH", - decimals: 0, - address: "0x1040613788e99c1606bd133db0ed7f7dbdf0cc80", - }, - { - name: "Aigang", - symbol: "AIX", - decimals: 18, - address: "0x1063ce524265d5a3a624f4914acd573dd89ce988", - }, - { - name: "Bloom Token", - symbol: "BLT", - decimals: 18, - address: "0x107c4504cd79c5d2696ea0030a8dd4e92601b82e", - }, - { - name: "Synapse", - symbol: "SYN", - decimals: 18, - address: "0x10b123fddde003243199aad03522065dc05827a0", - }, - { - name: "Denaro", - symbol: "DNO", - decimals: 7, - address: "0x10b35b348fd49966f2baf81df35a511c18bd1f80", - }, - { - name: "Windy", - symbol: "WND", - decimals: 18, - address: "0x10c0337c42843e0b8ce743d7d5ff39b711f3ad82", - }, - { - name: "Consumer Activity Token", - symbol: "CAT", - decimals: 18, - address: "0x111111f7e9b1fe072ade438f77e1ce861c7ee4e3", - }, - { - name: "Cryptonetix", - symbol: "CIX", - decimals: 18, - address: "0x1175a66a5c3343bbf06aa818bb482ddec30858e0", - }, - { - name: "QVT", - symbol: "QVT", - decimals: 18, - address: "0x1183f92a5624d68e85ffb9170f16bf0443b4c242", - }, - { - name: "", - symbol: "ETHC", - decimals: 0, - address: "0x11f8dd7699147566cf193596083d45c8f592c4ba", - }, - { - name: "ITL (Italian Lira)", - symbol: "ITL", - decimals: 8, - address: "0x122a86b5dff2d085afb49600b4cd7375d0d94a5f", - }, - { - name: "ArbitrageCT", - symbol: "ARCT", - decimals: 8, - address: "0x1245ef80f4d9e02ed9425375e8f649b9221b31d8", - }, - { - name: "Substratum", - symbol: "SUB", - decimals: 2, - address: "0x12480e24eb5bec1a9d4369cab6a80cad3c0a377a", - }, - { - name: "CREDITS", - symbol: "CS", - decimals: 6, - address: "0x12a35383ca24ceb44cdcbbecbeb7baccb5f3754a", - }, - { - name: "GRID Token", - symbol: "GRID", - decimals: 12, - address: "0x12b19d3e2ccc14da04fae33e63652ce469b3f2fd", - }, - { - name: "Spectre.ai D-Token", - symbol: "SXDT", - decimals: 18, - address: "0x12b306fa98f4cbb8d4457fdff3a0a0a56f07ccdf", - }, - { - name: "Cofoundit", - symbol: "CFI", - decimals: 18, - address: "0x12fef5e57bf45873cd9b62e9dbd7bfb99e32d73e", - }, - { - name: "Musiconomi", - symbol: "MCI", - decimals: 18, - address: "0x138a8752093f4f9a79aaedf48d4b9248fab93c9c", - }, - { - name: "Travelling Free Token", - symbol: "TFT", - decimals: 8, - address: "0x13ea82d5e1a811f55bda9c86fdd6195a6bd23aed", - }, - { - name: "Divi Exchange Token", - symbol: "DIVX", - decimals: 18, - address: "0x13f11c9905a08ca76e3e853be63d4f0944326c72", - }, - { - name: "Accelerator", - symbol: "ACC", - decimals: 18, - address: "0x13f1b7fdfbe1fc66676d56483e21b1ecb40b58e2", - }, - { - name: "Confido Token", - symbol: "CFD", - decimals: 18, - address: "0x14839bf22810f09fb163af69bd21bd5476f445cd", - }, - { - name: "CareCoin", - symbol: "CCT", - decimals: 18, - address: "0x149a23f3d1a1e61e1e3b7eddd27f32e01f9788c7", - }, - { - name: "HackerGold", - symbol: "HKG", - decimals: 3, - address: "0x14f37b574242d366558db61f3335289a5035c506", - }, - { - name: "SeedCash", - symbol: "SCX", - decimals: 0, - address: "0x14fffb1e001615b7fb7c7857bdf440a610022e5b", - }, - { - name: "BitBoost Tokens", - symbol: "BBT", - decimals: 4, - address: "0x1500205f50bf3fd976466d0662905c9ff254fc9c", - }, - { - name: "Bitcoin2X", - symbol: "BTC2X", - decimals: 8, - address: "0x15ef5b9447710eab904e63e6233ff540400d603f", - }, - { - name: "eREAL", - symbol: "eREAL", - decimals: 18, - address: "0x15f173b7aca7cd4a01d6f8360e65fb4491d270c1", - }, - { - name: "Persian", - symbol: "PRS", - decimals: 18, - address: "0x163733bcc28dbf26b41a8cfa83e369b5b3af741b", - }, - { - name: "T8Coin", - symbol: "T8C", - decimals: 3, - address: "0x164f64ef2a44444743c5472fa68fb3784060d286", - }, - { - name: "RHOC", - symbol: "RHOC", - decimals: 8, - address: "0x168296bb09e24a88805cb9c33356536b980d3fc5", - }, - { - name: "Tio", - symbol: "TIO", - decimals: 18, - address: "0x16b5a0de0520e1964a20ac8ef4034bd7d0920d8f", - }, - { - name: "United Traders Token", - symbol: "UTT", - decimals: 8, - address: "0x16f812be7fff02caf662b85d5d58a5da6572d4df", - }, - { - name: "CAD Static", - symbol: "CAD_S", - decimals: 18, - address: "0x1735fc2b89b80d1ae33c35dd55eae7fa7642f336", - }, - { - name: "Numeraire", - symbol: "NMR", - decimals: 18, - address: "0x1776e1f26f98b1a5df9cd347953a26dd3cb46671", - }, - { - name: "CoinDash Token", - symbol: "CDT", - decimals: 18, - address: "0x177d39ac676ed1c67a2b268ad7f1e58826e5b0af", - }, - { - name: "Fitcoin", - symbol: "FIT", - decimals: 5, - address: "0x179a2e413386db620d5b89a18550a3874385f726", - }, - { - name: "FLiK", - symbol: "FLIK", - decimals: 14, - address: "0x17fd666fa0784885fa1afec8ac624d9b7e72b752", - }, - { - name: "ZCashGOLD", - symbol: "ZCG", - decimals: 8, - address: "0x180e5087935a94fd5bbab00fd2249c5be0473381", - }, - { - name: "Alaricoin", - symbol: "ALCO", - decimals: 8, - address: "0x181a63746d3adcf356cbc73ace22832ffbb1ee5a", - }, - { - name: "EUR Static", - symbol: "EUR_S", - decimals: 18, - address: "0x1831887fbabf783910db128e60c41bfa016059d8", - }, - { - name: "Oyster Pearl", - symbol: "PRL", - decimals: 18, - address: "0x1844b21593262668b7248d0f57a220caaba46ab9", - }, - { - name: "Readcoin", - symbol: "RCN", - decimals: 8, - address: "0x189c05c3c191015c694032e1b09c190d5db3fb50", - }, - { - name: "GoGuides", - symbol: "eGO", - decimals: 18, - address: "0x18cabd1e7db6c52406719cb72859ea2c2eea75d6", - }, - { - name: "Elcoin Token", - symbol: "ELC", - decimals: 18, - address: "0x18edc1b644839eed61c69e624e96bbd469a2ef52", - }, - { - name: "Fame", - symbol: "FAM", - decimals: 12, - address: "0x190e569be071f40c704e15825f285481cb74b6cc", - }, - { - name: "UmbrellaCoin", - symbol: "UMC", - decimals: 6, - address: "0x190fb342aa6a15eb82903323ae78066ff8616746", - }, - { - name: "BitDegree Token", - symbol: "BDG", - decimals: 18, - address: "0x1961b3331969ed52770751fc718ef530838b6dee", - }, - { - name: "UHUB", - symbol: "HUB", - decimals: 18, - address: "0x19aea60e2fd6ac54ecf2576292c8fc7046429c37", - }, - { - name: "MyWish Token", - symbol: "WISH", - decimals: 18, - address: "0x1b22c32cd936cb97c28c5690a0695a82abf688e6", - }, - { - name: "HOQU Token", - symbol: "HQX", - decimals: 18, - address: "0x1b957dc4aefeed3b4a2351a6a6d5cbfbba0cecfa", - }, - { - name: "EthBits ETBS Token", - symbol: "ETBS", - decimals: 12, - address: "0x1b9743f556d65e757c4c650b4555baf354cb8bd3", - }, - { - name: "SHIT token", - symbol: "SHIT", - decimals: 2, - address: "0x1bb9e8ea817d56eccc212ce63f7da95298f98719", - }, - { - name: "ROC", - symbol: "ROC", - decimals: 10, - address: "0x1bcbc54166f6ba149934870b60506199b6c9db6d", - }, - { - name: "Parachute", - symbol: "PAR", - decimals: 18, - address: "0x1beef31946fbbb40b877a72e4ae04a8d1a5cee06", - }, - { - name: "BLOCKMASON CREDIT PROTOCOL TOKEN", - symbol: "BCPT", - decimals: 18, - address: "0x1c4481750daa5ff521a2a7490d9981ed46465dbd", - }, - { - name: "ANTS Reloaded", - symbol: "ANTS", - decimals: 8, - address: "0x1ccc29f9ced9d1a5ce81a7262eac8fcd7eca5788", - }, - { - name: "1K Token", - symbol: "1KT", - decimals: 18, - address: "0x1d10997e92011398a20612f9ee87e33449bc1fe4", - }, - { - name: "CanYaCoin", - symbol: "CAN", - decimals: 6, - address: "0x1d462414fe14cf489c7a21cac78509f4bf8cd7c0", - }, - { - name: "CREDEROOM Token", - symbol: "CDRT", - decimals: 8, - address: "0x1d9e20e581a5468644fe74ccb6a46278ef377f9e", - }, - { - name: "USD Static", - symbol: "USD_S", - decimals: 18, - address: "0x1daaf3d62582639c6a7eabb467e2db9b56fafbbd", - }, - { - name: "Lalena", - symbol: "LLA", - decimals: 18, - address: "0x1db186898bccde66fa64a50e4d81078951a30dbe", - }, - { - name: "Spank", - symbol: "SPNK", - decimals: 8, - address: "0x1eab19e6623e8cbcafc252e275f5b51c27656faf", - }, - { - name: "eLTC", - symbol: "ELTC", - decimals: 18, - address: "0x1f103fd7c4fa908c25387da70ed287b632bd22a2", - }, - { - name: "IRONCOIN", - symbol: "IRC", - decimals: 8, - address: "0x1f21d8395655fb262251897df7cb3c9358bec6a2", - }, - { - name: "Bancor Network Token", - symbol: "BNT", - decimals: 18, - address: "0x1f573d6fb3f13d689ff844b4ce37794d79a7ff1c", - }, - { - name: "NOKU", - symbol: "NOKU", - decimals: 18, - address: "0x1fc52f1abade452dd4674477d4711951700b3d27", - }, - { - name: "CoinLoan", - symbol: "CLT", - decimals: 8, - address: "0x2001f2a0cf801ecfda622f6c28fb6e10d803d969", - }, - { - name: "NihilCoin", - symbol: "NIH", - decimals: 8, - address: "0x202e295df742befa5e94e9123149360db9d9f2dc", - }, - { - name: "Blockpass Token", - symbol: "BPT", - decimals: 18, - address: "0x2160e6c0ae8ca7d62fe1f57fc049f8363283ff5f", - }, - { - name: "LionCoin", - symbol: "LION", - decimals: 18, - address: "0x2167fb82309cf76513e83b25123f8b0559d6b48f", - }, - { - name: "aducoin", - symbol: "ADU", - decimals: 18, - address: "0x21692a811335301907ecd6343743791802ba7cfd", - }, - { - name: "GOLDREWARD", - symbol: "GRX", - decimals: 18, - address: "0x219218f117dc9348b358b8471c55a073e5e0da0b", - }, - { - name: "MIND Token", - symbol: "MIND", - decimals: 18, - address: "0x222728c202e7164dfbd127181d46409338c4328e", - }, - { - name: "Network Token", - symbol: "NTWK", - decimals: 18, - address: "0x2233799ee2683d75dfefacbcd2a26c78d34b470d", - }, - { - name: "Propy", - symbol: "PRO", - decimals: 8, - address: "0x226bb599a12c826476e3a771454697ea52e9e220", - }, - { - name: "JPY Risk", - symbol: "JPY_R", - decimals: 18, - address: "0x22a3d74c363379189b6cc059d8fbd888e98df5ec", - }, - { - name: "Digital Rupiah", - symbol: "DRP", - decimals: 8, - address: "0x22c10728343e9d49ef25080f74a223878a3d4052", - }, - { - name: "Genevieve VC", - symbol: "GXVC", - decimals: 10, - address: "0x22f0af8d78851b72ee799e05f54a77001586b18a", - }, - { - name: "TravelCoin", - symbol: "TRV", - decimals: 16, - address: "0x23cb17d7d079518dbff4febb6efcc0de58d8c984", - }, - { - name: "Bananas", - symbol: "BNN", - decimals: 8, - address: "0x2405cc17ba128bfa7117815e04a4da228013f5bc", - }, - { - name: "UnikoinGold", - symbol: "UKG", - decimals: 18, - address: "0x24692791bc444c5cd0b81e3cbcaba4b04acd1f3b", - }, - { - name: "Proof Presale Token", - symbol: "PPT", - decimals: 18, - address: "0x2469f31a34fcaac0debf73806ce39b2388874b13", - }, - { - name: "SPARTA", - symbol: "SPARTA", - decimals: 4, - address: "0x24aef3bf1a47561500f9430d74ed4097c47f51f2", - }, - { - name: "Alvalor", - symbol: "TVAL", - decimals: 12, - address: "0x24cebc1548e698feffb5553b8ac8043b51069faa", - }, - { - name: "IUNGO token", - symbol: "ING", - decimals: 18, - address: "0x24ddff6d8b8a42d835af3b440de91f3386554aa4", - }, - { - name: "BioPayCoin", - symbol: "BIO", - decimals: 18, - address: "0x25432dd810730331498c22fbf6b98432e7ef3e66", - }, - { - name: "Raiden Token", - symbol: "RDN", - decimals: 18, - address: "0x255aa6df07540cb5d3d297f0d0d4d84cb52bc8e6", - }, - { - name: "Playkey", - symbol: "PKT", - decimals: 18, - address: "0x2604fa406be957e542beb89e6754fcde6815e83f", - }, - { - name: "Golden Fleece", - symbol: "GFL", - decimals: 18, - address: "0x26607f9bf9d62a37b0c78e1d3719fcd1fa32bef9", - }, - { - name: "AICoin", - symbol: "XAI", - decimals: 8, - address: "0x268b7976e94e84a48bf8b2b57ba34b59ed836a74", - }, - { - name: "ERC20", - symbol: "ERC", - decimals: 18, - address: "0x26d5bd2dfeda983ecd6c39899e69dae6431dffbb", - }, - { - name: "Crypto20", - symbol: "C20", - decimals: 18, - address: "0x26e75307fc0c021472feb8f727839531f112f317", - }, - { - name: "AirSwap Token", - symbol: "AST", - decimals: 4, - address: "0x27054b13b1b798b345b591a4d22e6562d47ea75a", - }, - { - name: "Slipstream", - symbol: "SLIP", - decimals: 0, - address: "0x27537ff4df3081cef9bee9b29cac764067b42611", - }, - { - name: "Enumivo", - symbol: "ENU", - decimals: 8, - address: "0x275b69aa7c8c1d648a0557656bce1c286e69a29d", - }, - { - name: "CryptoSocial", - symbol: "CSL", - decimals: 18, - address: "0x275fd328c3986be83f8b60f79c73cf63fde98ca5", - }, - { - name: "KickCoin", - symbol: "KICK", - decimals: 8, - address: "0x27695e09149adc738a978e9a678f99e4c39e9eb9", - }, - { - name: "Carlos Matos Token", - symbol: "HEY", - decimals: 18, - address: "0x278f5d89c85a4ac8aaa39e08444212cbb2546fd2", - }, - { - name: "AirToken", - symbol: "AIR", - decimals: 8, - address: "0x27dce1ec4d3f72c3e457cc50354f1f975ddef488", - }, - { - name: "Wand Token", - symbol: "WAND", - decimals: 18, - address: "0x27f610bf36eca0939093343ac28b1534a721dbb4", - }, - { - name: "TssToken", - symbol: "TSS", - decimals: 18, - address: "0x28481cdc0e4fa79164491d47e8837edeb3993f20", - }, - { - name: "WaBi", - symbol: "WaBi", - decimals: 18, - address: "0x286bda1413a2df81731d4930ce2f862a35a609fe", - }, - { - name: "AVY Token", - symbol: "AVY", - decimals: 18, - address: "0x289925d08b07e73dd0dd02d1407c877942215082", - }, - { - name: "", - symbol: "EPOSN", - decimals: 18, - address: "0x289fe11c6f46e28f9f1cfc72119aee92c1da50d0", - }, - { - name: "Ludum", - symbol: "LDM", - decimals: 18, - address: "0x28a40acf39b1d3c932f42dd8068ad00a5ad6448f", - }, - { - name: "Ethereum Gold", - symbol: "ETG", - decimals: 0, - address: "0x28c8d01ff633ea9cd8fc6a451d7457889e698de6", - }, - { - name: "BitDice CSNO", - symbol: "CSNO", - decimals: 8, - address: "0x29d75277ac7f0335b2165d0895e8725cbf658d73", - }, - { - name: "BitAsean", - symbol: "BAS", - decimals: 8, - address: "0x2a05d22db079bc40c2f77a1d1ff703a56e631cc1", - }, - { - name: "FoodCoin", - symbol: "FOOD", - decimals: 8, - address: "0x2a093bcf0c98ef744bb6f69d74f2f85605324290", - }, - { - name: "AdBank", - symbol: "ADB", - decimals: 18, - address: "0x2baac9330cf9ac479d819195794d79ad0c7616e3", - }, - { - name: "SkinCoin", - symbol: "SKIN", - decimals: 6, - address: "0x2bdc0d42996017fce214b21607a515da41a9e0c5", - }, - { - name: "Spectre.ai U-Token", - symbol: "SXUT", - decimals: 18, - address: "0x2c82c73d5b34aa015989462b2948cd616a37641f", - }, - { - name: "VIB", - symbol: "VIB", - decimals: 18, - address: "0x2c974b2d0ba1716e644c1fc59982a89ddd2ff724", - }, - { - name: "GeoUnits", - symbol: "GUNS", - decimals: 18, - address: "0x2ca72c9699b92b47272c9716c664cad6167c80b0", - }, - { - name: "DMarket Token", - symbol: "DMT", - decimals: 8, - address: "0x2ccbff3a042c68716ed2a2cb0c544a9f1d1935e1", - }, - { - name: "Infinity Pay", - symbol: "IPY", - decimals: 8, - address: "0x2cfd4c10c075fa51649744245ec1d0aa3d567e23", - }, - { - name: "Authorship Token", - symbol: "ATS", - decimals: 4, - address: "0x2daee1aa61d60a252dc80564499a69802853583a", - }, - { - name: "HashRush", - symbol: "RC", - decimals: 8, - address: "0x2dbe0f03f1dddbdbc87557e86df3878ae25af855", - }, - { - name: "DICE", - symbol: "ROL", - decimals: 16, - address: "0x2e071d2966aa7d8decb1005885ba1977d6038a65", - }, - { - name: "Logarithm", - symbol: "LGR", - decimals: 8, - address: "0x2eb86e8fc520e0f6bb5d9af08f924fe70558ab89", - }, - { - name: "Aducoin", - symbol: "ADU", - decimals: 18, - address: "0x2edc6fcc641f0169d54abb842f96f701eae85e4e", - }, - { - name: "PoWEth", - symbol: "POWE", - decimals: 8, - address: "0x2ee6d1a3ba4e80a61bdfb48a90d40a5cef455326", - }, - { - name: "eRipple", - symbol: "EXRP", - decimals: 18, - address: "0x2f1b8c9d0a21b747d8ca370f93cb09d3daf222ef", - }, - { - name: "HYBRID", - symbol: "XHY", - decimals: 8, - address: "0x2f4baef93489b09b5e4b923795361a65a26f55e5", - }, - { - name: "Agora", - symbol: "AGO", - decimals: 18, - address: "0x2f5e044ad4adac34c8d8df738fac7743eda1409c", - }, - { - name: "LatiumX", - symbol: "LATX", - decimals: 8, - address: "0x2f85e502a988af76f7ee6d83b7db8d6c0a823bf9", - }, - { - name: "PayFair Token", - symbol: "PFR", - decimals: 8, - address: "0x2fa32a39fc1c399e0cc7b2935868f5165de7ce97", - }, - { - name: "DomainToken", - symbol: "DOM", - decimals: 0, - address: "0x30aee7f259d6d1564ebef457847c672b30f13cbc", - }, - { - name: "ClassyCoin", - symbol: "ClassyCoin", - decimals: 16, - address: "0x30cc0e266cf33b8eac6a99cbd98e39b890cfd69b", - }, - { - name: "CoinFi", - symbol: "COFI", - decimals: 18, - address: "0x3136ef851592acf49ca4c825131e364170fa32b3", - }, - { - name: "Coin Tour", - symbol: "COT", - decimals: 8, - address: "0x31705aa4933c106f3d15f64df0eb70d8d37fc36e", - }, - { - name: "ALLY", - symbol: "ALLY", - decimals: 18, - address: "0x31b5e97294e1afd6fff6ffe4cba89a344555f753", - }, - { - name: "Blockport Token", - symbol: "BPT", - decimals: 18, - address: "0x327682779bab2bf4d1337e8974ab9de8275a7ca8", - }, - { - name: "TriaToken", - symbol: "TRIA", - decimals: 10, - address: "0x3293cc907fde439b39aedaf1b982785adaff186b", - }, - { - name: "", - symbol: "NUGD", - decimals: 0, - address: "0x32c785e4e8477b277fea2ca2301727084d79d933", - }, - { - name: "ATMToken", - symbol: "ATMT", - decimals: 18, - address: "0x331a550a2c7f96384eb69127aa0ea9ad4b5da099", - }, - { - name: "Crystal Clear Token", - symbol: "CCT", - decimals: 18, - address: "0x336f646f87d9f6bc6ed42dd46e8b3fd9dbd15c22", - }, - { - name: "WishFinance Token", - symbol: "WSH", - decimals: 10, - address: "0x33b7a018934c6e90fd63189d7c4517f0f776142f", - }, - { - name: "BLOCKv Token", - symbol: "VEE", - decimals: 18, - address: "0x340d2bde5eb28c1eed91b2f790723e3b160613b7", - }, - { - name: "RoboAdvisorCoin", - symbol: "RAC", - decimals: 18, - address: "0x342ba159f988f24f0b033f3cc5232377ee500543", - }, - { - name: "Pinky", - symbol: "PNK", - decimals: 0, - address: "0x3485b9566097ad656c70d6ebbd1cd044e2e72d05", - }, - { - name: "Pundi X Token", - symbol: "PXS", - decimals: 18, - address: "0x358d12436080a01a16f711014610f8a4c2c2d233", - }, - { - name: "DENT", - symbol: "DENT", - decimals: 8, - address: "0x3597bfd533a99c9aa083587b074434e61eb0a258", - }, - { - name: "JAPAN BRAND COIN", - symbol: "JBC", - decimals: 18, - address: "0x3635e381c67252405c1c0e550973155832d5e490", - }, - { - name: "Ethereum Alpes", - symbol: "EALP", - decimals: 18, - address: "0x37256d58e298cacaa82aa0527d56521f1b19e1f5", - }, - { - name: "MillionDollarToken", - symbol: "MDT", - decimals: 0, - address: "0x37f014c64d186eaf879c0033846b51924ce42584", - }, - { - name: "exsulcoin", - symbol: "XUL", - decimals: 0, - address: "0x382a71ecb288da8701428406a36ffa5d8f072d55", - }, - { - name: "SPHTX", - symbol: "SPHTX", - decimals: 18, - address: "0x3833dda0aeb6947b98ce454d89366cba8cc55528", - }, - { - name: "Bezop", - symbol: "Bez", - decimals: 18, - address: "0x3839d8ba312751aa0248fed6a8bacb84308e20ed", - }, - { - name: "Embers", - symbol: "MBRS", - decimals: 0, - address: "0x386467f1f3ddbe832448650418311a479eecfc57", - }, - { - name: "benjaCoin", - symbol: "BENJA", - decimals: 8, - address: "0x38968746147bbaeb882f356ad9a57594bb158235", - }, - { - name: "Bitpark", - symbol: "BTA", - decimals: 18, - address: "0x38c04d415f6740c7700185533a64b5f44cbf684c", - }, - { - name: "NONDO", - symbol: "NDO", - decimals: 4, - address: "0x38d1c39c3e85dbf0fc2f2d637a4872530ad07a5f", - }, - { - name: "Speed Mining Service", - symbol: "SMS", - decimals: 3, - address: "0x39013f961c378f02c2b82a6e1d31e9812786fd9d", - }, - { - name: "DISLEDGER", - symbol: "DCL", - decimals: 3, - address: "0x399a0e6fbeb3d74c85357439f4c8aed9678a5cbf", - }, - { - name: "Wax Token", - symbol: "WAX", - decimals: 8, - address: "0x39bb259f66e1c59d5abef88375979b4d20d98022", - }, - { - name: "Mindexcoin", - symbol: "MIC", - decimals: 18, - address: "0x3a1237d38d0fb94513f85d61679cad7f38507242", - }, - { - name: "FLIP Token", - symbol: "FLP", - decimals: 18, - address: "0x3a1bda28adb5b0a812a7cf10a1950c920f79bcd3", - }, - { - name: "EtherBIT", - symbol: "ETHB", - decimals: 8, - address: "0x3a26746ddb79b1b8e4450e3f4ffe3285a307387e", - }, - { - name: "Privatix", - symbol: "PRIX", - decimals: 8, - address: "0x3adfc4999f77d04c8341bac5f3a76f58dff5b37a", - }, - { - name: "RvT", - symbol: "RVT", - decimals: 18, - address: "0x3d1ba9be9f66b8ee101911bc36d3fb562eac2244", - }, - { - name: "The Movement", - symbol: "MVT", - decimals: 18, - address: "0x3d46454212c61ecb7b31248047fa033120b88668", - }, - { - name: "DRP Security", - symbol: "DRPS", - decimals: 8, - address: "0x3e250a4f78410c29cfc39463a81f14a226690eb4", - }, - { - name: "Alpha", - symbol: "ALPHA", - decimals: 18, - address: "0x3eb21f4678b352fcd8facf06b642c6720e04961b", - }, - { - name: "Heiss Shares", - symbol: "HYS", - decimals: 1, - address: "0x3f5bc4fc79b5f8b93ff4814cd9f9a281893d50c9", - }, - { - name: "MobileGo Token", - symbol: "MGO", - decimals: 8, - address: "0x40395044ac3c0c57051906da938b54bd6557f212", - }, - { - name: "Republic Token", - symbol: "REN", - decimals: 18, - address: "0x408e41876cccdc0f92210600ef50372656052a38", - }, - { - name: "OCoin", - symbol: "OCN", - decimals: 18, - address: "0x4092678e4e78230f46a1534c0fbc8fa39780892b", - }, - { - name: "Mixed Martial Arts", - symbol: "MMA", - decimals: 18, - address: "0x40b04166871d9956f5f261d76d349da8d07f82c3", - }, - { - name: "EU coin", - symbol: "EC", - decimals: 0, - address: "0x40caa728bb4bafa56f38a58623a12fbe6c90209d", - }, - { - name: "EBitCoinCash", - symbol: "EBCH", - decimals: 18, - address: "0x415116bad878730f5db008ff381a73222128ad39", - }, - { - name: "Salt", - symbol: "SALT", - decimals: 8, - address: "0x4156d3342d5c385a87d264f90653733592000581", - }, - { - name: "Colu Local Network", - symbol: "CLN", - decimals: 18, - address: "0x4162178b78d6985480a308b2190ee5517460406d", - }, - { - name: "Dragon", - symbol: "DRGN", - decimals: 18, - address: "0x419c4db4b9e25d6db2ad9691ccb832c8d9fda05e", - }, - { - name: "FunFair", - symbol: "FUN", - decimals: 8, - address: "0x419d0d8bdd9af5e606ae2232ed285aff190e711b", - }, - { - name: "MedToken", - symbol: "MTN", - decimals: 18, - address: "0x41dbecc1cdc5517c6f76f6a6e836adbee2754de3", - }, - { - name: "Civic", - symbol: "CVC", - decimals: 8, - address: "0x41e5560054824ea6b0732e656e3ad64e20e94e45", - }, - { - name: "BITINDIA", - symbol: "BITINDIA", - decimals: 18, - address: "0x420335d3deef2d5b87524ff9d0fb441f71ea621f", - }, - { - name: "Stop Tabac Coin", - symbol: "STCn", - decimals: 0, - address: "0x420c42ce1370c0ec3ca87d9be64a7002e78e6709", - }, - { - name: "Adshares Token", - symbol: "ADST", - decimals: 0, - address: "0x422866a8f0b032c5cf1dfbdef31a20f4509562b0", - }, - { - name: "FOTA", - symbol: "FOTA", - decimals: 18, - address: "0x4270bb238f6dd8b1c3ca01f96ca65b2647c06d3c", - }, - { - name: "SPANK", - symbol: "SPANK", - decimals: 18, - address: "0x42d6622dece394b54999fbd73d108123806f6a18", - }, - { - name: "Opus Token", - symbol: "OPT", - decimals: 18, - address: "0x4355fc160f74328f9b383df2ec589bb3dfd82ba0", - }, - { - name: "BETNetwork", - symbol: "BTN", - decimals: 4, - address: "0x437cf0bf53634e3dfa5e3eaff3104004d50fb532", - }, - { - name: "UG Token", - symbol: "UGT", - decimals: 18, - address: "0x43ee79e379e7b78d871100ed696e803e7893b644", - }, - { - name: "ELTCOIN", - symbol: "ELTCOIN", - decimals: 8, - address: "0x44197a4c44d6a059297caf6be4f7e172bd56caaf", - }, - { - name: "AdEx", - symbol: "ADX", - decimals: 4, - address: "0x4470bb87d77b963a013db939be332f927f2b992e", - }, - { - name: "Ethereum Centurion", - symbol: "ETHC", - decimals: 8, - address: "0x44830e5fbe354af3c1c8d405170c08d3bc8a2cd9", - }, - { - name: "NEO Gold", - symbol: "NEOG", - decimals: 0, - address: "0x449574c69f3a658794829ed81639a7a9ece041e1", - }, - { - name: "", - symbol: "EBTGOLD", - decimals: 0, - address: "0x44e6d9ae9053a16e9311fd9702291c5516804359", - }, - { - name: "SnipCoin", - symbol: "SNIP", - decimals: 18, - address: "0x44f588aeeb8c44471439d1270b3603c66a9262f1", - }, - { - name: "Datocoin", - symbol: "DTCN", - decimals: 4, - address: "0x450711d5da9f7cadb0e4d3472be550328b37bdda", - }, - { - name: '"BANKEX" project utility token', - symbol: "BKX", - decimals: 18, - address: "0x45245bc59219eeaaf6cd3f382e078a461ff9de7b", - }, - { - name: "REDEEM Token", - symbol: "DEEM", - decimals: 18, - address: "0x45321004790a4dae7ba19217a10574d55739efc7", - }, - { - name: "Nexium", - symbol: "NxC", - decimals: 3, - address: "0x45e42d659d9f9466cd5df622506033145a9b89bc", - }, - { - name: "Ultimat", - symbol: "ULT", - decimals: 18, - address: "0x4632091b0dd0e0902d1fe0534e16eb7b20328d70", - }, - { - name: "StarCredits", - symbol: "STRC", - decimals: 8, - address: "0x46492473755e8df960f8034877f61732d718ce96", - }, - { - name: "RAX Token", - symbol: "RAX", - decimals: 18, - address: "0x468d58d6a52249844a166d0ef045dbdd7ce0c751", - }, - { - name: "CREDITS", - symbol: "CS", - decimals: 6, - address: "0x46b9ad944d1059450da1163511069c718f699d31", - }, - { - name: "Rasper", - symbol: "RSPR", - decimals: 16, - address: "0x46eec301d2d00087145d1588282c182bd1890e5c", - }, - { - name: "Valid Cash", - symbol: "VALID", - decimals: 2, - address: "0x4794b28f59533c52d99028e06878ae7d1e4d1802", - }, - { - name: "EQUAL", - symbol: "EQL", - decimals: 18, - address: "0x47dd62d4d075dead71d0e00299fc56a2d747bebb", - }, - { - name: "R token", - symbol: "R", - decimals: 0, - address: "0x48f775efbe4f5ece6e0df2f7b5932df56823b990", - }, - { - name: "Ethereum X", - symbol: "ETHX", - decimals: 18, - address: "0x494bbaf0124285e6ecb4dfd9eac76e18a9bf470f", - }, - { - name: "Billionaire Token", - symbol: "XBL", - decimals: 18, - address: "0x49aec0752e68d0282db544c677f6ba407ba17ed7", - }, - { - name: "Relex", - symbol: "RLX", - decimals: 18, - address: "0x4a42d2c580f83dce404acad18dab26db11a1750e", - }, - { - name: "GECoin", - symbol: "GEC", - decimals: 3, - address: "0x4a536c1ce7ad7f6e8d2e59135e17aef5ef4dd4e6", - }, - { - name: "SWAP", - symbol: "SWP", - decimals: 18, - address: "0x4b35e0ab998ebe8414871c13cf778f9d0bbdf609", - }, - { - name: "Handelion token", - symbol: "HDLT", - decimals: 18, - address: "0x4b4e611823702285fd526d7a8a3b0aa99ab2dbcd", - }, - { - name: "Skrilla", - symbol: "SKR", - decimals: 6, - address: "0x4c382f8e09615ac86e08ce58266cc227e7d4d913", - }, - { - name: "Funnel", - symbol: "FNL", - decimals: 3, - address: "0x4c5601164e2048a4154de91fa5e0b07e626cab7f", - }, - { - name: "SelfKey", - symbol: "KEY", - decimals: 18, - address: "0x4cc19356f2d37338b9802aa8e8fc58b0373296e7", - }, - { - name: "BihuKey", - symbol: "KEY", - decimals: 18, - address: "0x4cd988afbad37289baaf53c13e98e2bd46aaea8c", - }, - { - name: "AION", - symbol: "AION", - decimals: 8, - address: "0x4ceda7906a5ed2179785cd3a40a69ee8bc99c466", - }, - { - name: "WePower Token", - symbol: "WPR", - decimals: 18, - address: "0x4cf488387f035ff08c371515562cba712f9015d4", - }, - { - name: "Adbota", - symbol: "BOTA", - decimals: 18, - address: "0x4d11061ec8f401edc2395b5f439a05eee6ccfa50", - }, - { - name: "CoinCrowd", - symbol: "XCC", - decimals: 18, - address: "0x4d829f8c92a6691c56300d020c9e0db984cfe2ba", - }, - { - name: "Bee Token", - symbol: "BEE", - decimals: 18, - address: "0x4d8fc1453a0f359e99c9675954e656d80d996fbf", - }, - { - name: "Amber Token", - symbol: "AMB", - decimals: 18, - address: "0x4dc3643dbc642b72c158e7f3d2ff232df61cb6ce", - }, - { - name: "FundRequest", - symbol: "FND", - decimals: 18, - address: "0x4df47b4969b2911c966506e3592c41389493953b", - }, - { - name: "Xaurum", - symbol: "XAUR", - decimals: 8, - address: "0x4df812f6064def1e5e029f1ca858777cc98d2d81", - }, - { - name: "Credo Token", - symbol: "CREDO", - decimals: 18, - address: "0x4e0603e2a27a30480e5e3a4fe548e29ef12f64be", - }, - { - name: "YoshiCoin", - symbol: "YC", - decimals: 0, - address: "0x4e260e3ca268e40133c84b142de73108a7c1ec99", - }, - { - name: "eTelevision", - symbol: "eTV", - decimals: 8, - address: "0x4e279d8638e8669fad40e018fc181d26ee780380", - }, - { - name: "CehhCoin", - symbol: "CEHH", - decimals: 0, - address: "0x4f38f4229924bfa28d58eeda496cc85e8016bccc", - }, - { - name: "HealthHeart Tokens", - symbol: "HHT", - decimals: 18, - address: "0x4fbc28e3b3c1c50ee05dcd66d9fc614a0cb99705", - }, - { - name: "JavaScript", - symbol: "JS", - decimals: 8, - address: "0x5046e860ff274fb8c66106b0ffb8155849fb0787", - }, - { - name: "EmphyCoin", - symbol: "EPY", - decimals: 8, - address: "0x50ee674689d75c0f88e8f83cfe8c4b69e8fd590d", - }, - { - name: "PolyAI", - symbol: "AI", - decimals: 18, - address: "0x5121e348e897daef1eef23959ab290e5557cf274", - }, - { - name: "ChainLink Token", - symbol: "LINK", - decimals: 18, - address: "0x514910771af9ca656af840dff83e8264ecf986ca", - }, - { - name: "Ormeus Coin", - symbol: "ORME", - decimals: 8, - address: "0x516e5436bafdc11083654de7bb9b95382d08d5de", - }, - { - name: "VIU", - symbol: "VIU", - decimals: 18, - address: "0x519475b31653e46d20cd09f9fdcf3b12bdacb4f5", - }, - { - name: "Moeda Loyalty Points", - symbol: "MDA", - decimals: 18, - address: "0x51db5ad35c671a87207d88fc11d593ac0c8415bd", - }, - { - name: "IQT Token", - symbol: "IQT", - decimals: 8, - address: "0x51ee82641ac238bde34b9859f98f5f311d6e4954", - }, - { - name: "CARBON TOKEN CLASSIC", - symbol: "CTC", - decimals: 4, - address: "0x52514e3acaeb06cab050a69b025083082ebe5b54", - }, - { - name: "Pump coin", - symbol: "PUMP", - decimals: 15, - address: "0x52a17ca01b9925752aefde41bf80d7b10514e136", - }, - { - name: "fidentiaX", - symbol: "fdX", - decimals: 18, - address: "0x52a7cb918c11a16958be40cba7e31e32a499a465", - }, - { - name: "MOLD", - symbol: "MLD", - decimals: 18, - address: "0x52e30201f31283dc5f7928b4198896083f604416", - }, - { - name: "YachtCoin", - symbol: "YACHT", - decimals: 9, - address: "0x52f7018bc6ba4d24abfbaefccae4617bfb0a0b52", - }, - { - name: "Ethereum Blue", - symbol: "BLUE", - decimals: 8, - address: "0x539efe69bcdd21a83efd9122571a64cc25e0282b", - }, - { - name: "Decent.Bet Token", - symbol: "DBET", - decimals: 18, - address: "0x540449e4d172cd9491c76320440cd74933d5691a", - }, - { - name: "Meridian", - symbol: "MDN", - decimals: 8, - address: "0x550879f1778b575ddc8eb2095fbc9f4783b5f2f6", - }, - { - name: "Decision Token", - symbol: "HST", - decimals: 18, - address: "0x554c20b7c486beee439277b4540a434566dc4c02", - }, - { - name: "Autonio", - symbol: "NIO", - decimals: 0, - address: "0x5554e04e76533e1d14c52f05beef6c9d329e1e30", - }, - { - name: "Pebbles", - symbol: "PBL", - decimals: 18, - address: "0x55648de19836338549130b1af587f16bea46f66b", - }, - { - name: "BITCOINPURE", - symbol: "BTCP", - decimals: 18, - address: "0x559201fa75902cdc4055e40f0c90e3d702049987", - }, - { - name: "Jade Cash Coin", - symbol: "JCC", - decimals: 18, - address: "0x55a0dd2f1b1d8034894c99507b6439eca479cf62", - }, - { - name: "PEX-Token", - symbol: "PEXT", - decimals: 4, - address: "0x55c2a0c171d920843560594de3d6eecc09efc098", - }, - { - name: "GreenPower", - symbol: "P+", - decimals: 0, - address: "0x55e7c4a77821d5c50b4570b08f9f92896a25e012", - }, - { - name: "iGnite", - symbol: "IGN", - decimals: 6, - address: "0x569cbdcc684edcc589939cc8f6b96e6abd9eb0f3", - }, - { - name: "Ethereum Meta", - symbol: "ETHM", - decimals: 18, - address: "0x56b6431f45d08eed55f34371386326c739eacbcc", - }, - { - name: "BlockCAT Token", - symbol: "CAT", - decimals: 18, - address: "0x56ba2ee7890461f463f7be02aac3099f6d5811a8", - }, - { - name: "BiCode", - symbol: "CODE", - decimals: 8, - address: "0x56e7f2cd7d5382506aab084a67d70e603cdb23f7", - }, - { - name: "Solareum", - symbol: "SLRM", - decimals: 18, - address: "0x56ee8c9bd1d445a3324ad83e86d8be309db8f85d", - }, - { - name: "Bluzelle Token", - symbol: "BLZ", - decimals: 18, - address: "0x5732046a883704404f284ce41ffadd5b007fd668", - }, - { - name: "KredX Token", - symbol: "KRT", - decimals: 4, - address: "0x5783862cef49094be4de1fe31280b2e33cf87416", - }, - { - name: "MeeTip", - symbol: "MTIP", - decimals: 18, - address: "0x57a3dc224dccc0526954ff60ca6badd19c274d88", - }, - { - name: "Neubulous Token", - symbol: "NEBO", - decimals: 3, - address: "0x580d69737e11cf2fb306c8fc0161b86f7c9f03ba", - }, - { - name: "SocialX", - symbol: "SOCX", - decimals: 8, - address: "0x587c549c4113127340ac0f5e996cab7a4f35bb49", - }, - { - name: "BIONT Token", - symbol: "BIONT", - decimals: 18, - address: "0x5882d49d3511e09096cbbab7e19fbfb82f65f28d", - }, - { - name: "GXC", - symbol: "GXC", - decimals: 10, - address: "0x58ca3065c0f24c7c96aee8d6056b5b5decf9c2f8", - }, - { - name: "PowerLedger", - symbol: "POWR", - decimals: 6, - address: "0x595832f8fc6bf59c85c527fec3740a1b7a361269", - }, - { - name: "", - symbol: "SAI", - decimals: 18, - address: "0x59adcf176ed2f6788a41b8ea4c4904518e62b6a4", - }, - { - name: "Horse", - symbol: "HORSE", - decimals: 18, - address: "0x5b0751713b2527d7f002c0c4e2a37e1219610a6b", - }, - { - name: "IDICE", - symbol: "ICE", - decimals: 18, - address: "0x5a84969bb663fb64f6d015dcf9f622aedc796750", - }, - { - name: "BTC LITE", - symbol: "BTCL", - decimals: 8, - address: "0x5acd19b9c91e596b1f062f18e3d02da7ed8d1e50", - }, - { - name: "Bitquence", - symbol: "BQX", - decimals: 8, - address: "0x5af2be193a6abca9c8817001f45744777db30756", - }, - { - name: "MealCoinDinnerful", - symbol: "MCD", - decimals: 18, - address: "0x5afda18caba69fe3af5e6d56e42e1c9f92c40d77", - }, - { - name: "Education", - symbol: "EDU", - decimals: 8, - address: "0x5b26c5d0772e5bbac8b3182ae9a13f9bb2d03765", - }, - { - name: "Hut34 Entropy Token", - symbol: "ENTRP", - decimals: 18, - address: "0x5bc7e5f0ab8b2e10d2d0a3f21739fce62459aef3", - }, - { - name: "UAHPAY", - symbol: "UAH", - decimals: 18, - address: "0x5c5413bad5f6fdb0f4fcd1457e46ead8e01d73d3", - }, - { - name: "vSlice", - symbol: "VSL", - decimals: 18, - address: "0x5c543e7ae0a1104f78406c340e9c64fd9fce5170", - }, - { - name: "Nexxus", - symbol: "NXX", - decimals: 8, - address: "0x5c6183d10a00cd747a6dbb5f658ad514383e9419", - }, - { - name: "BlockChain Board Of Derivatives Token", - symbol: "BBD", - decimals: 18, - address: "0x5ca71ea65acb6293e71e62c41b720698b0aa611c", - }, - { - name: "Aeternity", - symbol: "AE", - decimals: 18, - address: "0x5ca9a71b1d01849c0a95490cc00559717fcf0d1d", - }, - { - name: "iMPERIUM COIN", - symbol: "MPRM", - decimals: 0, - address: "0x5cf4e9dfd975c52aa523fb5945a12235624923dc", - }, - { - name: "ethereumcash", - symbol: "ECASH", - decimals: 18, - address: "0x5d21ef5f25a985380b65c8e943a0082feda0db84", - }, - { - name: "B2BX", - symbol: "B2BX", - decimals: 18, - address: "0x5d51fcced3114a8bb5e90cdd0f9d682bcbcc5393", - }, - { - name: "Nebulas Token", - symbol: "NAS", - decimals: 18, - address: "0x5d65d971895edc438f465c17db6992698a52318d", - }, - { - name: "RARE", - symbol: "RARE", - decimals: 8, - address: "0x5ddab66da218fb05dfeda07f1afc4ea0738ee234", - }, - { - name: "LockChain", - symbol: "LOC", - decimals: 18, - address: "0x5e3346444010135322268a4630d2ed5f8d09446c", - }, - { - name: "Wi Coin", - symbol: "WiC", - decimals: 18, - address: "0x5e4abe6419650ca839ce5bb7db422b881a6064bb", - }, - { - name: "Bitlong BTL", - symbol: "BTL", - decimals: 6, - address: "0x5ecd84482176db90bb741ddc8c2f9ccc290e29ce", - }, - { - name: "Rebellious", - symbol: "REBL", - decimals: 18, - address: "0x5f53f7a8075614b699baad0bc2c899f4bad8fbbf", - }, - { - name: "JPY Static", - symbol: "JPY_S", - decimals: 18, - address: "0x5f54c1512d036a0dd92744ee0a55ed183dde0484", - }, - { - name: "Artemine", - symbol: "ARTE", - decimals: 18, - address: "0x5f6e7fb7fe92ea7822472bb0e8f1be60d6a4ea50", - }, - { - name: "BlackGarlic", - symbol: "BGL", - decimals: 18, - address: "0x5fb05fffe4be327ab88dacd6ee61e60ddc8958ae", - }, - { - name: "Twit", - symbol: "TWIT", - decimals: 8, - address: "0x60200c0fefc1d0ade1e19a247b703cf3ccdc915a", - }, - { - name: "eGold", - symbol: "EGOLD", - decimals: 18, - address: "0x6025f65f6b2f93d8ed1efedc752acfd4bdbcec3e", - }, - { - name: "iEx.ec Network Token", - symbol: "RLC", - decimals: 9, - address: "0x607f4c5bb672230e8672085532f7e901544a7375", - }, - { - name: "Ethino", - symbol: "ENO", - decimals: 18, - address: "0x614ea929892ea43d3ea2c5e3311b01cc589bad6c", - }, - { - name: "DCORP", - symbol: "DRP", - decimals: 2, - address: "0x621d78f2ef2fd937bfca696cabaf9a779f59b3ed", - }, - { - name: "MoviToken", - symbol: "MOVI", - decimals: 0, - address: "0x623b925b0a57a24ea8de301f2e3e692ce903f0c3", - }, - { - name: "PAYPEX", - symbol: "PAYX", - decimals: 2, - address: "0x62a56a4a2ef4d355d34d10fbf837e747504d38d4", - }, - { - name: "Bitcoin Royal", - symbol: "BCR", - decimals: 18, - address: "0x633a8f8e557702039463f9f2eb20b7936fff8c05", - }, - { - name: "Altcoins", - symbol: "ALTS", - decimals: 18, - address: "0x638ac149ea8ef9a1286c41b977017aa7359e6cfa", - }, - { - name: "Soma Community Token", - symbol: "SCT", - decimals: 18, - address: "0x63b992e6246d88f07fc35a056d2c365e6d441a3d", - }, - { - name: "RED MWAT", - symbol: "MWAT", - decimals: 18, - address: "0x6425c6be902d692ae2db752b3c268afadb099d3b", - }, - { - name: "FAPcoin", - symbol: "FAP", - decimals: 18, - address: "0x6467882316dc6e206feef05fba6deaa69277f155", - }, - { - name: "Rent Token", - symbol: "RENT", - decimals: 18, - address: "0x64c86899bc02dd9af823b131e5acd4369f72bd39", - }, - { - name: "FreelancerCoin", - symbol: "LAN", - decimals: 18, - address: "0x64ff248ddd36430e3640fbea76999941a8bccbd7", - }, - { - name: "COSS", - symbol: "COSS", - decimals: 18, - address: "0x65292eeadf1426cd2df1c4793a3d7519f253913b", - }, - { - name: "Chronobank TIME", - symbol: "TIME", - decimals: 8, - address: "0x6531f133e6deebe7f2dce5a0441aa7ef330b4e53", - }, - { - name: "Crescent", - symbol: "CSN", - decimals: 8, - address: "0x6576963107077cce5ec879978c03ec6bb300cc89", - }, - { - name: "BitCAD", - symbol: "BCD", - decimals: 6, - address: "0x660b612ec57754d949ac1a09d0c2937a010dee05", - }, - { - name: "CarTaxi", - symbol: "CTX", - decimals: 18, - address: "0x662abcad0b7f345ab7ffb1b1fbb9df7894f18e66", - }, - { - name: "PornToken", - symbol: "PT", - decimals: 18, - address: "0x66497a283e0a007ba3974e837784c6ae323447de", - }, - { - name: "WINGS", - symbol: "WINGS", - decimals: 18, - address: "0x667088b212ce3d06a1b553a7221e1fd19000d9af", - }, - { - name: "Decent Token", - symbol: "DCNT", - decimals: 1, - address: "0x6678e467fa5ccfbdc264d12f4b8b28fe4661606b", - }, - { - name: "Quantum", - symbol: "QAU", - decimals: 8, - address: "0x671abbe5ce652491985342e85428eb1b07bc6c64", - }, - { - name: "Verify Token", - symbol: "CRED", - decimals: 18, - address: "0x672a1ad4f667fb18a333af13667aa0af1f5b5bdd", - }, - { - name: "BitSerial", - symbol: "BTE", - decimals: 18, - address: "0x6733d909e10ddedb8d6181b213de32a30ceac7ed", - }, - { - name: "ZAP TOKEN", - symbol: "ZAP", - decimals: 18, - address: "0x6781a0f84c7e9e846dcb84a9a5bd49333067b104", - }, - { - name: "Ccore Token", - symbol: "CCO", - decimals: 18, - address: "0x679badc551626e01b23ceecefbc9b877ea18fc46", - }, - { - name: "Gnosis Token", - symbol: "GNO", - decimals: 18, - address: "0x6810e776880c02933d47db1b9fc05908e5386b96", - }, - { - name: "GAT Token", - symbol: "GAT", - decimals: 18, - address: "0x687174f8c49ceb7729d925c3a961507ea4ac7b28", - }, - { - name: "Signals", - symbol: "SIG", - decimals: 18, - address: "0x6888a16ea9792c15a4dcf2f6c623d055c8ede792", - }, - { - name: "Mothership Token", - symbol: "MSP", - decimals: 18, - address: "0x68aa3f232da9bdc2343465545794ef3eea5209bd", - }, - { - name: "Gilgames", - symbol: "GGS", - decimals: 18, - address: "0x68db10ecc599d9f5e657acdafdbf6449d658bb2d", - }, - { - name: "European Crypto Bank", - symbol: "ECB", - decimals: 4, - address: "0x69786859bc92e0ca82fcfe1bffc502b7bea6a069", - }, - { - name: "QRL", - symbol: "QRL", - decimals: 8, - address: "0x697beac28b09e122c4332d163985e8a73121b97f", - }, - { - name: "Ravelous", - symbol: "RAVE", - decimals: 18, - address: "0x6a09e1b7cc5cb52ffdfc585a8df51ced7063915c", - }, - { - name: "Bitcoin Red", - symbol: "BTCR", - decimals: 8, - address: "0x6aac8cb9861e42bf8259f5abdc6ae3ae89909e11", - }, - { - name: "Dragonglass", - symbol: "DGS", - decimals: 8, - address: "0x6aedbf8dff31437220df351950ba2a3362168d1b", - }, - { - name: "JapaneseAVCoin", - symbol: "JAV", - decimals: 8, - address: "0x6b0611c65b53e72429d799ed512d0da123ac0fb9", - }, - { - name: "SSENTE", - symbol: "ssn", - decimals: 8, - address: "0x6b14c373c24556165002a00cba4174fd96fe28f0", - }, - { - name: "jdini", - symbol: "JDI", - decimals: 2, - address: "0x6b9e8076a536459303db301ba4430913a7f14c5a", - }, - { - name: "Linker Coin", - symbol: "LNC", - decimals: 18, - address: "0x6beb418fc6e1958204ac8baddcf109b8e9694966", - }, - { - name: "LLToken", - symbol: "LLT", - decimals: 8, - address: "0x6d5cac36c1ae39f41d52393b7a425d0a610ad9f2", - }, - { - name: "Windy", - symbol: "WND", - decimals: 18, - address: "0x6d7a4c14c997333e304d5aef2aece73fd60ecc59", - }, - { - name: "BTC2X", - symbol: "B2X", - decimals: 8, - address: "0x6e58b4c41cab75dc0239938bf5455ab8823ee4de", - }, - { - name: "BullishRunCrypto", - symbol: "BULLISH", - decimals: 0, - address: "0x6ecccf7ebc3497a9334f4fe957a7d5fa933c5bcc", - }, - { - name: "eLiteCoin", - symbol: "ELTC", - decimals: 18, - address: "0x6f1a769952c60b2d03f46419adeda91d87866dab", - }, - { - name: "SmartBillions Token", - symbol: "Smart", - decimals: 0, - address: "0x6f6deb5db0c4994a8283a01d6cfeeb27fc3bbe9c", - }, - { - name: "Commodity Ad Network", - symbol: "CDX", - decimals: 18, - address: "0x6fff3806bbac52a20e0d79bc538d527f6a22c96b", - }, - { - name: "openANX Token", - symbol: "OAX", - decimals: 18, - address: "0x701c244b988a513c945973defa05de933b23fe1d", - }, - { - name: "CryptoX", - symbol: "CWX", - decimals: 18, - address: "0x7058f2ae7c1cfda824c39004253c27e2f6d0f1f9", - }, - { - name: "ClearPoll Token", - symbol: "POLL", - decimals: 18, - address: "0x705ee96c1c160842c92c1aecfcffccc9c412e3d9", - }, - { - name: "bzxcoin", - symbol: "BZX", - decimals: 18, - address: "0x70838403ecc194b73e50b70a177b2ef413a2f421", - }, - { - name: "UTRUST Token", - symbol: "UTK", - decimals: 18, - address: "0x70a72833d6bf7f508c8224ce59ea1ef3d0ea3a38", - }, - { - name: "BitFlux", - symbol: "FLX", - decimals: 18, - address: "0x70b147e01e9285e7ce68b9ba437fe3a9190e756a", - }, - { - name: "Zloadr Token", - symbol: "ZDR", - decimals: 8, - address: "0x71f1bc89f38b241f3ebf0d5a013fa2850c63a1d4", - }, - { - name: "Kamera", - symbol: "KMR", - decimals: 18, - address: "0x71f7b56f9f8641f73ca71512a93857a7868d1443", - }, - { - name: "HyperTV Token", - symbol: "HYTV", - decimals: 3, - address: "0x7259fddca8d5f0184b3b12aa7e8401964b703a4f", - }, - { - name: "YESTERDAY", - symbol: "YESTERDAY", - decimals: 18, - address: "0x7268f9c2bc9c9e65b4a16888cb5672531ce8e945", - }, - { - name: "Worldcore", - symbol: "WRC", - decimals: 6, - address: "0x72adadb447784dd7ab1f472467750fc485e4cb2d", - }, - { - name: "SENDERON", - symbol: "SDRN", - decimals: 18, - address: "0x73b534fb6f07381a29a60b01eed5ae57d4ee24d7", - }, - { - name: "Bitcoineum", - symbol: "BTE", - decimals: 8, - address: "0x73dd069c299a5d691e9836243bcaec9c8c1d8734", - }, - { - name: "Status Network", - symbol: "SNT", - decimals: 18, - address: "0x744d70fdbe2ba4cf95131626614a1763df805b9e", - }, - { - name: "We Bet Crypto", - symbol: "WBA", - decimals: 7, - address: "0x74951b677de32d596ee851a233336926e6a2cd09", - }, - { - name: "EROSCOIN", - symbol: "ERO", - decimals: 8, - address: "0x74ceda77281b339142a36817fa5f9e29412bab85", - }, - { - name: "Accord", - symbol: "ARD", - decimals: 18, - address: "0x75aa7b0d02532f3833b66c7f0ad35376d373ddf8", - }, - { - name: "Gas Files", - symbol: "GAS", - decimals: 8, - address: "0x75c79b88face8892e7043797570c390bc2db52a7", - }, - { - name: "wellieat", - symbol: "WET", - decimals: 18, - address: "0x76195ffd0cfedf68625b3e5b64c7bd904eeb9d6c", - }, - { - name: "Nexxus", - symbol: "NXX", - decimals: 8, - address: "0x7627de4b93263a6a7570b8dafa64bae812e5c394", - }, - { - name: "Better Betting", - symbol: "BETR", - decimals: 18, - address: "0x763186eb8d4856d536ed4478302971214febc6a9", - }, - { - name: "Feed", - symbol: "IFT", - decimals: 18, - address: "0x7654915a1b82d6d2d0afc37c52af556ea8983c7e", - }, - { - name: "Realisto Token", - symbol: "REA", - decimals: 18, - address: "0x767ba2915ec344015a7938e3eedfec2785195d05", - }, - { - name: "eBitcoinCash", - symbol: "eBCC", - decimals: 6, - address: "0x76e82406a5040b605c6d30caf4802e7eb3184bbc", - }, - { - name: "ParagonCoin", - symbol: "PRG", - decimals: 6, - address: "0x7728dfef5abd468669eb7f9b48a7f70a501ed29d", - }, - { - name: "cryptoabs", - symbol: "ABS", - decimals: 18, - address: "0x7731ee8b0b0ab88977be7922849eb767bbe8da15", - }, - { - name: "LitecoinCash", - symbol: "LCASH", - decimals: 8, - address: "0x7747aeb32d89e527e5ebbf646871ca79805989ad", - }, - { - name: "StakePool", - symbol: "POOL", - decimals: 8, - address: "0x779b7b713c86e3e6774f5040d9ccc2d43ad375f8", - }, - { - name: "Integrative Wallet Token", - symbol: "IWT", - decimals: 18, - address: "0x77faed976e187f26b49e78be8418ab074a341f26", - }, - { - name: "ATLANT Token", - symbol: "ATL", - decimals: 18, - address: "0x78b7fada55a64dd895d8c8c35779dd8b67fa8a05", - }, - { - name: "Zeus Shield Coin", - symbol: "ZSC", - decimals: 18, - address: "0x7a41e0517a5eca4fdbc7fbeba4d4c47b9ff6dc63", - }, - { - name: "CoinsMet", - symbol: "CM", - decimals: 18, - address: "0x7a79abd3905ef37b8d243c4c28cee73a751eb076", - }, - { - name: "Bulleon", - symbol: "BLN", - decimals: 18, - address: "0x7b1309c1522afd4e66c31e1e6d0ec1319e1eba5e", - }, - { - name: "AstroTokens", - symbol: "ASTRO", - decimals: 4, - address: "0x7b22938ca841aa392c93dbb7f4c42178e3d65e88", - }, - { - name: "GOAL Bonanza", - symbol: "GOAL", - decimals: 18, - address: "0x7b69b78cc7fee48202c208609ae6d1f78ce42e13", - }, - { - name: "Dividend", - symbol: "DVD", - decimals: 18, - address: "0x7c53f13699e1f6ef5c699e893a20948bdd2e4de9", - }, - { - name: "SANtiment network token", - symbol: "SAN", - decimals: 18, - address: "0x7c5a0ce9267ed19b22f8cae653f198e3e8daf098", - }, - { - name: "SSS", - symbol: "SSS", - decimals: 8, - address: "0x7d3e7d41da367b4fdce7cbe06502b13294deb758", - }, - { - name: "Dragon Exchange", - symbol: "DET", - decimals: 18, - address: "0x7d49eaac4c70abc1a659122f08c0806ae44703ef", - }, - { - name: "Change COIN", - symbol: "CAG", - decimals: 18, - address: "0x7d4b8cce0591c9044a22ee543533b72e976e36c3", - }, - { - name: "Ethbet", - symbol: "EBET", - decimals: 2, - address: "0x7d5edcd23daa3fb94317d32ae253ee1af08ba14d", - }, - { - name: "eLTC", - symbol: "ELTC", - decimals: 8, - address: "0x7e9d62e1ff4e34096f91ee0153222ab81f7184f0", - }, - { - name: "CANADACOIN", - symbol: "CANADA", - decimals: 18, - address: "0x7ea4c29d3d37f9b259be610b67b3125c4d095d02", - }, - { - name: "blockoptions", - symbol: "BOP", - decimals: 8, - address: "0x7f1e2c7d6a69bf34824d72c53b4550e895c0d8c2", - }, - { - name: "Ohni", - symbol: "Ohni", - decimals: 0, - address: "0x7f2176ceb16dcb648dc924eff617c3dc2befd30d", - }, - { - name: "CR7Coin", - symbol: "CR7", - decimals: 18, - address: "0x7f585b9130c64e9e9f470b618a7badd03d79ca7e", - }, - { - name: "CrypteriumToken", - symbol: "CRPT", - decimals: 18, - address: "0x80a7e048f37a50500351c204cb407766fa3bae7f", - }, - { - name: "AstrCoin", - symbol: "ASTR", - decimals: 4, - address: "0x80e7a4d750ade616da896c49049b7ede9e04c191", - }, - { - name: "EthLendToken", - symbol: "LEND", - decimals: 18, - address: "0x80fb784b7ed66730e8b1dbd9820afd29931aab03", - }, - { - name: "Newbium", - symbol: "NEWB", - decimals: 0, - address: "0x814964b1bceaf24e26296d031eadf134a2ca4105", - }, - { - name: "IDEA Token", - symbol: "IDEA", - decimals: 0, - address: "0x814cafd4782d2e728170fda68257983f03321c58", - }, - { - name: "DRAGON", - symbol: "DRG", - decimals: 8, - address: "0x814f67fa286f7572b041d041b1d99b432c9155ee", - }, - { - name: "Cerium Token", - symbol: "Cerium", - decimals: 0, - address: "0x8183dc52ce1cff90eba453c4a450f3d2d98f0ee3", - }, - { - name: "Kin", - symbol: "KIN", - decimals: 18, - address: "0x818fc6c2ec5986bc6e2cbf00939d90556ab12ce5", - }, - { - name: "DAT Token", - symbol: "DAT", - decimals: 18, - address: "0x81c9151de0c8bafcd325a57e3db5a5df1cebf79c", - }, - { - name: "VOISE", - symbol: "VSM", - decimals: 0, - address: "0x82665764ea0b58157e1e5e9bab32f68c76ec0cdf", - }, - { - name: "PeraBit", - symbol: "PBIT", - decimals: 8, - address: "0x82917e1775149548eb7883c99b34f7cb0abfb756", - }, - { - name: "DNA Token", - symbol: "DNA", - decimals: 18, - address: "0x82b0e50478eeafde392d45d1259ed1071b6fda81", - }, - { - name: "SamsungToken", - symbol: "SamsungToken", - decimals: 1, - address: "0x82d193f8ee41d12aaa0a85cb006606d67f773e9c", - }, - { - name: "REMME token", - symbol: "REM", - decimals: 4, - address: "0x83984d6142934bb535793a82adb0a46ef0f66b6d", - }, - { - name: "Goldmint MNT Prelaunch Token", - symbol: "MNTP", - decimals: 18, - address: "0x83cee9e086a77e492ee0bb93c2b0437ad6fdeccc", - }, - { - name: "VOISE", - symbol: "VOISE", - decimals: 8, - address: "0x83eea00d838f92dec4d1475697b9f4d3537b56e3", - }, - { - name: "GigaWatt", - symbol: "WTT", - decimals: 0, - address: "0x84119cb33e8f590d75c2d6ea4e6b0741a7494eda", - }, - { - name: "eBitcoinCash", - symbol: "eBCSH", - decimals: 18, - address: "0x84c2c31c04339c9938adfe3f8013315c8906f071", - }, - { - name: "iEthereum", - symbol: "iETH", - decimals: 8, - address: "0x859a9c0b44cb7066d956a958b0b82e54c9e44b4b", - }, - { - name: "Engraved Coin", - symbol: "XEG", - decimals: 18, - address: "0x85a7c57a4068280dd1166089a18acf35b4ba11e2", - }, - { - name: "Telcoin", - symbol: "TEL", - decimals: 2, - address: "0x85e076361cc813a908ff672f9bad1541474402b2", - }, - { - name: "YELLOW TOKEN", - symbol: "YEL", - decimals: 18, - address: "0x8633e144f2d9b9b8bdd12ddb58e4bef1e163a0ce", - }, - { - name: "DJ Corporation", - symbol: "DJC", - decimals: 18, - address: "0x86410db4d61c40a8e1df9f859069d5a15896195b", - }, - { - name: "BananaCoin Extended", - symbol: "BCO", - decimals: 8, - address: "0x865d176351f287fe1b0010805b110d08699c200a", - }, - { - name: "EOS", - symbol: "EOS", - decimals: 18, - address: "0x86fa049857e0209aa7d9e616f7eb3b3b78ecfdb0", - }, - { - name: "Jetcoin", - symbol: "JET", - decimals: 18, - address: "0x8727c112c712c4a03371ac87a74dd6ab104af768", - }, - { - name: "eUSD", - symbol: "eUSD", - decimals: 8, - address: "0x87611ca3403a3878dfef0da2a786e209abfc1eff", - }, - { - name: "ShadowLink Token", - symbol: "SHAD", - decimals: 18, - address: "0x877fb817d5de492d20ec3190a812f6430e8faeba", - }, - { - name: "ListAndPump", - symbol: "LAP", - decimals: 8, - address: "0x87ae38d63a6bbb63e46219f494b549e3be7fc400", - }, - { - name: "VERITY", - symbol: "VRTY", - decimals: 12, - address: "0x87e960f996e789ca2c8415fc449e4720adbe0497", - }, - { - name: "Open Trading Network", - symbol: "OTN", - decimals: 18, - address: "0x881ef48211982d01e2cb7092c915e647cd40d85c", - }, - { - name: "Trust Pool Token", - symbol: "TPL", - decimals: 10, - address: "0x8866d52303e372c2a2936d8ea09afd87bcbd8cf2", - }, - { - name: "Atmatrix Token", - symbol: "ATT", - decimals: 18, - address: "0x887834d3b8d450b6bab109c252df3da286d73ce4", - }, - { - name: "ICONOMI", - symbol: "ICN", - decimals: 18, - address: "0x888666ca69e0f178ded6d75b5726cee99a87d698", - }, - { - name: "Presearch", - symbol: "PRE", - decimals: 18, - address: "0x88a3e4f35d64aad41a6d4030ac9afe4356cb84fa", - }, - { - name: "FundYourselfNow Token", - symbol: "FYN", - decimals: 18, - address: "0x88fcfbc22c6d3dbaa25af478c578978339bde77a", - }, - { - name: "Hive token", - symbol: "HIVE", - decimals: 8, - address: "0x895f5d0b8456b980786656a33f21642807d1471c", - }, - { - name: "", - symbol: "DAI", - decimals: 18, - address: "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", - }, - { - name: "Smart Investment Fund Token", - symbol: "SIFT", - decimals: 0, - address: "0x8a187d5285d316bcbc9adafc08b51d70a0d8e000", - }, - { - name: "EtherDoge", - symbol: "EDOGE", - decimals: 18, - address: "0x8a7b7b9b2f7d0c63f66171721339705a6188a7d5", - }, - { - name: "Guaranteed Entrance Token", - symbol: "GET", - decimals: 18, - address: "0x8a854288a5976036a725879164ca3e91d30c6a1b", - }, - { - name: "Dao.Casino", - symbol: "BET", - decimals: 18, - address: "0x8aa33a7899fcc8ea5fbe6a608a109c3893a1b8b2", - }, - { - name: "Patientory", - symbol: "PTOY", - decimals: 8, - address: "0x8ae4bf2c33a8e667de34b54938b0ccd03eb8cc06", - }, - { - name: "ShizzleNizzle", - symbol: "SHNZ", - decimals: 8, - address: "0x8b0c9f462c239c963d8760105cbc935c63d85680", - }, - { - name: "MicroMoney", - symbol: "AMM", - decimals: 6, - address: "0x8b1f49491477e0fb46a29fef53f1ea320d13c349", - }, - { - name: "Dogetoken", - symbol: "DGT", - decimals: 18, - address: "0x8b9c35c79af5319c70dd9a3e3850f368822ed64e", - }, - { - name: "ETHGAS", - symbol: "EGAS", - decimals: 8, - address: "0x8bbf4dd0f11b3a535660fd7fcb7158daebd3a17e", - }, - { - name: "Bus", - symbol: "BUS", - decimals: 8, - address: "0x8bf8bcf8aba5ecffffd431489fe79dad38023a9b", - }, - { - name: "VitalikCoin", - symbol: "VIT", - decimals: 18, - address: "0x8c01ada8e708993a891d57d1b3169479a20acb3a", - }, - { - name: "CryptoABS", - symbol: "ABS", - decimals: 0, - address: "0x8ce9411df545d6b51a9bc52a89e0f6d1b54a06dd", - }, - { - name: "NATCOIN", - symbol: "NTC", - decimals: 18, - address: "0x8d5a69dc82a47594881256f2eef81770274fa30f", - }, - { - name: "BITCOINBLUE", - symbol: "BTCBLUE", - decimals: 18, - address: "0x8d6e79f25302dee4caaf9187fb1434c4a1465c3a", - }, - { - name: "EthereumDiamond", - symbol: "0ED", - decimals: 18, - address: "0x8e10f6bb9c973d61321c25a2b8d865825f4aa57b", - }, - { - name: "SingularityNET Token", - symbol: "AGI", - decimals: 8, - address: "0x8eb24319393716668d768dcec29356ae9cffe285", - }, - { - name: "Dexer", - symbol: "DEX", - decimals: 2, - address: "0x8ef59b92f21f9e5f21f5f71510d1a7f87a5420be", - }, - { - name: "PIX Token", - symbol: "PIX", - decimals: 0, - address: "0x8effd494eb698cc399af6231fccd39e08fd20b15", - }, - { - name: "China Crypto Party", - symbol: "CCP", - decimals: 18, - address: "0x8f070b17dd3953634e9e9c174d0f05396f681bc1", - }, - { - name: "Flyp.me Token", - symbol: "FYP", - decimals: 18, - address: "0x8f0921f30555624143d427b340b1156914882c10", - }, - { - name: "Veritaseum", - symbol: "VERI", - decimals: 18, - address: "0x8f3470a7388c05ee4e7af3d01d8c722b0ff52374", - }, - { - name: "Request Token", - symbol: "REQ", - decimals: 18, - address: "0x8f8221afbb33998d8584a2b05749ba73c37a938a", - }, - { - name: "HawalaToken", - symbol: "HAT", - decimals: 12, - address: "0x9002d4485b7594e3e850f0a206713b305113f69e", - }, - { - name: "XPlay Token", - symbol: "XPA", - decimals: 18, - address: "0x90528aeb3a2b736b780fd1b6c478bb7e1d643170", - }, - { - name: "MediBond", - symbol: "MEDI", - decimals: 18, - address: "0x90b1b771d0814d607da104b988efa39288219d62", - }, - { - name: "IBTC", - symbol: "IBTC", - decimals: 18, - address: "0x90c88ccd74e57e016acae8ad1eaa12ecf4c06f33", - }, - { - name: "X8XToken", - symbol: "X8X", - decimals: 18, - address: "0x910dfc18d6ea3d6a7124a6f8b5458f281060fa4c", - }, - { - name: "Donation Efficiency Token", - symbol: "DONE", - decimals: 16, - address: "0x91126cfa7db2983527b0b749cc8a61fdeffedc28", - }, - { - name: "REAL", - symbol: "REAL", - decimals: 18, - address: "0x9214ec02cb71cba0ada6896b8da260736a67ab10", - }, - { - name: "Devery.io", - symbol: "EVE", - decimals: 18, - address: "0x923108a439c4e8c2315c4f6521e5ce95b44e9b4c", - }, - { - name: "GramGold Token", - symbol: "GGT", - decimals: 18, - address: "0x92d1dedb17626cad8a32a36083aec4f19325e474", - }, - { - name: "Golem Network Token Wrapped", - symbol: "GNTW", - decimals: 18, - address: "0x936f78b9852d12f5cb93177c1f84fb8513d06263", - }, - { - name: "AsterionWorldToken", - symbol: "ATR", - decimals: 0, - address: "0x93713bf12ba1bb55edf94298a302a8fc9d118086", - }, - { - name: "Ethereum SMS", - symbol: "ESMS", - decimals: 0, - address: "0x9375b738083101617f0642d7dbeaa89e361545e3", - }, - { - name: "Shield Token", - symbol: "SHLD", - decimals: 18, - address: "0x9397554c07f687b7a20d13c73350cc283765d509", - }, - { - name: "ZipCoin", - symbol: "ZIP", - decimals: 8, - address: "0x93e24ce396a9e7d7de4a5bc616cf5fcab0476626", - }, - { - name: "MCAP", - symbol: "MCAP", - decimals: 8, - address: "0x93e682107d1e9defb0b5ee701c71707a4b2e46bc", - }, - { - name: "MyBit Token", - symbol: "MyB", - decimals: 8, - address: "0x94298f1e0ab2dfad6eeffb1426846a3c29d98090", - }, - { - name: "Gamerbits", - symbol: "GBTS", - decimals: 18, - address: "0x944f1a04ab8d735acdbc46505c5b283f54289152", - }, - { - name: "Cryptonex (CNX) - Global Blockchain Acquiring", - symbol: "CNX", - decimals: 8, - address: "0x94d6b4fb35fb08cb34aa716ab40049ec88002079", - }, - { - name: "Vio", - symbol: "VIO", - decimals: 18, - address: "0x94ffb55ce68231c5966ea8dab16a8f066846513f", - }, - { - name: "easyMINE Token", - symbol: "EMT", - decimals: 18, - address: "0x9501bfc48897dceeadf73113ef635d2ff7ee4b97", - }, - { - name: "Kaizen", - symbol: "KZN", - decimals: 8, - address: "0x9541fd8b9b5fa97381783783cebf2f5fa793c262", - }, - { - name: "Modum Token", - symbol: "MOD", - decimals: 0, - address: "0x957c30ab0426e0c93cd8241e2c60392d08c6ac8e", - }, - { - name: "PABLOCoin", - symbol: "BLO", - decimals: 0, - address: "0x959529102cfde07b1196bd27adedc196d75f84f6", - }, - { - name: "Aragon Network Token", - symbol: "ANT", - decimals: 18, - address: "0x960b236a07cf122663c4303350609a66a7b288c0", - }, - { - name: "Centra", - symbol: "CTR", - decimals: 18, - address: "0x96a65609a7b84e8842732deb08f56c3e21ac6f8a", - }, - { - name: "Vezt", - symbol: "VZT", - decimals: 18, - address: "0x9720b467a710382a232a32f540bdced7d662a10b", - }, - { - name: "10MT Investment token", - symbol: "10MTI", - decimals: 10, - address: "0x9742fa8cb51d294c8267ddfead8582e16f18e421", - }, - { - name: "Deep Gold", - symbol: "DEEP", - decimals: 8, - address: "0x983877018633c0940b183cd38d1b58bee34f7301", - }, - { - name: "SONM Token", - symbol: "SNM", - decimals: 18, - address: "0x983f6d60db79ea8ca4eb9968c6aff8cfa04b3c63", - }, - { - name: "Bizacoin", - symbol: "BIZC", - decimals: 0, - address: "0x983f7cc12d0b5d512b0f91f51a4aa478ac4def46", - }, - { - name: "Sexy Token", - symbol: "SEXY", - decimals: 18, - address: "0x98f5e9b7f0e33956c0443e81bf7deb8b5b1ed545", - }, - { - name: "Hut34 Entropy", - symbol: "ENT", - decimals: 18, - address: "0x9901ed1e649c4a77c7fff3dfd446ffe3464da747", - }, - { - name: "EagleCoin", - symbol: "EAGLE", - decimals: 18, - address: "0x994f0dffdbae0bbf09b652d6f11a493fd33f42b9", - }, - { - name: "Polymath", - symbol: "POLY", - decimals: 18, - address: "0x9992ec3cf6a55b00978cddf2b27bc6882d88d1ec", - }, - { - name: "TieToken", - symbol: "TIE", - decimals: 18, - address: "0x999967e2ec8a74b7c8e9db19e039d920b31d39d0", - }, - { - name: "Quantstamp Token", - symbol: "QSP", - decimals: 18, - address: "0x99ea4db9ee77acd40b119bd1dc4e33e1c070b80d", - }, - { - name: "CodeCoin", - symbol: "CODE", - decimals: 18, - address: "0x9adaba9ffda15e3a043c907d390f645147eb532a", - }, - { - name: "aXpire Token", - symbol: "AXP", - decimals: 8, - address: "0x9af2c6b1a28d3d6bc084bd267f70e90d49741d5b", - }, - { - name: "Domraider", - symbol: "DRT", - decimals: 8, - address: "0x9af4f26941677c706cfecf6d3379ff01bb85d5ab", - }, - { - name: "Bilibit", - symbol: "BLB", - decimals: 18, - address: "0x9b11b1b271a224a271619f3419b1b080fdec5b4a", - }, - { - name: "Attention Token of Media", - symbol: "ATM", - decimals: 8, - address: "0x9b11efcaaa1890f6ee52c6bb7cf8153ac5d74139", - }, - { - name: "Reality Clash Coin ", - symbol: "RCC", - decimals: 18, - address: "0x9b6443b0fb9c241a7fdac375595cea13e6b7807a", - }, - { - name: "Decent.Bet Token", - symbol: "DBET", - decimals: 18, - address: "0x9b68bfae21df5a510931a262cecf63f41338f264", - }, - { - name: "Developer Network Token", - symbol: "DVN", - decimals: 18, - address: "0x9b7593aae6b48d02668808c2dfbfc4bef35ef957", - }, - { - name: "", - symbol: "1BIT", - decimals: 0, - address: "0x9b8eb7a73a3c65fc3c892b494ab29cb061cf05ae", - }, - { - name: "ethereum launcher", - symbol: "elunch", - decimals: 18, - address: "0x9c1d13d5a8fd4a8ac89917d31d40db454d1ee60b", - }, - { - name: "CHUCK NORRIS", - symbol: "CHUCKNORRIS", - decimals: 4, - address: "0x9c23a568a32e8434ec88bdf60891a1d95ffd36cc", - }, - { - name: "Litecoin Classic", - symbol: "LCC", - decimals: 18, - address: "0x9c3a2334d8d7a8b9013c0e572a5bbdfc2fc69063", - }, - { - name: "BtcSegwit2X", - symbol: "B2X", - decimals: 8, - address: "0x9c9891f7795eb127ba4783b671573275ff3a83a9", - }, - { - name: "blockoptions", - symbol: "BOPT", - decimals: 8, - address: "0x9cb9eb4bb7800bdbb017be2a4ffbeccb67454ea9", - }, - { - name: "Ethereum Black Token", - symbol: "ETBT", - decimals: 18, - address: "0x9d5b592b687c887a5a34df5f9207adb2c2db3aec", - }, - { - name: "Genesis", - symbol: "GEN", - decimals: 18, - address: "0x9dfe4643c04078a46803edcc30a3291b76d4c20c", - }, - { - name: "RedPill", - symbol: "RPIL", - decimals: 8, - address: "0x9e386da8cdfcf8b9e7490e3f2a4589c570cb2b2f", - }, - { - name: "Hacken", - symbol: "HKN", - decimals: 8, - address: "0x9e6b2b11542f2bc52f3029077ace37e8fd838d7f", - }, - { - name: "BRAT RED", - symbol: "BRAT", - decimals: 8, - address: "0x9e77d5a1251b6f7d456722a6eac6d2d5980bd891", - }, - { - name: "Swarm Fund Token", - symbol: "SWM", - decimals: 18, - address: "0x9e88613418cf03dca54d6a2cf6ad934a78c7a17a", - }, - { - name: "Maker", - symbol: "MKR", - decimals: 18, - address: "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2", - }, - { - name: "Charg Coin", - symbol: "CHG", - decimals: 18, - address: "0xc4a86561cb0b7ea1214904f26e6d50fd357c7986", - }, - { - name: "SISA Token", - symbol: "SISA", - decimals: 18, - address: "0xa0aa85b54f8a7b09c845f13a09172b08925f3d54", - }, - { - name: "CrypherCoin", - symbol: "CRYPHER", - decimals: 18, - address: "0xa0e743c37c470ab381cf0e87b6e8f12ef19586fd", - }, - { - name: "Corethum", - symbol: "CRTM", - decimals: 8, - address: "0xa119f0f5fd06ebadff8883c0f3c40b2d22e7a44f", - }, - { - name: "Follow Coin", - symbol: "FLLW", - decimals: 18, - address: "0xa25d01d15fc0e3cdede1bebee4124394aae0db33", - }, - { - name: "Air phase 1", - symbol: "AIR", - decimals: 0, - address: "0xa2f4fcb0fde2dd59f7a1873e121bc5623e3164eb", - }, - { - name: "Ciphs", - symbol: "CIPHS", - decimals: 18, - address: "0xa4ff5ce0556f9ff0797ae525ec5ba9b723878a3e", - }, - { - name: "Peermine", - symbol: "PME", - decimals: 18, - address: "0xa51153d9cf9d3cf6d58697b68eccc158d1e40388", - }, - { - name: "Lynx", - symbol: "LNT", - decimals: 18, - address: "0xa51d948ff15fbabac476af160cba6901ce47f4b0", - }, - { - name: "NEVERDIE", - symbol: "NDC", - decimals: 18, - address: "0xa54ddc7b3cce7fc8b1e3fa0256d0db80d2c10970", - }, - { - name: " EtherCarbon", - symbol: "ECN", - decimals: 2, - address: "0xa578acc0cb7875781b7880903f4594d13cfa8b98", - }, - { - name: "UselessEthTokenLite", - symbol: "UETL", - decimals: 8, - address: "0xa5a283557653f36cf9aa0d5cc74b1e30422349f2", - }, - { - name: "RobomedToken", - symbol: "RBM", - decimals: 18, - address: "0xa5d1e58ece1fc438d64e65769d2ab730143a4caf", - }, - { - name: "Block Array", - symbol: "ARY", - decimals: 18, - address: "0xa5f8fc0921880cb7342368bd128eb8050442b1a1", - }, - { - name: "Jibrel Network Token", - symbol: "JNT", - decimals: 18, - address: "0xa5fd1a791c4dfcaacc963d4f73c6ae5824149ea7", - }, - { - name: "Mysterium", - symbol: "MYST", - decimals: 8, - address: "0xa645264c5603e96c3b0b078cdab68733794b0a71", - }, - { - name: "Etherball", - symbol: "EBYTE", - decimals: 9, - address: "0xa65ee5fd259d94294c4ef030d1a62eeb465b9438", - }, - { - name: "Anonymous Mobile Organization", - symbol: "AMO", - decimals: 4, - address: "0xa6e2f7f33f01fb399e72f3e044196eab7d348012", - }, - { - name: "Jade", - symbol: "Jade", - decimals: 5, - address: "0xa6e7172662379f1f4c72108655869abdbb7f7672", - }, - { - name: "BroFistCoin", - symbol: "PEW", - decimals: 8, - address: "0xa701122c1b67220a8b6883d03c8ad67896b12466", - }, - { - name: "TrueFlip", - symbol: "TFL", - decimals: 8, - address: "0xa7f976c360ebbed4465c2855684d1aae5271efa9", - }, - { - name: "Internxt", - symbol: "INXT", - decimals: 8, - address: "0xa8006c4ca56f24d6836727d106349320db7fef82", - }, - { - name: "Neumark", - symbol: "NEU", - decimals: 18, - address: "0xa823e6722006afe99e91c30ff5295052fe6b8e32", - }, - { - name: "OTCBTC Token", - symbol: "OTB", - decimals: 18, - address: "0xa86a0da9d05d0771955df05b44ca120661af16de", - }, - { - name: "LuminoCoin", - symbol: "LUM", - decimals: 18, - address: "0xa89b5934863447f6e4fc53b315a93e873bda69a3", - }, - { - name: "SUB1X", - symbol: "SUB1X", - decimals: 18, - address: "0xa8ba4095833a3f924d86cb3941099c1abb75ea13", - }, - { - name: "Cash Poker Pro", - symbol: "CASH", - decimals: 18, - address: "0xa8f93faee440644f89059a2c88bdc9bf3be5e2ea", - }, - { - name: "Freedom Token", - symbol: "FDM", - decimals: 18, - address: "0xa94c128a138504e1f81d727cc21bcb9ae6581015", - }, - { - name: "GBP Static", - symbol: "GBP_S", - decimals: 18, - address: "0xa9666166d3c7fd15e874801f99e9ad5bfb70c5cf", - }, - { - name: "BTCMoon", - symbol: "BTCM", - decimals: 18, - address: "0xa9aad2dc3a8315caeee5f458b1d8edc31d8467bd", - }, - { - name: "TokenVerse", - symbol: "TOV", - decimals: 0, - address: "0xaa26b73bfdc80b5c7d2cfbfc30930038fb7fa657", - }, - { - name: "Trace Token", - symbol: "TRAC", - decimals: 18, - address: "0xaa7a9ca87d3694b5755f213b5d04094b8d0f0a6f", - }, - { - name: "Monolith TKN", - symbol: "TKN", - decimals: 8, - address: "0xaaaf91d9b90df800df4f55c205fd6989c977e73a", - }, - { - name: "Mayweather No", - symbol: "MAYN", - decimals: 18, - address: "0xab130bc7ff83192656a4b3079741c296615899c0", - }, - { - name: "FinallyUsableCryptoKarma", - symbol: "FUCK", - decimals: 4, - address: "0xab16e0d25c06cb376259cc18c1de4aca57605589", - }, - { - name: "Macroverse Token", - symbol: "MRV", - decimals: 18, - address: "0xab6cf87a50f17d7f5e1feaf81b6fe9ffbe8ebf84", - }, - { - name: "XENON", - symbol: "XNN", - decimals: 18, - address: "0xab95e915c123fded5bdfb6325e35ef5515f1ea69", - }, - { - name: "Kitten Coin", - symbol: "KITTEN", - decimals: 8, - address: "0xac2bd14654bbf22f9d8f20c7b3a70e376d3436b4", - }, - { - name: "DOVU", - symbol: "DOVU", - decimals: 18, - address: "0xac3211a5025414af2866ff09c23fc18bc97e79b1", - }, - { - name: "Target Coin", - symbol: "TGT", - decimals: 1, - address: "0xac3da587eac229c9896d919abc235ca4fd7f72c1", - }, - { - name: "Arcade Token", - symbol: "ARC", - decimals: 18, - address: "0xac709fcb44a43c35f0da4e3163b117a17f3770f5", - }, - { - name: "Blockchain Certified Data Token", - symbol: "BCDT", - decimals: 18, - address: "0xacfa209fb73bf3dd5bbfb1101b9bc999c49062a5", - }, - { - name: "EtherGold", - symbol: "ETHG", - decimals: 8, - address: "0xae258d5322b59d64df9eb483e3b1733332c3b66c", - }, - { - name: "eZEC", - symbol: "EZEC", - decimals: 18, - address: "0xae4191a7eb25713ac90483ea75828ae8038f94dc", - }, - { - name: "Gimli Token", - symbol: "GIM", - decimals: 8, - address: "0xae4f56f072c34c0a65b3ae3e4db797d831439d93", - }, - { - name: "Good Karma", - symbol: "∞", - decimals: 6, - address: "0xae616e72d3d89e847f74e8ace41ca68bbf56af79", - }, - { - name: "STK Token", - symbol: "STK", - decimals: 18, - address: "0xae73b38d1c9a8b274127ec30160a4927c4d71824", - }, - { - name: "SingularDTV", - symbol: "SNGLS", - decimals: 0, - address: "0xaec2e87e0a235266d9c5adc9deb4b2e29b54d009", - }, - { - name: "PXToken", - symbol: "PXT", - decimals: 18, - address: "0xaf146fbd319ca7ae178caa2c9d80a2db6b944350", - }, - { - name: "Firstblood", - symbol: "1ST", - decimals: 18, - address: "0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc7", - }, - { - name: "Monetha", - symbol: "MTH", - decimals: 5, - address: "0xaf4dce16da2877f8c9e00544c93b62ac40631f16", - }, - { - name: "Enter-Coin", - symbol: "ENTRC", - decimals: 8, - address: "0xaf55f3b7dc65c8f9577cf00c8c5ca7b6e8cc4433", - }, - { - name: "eBitcoinCash", - symbol: "eBCH", - decimals: 8, - address: "0xafc39788c51f0c1ff7b55317f3e70299e521fff6", - }, - { - name: "TBOT", - symbol: "TBT", - decimals: 8, - address: "0xafe60511341a37488de25bef351952562e31fcc1", - }, - { - name: "Assistive Reality ARX", - symbol: "ARX", - decimals: 18, - address: "0xb0d926c1bc3d78064f3e1075d5bd9a24f35ae6c5", - }, - { - name: "MaverickChain", - symbol: "MVC", - decimals: 18, - address: "0xb17df9a3b09583a9bdcf757d6367171476d4d8a3", - }, - { - name: "TRASH CASH", - symbol: "TRASH", - decimals: 3, - address: "0xb203b5495109c6c85615ebb2056f98301d470507", - }, - { - name: "UC Coin", - symbol: "UCN", - decimals: 8, - address: "0xb236e2477b8ed34b203b60e2b88884ee5b31a3c3", - }, - { - name: "oneK", - symbol: "ONEK", - decimals: 18, - address: "0xb23be73573bc7e03db6e5dfc62405368716d28a8", - }, - { - name: "RIALTO", - symbol: "XRL", - decimals: 9, - address: "0xb24754be79281553dc1adc160ddf5cd9b74361a4", - }, - { - name: "ArubaCoin", - symbol: "AUA", - decimals: 5, - address: "0xb29678a4805a7d787dc9589e179d27f7575bb9f7", - }, - { - name: "BetKing Bankroll Token", - symbol: "BKB", - decimals: 8, - address: "0xb2bfeb70b903f1baac7f2ba2c62934c7e5b974c4", - }, - { - name: "Cobinhood Token", - symbol: "COB", - decimals: 18, - address: "0xb2f7eb1f2c37645be61d73953035360e768d81e6", - }, - { - name: "Global Messaging Token", - symbol: "GMT", - decimals: 18, - address: "0xb3bd49e28f8f832b8d1e246106991e546c323502", - }, - { - name: "CNet5G", - symbol: "NE5G", - decimals: 2, - address: "0xb41b531359330d76bbcb0f1a24f94ff6bff30dc1", - }, - { - name: "GreenMed Coin", - symbol: "GRMD", - decimals: 18, - address: "0xb444208cb0516c150178fcf9a52604bc04a1acea", - }, - { - name: "TKRToken", - symbol: "TKR", - decimals: 18, - address: "0xb45a50545beeab73f38f31e5973768c421805e5e", - }, - { - name: "Climatecoin", - symbol: "CO2", - decimals: 18, - address: "0xb4b1d2c217ec0776584ce08d3dd98f90ededa44b", - }, - { - name: "UAHPAY", - symbol: "UAHPAY", - decimals: 18, - address: "0xb4bfa6b45e25ad12bb033ec8a5eff523b83cc9af", - }, - { - name: "BCDC Token", - symbol: "BCDC", - decimals: 18, - address: "0xb4c55b5a1faf5323e59842171c2492773a3783dd", - }, - { - name: "Rocket Pool", - symbol: "RPL", - decimals: 18, - address: "0xb4efd85c19999d84251304bda99e90b92300bd93", - }, - { - name: "Ethereum Premium", - symbol: "ETHPR", - decimals: 4, - address: "0xb4f5438c3c2a682da351ab6b57edc8530efd67be", - }, - { - name: "eRipple", - symbol: "EXRP", - decimals: 18, - address: "0xb518d165398d9057ea8b73096edda5c7754bcd62", - }, - { - name: "ETHGAS", - symbol: "eGAS", - decimals: 8, - address: "0xb53a96bcbdd9cf78dff20bab6c2be7baec8f00f8", - }, - { - name: "Milk", - symbol: "MLK", - decimals: 8, - address: "0xb554cf51cda0fccd5012d55737c4df55a3e18a5c", - }, - { - name: "SeratioCoin", - symbol: "SER", - decimals: 7, - address: "0xb561fef0d624c0826ff869946f6076b7c4f2ba42", - }, - { - name: "ICON", - symbol: "ICX", - decimals: 18, - address: "0xb5a5f22694352c15b00323844ad545abb2b11028", - }, - { - name: "EventChain", - symbol: "EVC", - decimals: 18, - address: "0xb62d18dea74045e822352ce4b3ee77319dc5ff2f", - }, - { - name: "TRUST", - symbol: "TEC", - decimals: 18, - address: "0xb63ab8e276e081b9079c3ae520c58061fa4acb45", - }, - { - name: "Monaco", - symbol: "MCO", - decimals: 8, - address: "0xb63b606ac810a52cca15e44bb630fd42d8d1d83d", - }, - { - name: "StorjToken", - symbol: "STORJ", - decimals: 8, - address: "0xb64ef51c888972c908cfacf59b47c1afbc0ab8ac", - }, - { - name: "0xBitcoin", - symbol: "0xBTC", - decimals: 8, - address: "0xb6ed7644c69416d67b522e20bc294a9a9b405b31", - }, - { - name: "CargoX Token", - symbol: "CXO", - decimals: 18, - address: "0xb6ee9668771a79be7967ee29a63d4184f8097143", - }, - { - name: "Bitsoko Community", - symbol: "BITS", - decimals: 8, - address: "0xb72627650f1149ea5e54834b2f468e5d430e67bf", - }, - { - name: "Walton Token", - symbol: "WTC", - decimals: 18, - address: "0xb7cb1c96db6b22b0d3d9536e0108d062bd488f74", - }, - { - name: "EthereumMovieVenture", - symbol: "EMV", - decimals: 2, - address: "0xb802b24e0637c2b87d2e8b7784c055bbe921011a", - }, - { - name: "Tcash", - symbol: "TCASH", - decimals: 8, - address: "0xb8742486c723793cf5162bb5d3425ed9cd73d049", - }, - { - name: "BNB", - symbol: "BNB", - decimals: 18, - address: "0xb8c77482e45f1f44de1745f52c74426c631bdd52", - }, - { - name: "Redvolution", - symbol: "REDV", - decimals: 8, - address: "0xb8d8a92cafaf6c055bce8e53405d90be96d1a677", - }, - { - name: "Nuls", - symbol: "NULS", - decimals: 18, - address: "0xb91318f35bdb262e9423bc7c7c2a3a93dd93c92c", - }, - { - name: "eNeo", - symbol: "ENEO", - decimals: 18, - address: "0xb915ff79170d606935bceaf000d77ca4ed92d993", - }, - { - name: "TenX Pay Token", - symbol: "PAY", - decimals: 18, - address: "0xb97048628db6b661d4c2aa833e95dbe1a905b280", - }, - { - name: "ArcBlock", - symbol: "ABT", - decimals: 18, - address: "0xb98d4c97425d9908e66e53a6fdf673acca0be986", - }, - { - name: "Swarm City Token", - symbol: "SWT", - decimals: 18, - address: "0xb9e7f8568e08d5659f5d29c4997173d84cdf2607", - }, - { - name: "X Coin Machines", - symbol: "XCM", - decimals: 3, - address: "0xb9f0b7e1d518f0e213441a804fed84c2858c5d88", - }, - { - name: "HelloGold Token", - symbol: "HGT", - decimals: 8, - address: "0xba2184520a1cc49a6159c57e61e1844e085615b6", - }, - { - name: "Aeron", - symbol: "ARN", - decimals: 8, - address: "0xba5f11b16b155792cf3b2e6880e8706859a8aeb6", - }, - { - name: "", - symbol: "ALIEF", - decimals: 0, - address: "0xba71b32e71a41339aa4ceaa79528535aefe488d8", - }, - { - name: "Casino", - symbol: "CAS", - decimals: 2, - address: "0xbb1b3e8ddded8165d58b0c192d19cd360682b170", - }, - { - name: "FunFair", - symbol: "FUN", - decimals: 8, - address: "0xbbb1bd2d741f05e144e6c4517676a15554fd4b8d", - }, - { - name: "MaxxToken", - symbol: "MXX", - decimals: 18, - address: "0xbc63acdfafa94bd4d8c2bb7a8552281f107242c0", - }, - { - name: "SHOUCAIR", - symbol: "SHOUC", - decimals: 18, - address: "0xbc7de10afe530843e71dfb2e3872405191e8d14a", - }, - { - name: "GREED TOKEN", - symbol: "GREED", - decimals: 18, - address: "0xbc9395973bd35a3b4bd924f050d2778c07506ecb", - }, - { - name: "ToTheMoon", - symbol: "TTM", - decimals: 18, - address: "0xbd35aefa375b57a801ddc87615aef1e9f353df28", - }, - { - name: "FinTab", - symbol: "FNTB", - decimals: 8, - address: "0xbd4b60a138b3fce3584ea01f50c0908c18f9677a", - }, - { - name: "Snovio", - symbol: "SNOV", - decimals: 18, - address: "0xbdc5bac39dbe132b1e030e898ae3830017d7d969", - }, - { - name: "Melon Token", - symbol: "MLN", - decimals: 18, - address: "0xbeb9ef514a379b997e0798fdcc901ee474b6d9a1", - }, - { - name: "StakeIt", - symbol: "STAKE", - decimals: 8, - address: "0xbec8f6d667594fb181c9d68e5c80c910888be93d", - }, - { - name: "ELF Token", - symbol: "ELF", - decimals: 18, - address: "0xbf2179859fc6d5bee9bf9158632dc51678a4100e", - }, - { - name: "eBitcoin Gold", - symbol: "eBTG", - decimals: 8, - address: "0xbf430e24ac0f33d4ad6fac9654b37943124c2786", - }, - { - name: "Ken Coin", - symbol: "KEN", - decimals: 18, - address: "0xbf4a29269bf3a5c351c2af3a9c9ed81b07129ce4", - }, - { - name: "Mayweather Yes", - symbol: "MAYY", - decimals: 18, - address: "0xbfa4d71a51b9e0968be4bc299f8ba6cbb2f86789", - }, - { - name: "AlpenCash", - symbol: "ALPC", - decimals: 0, - address: "0xbfd4a3c26996dfc9e85a951eb615aac3b84c758b", - }, - { - name: "Qubicle", - symbol: "QBE", - decimals: 18, - address: "0xc029ba3dc12e1834571e821d94a07de0a01138ea", - }, - { - name: "Faceblock", - symbol: "FBL", - decimals: 2, - address: "0xc0c2ee1ce1fed8f6e2764363a36db3dd4cf10022", - }, - { - name: "Hive Project ", - symbol: "HVN", - decimals: 8, - address: "0xc0eb85285d83217cd7c891702bcbc0fc401e2d9d", - }, - { - name: "Populous XBRL token", - symbol: "PXT", - decimals: 8, - address: "0xc14830e53aa344e8c14603a91229a0b925b0b262", - }, - { - name: "Lamden Tau", - symbol: "TAU", - decimals: 18, - address: "0xc27a2f05fa577a83ba0fdb4c38443c0718356501", - }, - { - name: "Exchange Union Coin", - symbol: "XUC", - decimals: 18, - address: "0xc324a2f6b05880503444451b8b27e6f9e63287cb", - }, - { - name: "Cloud", - symbol: "CLD", - decimals: 6, - address: "0xc3951d77737733174152532e8b0f27e2c4e9f0dc", - }, - { - name: "HawalaToken", - symbol: "HAT", - decimals: 12, - address: "0xc3972ac283b3a7a56125674631a5c254f7f373cf", - }, - { - name: "ROICOIN", - symbol: "ROI", - decimals: 4, - address: "0xc3aef0036f5b146440775b2a1d5bf45fd8992741", - }, - { - name: "PayPie", - symbol: "PPP", - decimals: 18, - address: "0xc42209accc14029c1012fb5680d95fbd6036e2a0", - }, - { - name: "Ethereum Qchain Token", - symbol: "EQC", - decimals: 8, - address: "0xc438b4c0dfbb1593be6dee03bbd1a84bb3aa6213", - }, - { - name: "Angel Token", - symbol: "ANGL", - decimals: 18, - address: "0xc499ea948a1ad5d8eaf12abd2f67975c4dbe21aa", - }, - { - name: "eBGOLD", - symbol: "eBTG", - decimals: 8, - address: "0xc51c938c4d513780c66c722a41c197d3a89fa9a8", - }, - { - name: "Epocum", - symbol: "EPM", - decimals: 18, - address: "0xc5594d84b996a68326d89fb35e4b89b3323ef37d", - }, - { - name: "Teleport", - symbol: "TPT", - decimals: 18, - address: "0xc596bd09d652827b0106292d3e378d5938df4b12", - }, - { - name: "Proof", - symbol: "PRFT", - decimals: 18, - address: "0xc5cea8292e514405967d958c2325106f2f48da77", - }, - { - name: "FUCKtoken", - symbol: "FUCK", - decimals: 4, - address: "0xc63e7b1dece63a77ed7e4aeef5efb3b05c81438d", - }, - { - name: "MKR", - symbol: "MKR", - decimals: 18, - address: "0xc66ea802717bfb9833400264dd12c2bceaa34a6d", - }, - { - name: "normikaivo", - symbol: "NAO", - decimals: 18, - address: "0xc6b014274d7406641711fb8889f93f4f11dec810", - }, - { - name: "Titanium BAR Token", - symbol: "BAR", - decimals: 18, - address: "0xc7579bb99af590ec71c316e1ac4436c535039594", - }, - { - name: "EtherBB", - symbol: "BB", - decimals: 9, - address: "0xc78593c17482ea5de44fdd84896ffd903972878e", - }, - { - name: "MEGA X", - symbol: "MGX", - decimals: 18, - address: "0xc79d440551a03f84f863b1f259f135794c8a7190", - }, - { - name: "elixir", - symbol: "ELIX", - decimals: 18, - address: "0xc8c6a31a4a806d3710a7b38b7b296d2fabccdba8", - }, - { - name: "EXMR", - symbol: "EXMR", - decimals: 8, - address: "0xc98e0639c6d2ec037a615341c369666b110e80e5", - }, - { - name: "Flip", - symbol: "FLIP", - decimals: 0, - address: "0xc997d07b0bc607b6d1bcb6fb9d4a5579c466c3e5", - }, - { - name: "TDT", - symbol: "TDT", - decimals: 18, - address: "0xc99ddc30bb0cf76b07d90dcb6b267b8352697bef", - }, - { - name: "hentaisolo", - symbol: "HAO", - decimals: 18, - address: "0xc9b89f6b5301f554b9adc6d4a871c3279820de40", - }, - { - name: "SmellyCoin", - symbol: "SMELLY", - decimals: 0, - address: "0xc9be9f75df438df3ef40e4bab816bf30e3f14b50", - }, - { - name: "DATO token", - symbol: "DATO", - decimals: 18, - address: "0xc9f05e276d9148c7728f63205cc0180cb21a60ff", - }, - { - name: "Sugar Exchange", - symbol: "SGR", - decimals: 8, - address: "0xcb5a05bef3257613e984c17dbcf039952b6d883f", - }, - { - name: "Trustcoin", - symbol: "TRST", - decimals: 6, - address: "0xcb94be6f13a1182e4a4b6140cb7bf2025d28e41b", - }, - { - name: "Bytom", - symbol: "BTM", - decimals: 8, - address: "0xcb97e65f07da24d46bcdd078ebebd7c6e6e3d750", - }, - { - name: "Humaniq", - symbol: "HMQ", - decimals: 8, - address: "0xcbcc0f036ed4788f63fc0fee32873d6a7487b908", - }, - { - name: "MoacToken Token", - symbol: "MOAC", - decimals: 18, - address: "0xcbce61316759d807c474441952ce41985bbc5a40", - }, - { - name: "", - symbol: "IDXM", - decimals: 8, - address: "0xcc13fc627effd6e35d2d2706ea3c4d7396c610ea", - }, - { - name: "Bonpay Token", - symbol: "BON", - decimals: 18, - address: "0xcc34366e3842ca1bd36c1f324d15257960fcc801", - }, - { - name: "Digital Developers Fund Token", - symbol: "DDF", - decimals: 18, - address: "0xcc4ef9eeaf656ac1a2ab886743e98e97e090ed38", - }, - { - name: "SatanCoin", - symbol: "SATAN", - decimals: 0, - address: "0xccca48874780f9c42b162c9617bc6324c5142c22", - }, - { - name: "Aurora DAO", - symbol: "AURA", - decimals: 18, - address: "0xcdcfc0f66c522fd086a1b725ea3c0eeb9f9e8814", - }, - { - name: "", - symbol: "EPOSY", - decimals: 18, - address: "0xce3d9c3f3d302436d12f18eca97a3b00e97be7cd", - }, - { - name: "EtherDelta Token", - symbol: "EDT", - decimals: 8, - address: "0xce53a179047ebed80261689367c093c90a94cc08", - }, - { - name: "Bullioncoin", - symbol: "BLX", - decimals: 18, - address: "0xce59d29b09aae565feeef8e52f47c3cd5368c663", - }, - { - name: "E4ROW", - symbol: "E4ROW", - decimals: 2, - address: "0xce5c603c78d047ef43032e96b5b785324f753a4f", - }, - { - name: "LIFECREDIT", - symbol: "1LIFE", - decimals: 18, - address: "0xce61f5e6d1fe5a86e246f68aff956f7757282ef0", - }, - { - name: "Fairgrounds", - symbol: "FGD", - decimals: 2, - address: "0xce831af117375e6286eb3c46d696ee3dbf4f4f50", - }, - { - name: "Eidoo Token", - symbol: "EDO", - decimals: 18, - address: "0xced4e93198734ddaff8492d525bd258d49eb388e", - }, - { - name: "EtherLite", - symbol: "ETL", - decimals: 10, - address: "0xcedbf324a1eb1affe53ab7b7ef0103e070e3853f", - }, - { - name: "LIRA", - symbol: "LIRA", - decimals: 8, - address: "0xcf76f32ebe10139e4370127d5789cdb0750d460d", - }, - { - name: "Nimiq Exchange", - symbol: "NET", - decimals: 18, - address: "0xcfb98637bcae43c13323eaa1731ced2b716962fd", - }, - { - name: "deertoken", - symbol: "DEER", - decimals: 18, - address: "0xd024645809f74043cd2133c6afeb46f0de4ad88f", - }, - { - name: "sennitoken", - symbol: "SNI", - decimals: 18, - address: "0xd04963de435bd4d25b1cc8f05870f49edbfc8c18", - }, - { - name: "USD Risk", - symbol: "USD_R", - decimals: 18, - address: "0xd0800859d6f4bc0210b7807e770bc44a9ece7372", - }, - { - name: "Storm Token", - symbol: "STORM", - decimals: 18, - address: "0xd0a4b8946cb52f0661273bfbc6fd0e0c75fc6433", - }, - { - name: "AdToken", - symbol: "ADT", - decimals: 9, - address: "0xd0d6d6c5fe4a677d343cc433536bb717bae167dd", - }, - { - name: "GNEISS Coin", - symbol: "GNEISS", - decimals: 0, - address: "0xd2308446536a0bad028ab8c090d62e1ea2a51f24", - }, - { - name: "Dynamic Trading Rights", - symbol: "DTR", - decimals: 8, - address: "0xd234bf2410a0009df9c3c63b610c09738f18ccd7", - }, - { - name: "Status Genesis Token", - symbol: "SGT", - decimals: 1, - address: "0xd248b0d48e44aaf9c49aea0312be7e13a6dc1468", - }, - { - name: "OMGToken", - symbol: "OMG", - decimals: 18, - address: "0xd26114cd6ee289accf82350c8d8487fedb8a0c07", - }, - { - name: "Bitcoin Gift", - symbol: "BGIFT", - decimals: 18, - address: "0xd286603e0f5de621b510a36c78c7616c015656f2", - }, - { - name: "Bounty0x Token", - symbol: "BNTY", - decimals: 18, - address: "0xd2d6158683aee4cc838067727209a0aaf4359de3", - }, - { - name: "Pinky Token", - symbol: "PNY", - decimals: 0, - address: "0xd317ff47dc7e1423e5e050870a66332833e5fd88", - }, - { - name: "onG", - symbol: "ONG", - decimals: 18, - address: "0xd341d1680eeee3255b8c4c75bcce7eb57f144dae", - }, - { - name: "WILD Token", - symbol: "WILD", - decimals: 18, - address: "0xd3c00772b24d997a812249ca637a921e81357701", - }, - { - name: "BannerCoin", - symbol: "BCOIN", - decimals: 8, - address: "0xd3e2f9dfff5a6feeece5dbcee3b86cb375fd8c98", - }, - { - name: "Populous Platform", - symbol: "PPT", - decimals: 8, - address: "0xd4fa1460f537bb9085d22c7bccb5dd450ef28e3a", - }, - { - name: "Beth", - symbol: "BTH", - decimals: 18, - address: "0xd5b9a2737c9b2ff35ecb23b884eb039303bbbb61", - }, - { - name: "Soarcoin", - symbol: "Soar", - decimals: 6, - address: "0xd65960facb8e4a2dfcb2c2212cb2e44a02e2a57e", - }, - { - name: "", - symbol: "MSC", - decimals: 0, - address: "0xd6adc5e386d499361ccc5752f791b45132e7e6e4", - }, - { - name: "ReceiptCoin", - symbol: "RC", - decimals: 9, - address: "0xd6e49800decb64c0e195f791348c1e87a5864fd7", - }, - { - name: "SOCIAL", - symbol: "SCL", - decimals: 8, - address: "0xd7631787b4dcc87b1254cfd1e5ce48e96823dee8", - }, - { - name: "Envion", - symbol: "EVN", - decimals: 18, - address: "0xd780ae2bf04cd96e577d3d014762f831d97129d0", - }, - { - name: "Bitcoin Quick", - symbol: "BTCQ", - decimals: 8, - address: "0xd7aa94f17d60be06414973a45ffa77efd6443f0f", - }, - { - name: "Bitcoin Spoon", - symbol: "SPOON", - decimals: 18, - address: "0xd819e892f4df8659188e8bda839fdf2215a513bc", - }, - { - name: "VeChain Token", - symbol: "VEN", - decimals: 18, - address: "0xd850942ef8811f2a866692a623011bde52a462c1", - }, - { - name: "Soviet Union Ruble", - symbol: "RUB", - decimals: 18, - address: "0xd884f9881e0aeabad79be8a69122cf998d067fff", - }, - { - name: "Pluton", - symbol: "PLU", - decimals: 18, - address: "0xd8912c10681d8b21fd3742244f44658dba12264e", - }, - { - name: "Bitcoin Silver", - symbol: "BTCS", - decimals: 18, - address: "0xd96b9fd7586d9ea24c950d24399be4fb65372fdd", - }, - { - name: "Space Alien Token", - symbol: "SAT", - decimals: 10, - address: "0xd9a0658b7cc9ec0c57e8b20c0920d08f17e747be", - }, - { - name: "cVToken", - symbol: "cV", - decimals: 18, - address: "0xda6cb58a0d0c01610a29c5a65c303e13e885887c", - }, - { - name: "MilitaryPay", - symbol: "MTP", - decimals: 1, - address: "0xdab5dfa0966c3435da991b39d205c3ba1c64fe31", - }, - { - name: "eBIT", - symbol: "EBIT", - decimals: 0, - address: "0xdb45faeca61c70e271bffeaf66162fa68a1c4def", - }, - { - name: "BitcoinToken", - symbol: "BTK", - decimals: 18, - address: "0xdb8646f5b487b5dd979fac618350e85018f557d4", - }, - { - name: "Ethereum Dark", - symbol: "ETHD", - decimals: 18, - address: "0xdbfb423e9bbf16294388e07696a5120e4ceba0c5", - }, - { - name: "KARMATOKEN", - symbol: "KTN", - decimals: 6, - address: "0xdc0c22285b61405aae01cba2530b6dd5cd328da7", - }, - { - name: "Goochain", - symbol: "GOOC", - decimals: 8, - address: "0xdcb9ff81013c31ff686154b4502ef6bfaa102d2d", - }, - { - name: "RiptideCoin", - symbol: "RIPT", - decimals: 8, - address: "0xdd007278b667f6bef52fd0a4c23604aa1f96039a", - }, - { - name: "Tokenomy", - symbol: "TEN", - decimals: 18, - address: "0xdd16ec0f66e54d453e6756713e533355989040e4", - }, - { - name: "LIGHTYEARS", - symbol: "LYS", - decimals: 8, - address: "0xdd41fbd1ae95c5d9b198174a28e04be6b3d1aa27", - }, - { - name: "Brave New Coin", - symbol: "BNC", - decimals: 12, - address: "0xdd6bf56ca2ada24c683fac50e37783e55b57af9f", - }, - { - name: "Hubiits", - symbol: "HBT", - decimals: 15, - address: "0xdd6c68bb32462e01705011a4e2ad1a60740f217f", - }, - { - name: "Kyber Network Crystal", - symbol: "KNC", - decimals: 18, - address: "0xdd974d5c2e2928dea5f71b9825b8b646686bd200", - }, - { - name: "Limit", - symbol: "LMT", - decimals: 8, - address: "0xdded69d8e28d38d640f6244ab5294f309fd40ce1", - }, - { - name: "DimonCoin", - symbol: "FUDD", - decimals: 8, - address: "0xde39e5e5a1b0eeb3afe717d6d011cae88d19451e", - }, - { - name: "Blackmoon Crypto Token", - symbol: "BMC", - decimals: 8, - address: "0xdf6ef343350780bf8c3410bf062e0c015b1dd671", - }, - { - name: "", - symbol: "ROCK", - decimals: 0, - address: "0xdfbd6a960a55bcfcf59d5925351e05a51498bcef", - }, - { - name: "GBP Risk", - symbol: "GBP_R", - decimals: 18, - address: "0xdfe2bd1d3dcbb97804acf3ee85230e832c4a7b5d", - }, - { - name: "SME Banking Platform", - symbol: "SME", - decimals: 18, - address: "0xdfe7351c291bc0e49079c62212587244e1c666ba", - }, - { - name: "Digix DAO", - symbol: "DGD", - decimals: 9, - address: "0xe0b7927c4af23765cb51314a0e0521a9645f0e2a", - }, - { - name: "Bitsync", - symbol: "BITC", - decimals: 0, - address: "0xe0c21b3f45fea3e5fdc811021fb1f8842caccad2", - }, - { - name: "King93", - symbol: "KING", - decimals: 18, - address: "0xe1479d294807379320dca9a9e9002ac644539099", - }, - { - name: "Arexium", - symbol: "ARX", - decimals: 18, - address: "0xe256bb0b2a3457e54db3a41cf5a8b826aca222a8", - }, - { - name: "MATRIX AI Network", - symbol: "MAN", - decimals: 18, - address: "0xe25bcec5d3801ce3a794079bf94adf1b8ccd802d", - }, - { - name: "Brightcoin", - symbol: "BRC", - decimals: 18, - address: "0xe25f0974fea47682f6a7386e4217da70512ec997", - }, - { - name: "NIMFA Token", - symbol: "NIMFA", - decimals: 18, - address: "0xe26517a9967299453d3f1b48aa005e6127e67210", - }, - { - name: "Lotus Token Inc", - symbol: "LTO", - decimals: 18, - address: "0xe2e5d0e1422e927abab19ad2067f802ad07fb364", - }, - { - name: "Link Platform", - symbol: "LNK", - decimals: 18, - address: "0xe2e6d4be086c6938b53b22144855eef674281639", - }, - { - name: "SggCoin", - symbol: "SGG", - decimals: 6, - address: "0xe2f45f1660dc99daf3bd06f637ab1e4debc15bde", - }, - { - name: "Covesting", - symbol: "COV", - decimals: 18, - address: "0xe2fb6529ef566a080e6d23de0bd351311087d567", - }, - { - name: "DRP Utility", - symbol: "DRPU", - decimals: 8, - address: "0xe30e02f049957e2a5907589e06ba646fb2c321ba", - }, - { - name: "PILLAR", - symbol: "PLR", - decimals: 18, - address: "0xe3818504c1b32bf1557b16c238b2e01fd3149c17", - }, - { - name: "ChainTrade Coin", - symbol: "CTC", - decimals: 18, - address: "0xe3fa177acecfb86721cf6f9f4206bd3bd672d7d5", - }, - { - name: "Primas", - symbol: "PST", - decimals: 18, - address: "0xe3fedaecd47aa8eab6b23227b0ee56f092c967a9", - }, - { - name: "0x Protocol Token", - symbol: "ZRX", - decimals: 18, - address: "0xe41d2489571d322189246dafa5ebde1f4699f498", - }, - { - name: "iMM Coin", - symbol: "IMC", - decimals: 18, - address: "0xe42ba5558b00d2e6109cc60412d5d4c9473fe998", - }, - { - name: "7ype Coins", - symbol: "7YPE", - decimals: 0, - address: "0xe463d10ec6b4ff6a3e5be41144956116ca30d4c3", - }, - { - name: "EXRP Network", - symbol: "EXRN", - decimals: 0, - address: "0xe469c4473af82217b30cf17b10bcdb6c8c796e75", - }, - { - name: "Civilianz", - symbol: "Civilianz", - decimals: 0, - address: "0xe4c07f4637df3a0354f9b42a1b3178dc573b8926", - }, - { - name: "latoken", - symbol: "la", - decimals: 18, - address: "0xe50365f5d679cb98a1dd62d6f6e58e59321bcddf", - }, - { - name: "FaithCoin", - symbol: "FAITH", - decimals: 8, - address: "0xe531642e9bb5d027e9c20e03284287b97919a9a5", - }, - { - name: "TokenMarketPlace", - symbol: "TMP", - decimals: 7, - address: "0xe58aff48f738b4a719d1790587cdc91a3560d7e1", - }, - { - name: "EUR Risk", - symbol: "EUR_R", - decimals: 18, - address: "0xe5a219d4db92a701e79b6e548803c8ce55138686", - }, - { - name: "Blockchain Index", - symbol: "BLX", - decimals: 18, - address: "0xe5a7c12972f3bbfe70ed29521c8949b8af6a0970", - }, - { - name: "BITETHER", - symbol: "BTH", - decimals: 18, - address: "0xe66cc41dd03a170623dc087a69ad8d72e64cb838", - }, - { - name: "LEGAL", - symbol: "LGL", - decimals: 18, - address: "0xe691b7ff3c9fddb8c2437412208ee4816aba7258", - }, - { - name: "FaceCoin", - symbol: "FC", - decimals: 2, - address: "0xe6923e9b56db1eed1c9f430ea761da7565e260fe", - }, - { - name: "LOVE Token", - symbol: "LOVE", - decimals: 8, - address: "0xe6efd46eb6cdd73a7fe1e760fa0c25a299755a4b", - }, - { - name: "10M Token", - symbol: "10MT", - decimals: 10, - address: "0xe701cd3329057aea9d54300ddd05e41b8d74727a", - }, - { - name: "HOWL", - symbol: "HOWL", - decimals: 18, - address: "0xe755f2fa95e47c5588c3037dd38e1268fa5fcecd", - }, - { - name: "Token-as-a-Service", - symbol: "TAAS", - decimals: 6, - address: "0xe7775a6e9bcf904eb39da2b68c5efb4f9360e08c", - }, - { - name: "DAY", - symbol: "DAY", - decimals: 18, - address: "0xe814aee960a85208c3db542c53e7d4a6c8d5f60f", - }, - { - name: "Coinlancer", - symbol: "CL", - decimals: 18, - address: "0xe81d72d14b1516e68ac3190a46c93302cc8ed60f", - }, - { - name: "Indicoin", - symbol: "INDI", - decimals: 18, - address: "0xe8c09672cfb9cfce6e2edbb01057d9fa569f97c1", - }, - { - name: "HELP", - symbol: "HELP", - decimals: 0, - address: "0xe8c5e942b76099c0c6d78271bad3ca002fa7c531", - }, - { - name: "LiteCoinW Plus", - symbol: "LCWP", - decimals: 8, - address: "0xe8fc7e1973496848fcb486c5bb880f68487ea0bb", - }, - { - name: "Vibe Coin", - symbol: "VIBE", - decimals: 18, - address: "0xe8ff5c9c75deb346acac493c463c8950be03dfba", - }, - { - name: "Reputation", - symbol: "REP", - decimals: 18, - address: "0xe94327d07fc17907b4db788e5adf2ed424addff6", - }, - { - name: "RAZ Token", - symbol: "RAZ", - decimals: 18, - address: "0xe99a76d5fb19bc419d72f355050045fad88e060f", - }, - { - name: "Upfiring", - symbol: "UFR", - decimals: 18, - address: "0xea097a2b1db00627b2fa17460ad260c016016977", - }, - { - name: "Blocktix", - symbol: "TIX", - decimals: 18, - address: "0xea1f346faf023f974eb5adaf088bbcdf02d761f4", - }, - { - name: "Fuel Token", - symbol: "FUEL", - decimals: 18, - address: "0xea38eaa3c86c8f9b751533ba2e562deb9acded40", - }, - { - name: "Pareto Network Token", - symbol: "PARETO", - decimals: 18, - address: "0xea5f88e54d982cbb0c441cde4e79bc305e5b43bc", - }, - { - name: "AlisToken", - symbol: "ALIS", - decimals: 18, - address: "0xea610b1153477720748dc13ed378003941d84fab", - }, - { - name: "MINT", - symbol: "MINT", - decimals: 18, - address: "0xea642206310400cda4c1c5b8e7945314aa96b8a7", - }, - { - name: "POW Token", - symbol: "POW", - decimals: 18, - address: "0xeb2da9fac54284cea731d1f10bb34eecb3c00c14", - }, - { - name: "eBTC", - symbol: "EBTC", - decimals: 8, - address: "0xeb7c20027172e5d143fb030d50f91cece2d1485d", - }, - { - name: "Digital Coin", - symbol: "DTC", - decimals: 2, - address: "0xeb9c0138d8ac10dd659640a4cc3d135c58b17b1b", - }, - { - name: "EtherPower", - symbol: "ETHP", - decimals: 18, - address: "0xebc86d834756621444a8a26b4cf81b625fe310cd", - }, - { - name: "Datalife", - symbol: "DATL", - decimals: 18, - address: "0xedcd82784027001d7af57a34501c65a25f97fee4", - }, - { - name: "Needs Cash", - symbol: "NCH", - decimals: 12, - address: "0xedf2d3e5fb70ead2e6d8fe96845a5e59d52d2044", - }, - { - name: "PoSToken", - symbol: "POS", - decimals: 18, - address: "0xee609fe292128cad03b786dbb9bc2634ccdbe7fc", - }, - { - name: "Element", - symbol: "EM", - decimals: 1, - address: "0xee688d34c1cc02fc81b2f3f05c489e05d4c0b6ba", - }, - { - name: "", - symbol: "CLASH", - decimals: 0, - address: "0xee9704a1d61aa2c1401e2303ac7e1f81c29ed860", - }, - { - name: "20-footEqvUnit", - symbol: "TEU", - decimals: 18, - address: "0xeeac3f8da16bb0485a4a11c5128b0518dac81448", - }, - { - name: "Sharpe Platform Token", - symbol: "SHP", - decimals: 18, - address: "0xef2463099360a085f1f10b076ed72ef625497a06", - }, - { - name: "SocialDEX", - symbol: "SOCIAL", - decimals: 18, - address: "0xef25e54e1ae9bfd966b9b5cde6880e7a2323a957", - }, - { - name: "Shitcoin", - symbol: "SHIT", - decimals: 0, - address: "0xef2e9966eb61bb494e5375d5df8d67b7db8a780d", - }, - { - name: "loopring", - symbol: "LRC", - decimals: 18, - address: "0xef68e7c694f40c8202821edf525de3782458639f", - }, - { - name: "BMChain Token", - symbol: "BMT", - decimals: 18, - address: "0xf028adee51533b1b47beaa890feb54a457f51e89", - }, - { - name: "Flixx", - symbol: "FLIXX", - decimals: 18, - address: "0xf04a8ac553fcedb5ba99a64799155826c136b0be", - }, - { - name: "REX - Real Estate tokens", - symbol: "REX", - decimals: 18, - address: "0xf05a9382a4c3f29e2784502754293d88b835109c", - }, - { - name: "Enigma", - symbol: "ENG", - decimals: 8, - address: "0xf0ee6b27b759c9893ce4f094b49ad28fd15a23e4", - }, - { - name: "bitqy", - symbol: "BQ", - decimals: 3, - address: "0xf0f8b0b8dbb1124261fc8d778e2287e3fd2cf4f5", - }, - { - name: "eEthereum", - symbol: "EETH", - decimals: 8, - address: "0xf152fca41bd23ff250292af391236db35e0e99c3", - }, - { - name: "CARBON TOKEN CLASSIC", - symbol: "CTC", - decimals: 4, - address: "0xf1d9139c6512452db91f25635457b844d7e22b8b", - }, - { - name: "Tronix", - symbol: "TRX", - decimals: 6, - address: "0xf230b790e05390fc8295f4d3f60332c93bed42e2", - }, - { - name: "XmasToken", - symbol: "xmas", - decimals: 18, - address: "0xf24d3dfffcaf9f9a5dda9c57eeeb1ac0bba49c86", - }, - { - name: "Hubcoin", - symbol: "HUB", - decimals: 6, - address: "0xf2e51e32d1f546423364a040ef1a6d2f05e31482", - }, - { - name: "SND Token 1.0", - symbol: "SND", - decimals: 0, - address: "0xf333b2ace992ac2bbd8798bf57bc65a06184afba", - }, - { - name: "Everex", - symbol: "EVX", - decimals: 4, - address: "0xf3db5fa2c66b7af3eb0c0b782510816cbe4813b8", - }, - { - name: "Chips", - symbol: "CHP", - decimals: 18, - address: "0xf3db7560e820834658b590c96234c333cd3d5e5e", - }, - { - name: "SunContract", - symbol: "SNC", - decimals: 18, - address: "0xf4134146af2d511dd5ea8cdb1c4ac88c57d60404", - }, - { - name: "Metal", - symbol: "MTL", - decimals: 8, - address: "0xf433089366899d83a9f26a773d59ec7ecf30355e", - }, - { - name: "BlockVentureCoin", - symbol: "XBV", - decimals: 8, - address: "0xf4467cae19c5a53b9fdcd4ded678826805aa1927", - }, - { - name: "CAD Risk", - symbol: "CAD_R", - decimals: 18, - address: "0xf4522eda455814d43b003bc1c38501b04d65cc4a", - }, - { - name: "Enjin Coin", - symbol: "ENJ", - decimals: 18, - address: "0xf629cbd94d3791c9250152bd8dfbdf380e2a3b9c", - }, - { - name: "WOLK TOKEN", - symbol: "WLK", - decimals: 18, - address: "0xf6b55acbbc49f4524aa48d19281a9a77c54de10f", - }, - { - name: "DigiPulse Token", - symbol: "DGPT", - decimals: 18, - address: "0xf6cfe53d6febaeea051f400ff5fc14f0cbbdaca1", - }, - { - name: "Starbase", - symbol: "STAR", - decimals: 18, - address: "0xf70a642bd387f94380ffb90451c2c81d4eb82cbc", - }, - { - name: "Bitcoin Black", - symbol: "BLACK", - decimals: 18, - address: "0xf7ae0daa230bf3fb3c0e5e01e7a6e0a142c6cf7e", - }, - { - name: "Guppy", - symbol: "GUP", - decimals: 3, - address: "0xf7b098298f7c69fc14610bf71d5e02c60792894c", - }, - { - name: "CyberMiles Token", - symbol: "CMT", - decimals: 18, - address: "0xf85feea2fdd81d51177f6b8f35f0e6734ce45f5f", - }, - { - name: "Indorse Token", - symbol: "IND", - decimals: 18, - address: "0xf8e386eda857484f5a12e4b5daa9984e06e73705", - }, - { - name: "BOXIcoin", - symbol: "BXc", - decimals: 2, - address: "0xf8fa1a588cd8cd51c3c4d6dc16d2717f6332e821", - }, - { - name: "PallyCoin", - symbol: "PAL", - decimals: 18, - address: "0xf923ba61b43161a83afe2cab7d77ea1e41f27918", - }, - { - name: "Krosscoin", - symbol: "KSS", - decimals: 18, - address: "0xf94e44d8ea46ccd8451d7e15264c6c4a78d3e10f", - }, - { - name: "Ripio Credit Network Token", - symbol: "RCN", - decimals: 18, - address: "0xf970b8e36e23f7fc3fd752eea86f8be8d83375a6", - }, - { - name: "SquirrelGims", - symbol: "SQRL", - decimals: 6, - address: "0xf99f901124cbbe180984a247ba94cfba0c764b2e", - }, - { - name: "Arena", - symbol: "ARENA", - decimals: 18, - address: "0xf9c9da0c81fffd491458881410903561d1e40fd0", - }, - { - name: "Lunyr Token", - symbol: "LUN", - decimals: 18, - address: "0xfa05a73ffe78ef8f1a739473e462c54bae6567d9", - }, - { - name: "GROUP TOKEN ALIANCE", - symbol: "GTA", - decimals: 18, - address: "0xfa2632a88bd0c11535a38f98a98db8251ccbaa9e", - }, - { - name: "Bytether", - symbol: "BTH", - decimals: 18, - address: "0xfad572db566e5234ac9fc3d570c4edc0050eaa92", - }, - { - name: "CPChain", - symbol: "CPC", - decimals: 18, - address: "0xfae4ee59cdd86e3be9e8b90b53aa866327d7c090", - }, - { - name: "LUCKY", - symbol: "LUCK", - decimals: 0, - address: "0xfb12e3cca983b9f59d90912fd17f8d745a8b2953", - }, - { - name: "PLAY", - symbol: "PLY", - decimals: 18, - address: "0xfb41f7b63c8e84f4ba1ecd4d393fd9daa5d14d61", - }, - { - name: "MPESA", - symbol: "mPESA", - decimals: 8, - address: "0xfb4752ad1b7153e1dbd2e6662651a11c7fc14083", - }, - { - name: "PCC Token", - symbol: "PCC", - decimals: 18, - address: "0xfb7da9863e030495db8b4d067d665fc8433fff85", - }, - { - name: "Twinkle", - symbol: "TWNKL", - decimals: 3, - address: "0xfbd0d1c77b501796a35d86cf91d65d9778eee695", - }, - { - name: "InsureX", - symbol: "IXT", - decimals: 8, - address: "0xfca47962d45adfdfd1ab2d972315db4ce7ccf094", - }, - { - name: "EUROBITS", - symbol: "EURB", - decimals: 5, - address: "0xfcb48fdcc479b38068c06ee94249b1516adf09cb", - }, - { - name: "ebitcoinsilver", - symbol: "eBTCS", - decimals: 18, - address: "0xfd219686033da14219142504c7a63ae8a4912134", - }, - { - name: "Intelligent Transportation System", - symbol: "ITS", - decimals: 8, - address: "0xfd784da5c740c617aafb80399fa81b86e1da99a5", - }, - { - name: "1World", - symbol: "1WO", - decimals: 8, - address: "0xfdbc1adc26f0f8f8606a5d63b7d3a3cd21c22b23", - }, - { - name: "Maecenas ", - symbol: "ART", - decimals: 18, - address: "0xfec0cf7fe078a500abf15f1284958f22049c2c7e", - }, - { - name: "H2O Token", - symbol: "H2O", - decimals: 18, - address: "0xfeed1a53bd53ffe453d265fc6e70dd85f8e993b6", - }, - { - name: "PureLifeCoin", - symbol: "LIFE", - decimals: 18, - address: "0xff18dbc487b4c2e3222d115952babfda8ba52f5f", - }, - { - name: "BCAP", - symbol: "BCAP", - decimals: 0, - address: "0xff3519eeeea3e76f1f699ccce5e23ee0bdda41ac", - }, - { - name: "Alpha", - symbol: "A", - decimals: 18, - address: "0xffc63b9146967a1ba33066fb057ee3722221acf0", - }, - { - name: "Hedge", - symbol: "HDG", - decimals: 18, - address: "0xffe8196bc259e8dedc544d935786aa4709ec3e64", - }, - ], + otherTokens: [], }; diff --git a/src/utils/tokens/rinkeby.ts b/src/utils/tokens/rinkeby.ts deleted file mode 100644 index 01ecafb21..000000000 --- a/src/utils/tokens/rinkeby.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { NetworkTokens } from "./index"; - -export const tokens: NetworkTokens = { - canonicalWrappedEther: { - name: "Rinkeby Canonical Wrapped Ether", - symbol: "WETH", - decimals: 18, - address: "0xc778417e063141139fce010982780140aa0cd5ab", - }, - otherTokens: [ - { - name: "Rinkeby Test Token", - symbol: "TST", - decimals: 18, - address: "0xb7dDCF6B64C05D76Adc497AE78AD83ba3883A294", - }, - { - name: "Decentraland - Chainbreakers", - symbol: "MANA", - decimals: 18, - address: "0x0f8528c53fecb54b7005525a3e797e261a51b88e", - }, - ], -}; diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 5fb8a3a3f..dbb4ba4d8 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -2,43 +2,17 @@ import { CROSS_CHAIN_SEAPORT_V1_5_ADDRESS, ItemType, } from "@opensea/seaport-js/lib/constants"; -import BigNumber from "bignumber.js"; -import BN from "bn.js"; -import { CallData, TxData } from "ethereum-types"; -import * as ethABI from "ethereumjs-abi"; -import * as ethUtil from "ethereumjs-util"; -import * as _ from "lodash"; -import { Buffer } from "safe-buffer"; -import Web3 from "web3"; -import { AbstractProvider } from "web3-core/types"; -import { JsonRpcResponse } from "web3-core-helpers/types"; -import { Contract } from "web3-eth-contract"; -import { assert } from "./assert"; -import { Schema } from "./schemas/schema"; +import { BigNumber, ethers } from "ethers"; import { - ENJIN_ADDRESS, - ENJIN_COIN_ADDRESS, - INVERSE_BASIS_POINT, MAX_EXPIRATION_MONTHS, MERKLE_VALIDATOR_MAINNET, - MERKLE_VALIDATOR_RINKEBY, - NULL_ADDRESS, - NULL_BLOCK_HASH, - SHARED_STOREFRONT_LAZY_MINT_ADAPTER_ADDRESS, - SHARED_STORE_FRONT_ADDRESS_MAINNET, - SHARED_STORE_FRONT_ADDRESS_RINKEBY, + SHARED_STOREFRONT_LAZY_MINT_ADAPTER_CROSS_CHAIN_ADDRESS, + SHARED_STOREFRONT_ADDRESS_MAINNET, + SHARED_STOREFRONT_ADDRESS_GOERLI, } from "../constants"; -import { ERC1155 } from "../contracts"; -import { ERC1155Abi } from "../typechain/contracts/ERC1155Abi"; import { - AbiType, - AnnotatedFunctionABI, - Asset, AssetEvent, - ECSignature, - FunctionInputKind, - FunctionOutputKind, - Network, + Chain, OpenSeaAccount, OpenSeaAsset, OpenSeaAssetBundle, @@ -48,170 +22,12 @@ import { OpenSeaTraitStats, OpenSeaUser, Order, - OrderJSON, OrderSide, - SaleKind, - SolidityTypes, - StateMutability, + TokenStandard, Transaction, - TxnCallback, - UnhashedOrder, UnsignedOrder, - Web3Callback, - WyvernAsset, - WyvernBundle, - WyvernFTAsset, - WyvernNFTAsset, - WyvernSchemaName, } from "../types"; -export const annotateERC721TransferABI = ( - asset: WyvernNFTAsset -): AnnotatedFunctionABI => ({ - constant: false, - inputs: [ - { - name: "_to", - type: "address", - kind: FunctionInputKind.Replaceable, - }, - { - name: "_tokenId", - type: "uint256", - kind: FunctionInputKind.Asset, - value: asset.id, - }, - ], - target: asset.address, - name: "transfer", - outputs: [], - payable: false, - stateMutability: StateMutability.Nonpayable, - type: AbiType.Function, -}); - -export const annotateERC20TransferABI = ( - asset: WyvernFTAsset -): AnnotatedFunctionABI => ({ - constant: false, - inputs: [ - { - name: "_to", - type: "address", - kind: FunctionInputKind.Replaceable, - }, - { - name: "_amount", - type: "uint256", - kind: FunctionInputKind.Count, - value: asset.quantity, - }, - ], - target: asset.address, - name: "transfer", - outputs: [ - { - name: "success", - type: "bool", - kind: FunctionOutputKind.Other, - }, - ], - payable: false, - stateMutability: StateMutability.Nonpayable, - type: AbiType.Function, -}); - -// OTHER - -const txCallbacks: { [key: string]: TxnCallback[] } = {}; - -/** - * Promisify a callback-syntax web3 function - * @param inner callback function that accepts a Web3 callback function and passes - * it to the Web3 function - */ -async function promisify(inner: (fn: Web3Callback) => void) { - return new Promise((resolve, reject) => - inner((err, res) => { - if (err) { - reject(err); - } - resolve(res); - }) - ); -} - -/** - * Promisify a call a method on a contract, - * handling Parity errors. Returns '0x' if error. - * Note that if T is not "string", this may return a falsey - * value when the contract doesn't support the method (e.g. `isApprovedForAll`). - * @param callback An anonymous function that takes a web3 callback - * and returns a Web3 Contract's call result, e.g. `c => erc721.ownerOf(3, c)` - * @param onError callback when user denies transaction - */ -export async function promisifyCall( - callback: (fn: Web3Callback) => T, - onError?: (error: unknown) => void -): Promise { - try { - const result = await promisify(callback); - if (typeof result === "string" && result == "0x") { - // Geth compatibility - return undefined; - } - return result as T; - } catch (error) { - // Probably method not found, and web3 is a Parity node - if (onError) { - onError(error); - } else { - console.error(error); - } - return undefined; - } -} - -const track = (web3: Web3, txHash: string, onFinalized: TxnCallback) => { - if (txCallbacks[txHash]) { - txCallbacks[txHash].push(onFinalized); - } else { - txCallbacks[txHash] = [onFinalized]; - const poll = async () => { - const tx = await web3.eth.getTransaction(txHash); - if (tx && tx.blockHash && tx.blockHash !== NULL_BLOCK_HASH) { - const receipt = await web3.eth.getTransactionReceipt(txHash); - if (!receipt) { - // Hack: assume success if no receipt - console.warn("No receipt found for ", txHash); - } - const status = receipt.status; - txCallbacks[txHash].map((f) => f(status)); - delete txCallbacks[txHash]; - } else { - setTimeout(poll, 1000); - } - }; - poll().catch(); - } -}; - -export const confirmTransaction = async (web3: Web3, txHash: string) => { - return new Promise((resolve, reject) => { - track(web3, txHash, (didSucceed: boolean) => { - if (didSucceed) { - resolve("Transaction complete!"); - } else { - reject( - new Error( - `Transaction failed :( You might have already completed this action. See more on the mainnet at etherscan.io/tx/${txHash}` - ) - ); - } - }); - }); -}; - // eslint-disable-next-line @typescript-eslint/no-explicit-any export const assetFromJSON = (asset: any): OpenSeaAsset => { const isAnimated = asset.image_url && asset.image_url.endsWith(".gif"); @@ -224,9 +40,6 @@ export const assetFromJSON = (asset: any): OpenSeaAsset => { owner: asset.owner, assetContract: assetContractFromJSON(asset.asset_contract), collection: collectionFromJSON(asset.collection), - orders: asset.orders ? asset.orders.map(orderFromJSON) : null, - sellOrders: asset.sell_orders ? asset.sell_orders.map(orderFromJSON) : null, - buyOrders: asset.buy_orders ? asset.buy_orders.map(orderFromJSON) : null, isPresale: asset.is_presale, // Don't use previews if it's a special image @@ -250,15 +63,6 @@ export const assetFromJSON = (asset: any): OpenSeaAsset => { ? `#${asset.background_color}` : null, }; - // If orders were included, put them in sell/buy order groups - if (fromJSON.orders && !fromJSON.sellOrders) { - fromJSON.sellOrders = fromJSON.orders.filter( - (o) => o.side == OrderSide.Sell - ); - } - if (fromJSON.orders && !fromJSON.buyOrders) { - fromJSON.buyOrders = fromJSON.orders.filter((o) => o.side == OrderSide.Buy); - } return fromJSON; }; @@ -323,10 +127,6 @@ export const assetBundleFromJSON = (asset_bundle: any): OpenSeaAssetBundle => { description: asset_bundle.description, externalLink: asset_bundle.external_link, permalink: asset_bundle.permalink, - - sellOrders: asset_bundle.sell_orders - ? asset_bundle.sell_orders.map(orderFromJSON) - : null, }; return fromJSON; @@ -340,7 +140,7 @@ export const assetContractFromJSON = ( name: asset_contract.name, description: asset_contract.description, type: asset_contract.asset_contract_type, - schemaName: asset_contract.schema_name, + tokenStandard: asset_contract.schema_name, address: asset_contract.address, tokenSymbol: asset_contract.symbol, buyerFeeBasisPoints: +asset_contract.buyer_fee_basis_points, @@ -371,7 +171,7 @@ export const collectionFromJSON = (collection: any): OpenSeaCollection => { featuredImageUrl: collection.featured_image_url, displayData: collection.display_data, safelistRequestStatus: collection.safelist_request_status, - paymentTokens: (collection.payment_tokens || []).map(tokenFromJSON), + paymentTokens: (collection.payment_tokens ?? []).map(tokenFromJSON), openseaBuyerFeeBasisPoints: +collection.opensea_buyer_fee_basis_points, openseaSellerFeeBasisPoints: +collection.opensea_seller_fee_basis_points, devBuyerFeeBasisPoints: +collection.dev_buyer_fee_basis_points, @@ -384,8 +184,8 @@ export const collectionFromJSON = (collection: any): OpenSeaCollection => { externalLink: collection.external_url, wikiLink: collection.wiki_url, fees: { - openseaFees: new Map(Object.entries(collection.fees.opensea_fees || {})), - sellerFees: new Map(Object.entries(collection.fees.seller_fees || {})), + openseaFees: new Map(Object.entries(collection.fees.opensea_fees ?? {})), + sellerFees: new Map(Object.entries(collection.fees.seller_fees ?? {})), }, }; }; @@ -405,644 +205,24 @@ export const tokenFromJSON = (token: any): OpenSeaFungibleToken => { return fromJSON; }; -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const orderFromJSON = (order: any): Order => { - const createdDate = new Date(`${order.created_date}Z`); - - const fromJSON: Order = { - hash: order.order_hash || order.hash, - cancelledOrFinalized: order.cancelled || order.finalized, - markedInvalid: order.marked_invalid, - metadata: order.metadata, - quantity: new BigNumber(order.quantity || 1), - exchange: order.exchange, - makerAccount: order.maker, - takerAccount: order.taker, - // Use string address to conform to Wyvern Order schema - maker: order.maker.address, - taker: order.taker.address, - makerRelayerFee: new BigNumber(order.maker_relayer_fee), - takerRelayerFee: new BigNumber(order.taker_relayer_fee), - makerProtocolFee: new BigNumber(order.maker_protocol_fee), - takerProtocolFee: new BigNumber(order.taker_protocol_fee), - makerReferrerFee: new BigNumber(order.maker_referrer_fee || 0), - waitingForBestCounterOrder: order.fee_recipient.address == NULL_ADDRESS, - feeMethod: order.fee_method, - feeRecipientAccount: order.fee_recipient, - feeRecipient: order.fee_recipient.address, - side: order.side, - saleKind: order.sale_kind, - target: order.target, - howToCall: order.how_to_call, - calldata: order.calldata, - replacementPattern: order.replacement_pattern, - staticTarget: order.static_target, - staticExtradata: order.static_extradata, - paymentToken: order.payment_token, - basePrice: new BigNumber(order.base_price), - extra: new BigNumber(order.extra), - currentBounty: new BigNumber(order.current_bounty || 0), - currentPrice: new BigNumber(order.current_price || 0), - - createdTime: new BigNumber(Math.round(createdDate.getTime() / 1000)), - listingTime: new BigNumber(order.listing_time), - expirationTime: new BigNumber(order.expiration_time), - - salt: new BigNumber(order.salt), - v: parseInt(order.v), - r: order.r, - s: order.s, - - paymentTokenContract: order.payment_token_contract - ? tokenFromJSON(order.payment_token_contract) - : undefined, - asset: order.asset ? assetFromJSON(order.asset) : undefined, - assetBundle: order.asset_bundle - ? assetBundleFromJSON(order.asset_bundle) - : undefined, - }; - - // Use client-side price calc, to account for buyer fee (not added by server) and latency - fromJSON.currentPrice = estimateCurrentPrice(fromJSON); - - return fromJSON; -}; - -/** - * Convert an order to JSON, hashing it as well if necessary - * @param order order (hashed or unhashed) - */ -export const orderToJSON = (order: Order): OrderJSON => { - const asJSON: OrderJSON = { - exchange: order.exchange.toLowerCase(), - maker: order.maker.toLowerCase(), - taker: order.taker.toLowerCase(), - makerRelayerFee: order.makerRelayerFee.toString(), - takerRelayerFee: order.takerRelayerFee.toString(), - makerProtocolFee: order.makerProtocolFee.toString(), - takerProtocolFee: order.takerProtocolFee.toString(), - makerReferrerFee: order.makerReferrerFee.toString(), - feeMethod: order.feeMethod, - feeRecipient: order.feeRecipient.toLowerCase(), - side: order.side, - saleKind: order.saleKind, - target: order.target.toLowerCase(), - howToCall: order.howToCall, - calldata: order.calldata, - replacementPattern: order.replacementPattern, - staticTarget: order.staticTarget.toLowerCase(), - staticExtradata: order.staticExtradata, - paymentToken: order.paymentToken.toLowerCase(), - quantity: order.quantity.toString(), - basePrice: order.basePrice.toString(), - englishAuctionReservePrice: order.englishAuctionReservePrice - ? order.englishAuctionReservePrice.toString() - : undefined, - extra: order.extra.toString(), - createdTime: order.createdTime ? order.createdTime.toString() : undefined, - listingTime: order.listingTime.toString(), - expirationTime: order.expirationTime.toString(), - salt: order.salt.toString(), - - metadata: order.metadata, - - v: order.v, - r: order.r, - s: order.s, - - nonce: order.nonce, - }; - return asJSON; -}; - -/** - * Sign messages using web3 personal signatures - * @param web3 Web3 instance - * @param message message to sign - * @param signerAddress web3 address signing the message - * @returns A signature if provider can sign, otherwise null - */ -export async function personalSignAsync( - web3: Web3, - message: string, - signerAddress: string -): Promise { - const signature = await promisify((c) => - (web3.currentProvider as AbstractProvider).sendAsync( - { - method: "personal_sign", - params: [message, signerAddress], - from: signerAddress, - id: new Date().getTime(), - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } as any, - c - ) - ); - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const error = (signature as any).error; - if (error) { - throw new Error(error); - } - - return parseSignatureHex(signature?.result); -} - -/** - * Sign messages using web3 signTypedData signatures - * @param web3 Web3 instance - * @param message message to sign - * @param signerAddress web3 address signing the message - * @returns A signature if provider can sign, otherwise null - */ -export async function signTypedDataAsync( - web3: Web3, - message: object, - signerAddress: string -): Promise { - let signature: JsonRpcResponse | undefined; - try { - // Using sign typed data V4 works with a stringified message, used by browser providers i.e. Metamask - signature = await promisify((c) => - (web3.currentProvider as AbstractProvider).sendAsync( - { - method: "eth_signTypedData_v4", - params: [signerAddress, JSON.stringify(message)], - from: signerAddress, - id: new Date().getTime(), - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } as any, - c - ) - ); - } catch { - // Fallback to normal sign typed data for node providers, without using stringified message - // https://github.com/coinbase/coinbase-wallet-sdk/issues/60 - signature = await promisify((c) => - (web3.currentProvider as AbstractProvider).sendAsync( - { - method: "eth_signTypedData", - params: [signerAddress, message], - from: signerAddress, - id: new Date().getTime(), - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } as any, - c - ) - ); - } - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const error = (signature as any).error; - if (error) { - throw new Error(error); - } - - return parseSignatureHex(signature?.result); -} - -/** - * Checks whether a given address contains any code - * @param web3 Web3 instance - * @param address input address - */ -export async function isContractAddress( - web3: Web3, - address: string -): Promise { - const code = await web3.eth.getCode(address); - return code !== "0x"; -} - -export type BigNumberInput = number | string | BigNumber; - -/** - * Special fixes for making BigNumbers using web3 results - * @param arg An arg or the result of a web3 call to turn into a BigNumber - */ -export function makeBigNumber(arg: BigNumberInput): BigNumber { - // Zero sometimes returned as 0x from contracts - if (arg === "0x") { - arg = 0; - } - // fix "new BigNumber() number type has more than 15 significant digits" - arg = arg.toString(); - return new BigNumber(arg); -} - -/** - * Send a transaction to the blockchain and optionally confirm it - * @param web3 Web3 instance - * @param param0 __namedParameters - * @param from address sending transaction - * @param to destination contract address - * @param data data to send to contract - * @param gasPrice gas price to use. If unspecified, uses web3 default (mean gas price) - * @param value value in ETH to send with data. Defaults to 0 - * @param onError callback when user denies transaction - */ -export async function sendRawTransaction( - web3: Web3, - { from, to, data, gasPrice, value = 0, gas }: TxData, - onError: (error: unknown) => void -): Promise { - if (gas == null) { - // This gas cannot be increased due to an ethjs error - gas = await estimateGas(web3, { from, to, data, value }); - } - - try { - const txHashRes = await promisify((c) => - web3.eth.sendTransaction( - { - from, - to, - value: value.toString(), - data, - gas: gas?.toString(), - gasPrice: gasPrice?.toString(), - }, - c - ) - ); - return txHashRes; - } catch (error) { - onError(error); - throw error; - } -} - -/** - * Call a method on a contract, sending arbitrary data and - * handling Parity errors. Returns '0x' if error. - * @param web3 Web3 instance - * @param param0 __namedParameters - * @param from address sending call - * @param to destination contract address - * @param data data to send to contract - * @param onError callback when user denies transaction - */ -export async function rawCall( - web3: Web3, - { from, to, data }: CallData, - onError?: (error: unknown) => void -): Promise { - try { - const result = await web3.eth.call({ - from, - to, - data, - }); - return result; - } catch (error) { - // Probably method not found, and web3 is a Parity node - if (onError) { - onError(error); - } - // Backwards compatibility with Geth nodes - return "0x"; - } -} - /** - * Estimate Gas usage for a transaction - * @param web3 Web3 instance - * @param from address sending transaction - * @param to destination contract address - * @param data data to send to contract - * @param value value in ETH to send with data + * Estimate gas usage for a transaction. + * @param provider The Provider + * @param from Address sending transaction + * @param to Destination contract address + * @param data Data to send to contract + * @param value Value in ETH to send with data */ export async function estimateGas( - web3: Web3, - { from, to, data, value = 0 }: TxData -): Promise { - const amount = await web3.eth.estimateGas({ + provider: ethers.providers.Provider, + { from, to, data, value = BigNumber.from(0) }: ethers.Transaction +) { + return await provider.estimateGas({ from, to, value: value.toString(), data, }); - - return amount; -} - -/** - * Get mean gas price for sending a txn, in wei - * @param web3 Web3 instance - */ -export async function getCurrentGasPrice(web3: Web3): Promise { - const gasPrice = await web3.eth.getGasPrice(); - return new BigNumber(gasPrice); -} - -/** - * Get current transfer fees for an asset - * @param web3 Web3 instance - * @param asset The asset to check for transfer fees - */ -export async function getTransferFeeSettings( - web3: Web3, - { - asset, - accountAddress, - }: { - asset: Asset; - accountAddress?: string; - } -) { - let transferFee: BigNumber | undefined; - let transferFeeTokenAddress: string | undefined; - - if (asset.tokenAddress.toLowerCase() == ENJIN_ADDRESS.toLowerCase()) { - // Enjin asset - const feeContract = new web3.eth.Contract( - ERC1155, - asset.tokenAddress - ) as unknown as ERC1155Abi; - - const params = await feeContract.methods - .transferSettings(asset.tokenId as string) - .call({ from: accountAddress }); - if (params) { - transferFee = makeBigNumber(params[3]); - if (params[2] === "0") { - transferFeeTokenAddress = ENJIN_COIN_ADDRESS; - } - } - } - return { transferFee, transferFeeTokenAddress }; -} - -// sourced from 0x.js: -// https://github.com/ProjectWyvern/wyvern-js/blob/39999cb93ce5d80ea90b4382182d1bd4339a9c6c/src/utils/signature_utils.ts -function parseSignatureHex(signature: string): ECSignature { - // HACK: There is no consensus on whether the signatureHex string should be formatted as - // v + r + s OR r + s + v, and different clients (even different versions of the same client) - // return the signature params in different orders. In order to support all client implementations, - // we parse the signature in both ways, and evaluate if either one is a valid signature. - const validVParamValues = [27, 28]; - - const ecSignatureRSV = _parseSignatureHexAsRSV(signature); - if (_.includes(validVParamValues, ecSignatureRSV.v)) { - return ecSignatureRSV; - } - - // For older clients - const ecSignatureVRS = _parseSignatureHexAsVRS(signature); - if (_.includes(validVParamValues, ecSignatureVRS.v)) { - return ecSignatureVRS; - } - - throw new Error("Invalid signature"); - - function _parseSignatureHexAsVRS(signatureHex: string) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const signatureBuffer: any = ethUtil.toBuffer(signatureHex); - let v = signatureBuffer[0]; - if (v < 27) { - v += 27; - } - const r = signatureBuffer.slice(1, 33); - const s = signatureBuffer.slice(33, 65); - const ecSignature = { - v, - r: ethUtil.bufferToHex(r), - s: ethUtil.bufferToHex(s), - }; - return ecSignature; - } - - function _parseSignatureHexAsRSV(signatureHex: string) { - const { v, r, s } = ethUtil.fromRpcSig(signatureHex); - const ecSignature = { - v, - r: ethUtil.bufferToHex(r), - s: ethUtil.bufferToHex(s), - }; - return ecSignature; - } -} - -/** - * Estimates the price of an order - * @param order The order to estimate price on - * @param secondsToBacktrack The number of seconds to subtract on current time, - * to fix race conditions - * @param shouldRoundUp Whether to round up fractional wei - */ -export function estimateCurrentPrice( - order: Order, - secondsToBacktrack = 30, - shouldRoundUp = true -) { - let { basePrice, listingTime, expirationTime, extra } = order; - const { side, takerRelayerFee, saleKind } = order; - - const now = new BigNumber(Math.round(Date.now() / 1000)).minus( - secondsToBacktrack - ); - basePrice = new BigNumber(basePrice); - listingTime = new BigNumber(listingTime); - expirationTime = new BigNumber(expirationTime); - extra = new BigNumber(extra); - - let exactPrice = basePrice; - - if (saleKind === SaleKind.FixedPrice) { - // Do nothing, price is correct - } else if (saleKind === SaleKind.DutchAuction) { - const diff = extra - .times(now.minus(listingTime)) - .dividedBy(expirationTime.minus(listingTime)); - - exactPrice = - side == OrderSide.Sell - ? /* Sell-side - start price: basePrice. End price: basePrice - extra. */ - basePrice.minus(diff) - : /* Buy-side - start price: basePrice. End price: basePrice + extra. */ - basePrice.plus(diff); - } - - // Add taker fee only for buyers - if (side === OrderSide.Sell && !order.waitingForBestCounterOrder) { - // Buyer fee increases sale price - exactPrice = exactPrice.times(+takerRelayerFee / INVERSE_BASIS_POINT + 1); - } - - return shouldRoundUp - ? exactPrice.integerValue(BigNumber.ROUND_CEIL) - : exactPrice; -} - -/** - * Get the Wyvern representation of a fungible asset - * @param schema The WyvernSchema needed to access this asset - * @param asset The asset to trade - * @param quantity The number of items to trade - */ -export function getWyvernAsset( - schema: Schema, - asset: Asset, - quantity = new BigNumber(1) -): WyvernAsset { - const tokenId = asset.tokenId != null ? asset.tokenId.toString() : undefined; - - return schema.assetFromFields({ - ID: tokenId, - Quantity: quantity.toString(), - Address: asset.tokenAddress.toLowerCase(), - Name: asset.name, - }); -} - -/** - * Get the Wyvern representation of a group of assets - * Sort order is enforced here. Throws if there's a duplicate. - * @param assets Assets to bundle - * @param schemas The WyvernSchemas needed to access each asset, respectively - * @param quantities The quantity of each asset to bundle, respectively - */ -export function getWyvernBundle( - assets: Asset[], - schemas: Array>, - quantities: BigNumber[] -): WyvernBundle { - if (assets.length != quantities.length) { - throw new Error("Bundle must have a quantity for every asset"); - } - - if (assets.length != schemas.length) { - throw new Error("Bundle must have a schema for every asset"); - } - - const wyAssets = assets.map((asset, i) => - getWyvernAsset(schemas[i], asset, quantities[i]) - ); - - const sorters = [ - (assetAndSchema: { asset: WyvernAsset; schema: WyvernSchemaName }) => - assetAndSchema.asset.address, - (assetAndSchema: { asset: WyvernAsset; schema: WyvernSchemaName }) => - assetAndSchema.asset.id || 0, - ]; - - const wyAssetsAndSchemas = wyAssets.map((asset, i) => ({ - asset, - schema: schemas[i].name as WyvernSchemaName, - })); - - const uniqueAssets = _.uniqBy( - wyAssetsAndSchemas, - (group) => `${sorters[0](group)}-${sorters[1](group)}` - ); - - if (uniqueAssets.length != wyAssetsAndSchemas.length) { - throw new Error("Bundle can't contain duplicate assets"); - } - - const sortedWyAssetsAndSchemas = _.sortBy(wyAssetsAndSchemas, sorters); - - return { - assets: sortedWyAssetsAndSchemas.map((group) => group.asset), - schemas: sortedWyAssetsAndSchemas.map((group) => group.schema), - }; -} - -/** - * Get the non-prefixed hash for the order - * (Fixes a Wyvern typescript issue and casing issue) - * @param order order to hash - */ -export function getOrderHash(order: UnhashedOrder) { - const orderWithStringTypes = { - ...order, - maker: order.maker.toLowerCase(), - taker: order.taker.toLowerCase(), - feeRecipient: order.feeRecipient.toLowerCase(), - side: order.side.toString(), - saleKind: order.saleKind.toString(), - howToCall: order.howToCall.toString(), - feeMethod: order.feeMethod.toString(), - }; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return getOrderHashHex(orderWithStringTypes as any); -} - -// sourced from: https://github.com/ProjectOpenSea/wyvern-js/blob/master/src/utils/utils.ts#L39 -function getOrderHashHex(order: UnhashedOrder): string { - const orderParts = [ - { value: order.exchange, type: SolidityTypes.Address }, - { value: order.maker, type: SolidityTypes.Address }, - { value: order.taker, type: SolidityTypes.Address }, - { - value: bigNumberToBN(order.makerRelayerFee), - type: SolidityTypes.Uint256, - }, - { - value: bigNumberToBN(order.takerRelayerFee), - type: SolidityTypes.Uint256, - }, - { - value: bigNumberToBN(order.makerProtocolFee), - type: SolidityTypes.Uint256, - }, - { - value: bigNumberToBN(order.takerProtocolFee), - type: SolidityTypes.Uint256, - }, - { value: order.feeRecipient, type: SolidityTypes.Address }, - { value: order.feeMethod, type: SolidityTypes.Uint8 }, - { value: order.side, type: SolidityTypes.Uint8 }, - { value: order.saleKind, type: SolidityTypes.Uint8 }, - { value: order.target, type: SolidityTypes.Address }, - { value: order.howToCall, type: SolidityTypes.Uint8 }, - { - value: Buffer.from(order.calldata.slice(2), "hex"), - type: SolidityTypes.Bytes, - }, - { - value: Buffer.from(order.replacementPattern.slice(2), "hex"), - type: SolidityTypes.Bytes, - }, - { value: order.staticTarget, type: SolidityTypes.Address }, - { - value: Buffer.from(order.staticExtradata.slice(2), "hex"), - type: SolidityTypes.Bytes, - }, - { value: order.paymentToken, type: SolidityTypes.Address }, - { value: bigNumberToBN(order.basePrice), type: SolidityTypes.Uint256 }, - { value: bigNumberToBN(order.extra), type: SolidityTypes.Uint256 }, - { value: bigNumberToBN(order.listingTime), type: SolidityTypes.Uint256 }, - { value: bigNumberToBN(order.expirationTime), type: SolidityTypes.Uint256 }, - { value: bigNumberToBN(order.salt), type: SolidityTypes.Uint256 }, - ]; - const types = _.map(orderParts, (o) => o.type); - const values = _.map(orderParts, (o) => o.value); - const hash = Buffer.from(ethABI.soliditySHA3(types, values)); - return ethUtil.bufferToHex(hash); -} - -function bigNumberToBN(value: BigNumber) { - return new BN(value.toString(), 10); -} - -// Sourced from: https://github.com/ProjectOpenSea/wyvern-js/blob/master/src/wyvernProtocol.ts#L170 -export function toBaseUnitAmount( - amount: BigNumber, - decimals: number -): BigNumber { - assert.isBigNumber("amount", amount); - assert.isNumber("decimals", decimals); - const unit = new BigNumber(10).pow(decimals); - const baseUnitAmount = amount.times(unit); - const hasDecimals = baseUnitAmount.decimalPlaces() !== 0; - if (hasDecimals) { - throw new Error( - `Invalid unit amount: ${amount.toString()} - Too many decimal places` - ); - } - return baseUnitAmount; } /** @@ -1087,41 +267,12 @@ export async function delay(ms: number) { return new Promise((res) => setTimeout(res, ms)); } -/** - * Validates that an address exists, isn't null, and is properly - * formatted for Wyvern and OpenSea - * @param address input address - */ -export function validateAndFormatWalletAddress( - web3: Web3, - address: string -): string { - if (!address) { - throw new Error("No wallet address found"); - } - if (!web3.utils.isAddress(address)) { - throw new Error("Invalid wallet address"); - } - if (address == NULL_ADDRESS) { - throw new Error("Wallet cannot be the null address"); - } - return address.toLowerCase(); -} - -/** - * Notify developer when a pattern will be deprecated - * @param msg message to log to console - */ -export function onDeprecated(msg: string) { - console.warn(`DEPRECATION NOTICE: ${msg}`); -} - /** * Get special-case approval addresses for an erc721 contract * @param erc721Contract contract to check */ export async function getNonCompliantApprovalAddress( - erc721Contract: Contract, + erc721Contract: ethers.Contract, tokenId: string, _accountAddress: string ): Promise { @@ -1132,17 +283,16 @@ export async function getNonCompliantApprovalAddress( erc721Contract.methods.partIndexToApproved(tokenId).call(), ]); - return _.compact(results)[0].status; + return results.filter(Boolean)[0].status; } export const merkleValidatorByNetwork = { - [Network.Main]: MERKLE_VALIDATOR_MAINNET, - [Network.Rinkeby]: MERKLE_VALIDATOR_RINKEBY, - [Network.Goerli]: null, + [Chain.Mainnet]: MERKLE_VALIDATOR_MAINNET, + [Chain.Goerli]: null, }; /** - * The longest time that an order is valid for is six months from the current date + * The longest time that an order is valid for is one month from the current date * @returns unix timestamp */ export const getMaxOrderExpirationTimestamp = () => { @@ -1165,8 +315,8 @@ export const hasErrorCode = (error: unknown): error is ErrorWithCode => { return !!untypedError.code; }; -export const getAssetItemType = (schemaName?: WyvernSchemaName) => { - switch (schemaName) { +export const getAssetItemType = (tokenStandard?: TokenStandard) => { + switch (tokenStandard) { case "ERC20": return ItemType.ERC20; case "ERC721": @@ -1174,13 +324,13 @@ export const getAssetItemType = (schemaName?: WyvernSchemaName) => { case "ERC1155": return ItemType.ERC1155; default: - throw new Error(`Unknown schema name: ${schemaName}`); + throw new Error(`Unknown schema name: ${tokenStandard}`); } }; const SHARED_STOREFRONT_ADDRESSES = new Set([ - SHARED_STORE_FRONT_ADDRESS_MAINNET.toLowerCase(), - SHARED_STORE_FRONT_ADDRESS_RINKEBY.toLowerCase(), + SHARED_STOREFRONT_ADDRESS_MAINNET.toLowerCase(), + SHARED_STOREFRONT_ADDRESS_GOERLI.toLowerCase(), ]); /** @@ -1192,7 +342,7 @@ const SHARED_STOREFRONT_ADDRESSES = new Set([ export const getAddressAfterRemappingSharedStorefrontAddressToLazyMintAdapterAddress = (tokenAddress: string): string => { return SHARED_STOREFRONT_ADDRESSES.has(tokenAddress.toLowerCase()) - ? SHARED_STOREFRONT_LAZY_MINT_ADAPTER_ADDRESS + ? SHARED_STOREFRONT_LAZY_MINT_ADAPTER_CROSS_CHAIN_ADDRESS : tokenAddress; }; @@ -1217,13 +367,13 @@ export const feesToBasisPoints = ( }; /** - * checks protocol address - * @param protocolAddress a protocol address + * Checks if a protocol address is valid. + * @param protocolAddress The protocol address */ export const isValidProtocol = (protocolAddress: string): boolean => { - const checkSumAddress = Web3.utils.toChecksumAddress(protocolAddress); + const checkSumAddress = ethers.utils.getAddress(protocolAddress); const validProtocolAddresses = [CROSS_CHAIN_SEAPORT_V1_5_ADDRESS].map( - (address) => Web3.utils.toChecksumAddress(address) + (address) => ethers.utils.getAddress(address) ); return validProtocolAddresses.includes(checkSumAddress); }; diff --git a/src/__tests__/api/api.ts b/test/api/api.spec.ts similarity index 69% rename from src/__tests__/api/api.ts rename to test/api/api.spec.ts index 15ef4614e..fd4863372 100644 --- a/src/__tests__/api/api.ts +++ b/test/api/api.spec.ts @@ -3,39 +3,39 @@ import { suite, test } from "mocha"; import { BAYC_CONTRACT_ADDRESS, BAYC_TOKEN_ID, - mainApi, + mainAPI, MAINNET_API_KEY, - testnetApi, -} from "../constants"; + testnetAPI, +} from "../utils/constants"; -suite("api", () => { +suite("API", () => { test("API has correct base url", () => { - assert.equal(mainApi.apiBaseUrl, "https://api.opensea.io"); - assert.equal(testnetApi.apiBaseUrl, "https://testnets-api.opensea.io"); + assert.equal(mainAPI.apiBaseUrl, "https://api.opensea.io"); + assert.equal(testnetAPI.apiBaseUrl, "https://testnets-api.opensea.io"); }); test("Includes API key in request", async () => { - const oldLogger = mainApi.logger; + const oldLogger = mainAPI.logger; const logPromise = new Promise((resolve, reject) => { - mainApi.logger = (log) => { + mainAPI.logger = (log) => { try { assert.include(log, `"X-API-KEY":"${MAINNET_API_KEY}"`); resolve(); } catch (e) { reject(e); } finally { - mainApi.logger = oldLogger; + mainAPI.logger = oldLogger; } }; - mainApi.getPaymentTokens({ symbol: "WETH" }); + mainAPI.getPaymentTokens({ symbol: "WETH" }); }); await logPromise; }); test("API fetches fees for an asset", async () => { - const asset = await mainApi.getAsset({ + const asset = await mainAPI.getAsset({ tokenAddress: BAYC_CONTRACT_ADDRESS, tokenId: BAYC_TOKEN_ID, }); @@ -44,7 +44,7 @@ suite("api", () => { }); test("API fetches assets", async () => { - const { assets } = await mainApi.getAssets({ + const { assets } = await mainAPI.getAssets({ asset_contract_address: BAYC_CONTRACT_ADDRESS, order_by: "sale_date", }); @@ -56,7 +56,7 @@ suite("api", () => { test("API handles errors", async () => { // 404 Not found for random token id try { - await mainApi.get(`/asset/${BAYC_CONTRACT_ADDRESS}/202020202020`); + await mainAPI.get(`/asset/${BAYC_CONTRACT_ADDRESS}/202020202020`); } catch (error) { assert.include((error as Error).message, "Not found"); } diff --git a/src/__tests__/api/fulfillment.ts b/test/api/fulfillment.spec.ts similarity index 75% rename from src/__tests__/api/fulfillment.ts rename to test/api/fulfillment.spec.ts index b962840c4..d46504c27 100644 --- a/src/__tests__/api/fulfillment.ts +++ b/test/api/fulfillment.spec.ts @@ -1,11 +1,11 @@ -import "../support/setup"; +import "../utils/setup"; import { assert } from "chai"; import { suite, test } from "mocha"; -import { mainApi } from "../constants"; +import { mainAPI } from "../utils/constants"; suite("Generating fulfillment data", () => { test(`Generate fulfillment data for listing`, async () => { - const order = await mainApi.getOrder({ + const order = await mainAPI.getOrder({ protocol: "seaport", side: "ask", }); @@ -14,7 +14,7 @@ suite("Generating fulfillment data", () => { return; } - const fulfillment = await mainApi.generateFulfillmentData( + const fulfillment = await mainAPI.generateFulfillmentData( "0x000000000000000000000000000000000000dEaD", order.orderHash, order.protocolAddress, @@ -25,7 +25,7 @@ suite("Generating fulfillment data", () => { }); test(`Generate fulfillment data for offer`, async () => { - const order = await mainApi.getOrder({ + const order = await mainAPI.getOrder({ protocol: "seaport", side: "bid", }); @@ -34,7 +34,7 @@ suite("Generating fulfillment data", () => { return; } - const fulfillment = await mainApi.generateFulfillmentData( + const fulfillment = await mainAPI.generateFulfillmentData( "0x000000000000000000000000000000000000dEaD", order.orderHash, order.protocolAddress, diff --git a/src/__tests__/api/getOrders.ts b/test/api/getOrders.spec.ts similarity index 79% rename from src/__tests__/api/getOrders.ts rename to test/api/getOrders.spec.ts index b2fa993e9..64ac0b0b6 100644 --- a/src/__tests__/api/getOrders.ts +++ b/test/api/getOrders.spec.ts @@ -1,14 +1,18 @@ -import "../support/setup"; +import "../utils/setup"; import { expect } from "chai"; import { suite, test } from "mocha"; import { OrderSide } from "src/orders/types"; -import { BAYC_CONTRACT_ADDRESS, BAYC_TOKEN_IDS, mainApi } from "../constants"; -import { expectValidOrder } from "../utils"; +import { + BAYC_CONTRACT_ADDRESS, + BAYC_TOKEN_IDS, + mainAPI, +} from "../utils/constants"; +import { expectValidOrder } from "../utils/utils"; suite("Getting orders", () => { ["ask", "bid"].forEach((side) => { test(`getOrder should return a single order > ${side}`, async () => { - const order = await mainApi.getOrder({ + const order = await mainAPI.getOrder({ protocol: "seaport", side, }); @@ -18,7 +22,7 @@ suite("Getting orders", () => { test(`getOrder should throw if no order found`, async () => { await expect( - mainApi.getOrder({ + mainAPI.getOrder({ protocol: "seaport", side: "ask", maker: "0x000000000000000000000000000000000000dEaD", @@ -30,7 +34,7 @@ suite("Getting orders", () => { ["ask", "bid"].forEach((side) => { test(`getOrders should return a list of orders > ${side}`, async () => { - const { orders, next, previous } = await mainApi.getOrders({ + const { orders, next, previous } = await mainAPI.getOrders({ protocol: "seaport", side, tokenIds: BAYC_TOKEN_IDS, diff --git a/test/integration/README.md b/test/integration/README.md new file mode 100644 index 000000000..108452cfc --- /dev/null +++ b/test/integration/README.md @@ -0,0 +1,36 @@ +# Integration Tests + +These tests were built to test the order posting functionality of the SDK. Signing and posting order requires a bit more setup than the other tests, so we detail that here. + +### Environment variables: + +Environment variables for integration tests are set using `.env`. This file is not in the source code for the repository so you will need to create a file with the following fields: + +```bash +OPENSEA_API_KEY = "" # OpenSea API Key +ALCHEMY_API_KEY = "" # Alchemy API Key +WALLET_PRIV_KEY = "0x" # Wallet private key + +# The following needs to be an NFT owned by the wallet address derived from WALLET_PRIV_KEY +SELL_ORDER_CONTRACT_ADDRESS = "0x" +SELL_ORDER_TOKEN_ID = "123" +``` + +Optional: + +```bash +OFFER_AMOUNT = "0.004" # Defaults to 0.004 +LISTING_AMOUNT = "40" # Defaults to 40 +``` + +#### WETH Tests + +This test requires ETH in your wallet and an amount for the transaction fee. Please note THIS TEST COSTS ETH TO RUN. + +If you would like to run this test, you need to add `ETH_TO_WRAP = "0.001"` to your `.env` file. + +### How to run: + +``` +npm run test:integration +``` diff --git a/src/__integration_tests__/getAsset.ts b/test/integration/getAsset.spec.ts similarity index 83% rename from src/__integration_tests__/getAsset.ts rename to test/integration/getAsset.spec.ts index da2f414b1..dc6a7703a 100644 --- a/src/__integration_tests__/getAsset.ts +++ b/test/integration/getAsset.spec.ts @@ -1,6 +1,6 @@ import { assert } from "chai"; import { suite, test } from "mocha"; -import { sdk } from "./init"; +import { sdk } from "./setup"; suite("SDK: getAsset", () => { test("Get Asset", async () => { @@ -11,8 +11,9 @@ suite("SDK: getAsset", () => { }; const asset = await sdk.api.getAsset(assetToGet); assert(asset, "Asset should not be null"); - assert( - asset.assetContract.address === tokenAddress, + assert.equal( + asset.assetContract.address, + tokenAddress, "Contract address should match." ); assert(asset.animationUrl, "Animation URL should not be null"); diff --git a/src/__integration_tests__/getCollection.ts b/test/integration/getCollection.spec.ts similarity index 78% rename from src/__integration_tests__/getCollection.ts rename to test/integration/getCollection.spec.ts index 6ea5e433d..2f135c329 100644 --- a/src/__integration_tests__/getCollection.ts +++ b/test/integration/getCollection.spec.ts @@ -1,7 +1,7 @@ import { assert } from "chai"; import { suite, test } from "mocha"; -import { sdk } from "./init"; -import { SafelistStatus } from "../types"; +import { sdk } from "./setup"; +import { SafelistStatus } from "../../src/types"; suite("SDK: getCollection", () => { test("Get Verified Collection", async () => { @@ -10,7 +10,7 @@ suite("SDK: getCollection", () => { assert(collection, "Collection should not be null"); assert(collection.name, "Collection name should exist"); - assert(collection.slug === slug, "Collection slug should match."); + assert.equal(collection.slug, slug, "Collection slug should match."); assert( collection.safelistRequestStatus === SafelistStatus.VERIFIED, "Collection should be verified." diff --git a/src/__integration_tests__/postOrder.ts b/test/integration/postOrder.spec.ts similarity index 67% rename from src/__integration_tests__/postOrder.ts rename to test/integration/postOrder.spec.ts index a3b347be0..848b21c7e 100644 --- a/src/__integration_tests__/postOrder.ts +++ b/test/integration/postOrder.spec.ts @@ -6,15 +6,16 @@ import { TOKEN_ID, sdk, walletAddress, -} from "./init"; -import { WETH_ADDRESS, OFFER_AMOUNT } from "../__tests__/constants"; -import { expectValidOrder } from "../__tests__/utils"; +} from "./setup"; +import { WETH_ADDRESS_BY_NETWORK } from "../../src/constants"; +import { OFFER_AMOUNT } from "../utils/constants"; +import { expectValidOrder } from "../utils/utils"; suite("SDK: order posting", () => { test("Post Buy Order", async () => { const buyOrder = { accountAddress: walletAddress, - startAmount: OFFER_AMOUNT ?? "0.004", + startAmount: OFFER_AMOUNT, asset: { tokenAddress: "0x1a92f7381b9f03921564a437210bb9396471050c", tokenId: "2288", @@ -26,13 +27,17 @@ suite("SDK: order posting", () => { expectValidOrder(order); }); - test("Post Sell Order", async () => { + test("Post Sell Order", async function () { + if (!TOKEN_ADDRESS || !TOKEN_ID) { + this.skip(); + } + const sellOrder = { accountAddress: walletAddress, - startAmount: LISTING_AMOUNT ?? "40", + startAmount: LISTING_AMOUNT, asset: { - tokenAddress: TOKEN_ADDRESS ?? "", - tokenId: TOKEN_ID ?? "", + tokenAddress: TOKEN_ADDRESS, + tokenId: TOKEN_ID, }, }; @@ -43,13 +48,13 @@ suite("SDK: order posting", () => { test("Post collection offer", async () => { const collection = await sdk.api.getCollection("cool-cats-nft"); - + const paymentTokenAddress = WETH_ADDRESS_BY_NETWORK[sdk.chain]; const postOrderRequest = { collectionSlug: collection.slug, accountAddress: walletAddress, - amount: OFFER_AMOUNT ?? "0.004", + amount: OFFER_AMOUNT, quantity: 1, - paymentTokenAddress: WETH_ADDRESS, + paymentTokenAddress, }; const offerResponse = await sdk.createCollectionOffer(postOrderRequest); diff --git a/test/integration/setup.ts b/test/integration/setup.ts new file mode 100644 index 000000000..f38b040e3 --- /dev/null +++ b/test/integration/setup.ts @@ -0,0 +1,32 @@ +import { ethers } from "ethers"; +import { OpenSeaSDK } from "../../src/sdk"; +import { Chain } from "../../src/types"; +import { + MAINNET_API_KEY, + RPC_PROVIDER, + WALLET_PRIV_KEY, +} from "../utils/constants"; + +for (const envVar of ["WALLET_PRIV_KEY"]) { + if (!process.env[envVar]) { + throw new Error(`${envVar} must be set for integration tests`); + } +} + +export const TOKEN_ADDRESS = process.env.SELL_ORDER_CONTRACT_ADDRESS; +export const TOKEN_ID = process.env.SELL_ORDER_TOKEN_ID; +export const LISTING_AMOUNT = process.env.LISTING_AMOUNT ?? "40"; +export const ETH_TO_WRAP = process.env.ETH_TO_WRAP; + +const wallet = new ethers.Wallet(WALLET_PRIV_KEY as string, RPC_PROVIDER); +export const walletAddress = wallet.address; + +export const sdk = new OpenSeaSDK( + RPC_PROVIDER, + { + chain: Chain.Mainnet, + apiKey: MAINNET_API_KEY, + }, + (line) => console.info(`MAINNET: ${line}`), + wallet +); diff --git a/test/integration/wrapEth.spec.ts b/test/integration/wrapEth.spec.ts new file mode 100644 index 000000000..0f9ef3aad --- /dev/null +++ b/test/integration/wrapEth.spec.ts @@ -0,0 +1,58 @@ +import { assert } from "chai"; +import { parseEther } from "ethers/lib/utils"; +import { describe, test } from "mocha"; +import { ETH_TO_WRAP, sdk, walletAddress } from "./setup"; +import { Chain, TokenStandard } from "../../src/types"; +import { getCanonicalWrappedEther } from "../../src/utils/tokens"; + +describe("SDK: WETH", () => { + test("Wrap ETH and Unwrap", async function () { + if (!ETH_TO_WRAP) { + this.skip(); + return; + } + + const wethAsset = { + tokenAddress: getCanonicalWrappedEther(Chain.Mainnet).address, + tokenId: null, + tokenStandard: TokenStandard.ERC20, + }; + const startingWethBalance = await sdk.getBalance({ + accountAddress: walletAddress, + asset: wethAsset, + }); + + await sdk.wrapEth({ + amountInEth: ETH_TO_WRAP, + accountAddress: walletAddress, + }); + + const endingWethBalance = await sdk.getBalance({ + accountAddress: walletAddress, + asset: wethAsset, + }); + + const ethToWrapInWei = parseEther(ETH_TO_WRAP); + + assert.equal( + startingWethBalance.add(ethToWrapInWei).toString(), + endingWethBalance.toString(), + "Balances should match." + ); + + await sdk.unwrapWeth({ + amountInEth: ETH_TO_WRAP, + accountAddress: walletAddress, + }); + + const finalWethBalance = await sdk.getBalance({ + accountAddress: walletAddress, + asset: wethAsset, + }); + assert.equal( + startingWethBalance.toString(), + finalWethBalance.toString(), + "Balances should match." + ); + }).timeout(30000); +}); diff --git a/src/__tests__/sdk/fees.ts b/test/sdk/fees.spec.ts similarity index 87% rename from src/__tests__/sdk/fees.ts rename to test/sdk/fees.spec.ts index ea4a2a441..67301a03b 100644 --- a/src/__tests__/sdk/fees.ts +++ b/test/sdk/fees.spec.ts @@ -1,22 +1,19 @@ import { assert } from "chai"; import { before, suite, test } from "mocha"; -import Web3 from "web3"; -import { MAINNET_PROVIDER_URL } from "../../constants"; -import { OpenSeaSDK } from "../../index"; -import { Network, OpenSeaAsset, OrderSide } from "../../types"; -import { feesToBasisPoints } from "../../utils/utils"; +import { OpenSeaSDK } from "../../src/index"; +import { Chain, OpenSeaAsset, OrderSide } from "../../src/types"; +import { feesToBasisPoints } from "../../src/utils/utils"; import { BAYC_CONTRACT_ADDRESS, BAYC_TOKEN_ID, MAINNET_API_KEY, -} from "../constants"; - -const provider = new Web3.providers.HttpProvider(MAINNET_PROVIDER_URL); + RPC_PROVIDER, +} from "../utils/constants"; const client = new OpenSeaSDK( - provider, + RPC_PROVIDER, { - networkName: Network.Main, + chain: Chain.Mainnet, apiKey: MAINNET_API_KEY, }, (line) => console.info(`MAINNET: ${line}`) diff --git a/src/__tests__/sdk/misc.ts b/test/sdk/misc.spec.ts similarity index 63% rename from src/__tests__/sdk/misc.ts rename to test/sdk/misc.spec.ts index 847e52ab7..7e0033045 100644 --- a/src/__tests__/sdk/misc.ts +++ b/test/sdk/misc.spec.ts @@ -1,22 +1,23 @@ import { assert } from "chai"; import { suite, test } from "mocha"; -import Web3 from "web3"; import { - SHARED_STOREFRONT_LAZY_MINT_ADAPTER_ADDRESS, - SHARED_STORE_FRONT_ADDRESS_MAINNET, - SHARED_STORE_FRONT_ADDRESS_RINKEBY, -} from "../../constants"; -import { OpenSeaSDK } from "../../index"; -import { Network } from "../../types"; -import { getAddressAfterRemappingSharedStorefrontAddressToLazyMintAdapterAddress } from "../../utils/utils"; -import { DAPPER_ADDRESS, MAINNET_API_KEY } from "../constants"; - -const provider = new Web3.providers.HttpProvider("https://mainnet.infura.io"); + SHARED_STOREFRONT_LAZY_MINT_ADAPTER_CROSS_CHAIN_ADDRESS, + SHARED_STOREFRONT_ADDRESS_MAINNET, + SHARED_STOREFRONT_ADDRESS_GOERLI, +} from "../../src/constants"; +import { OpenSeaSDK } from "../../src/index"; +import { Chain } from "../../src/types"; +import { getAddressAfterRemappingSharedStorefrontAddressToLazyMintAdapterAddress } from "../../src/utils/utils"; +import { + DAPPER_ADDRESS, + MAINNET_API_KEY, + RPC_PROVIDER, +} from "../utils/constants"; const client = new OpenSeaSDK( - provider, + RPC_PROVIDER, { - networkName: Network.Main, + chain: Chain.Mainnet, apiKey: MAINNET_API_KEY, }, (line) => console.info(`MAINNET: ${line}`) @@ -45,30 +46,30 @@ suite("SDK: misc", () => { test("Checks that shared storefront addresses are remapped to lazy mint adapter address", async () => { assert.equal( getAddressAfterRemappingSharedStorefrontAddressToLazyMintAdapterAddress( - SHARED_STORE_FRONT_ADDRESS_RINKEBY + SHARED_STOREFRONT_ADDRESS_GOERLI ), - SHARED_STOREFRONT_LAZY_MINT_ADAPTER_ADDRESS + SHARED_STOREFRONT_LAZY_MINT_ADAPTER_CROSS_CHAIN_ADDRESS ); assert.equal( getAddressAfterRemappingSharedStorefrontAddressToLazyMintAdapterAddress( - SHARED_STORE_FRONT_ADDRESS_MAINNET + SHARED_STOREFRONT_ADDRESS_MAINNET ), - SHARED_STOREFRONT_LAZY_MINT_ADAPTER_ADDRESS + SHARED_STOREFRONT_LAZY_MINT_ADAPTER_CROSS_CHAIN_ADDRESS ); }); test("Checks that upper case shared storefront addresses are remapped to lazy mint adapter address", async () => { assert.equal( getAddressAfterRemappingSharedStorefrontAddressToLazyMintAdapterAddress( - SHARED_STORE_FRONT_ADDRESS_RINKEBY.toUpperCase() + SHARED_STOREFRONT_ADDRESS_GOERLI.toUpperCase() ), - SHARED_STOREFRONT_LAZY_MINT_ADAPTER_ADDRESS + SHARED_STOREFRONT_LAZY_MINT_ADAPTER_CROSS_CHAIN_ADDRESS ); assert.equal( getAddressAfterRemappingSharedStorefrontAddressToLazyMintAdapterAddress( - SHARED_STORE_FRONT_ADDRESS_MAINNET.toUpperCase() + SHARED_STOREFRONT_ADDRESS_MAINNET.toUpperCase() ), - SHARED_STOREFRONT_LAZY_MINT_ADAPTER_ADDRESS + SHARED_STOREFRONT_LAZY_MINT_ADAPTER_CROSS_CHAIN_ADDRESS ); }); }); diff --git a/src/__tests__/sdk/orders.ts b/test/sdk/orders.spec.ts similarity index 50% rename from src/__tests__/sdk/orders.ts rename to test/sdk/orders.spec.ts index ee84a7b3d..121be3ddd 100644 --- a/src/__tests__/sdk/orders.ts +++ b/test/sdk/orders.spec.ts @@ -1,38 +1,19 @@ -import { BigNumber } from "bignumber.js"; import { assert } from "chai"; import { suite, test } from "mocha"; -import Web3 from "web3"; -import { MAINNET_PROVIDER_URL } from "../../constants"; -import { OpenSeaSDK } from "../../index"; -import { Network, OrderJSON } from "../../types"; -import { orderFromJSON } from "../../utils/utils"; -import { MAINNET_API_KEY } from "../constants"; -import ordersJSONFixture from "../fixtures/orders.json"; - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -const ordersJSON = ordersJSONFixture as any; - -const provider = new Web3.providers.HttpProvider(MAINNET_PROVIDER_URL); +import { OpenSeaSDK } from "../../src/index"; +import { Chain } from "../../src/types"; +import { MAINNET_API_KEY, RPC_PROVIDER } from "../utils/constants"; const client = new OpenSeaSDK( - provider, + RPC_PROVIDER, { - networkName: Network.Main, + chain: Chain.Mainnet, apiKey: MAINNET_API_KEY, }, (line) => console.info(`MAINNET: ${line}`) ); suite("SDK: orders", () => { - ordersJSON.map((orderJSON: OrderJSON, index: number) => { - test("Order #" + index + " has correct types", () => { - const order = orderFromJSON(orderJSON); - assert.instanceOf(order.basePrice, BigNumber); - assert.typeOf(order.maker, "string"); - assert.equal(+order.quantity, 1); - }); - }); - test("Fungible tokens filter", async () => { const manaTokens = (await client.api.getPaymentTokens({ symbol: "MANA" })) .tokens; diff --git a/src/__tests__/utils/utils.ts b/test/utils.spec.ts similarity index 71% rename from src/__tests__/utils/utils.ts rename to test/utils.spec.ts index 18a5cdbab..e2ea40c7b 100644 --- a/src/__tests__/utils/utils.ts +++ b/test/utils.spec.ts @@ -3,9 +3,9 @@ import { CROSS_CHAIN_SEAPORT_V1_5_ADDRESS, } from "@opensea/seaport-js/lib/constants"; import { assert } from "chai"; +import { ethers } from "ethers"; import { suite, test } from "mocha"; -import Web3 from "web3"; -import { isValidProtocol } from "../../utils/utils"; +import { isValidProtocol } from "../src/utils/utils"; suite("Utils: utils", () => { test("isValidProtocol works with all forms of address", async () => { @@ -21,12 +21,8 @@ suite("Utils: utils", () => { assert.isFalse(isValidProtocol(seaport_v_1_4.toLowerCase())); assert.isFalse(isValidProtocol(randomAddress.toLowerCase())); - assert.isTrue(isValidProtocol(Web3.utils.toChecksumAddress(seaport_v1_5))); - assert.isFalse( - isValidProtocol(Web3.utils.toChecksumAddress(seaport_v_1_4)) - ); - assert.isFalse( - isValidProtocol(Web3.utils.toChecksumAddress(randomAddress)) - ); + assert.isTrue(isValidProtocol(ethers.utils.getAddress(seaport_v1_5))); + assert.isFalse(isValidProtocol(ethers.utils.getAddress(seaport_v_1_4))); + assert.isFalse(isValidProtocol(ethers.utils.getAddress(randomAddress))); }); }); diff --git a/test/utils/constants.ts b/test/utils/constants.ts new file mode 100644 index 000000000..091c9a581 --- /dev/null +++ b/test/utils/constants.ts @@ -0,0 +1,33 @@ +import { ethers } from "ethers"; +import { OpenSeaAPI } from "../../src/api"; +import { Chain } from "../../src/types"; + +export const MAINNET_API_KEY = process.env.OPENSEA_API_KEY; +export const WALLET_PRIV_KEY = process.env.WALLET_PRIV_KEY; + +const ALCHEMY_API_KEY = process.env.ALCHEMY_API_KEY; +export const RPC_PROVIDER = new ethers.providers.JsonRpcProvider( + `https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}` +); + +export const OFFER_AMOUNT = process.env.OFFER_AMOUNT ?? "0.004"; +export const DAPPER_ADDRESS = "0x4819352bd7fadcCFAA8A2cDA4b2825a9ec51417c"; +export const BAYC_CONTRACT_ADDRESS = + "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d"; +export const BAYC_TOKEN_ID = "1"; +export const BAYC_TOKEN_IDS = ["1", "2", "3", "4", "5", "6", "7", "8", "9"]; + +export const mainAPI = new OpenSeaAPI( + { + apiKey: MAINNET_API_KEY, + chain: Chain.Mainnet, + }, + process.env.DEBUG ? console.log : undefined +); + +export const testnetAPI = new OpenSeaAPI( + { + chain: Chain.Goerli, + }, + process.env.DEBUG ? console.log : undefined +); diff --git a/test/utils/setup.ts b/test/utils/setup.ts new file mode 100644 index 000000000..81192cd13 --- /dev/null +++ b/test/utils/setup.ts @@ -0,0 +1,5 @@ +import chai = require("chai"); +import chaiAsPromised = require("chai-as-promised"); + +chai.should(); +chai.use(chaiAsPromised); diff --git a/test/utils/utils.ts b/test/utils/utils.ts new file mode 100644 index 000000000..09b93e7b6 --- /dev/null +++ b/test/utils/utils.ts @@ -0,0 +1,29 @@ +import { expect } from "chai"; +import { OrderV2 } from "src/orders/types"; + +export const expectValidOrder = (order: OrderV2) => { + const requiredFields = [ + "createdDate", + "closingDate", + "listingTime", + "expirationTime", + "orderHash", + "maker", + "taker", + "protocolData", + "protocolAddress", + "currentPrice", + "makerFees", + "takerFees", + "side", + "orderType", + "cancelled", + "finalized", + "markedInvalid", + "makerAssetBundle", + "takerAssetBundle", + ]; + for (const field of requiredFields) { + expect(field in order).to.be.true; + } +}; diff --git a/tsconfig.build.json b/tsconfig.build.json index a9af3cfe2..2a4b43ef0 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -1,4 +1,4 @@ { "extends": "./tsconfig.json", - "exclude": ["./src/__tests__/**/*"] + "exclude": ["./test"] } diff --git a/tsconfig.json b/tsconfig.json index 3d08e572e..825c6a11e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,14 +1,9 @@ { - "include": [ - "./src/**/*", - "./node_modules/types-bn/index.d.ts", - "./node_modules/types-ethereumjs-util/index.d.ts" - ], + "include": ["./src/**/*", "test"], "compilerOptions": { "outDir": "lib", - "target": "es5", + "target": "es6", "lib": ["dom", "esnext"], - "allowSyntheticDefaultImports": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "noImplicitReturns": true, @@ -22,7 +17,6 @@ "sourceMap": true, "strict": true, "declaration": true, - "esModuleInterop": true, "module": "commonjs", "moduleResolution": "node", "resolveJsonModule": true,