From 6253059d42da3746c9f6ca00b1cbfe8887df541f Mon Sep 17 00:00:00 2001 From: "Aung T. T. Kyaw" Date: Wed, 5 Oct 2022 12:41:33 +1100 Subject: [PATCH] Core SDK v1.0.0 (#185) * add ImmutableX.ts * Cleanup exports. * refactor: token type as string instead of enum this allows consumer to avoid having to import TokenType enum * DX-1154 refactor interfaces with SignableToken (#149) * refactor: remove sender from transfer interfaces sender eth address can be filled in using the wallet connection * refactor(ERC20Deposit): remove unused field symbol * refactor: simplify request interfaces - Consolidate deposit/withdrawal interfaces with TokenAmount - Simplify order/transfer request interfaces - Remove decimals from ERC20 GetSignableToken requests [DX-1184] - Remove token_id from ERC20 encode asset api call * fix: optional chaining error response for 404 check * [DX-1156] fix: Undecimalise amounts on deposits (#151) Update depositETH and depositERC20 workflows to accept undecimalised amounts. * [DX-1153] Signed timestamp APIs to handle auth internally (#153) * [DX-1185]: Clean up dependencies (#162) * [DX-1224] Fix peer dependency warnings (#163) * DX-1152 remove stark key derivation (#150) Added export function createStarkSigner(privateKey: string): StarkSigner in utils/stark/stark-signer Added export function generatePrivateKey(): string in utils/stark/stark-curve to generate a new private key at this point it's the responsibility of the developer to store the key against Eth address Removed Stark key derivation from Eth signature - this is going to be moved to Wallet/Link SDK Removed ethereumjs-wallet dependency moved code and renamed some files * fix(isRegisteredOnchain): handle USER_UNREGISTERED (#169) Registration contract isRegistered method may throw `error.reason = 'USER_UNREGISTERED'` Updated to catch errors where reason is USER_UNREGISTERED to return false. For all other errors, throw exception. This issue was causing exceptions for registerAndDeposit/Withdraw methods when using unregistered(onchain) users. * [DX-1221] Annotate exposed functions & types (#170) * feat: Add typedoc annotations to custom types & refactor export structure * [DX-1235] Return expected response types (#172) * Beta release support (#181) * feat: Add beta tagging for releases * feat: add methods from MetadataRefreshesApi (#175) Co-authored-by: Chris James Co-authored-by: Nik Ho Co-authored-by: Kostia Kim Co-authored-by: Matthew Muscat Co-authored-by: Adaura <96668470+sprngbk@users.noreply.github.com> --- .github/workflows/publish.yaml | 6 +- .gitignore | 1 + CHANGELOG.md | 13 + README.md | 417 +- images/imx-logo.png | Bin 31037 -> 0 bytes openapi.json | 1144 ++++- package.json | 26 +- rollup.config.js | 10 + src/ImmutableX.ts | 842 ++++ src/api/.openapi-generator/FILES | 10 + src/api/.openapi-generator/VERSION | 2 +- src/api/api.ts | 3 +- src/api/base.ts | 2 +- src/api/common.ts | 36 +- src/api/configuration.ts | 2 +- src/api/domain/assets-api.ts | 4 +- src/api/domain/balances-api.ts | 2 +- src/api/domain/collections-api.ts | 20 +- src/api/domain/deposits-api.ts | 2 +- src/api/domain/encoding-api.ts | 2 +- src/api/domain/metadata-api.ts | 4 +- src/api/domain/metadata-refreshes-api.ts | 629 +++ src/api/domain/mints-api.ts | 20 +- src/api/domain/orders-api.ts | 2 +- src/api/domain/projects-api.ts | 4 +- src/api/domain/tokens-api.ts | 70 +- src/api/domain/trades-api.ts | 42 +- src/api/domain/transfers-api.ts | 4 +- src/api/domain/users-api.ts | 4 +- src/api/domain/withdrawals-api.ts | 2 +- src/api/index.ts | 2 +- ...d-metadata-schema-to-collection-request.ts | 4 +- src/api/models/apierror.ts | 42 + src/api/models/asset-properties.ts | 4 +- src/api/models/asset-with-orders.ts | 8 +- src/api/models/asset.ts | 8 +- src/api/models/balance.ts | 2 +- src/api/models/cancel-order-request.ts | 2 +- src/api/models/cancel-order-response.ts | 2 +- src/api/models/collection-details.ts | 2 +- src/api/models/collection-filter.ts | 4 +- src/api/models/collection.ts | 14 +- src/api/models/create-collection-request.ts | 2 +- .../models/create-metadata-refresh-request.ts | 36 + .../create-metadata-refresh-response.ts | 30 + src/api/models/create-order-request.ts | 4 +- src/api/models/create-order-response.ts | 8 +- src/api/models/create-project-request.ts | 2 +- src/api/models/create-project-response.ts | 2 +- src/api/models/create-trade-request-v1.ts | 6 +- src/api/models/create-trade-response.ts | 4 +- src/api/models/create-transfer-request-v1.ts | 2 +- src/api/models/create-transfer-request.ts | 4 +- src/api/models/create-transfer-response-v1.ts | 2 +- src/api/models/create-transfer-response.ts | 2 +- src/api/models/create-withdrawal-request.ts | 2 +- src/api/models/create-withdrawal-response.ts | 2 +- src/api/models/deposit.ts | 4 +- src/api/models/encode-asset-request-token.ts | 4 +- src/api/models/encode-asset-request.ts | 4 +- src/api/models/encode-asset-response.ts | 2 +- src/api/models/encode-asset-token-data.ts | 2 +- src/api/models/fee-data.ts | 2 +- src/api/models/fee-entry.ts | 2 +- src/api/models/fee-info.ts | 2 +- src/api/models/fee-token.ts | 4 +- src/api/models/fee.ts | 2 +- .../get-metadata-refresh-errors-response.ts | 45 + .../models/get-metadata-refresh-response.ts | 72 + src/api/models/get-metadata-refreshes.ts | 45 + src/api/models/get-projects-response.ts | 4 +- .../get-signable-cancel-order-request.ts | 2 +- .../get-signable-cancel-order-response.ts | 2 +- .../models/get-signable-deposit-request.ts | 4 +- .../models/get-signable-deposit-response.ts | 2 +- src/api/models/get-signable-order-request.ts | 6 +- src/api/models/get-signable-order-response.ts | 4 +- ...signable-registration-offchain-response.ts | 2 +- .../get-signable-registration-request.ts | 2 +- .../get-signable-registration-response.ts | 2 +- src/api/models/get-signable-trade-request.ts | 4 +- src/api/models/get-signable-trade-response.ts | 4 +- .../get-signable-transfer-request-v1.ts | 4 +- .../models/get-signable-transfer-request.ts | 4 +- .../get-signable-transfer-response-v1.ts | 2 +- .../models/get-signable-transfer-response.ts | 4 +- .../models/get-signable-withdrawal-request.ts | 4 +- .../get-signable-withdrawal-response.ts | 2 +- src/api/models/get-users-api-response.ts | 2 +- src/api/models/index.ts | 9 + src/api/models/list-assets-response.ts | 4 +- src/api/models/list-balances-response.ts | 4 +- src/api/models/list-collections-response.ts | 4 +- src/api/models/list-deposits-response.ts | 4 +- src/api/models/list-mints-response.ts | 4 +- src/api/models/list-orders-response.ts | 4 +- src/api/models/list-tokens-response.ts | 4 +- src/api/models/list-trades-response.ts | 4 +- src/api/models/list-transfers-response.ts | 4 +- src/api/models/list-withdrawals-response.ts | 4 +- src/api/models/metadata-refresh-errors.ts | 66 + .../metadata-refresh-excluding-summary.ts | 63 + src/api/models/metadata-refresh-summary.ts | 42 + src/api/models/metadata-schema-property.ts | 2 +- src/api/models/metadata-schema-request.ts | 2 +- src/api/models/mint-fee.ts | 2 +- src/api/models/mint-request.ts | 6 +- src/api/models/mint-result-details.ts | 2 +- src/api/models/mint-token-data-v2.ts | 4 +- src/api/models/mint-tokens-response.ts | 4 +- src/api/models/mint-user.ts | 4 +- src/api/models/mint.ts | 6 +- src/api/models/mintable-token-details.ts | 2 +- src/api/models/order-details.ts | 2 +- src/api/models/order-fee-info.ts | 4 +- src/api/models/order.ts | 6 +- src/api/models/project.ts | 2 +- src/api/models/range.ts | 2 +- src/api/models/register-user-request.ts | 2 +- src/api/models/register-user-response.ts | 2 +- src/api/models/signable-token.ts | 2 +- src/api/models/signable-transfer-details.ts | 4 +- .../signable-transfer-response-details.ts | 4 +- src/api/models/success-response.ts | 2 +- src/api/models/token-data.ts | 12 +- src/api/models/token-details.ts | 2 +- src/api/models/token.ts | 4 +- src/api/models/trade-side.ts | 2 +- src/api/models/trade.ts | 4 +- src/api/models/transfer-request.ts | 2 +- src/api/models/transfer.ts | 4 +- src/api/models/update-collection-request.ts | 2 +- src/api/models/withdrawal.ts | 4 +- src/{utils => config}/config.test.ts | 13 +- src/config/config.ts | 97 + src/config/index.ts | 1 + src/contracts/index.ts | 27 +- src/exportApiModels.ts | 33 + src/exportContracts.ts | 6 + src/exportUtils.ts | 1 + src/index.ts | 9 +- src/types/deposit.ts | 21 - src/types/errors.ts | 18 + src/types/index.ts | 53 +- src/types/requests.ts | 43 + src/types/signable-withdrawal.ts | 50 - src/types/signers.ts | 35 + src/types/token.ts | 5 - src/types/tokens.ts | 53 + src/types/transfers.ts | 17 + src/types/withdrawal.ts | 54 - src/utils/config.ts | 37 - src/utils/convertToSignableToken.ts | 34 + src/utils/crypto/crypto.test.ts | 12 +- src/utils/crypto/crypto.ts | 54 +- src/utils/formatError.ts | 23 + src/utils/index.ts | 6 +- src/utils/stark/base-signer.ts | 43 - src/utils/stark/stark-curve.ts | 30 - src/utils/stark/stark-key.test.ts | 38 - src/utils/stark/stark-key.ts | 121 - src/utils/stark/starkCurve.test.ts | 21 + src/utils/stark/starkCurve.ts | 102 + src/utils/stark/starkSigner.test.ts | 42 + src/utils/stark/starkSigner.ts | 62 + src/workflows/burn.ts | 43 - src/workflows/deposit/depositERC20.ts | 13 +- src/workflows/deposit/depositERC721.ts | 11 +- src/workflows/deposit/depositEth.ts | 13 +- src/workflows/orders.ts | 49 +- src/workflows/registration.ts | 53 +- src/workflows/trades.ts | 10 +- src/workflows/transfers.ts | 63 +- src/workflows/types.ts | 27 - .../withdrawal/completeERC20Withdrawal.ts | 27 +- .../withdrawal/completeERC721Withdrawal.ts | 50 +- .../withdrawal/completeEthWithdrawal.ts | 6 +- src/workflows/withdrawal/prepareWithdrawal.ts | 33 +- src/workflows/workflows.ts | 321 +- yarn.lock | 3970 +++++++++-------- 180 files changed, 6795 insertions(+), 3154 deletions(-) delete mode 100644 images/imx-logo.png create mode 100644 src/ImmutableX.ts create mode 100644 src/api/domain/metadata-refreshes-api.ts create mode 100644 src/api/models/apierror.ts create mode 100644 src/api/models/create-metadata-refresh-request.ts create mode 100644 src/api/models/create-metadata-refresh-response.ts create mode 100644 src/api/models/get-metadata-refresh-errors-response.ts create mode 100644 src/api/models/get-metadata-refresh-response.ts create mode 100644 src/api/models/get-metadata-refreshes.ts create mode 100644 src/api/models/metadata-refresh-errors.ts create mode 100644 src/api/models/metadata-refresh-excluding-summary.ts create mode 100644 src/api/models/metadata-refresh-summary.ts rename src/{utils => config}/config.test.ts (87%) create mode 100644 src/config/config.ts create mode 100644 src/config/index.ts create mode 100644 src/exportApiModels.ts create mode 100644 src/exportContracts.ts create mode 100644 src/exportUtils.ts delete mode 100644 src/types/deposit.ts create mode 100644 src/types/errors.ts create mode 100644 src/types/requests.ts delete mode 100644 src/types/signable-withdrawal.ts create mode 100644 src/types/signers.ts delete mode 100644 src/types/token.ts create mode 100644 src/types/tokens.ts create mode 100644 src/types/transfers.ts delete mode 100644 src/types/withdrawal.ts delete mode 100644 src/utils/config.ts create mode 100644 src/utils/convertToSignableToken.ts create mode 100644 src/utils/formatError.ts delete mode 100644 src/utils/stark/base-signer.ts delete mode 100644 src/utils/stark/stark-curve.ts delete mode 100644 src/utils/stark/stark-key.test.ts delete mode 100644 src/utils/stark/stark-key.ts create mode 100644 src/utils/stark/starkCurve.test.ts create mode 100644 src/utils/stark/starkCurve.ts create mode 100644 src/utils/stark/starkSigner.test.ts create mode 100644 src/utils/stark/starkSigner.ts delete mode 100644 src/workflows/burn.ts delete mode 100644 src/workflows/types.ts diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 8c1ed5a4..c383ebb8 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -56,8 +56,8 @@ jobs: - name: Build run: yarn build - - name: Update package.json version for alpha releases - if: ${{ contains(github.event.inputs.tag, 'alpha') }} + - name: Update package.json version for alpha, beta releases + if: ${{ contains(github.event.inputs.tag, 'alpha') || contains(github.event.inputs.tag, 'beta') }} run: | tmp=$(mktemp) jq '.version = "${{github.event.inputs.tag}}"' ./package.json > "$tmp" && mv "$tmp" ./package.json @@ -67,4 +67,4 @@ jobs: with: token: ${{ secrets.PLATFORM_SA_NPM_TOKEN }} access: public - tag: ${{ contains(github.event.inputs.tag, 'alpha') && 'alpha' || 'latest' }} + tag: ${{ (contains(github.event.inputs.tag, 'alpha') && 'alpha') || (contains(github.event.inputs.tag, 'beta') && 'beta') || 'latest' }} diff --git a/.gitignore b/.gitignore index 52cad5b5..813d4f1b 100644 --- a/.gitignore +++ b/.gitignore @@ -11,5 +11,6 @@ cache artifacts dist +docs/ .vscode/ diff --git a/CHANGELOG.md b/CHANGELOG.md index fc47bc4f..f87f11ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Changed + +- Expose fewer public methods to make it easier for us to maintain the SDK. +- Introduced a [single entry point](https://github.com/immutable/imx-core-sdk/blob/34629c169f2c0fc6e38e73ec75a814f36b680620/src/ImmutableX.ts#L64) for the SDK to improve discoverability +- Clear response and error types, no more Axios wrappers +- Simplified complex types required for creating trades, orders and transfers, no more SignableToken in the interface +- Make the deposit method on SDK consistent with the API and industry norms. +- SDK now handles L1 signature-protected APIs; no need to generate imx-signature separately for authentication headers +- Removed wallet-specific logic +- Removed the `ethereumjs-wallet` dependency. + ## [0.7.0] - 2022-08-03 ### Added diff --git a/README.md b/README.md index 4af52252..80dbaa5a 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,7 @@ --- -**The Core TypeScript SDK Interface is under active development and hasn't hit v1.0 yet.** - -Its public interface shouldn't be considered final, and we may need to release breaking changes as we push towards v1.0. - -# Immutable Core SDK +# Immutable Core SDK in Typescript [![npm version](https://badge.fury.io/js/@imtbl%2Fcore-sdk.svg)](https://www.npmjs.com/package/@imtbl/core-sdk) [![Maintainability](https://api.codeclimate.com/v1/badges/219466ee5269620167e5/maintainability)](https://codeclimate.com/repos/62848fd8d4420d01b6002210/maintainability) @@ -22,188 +18,183 @@ Currently, our SDK supports interactions with our application-specific rollup ba ## Documentation -See the [developer guides](https://docs.x.immutable.com) for information on building on Immutable X. +See our [developer documentation](https://docs.x.immutable.com) for information on building on Immutable X. -See the [API reference documentation](https://docs.x.immutable.com/reference) for more information on our API's. +See our [API reference](https://docs.x.immutable.com/reference) for more information on our APIs. ## Installation -## Add this NPM package to your project - ```sh npm install @imtbl/core-sdk --save # or yarn add @imtbl/core-sdk ``` -## Setup local developer environment +## Initialization -```sh -# install dependencies -yarn install -yarn build -# run tests -yarn test +Initialize the Core SDK client with the network on which you want your application to run (see [all networks available](./src/config/config.ts)): +| Param | Description | +| -- | -- | +| `Config.SANDBOX` | The default test network (currently, it is Goërli) | +| `Config.ROPSTEN` | Ropsten test network (to be deprecated soon) | +| `Config.PRODUCTION` | Ethereum network | + +```ts +import { ImmutableX, Config } from '@imtbl/core-sdk'; + +const config = Config.SANDBOX; // Or PRODUCTION or ROPSTEN +const client = new ImmutableX(config); ``` -Check out how the [Release Process](https://github.com/immutable/imx-core-sdk/#release-process) works -## Usage +## Get data (on assets, orders, past transactions, etc.) -### Configuration +These methods allow you to read data about events, transactions or current state on Immutable X (layer 2). They do not require any user authentication because no state is being changed. -A configuration object is required to be passed into Core SDK requests. This can be obtained by using the `getConfig` function available within the Core SDK. You are required to provide the correct contract addresses, Chain ID, and api base path of the network you wish to use. The Immutable X platform currently supports `ropsten` for testing and `mainnet` for production. +Examples of the types of data that are typically retrieved include: -| Network | Chain ID | API Base Path | Core Contract Address | Registration Contract Address | -| --------- | -------- | ----------------------------------- | -------------------------------------------- | -------------------------------------------- | -| `goerli` | 5 | https://api.sandbox.x.immutable.com | `0x7917eDb51ecD6CdB3F9854c3cc593F33de10c623` | `0x1C97Ada273C9A52253f463042f29117090Cd7D83` | -| `ropsten` | 3 | https://api.ropsten.x.immutable.com | `0x4527BE8f31E2ebFbEF4fCADDb5a17447B27d2aef` | `0x6C21EC8DE44AE44D0992ec3e2d9f1aBb6207D864` | -| `mainnet` | 1 | https://api.x.immutable.com | `0x5FDCCA53617f4d2b9134B29090C87D01058e27e9` | `0x72a06bf2a1CE5e39cBA06c0CAb824960B587d64c` | +- Assets or details of a particular asset +- Token balances for a particular user +- Orders or details about a particular order +- Historical trades and transfers +### Examples + +#### Get all collections and get assets from a particular collection: ```ts -import { AlchemyProvider } from '@ethersproject/providers'; -import { getConfig } from '@imtbl/core-sdk'; +const listCollectionsResponse = await client.listCollections({ + pageSize: 2, +}); -const ethNetwork = 'ropsten'; // or mainnet; +const collection = listCollectionsResponse.result[0]; -// Use the helper function to get the config -const config = getConfig({ - coreContractAddress: '0x7917eDb51ecD6CdB3F9854c3cc593F33de10c623', - registrationContractAddress: '0x1C97Ada273C9A52253f463042f29117090Cd7D83', - chainID: 5, - basePath: 'https://api.sandbox.x.immutable.com', - headers: { 'x-api-custom-header': '...' } // headers are optional unless specified otherwise +const collectionAssetsResponse = await client.listAssets({ + collection: collection.address, + pageSize: 10, }); - -// Setup a provider and a signer -const privateKey = YOUR_PRIVATE_KEY; -const provider = new AlchemyProvider(ethNetwork, YOUR_ALCHEMY_API_KEY); -const signer = new Wallet(privateKey).connect(provider); ``` -#### WalletConnection +## Operations requiring user signatures + +There are two types of operations requiring user signatures: + +1. Transactions that update blockchain state +2. Operations that Immutable X require authorization for + +In order to get user signatures, applications need to [generate "signers"](#how-do-applications-generate-and-use-signers). + +#### What are transactions that update blockchain state? -WalletConnection is a top level connector which contains all the required resources (eg. L1 and L2 signers) to enable usage of the Core SDK workflows. +A common transaction type is the transfer of asset ownership from one user to another (ie. asset sale). These operations require users to sign (approve) them to prove that they are valid. + +#### What are operations that require authorization? + +These operations add to or update data in Immutable's databases and typically require the authorization of an object's owner (ie. a user creating a project on Immutable X). + +### How do applications generate and use signers? + +Signers are abstractions of user accounts that can be used to sign transactions. A user's private key is required to generate them. + +There are two ways to get signers in your application: + +1. [Generate your own by obtaining and using the user's private keys](#1-generate-your-own-signers) +2. [Use our Wallet SDK to connect to a user's wallet application](#2-generate-signers-using-the-wallet-sdk) + +The first option, where an application obtains a user's private key directly, is risky because these keys allow anyone in possession of them full control of an account. + +The second option provides an application with an interface to the user's account by prompting the user to connect with their wallet application (ie. mobile or browser wallet). Once connected the app can begin asking the user to sign transactions and messages without having to reveal their private key. + +As Immutable X enables applications to execute signed transactions on both Ethereum (layer 1) and StarkEx (layer 2), signers are required for both these layers. + +### 1. Generate your own signers + +The Core SDK provides functionality for applications to generate Stark (L2) [private keys](/src/utils/stark/starkCurve.ts#L99) and [signers](/src/utils/stark/starkSigner.ts#L60). + +#### 🚨🚨🚨 Warning 🚨🚨🚨 +> If you generate your own Stark private key, you will have to persist it. The key is [randomly generated](/src/utils/stark/starkCurve.ts#L99) so **_cannot_** be deterministically re-generated. ```ts import { AlchemyProvider } from '@ethersproject/providers'; import { Wallet } from '@ethersproject/wallet'; -import { WalletConnection, generateStarkWallet, BaseSigner } from '@imtbl/core-sdk'; - -// Generate your own WalletConnection -const generateWalletConnection = async (provider: AlchemyProvider) : Promise => { - // L1 credentials - const l1Signer = Wallet.createRandom().connect(provider); - - // L2 credentials - const starkWallet = await generateStarkWallet(l1Signer); - const l2Signer = new BaseSigner(starkWallet.starkKeyPair); - - return { - l1Signer, - l2Signer, - }; -}; -``` +import { generateStarkPrivateKey, createStarkSigner } from '@imtbl/core-sdk'; -### Standard API Requests - -The Core SDK includes classes that interact with the Immutable X APIs. +// Create Ethereum signer +const ethNetwork = 'goerli'; // Or 'mainnet' +const provider = new AlchemyProvider(ethNetwork, YOUR_ALCHEMY_API_KEY); +const ethSigner = new Wallet(YOUR_PRIVATE_ETH_KEY).connect(provider); -```ts -// Standard API request example usage -import { getConfig, AssetsApi } from '@imtbl/core-sdk'; - -const getYourAsset = async (tokenAddress: string, tokenId: string) => { - const config = getConfig({ - coreContractAddress: '0x7917eDb51ecD6CdB3F9854c3cc593F33de10c623', - registrationContractAddress: '0x1C97Ada273C9A52253f463042f29117090Cd7D83', - chainID: 5, - basePath: 'https://api.sandbox.x.immutable.com', - }); - const assetsApi = new AssetsApi(config.apiConfiguration); - - const response = await assetsApi.getAsset({ - tokenAddress, - tokenId, - }); - - return response; -}; +// Create Stark signer +const starkPrivateKey = generateStarkPrivateKey(); // Or retrieve previously generated key +const starkSigner = createStarkSigner(starkPrivateKey); ``` -View the [OpenAPI spec](openapi.json) for a full list of API requests available in the Core SDK. +### 2. Generate signers using the Wallet SDK -### Authorised project owner requests +The [Wallet SDK Web](https://docs.x.immutable.com/sdk-docs/wallet-sdk-web/overview) provides connections to Metamask and WalletConnect browser wallets. -Some methods require authorisation by the project owner, which consists of a Unix epoch timestamp signed with your ETH key and included in the request header. +See [this guide](https://docs.x.immutable.com/sdk-docs/wallet-sdk-web/quickstart) for how to set this up. -On project and collection methods that require authorisation, this signed timestamp string can typically be passed as the `iMXSignature` and `iMXTimestamp` parameters. +### Examples -```ts -// Example method to generate authorisation headers -const getProjectOwnerAuthorisationHeaders = async (signer: Signer) => { - const timestamp = Math.floor(Date.now() / 1000).toString(); - const signature = await signRaw(timestamp, signer); - - return { - timestamp, - signature, - }; -}; - -// Using generated authorisation headers -const createProject = async ( - name: string, - company_name: string, - contact_email: string, -) => { - const api = new ProjectsApi(this.config.api); - const { timestamp, signature } = getProjectOwnerAuthorisationHeaders(signer); - - return await api.createProject({ - createProjectRequest: { - name, - company_name, - contact_email, - }, - iMXSignature: signature, - iMXTimestamp: timestamp, - }); -}; -``` +#### Create a project (requires an Ethereum layer 1 signer) -The following methods require project owner authorisation: +```ts +const createProjectResponse = await client.createProject(ethSigner, { + company_name: 'My Company', + contact_email: 'project@company.com', + name: 'Project name', +}); -**Projects** +const projectId = createProjectResponse.id.toString(); -- createProject -- getProject -- getProjects +const getProjectResponse = await client.getProject(ethSigner, projectId); +``` -**Collections** +#### Deposit tokens from L1 to L2 (requires an Ethereum layer 1 signer) -- createCollection -- updateCollection +```ts +const depositResponse = await client.deposit(ethSigner, { + type: 'ETH', + amount: '500000000000000000', // Amount in wei +}); +``` -**Metadata** +#### Create an order (requires an Ethereum layer 1 and StarkEx layer 2 signer) -- addMetadataSchemaToCollection -- updateMetadataSchemaByName +```ts +const signers = { ethSigner, starkSigner }; + +const orderResponse = await client.createOrder(signers, { + buy: { + type: 'ETH', + amount: '1230000000000000000', // Sale price in wei + }, + sell: { + type: 'ERC721', + tokenAddress: '0x0fb969a08c7c39ba99c1628b59c0b7e5611bd396', + tokenId: '5', + }, +}); +``` -### Contract Requests +## Contract requests Immutable X is built as a ZK-rollup in partnership with StarkWare. We chose the ZK-rollups because it is the only solution capable of scale without compromise. This means whenever you mint or trade an NFT on Immutable X, you pay zero gas, and the validity of all transactions are directly enforced by Ethereum’s security using zero-knowledge proofs -- the first “layer 2” for NFTs on Ethereum. The Core SDK provides interfaces for all smart contracts required to interact with the Immutable X platform. -[See all smart contract available in the Core SDK](#smart-contract-autogeneration) +[See all smart contracts available in the Core SDK](#smart-contract-autogeneration). ```ts -import { Core__factory } from '@imtbl/core-sdk'; +import { Contracts, Config } from '@imtbl/core-sdk'; + +const config = Config.SANDBOX; // Get instance of core contract -const contract = Core__factory.connect(config.coreContractAddress, signer); +const contract = Contracts.Core.connect( + config.ethConfiguration.coreContractAddress, + ethSigner, +); // Obtain necessary parameters... @@ -218,127 +209,71 @@ const populatedTransaction = await contract.populateTransaction.depositNft( const transactionResponse = await signer.sendTransaction(populatedTransaction); ``` -### Workflows +## Smart contract autogeneration -A workflow is a combination of API and contract calls required for more complicated functionality. - -```ts -// User registration workflow example -import { AlchemyProvider } from '@ethersproject/providers'; -import { Wallet } from '@ethersproject/wallet'; -import { - Workflows, - BaseSigner, - getConfig, - generateStarkWallet, -} from '@imtbl/core-sdk'; - -const ethNetwork = 'ropsten'; - -// Sets up the provider -const alchemyApiKey = 'UPDATE WITH THE ALCHEMY API KEY HERE'; -const alchemyProvider = new AlchemyProvider(ethNetwork, alchemyApiKey); - -// Sets up the L1Signer -const privateKey = 'UPDATE WITH THE PRIVATE KEY HERE'; -const l1Wallet = new Wallet(privateKey); -const l1Signer = l1Wallet.connect(alchemyProvider); - -// Sets up the L2Signer -const l2Wallet = await generateStarkWallet(l1Signer); -const l2Signer = new BaseSigner(l2Wallet.starkKeyPair); - -// Sets up the Core SDK workflows -const coreSdkConfig = getConfig({ - coreContractAddress: '0x7917eDb51ecD6CdB3F9854c3cc593F33de10c623', - registrationContractAddress: '0x1C97Ada273C9A52253f463042f29117090Cd7D83', - chainID: 5, - basePath: 'https://api.sandbox.x.immutable.com', -}); -const coreSdkWorkflows = new Workflows(coreSdkConfig); - -// Registers the user -const walletConnection = { l1Signer, l2Signer }; -await coreSdkWorkflows.registerOffchain(walletConnection); -``` +The Immutable solidity contracts can be found under `contracts` folder. Contract bindings in typescript is generated using [hardhat](https://hardhat.org/guides/compile-contracts.html). -The workflow can be found in the [workflows directory](src/workflows/). +### Core -### Available Workflows +The Core contract is Immutable's main interface with the Ethereum blockchain, based on [StarkEx](https://docs.starkware.co/starkex-v4). -The current workflow methods exposed from the `Workflow` class. +[View contract](contracts/Core.sol) -| Workflow | Description | -| -------------------------- | ---------------------------------------------------------------------------- | -| `registerOffchain` | Register L2 wallet. | -| `isRegisteredOnchain` | Check wallet registered on L1. | -| `mint` | Mint tokens on L2. | -| `transfer` | Transfer tokens to another wallet. | -| `batchNftTransfer` | Batch transfer tokens. | -| `burn` | Burn tokens. | -| `getBurn` | Verify burn/transfer details. | -| `deposit` | Helper method around the other deposit methods. Deposit based on token type. | -| `depositEth` | Deposit ETH to L2 wallet. | -| `depositERC20` | Deposit ERC20 token to L2 wallet. | -| `depositERC721` | Deposit ERC721 NFT to L2 wallet. | -| `prepareWithdrawal` | Prepare token for withdrawal. | -| `completeEthWithdrawal` | withdraw ETH to L1. | -| `completeERC20Withdrawal` | withdraw ERC20 to L1. | -| `completeERC721Withdrawal` | withdraw ERC721 to L1. | -| `completeWithdrawal` | Helper method around withdrawal methods. Withdraw based on token type. | -| `createOrder` | Create an order to sell an asset. | -| `cancelOrder` | Cancel an order. | -| `createTrade` | Create a trade to buy an asset. | +### Registration -## Autogenerated Code +The Registration contract is a proxy smart contract for the Core contract that combines transactions related to onchain registration, deposits and withdrawals. When a user who is not registered onchain attempts to perform a deposit or a withdrawal, the Registration combines requests to the Core contract in order to register the user first. Users who are not registered onchain are not able to perform a deposit or withdrawal. -Parts of the Core SDK are automagically generated. +For example, instead of making subsequent transaction requests to the Core contract, i.e. `registerUser` and `depositNft`, a single transaction request can be made to the proxy Registration contract - `registerAndWithdrawNft`. -### API Autogenerated Code +[View contract](contracts/Registration.sol) -We use OpenAPI (formally known as Swagger) to auto-generate the API clients that connect to the public APIs. -The OpenAPI spec is retrieved from https://api.x.immutable.com/openapi and also saved in the repo. +### IERC20 -### Smart contract autogeneration +Standard interface for interacting with ERC20 contracts, taken from [OpenZeppelin](https://docs.openzeppelin.com/contracts/4.x/api/token/erc20#IERC20). -The Immutable solidity contracts can be found under `contracts` folder. Contract bindings in typescript is generated using [hardhat](https://hardhat.org/guides/compile-contracts.html). +### IERC721 -#### Core +Standard interface for interacting with ERC721 contracts, taken from [OpenZeppelin](https://docs.openzeppelin.com/contracts/4.x/api/token/erc721#IERC721). -The Core contract is Immutable's main interface with the Ethereum blockchain, based on [StarkEx](https://docs.starkware.co/starkex-v4). +## Contributing -[View contract](contracts/Core.sol) +### Set up local developer environment -#### Registration +```sh +# Install dependencies +yarn install -The Registration contract is a proxy smart contract for the Core contract that combines transactions related to onchain registration, deposits and withdrawals. When a user who is not registered onchain attempts to perform a deposit or a withdrawal, the Registration combines requests to the Core contract in order to register the user first. - users who are not registered onchain are not able to perform a deposit or withdrawal. +yarn build -For example, instead of making subsequent transaction requests to the Core contract, i.e. `registerUser` and `depositNft`, a single transaction request can be made to the proxy Registration contract - `registerAndWithdrawNft`. +# Run tests +yarn test +``` -[View contract](contracts/Registration.sol) +Check out how the [Release process](https://github.com/immutable/imx-core-sdk/#release-process) works -#### IERC20 +### API autogenerated code -Standard interface for interacting with ERC20 contracts, taken from [OpenZeppelin](https://docs.openzeppelin.com/contracts/4.x/api/token/erc20#IERC20). +We use OpenAPI (formally known as Swagger) to auto-generate the API clients that connect to the [public APIs](https://docs.x.immutable.com/reference). The OpenAPI spec is retrieved from https://api.x.immutable.com/openapi and also saved in the repo. -#### IERC721 +To re-generate the API client, run: -Standard interface for interacting with ERC721 contracts, taken from [OpenZeppelin](https://docs.openzeppelin.com/contracts/4.x/api/token/erc721#IERC721). +```make +make generate-openapi-prod +``` -## Changelog Management +### Changelog management -This repository is using release-it to manage the CHANGELOG.md +This repository is using [release-it](https://github.com/release-it/release-it) to manage the CHANGELOG.md. The following headings should be used as appropriate -- Added -- Changed -- Deprecated -- Removed -- Fixed +- **Added** +- **Changed** +- **Deprecated** +- **Removed** +- **Fixed** -What follows is an example with all the change headings, for real world use only use headings when appropriate. -This goes at the top of the CHANGELOG.md above the most recent release. +This is an example with all the change headings. For actual usage, use only the one heading that is relevant. This goes at the top of the CHANGELOG.md above the most recent release. ```markdown ... @@ -347,28 +282,28 @@ This goes at the top of the CHANGELOG.md above the most recent release. ### Added -for new features. +For new features. ### Changed -for changes in existing functionality. +For changes in existing functionality. ### Deprecated -for soon-to-be removed features. +For soon-to-be removed features. ### Removed -for now removed features. +For now removed features. ### Fixed -for any bug fixes. +For any bug fixes. ... ``` -The package.json will hold the value of the previous release +The `package.json` will contain the value of the previous release: ```json @@ -376,32 +311,32 @@ The package.json will hold the value of the previous release ``` -## Release Process +### Release process -### Main Release +#### Main release: 1. Merge your changes 2. Check and update your local main branch 3. Run `yarn release` - Choose release type (patch|minor|major) - Choose `yes` to use changelog and `package.json` - - Add a tag if required - this step can be skipped by replying `no` + - Add a tag if required \* this step can be skipped by replying `no` - Push to remote by using `yes` -### Alpha Release +#### Alpha/Beta release: 1. Go to https://github.com/immutable/imx-core-sdk/actions/workflows/publish.yaml and find the "Run workflow" button on the left. -2. Click the button and select the branch from dropdown. -3. Add a tag that is greater than last published main tag and append with `-alpha.x`. The `x` is the version for this particular alpha release. For example, if the last published is `1.2.0`, use `1.2.1-alpha.1` or `1.3.0-alpha.1` depending on type of your changes. -4. Click "run workflow" button. This will trigger a "NPM Publish" action for alpha release 🎉 +2. Click the button and select the branch from dropdown. +3. Add a tag that is greater than last published main tag and append with `-alpha.x` or `-beta.x`. The `x` is the version for this particular release. For example, if the last published is `1.2.0`, use `1.2.1-alpha.1` or `1.3.0-alpha.1` depending on type of your changes. +4. Click "run workflow" button. This will trigger a "NPM Publish" action for alpha or beta release 🎉 -## Getting Help +## Getting help Immutable X is open to all to build on, with no approvals required. If you want to talk to us to learn more, or apply for developer grants, click below: [Contact us](https://www.immutable.com/contact) -### Project Support +### Project support To get help from other developers, discuss ideas, and stay up-to-date on what's happening, become a part of our community on Discord. diff --git a/images/imx-logo.png b/images/imx-logo.png deleted file mode 100644 index febd97fd137d5f0e395b987bcc91858aa2ae24ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31037 zcmeFZWn3K3wl0jj6Ck(+NMLYx4-hoy;1+_ryF0-dTmm6TaEIVdu#n*H?(V!z@;~>S zyYJaw-%opfJxot`SJ(7fRZE`r6yZt=Qs^i|C{R#P=rYn0%1}^nlfeEX5(4n|vM1~c z3JTiLTwGkqQd~;h*2>mF#m>;!M8e$B&dShTi5&{+b)2z*fwBzfb-$sZfkFQ;!y6O_ zSLLva@4f9vxy*Y3Lwq!xwKBDO?Ndfy zk0&C_CDK_Y@}SBR$5%g4JRpXtB%nsTd-?LEil5cSX*>+pci4XXH!yrC{aLU^1>)1h zBKxn9?vTLp(y{EZ-mv}Z(j(GvX&u+F{gX0cIEqq6;s@~1HpxS)0U6!zf}xCI%4lE{ zzo;krnQh$%{Ky?TkHUeMGI*U&@3u*^xAXcX;mb637QarC+*?Nq9uQ&A2t{|=5j)HD z;S=z(2}+srK?wOIlBvUwZA65Rh88f7hDPUt{|cWbAUMT8Kxia(b)Sqf5t<&`MJZ5>P~xR_X&Sg3?h zC@3fd96o&HQ}bef3=+dF}nY8Isb9E|0d%2Pq^{F2YUYrw*LQ%bVan_nw<9_()GXIF$^qs1a9;Y z=qIMKo6hdtY-J}WC<Z>2nH#AD2YSZM5iR@)F4I03W+^-miHxLD&K{=`^`r30TGP0 ziAjFu*{A>KM^ZzhSY}pEfldGXJ~|kz0g4=SVlFvaxfFw1aGh0ZxamUEie@2LSrv7a z2#y0>PkE^SbgR+05<)x_Uz(ZLVI=b}DGdcRT-DjxS)b`Ex{qRil9`_y$m8SVDPflj zu1h;rBQ#YT5bbxOqW%ltN=jl&N>Z{ASomDJ5z zoR07xNlQuw+n+s5DIxs7LP2;Iia2v+^dF)0!cjP^z{fE#FvwO_SIY|o))E~u>NNa> zI6Xcb`6g!xdj5DzZ2gLtw^3P5EnnSIjY#$ z&n|dbmbtRT@qGJz)zc&5G|s4*pzrkxqWfXv)_Md(S*&f_!z5Yb@x~x`9Ofy{VZ++` zyyGa|LLY7;9URw-Er=yk(~6#niPCZ`CL~qNAYH({YABtX`8|e0bCyej?Z0NkKS$si zUesjr`}HIM+7R)?_6yq>6s$aV=nlhXbKX^5xU(`{fGzD8a9ec`Q=#eU5gb2h=VCJu z@f{c(Oukz36<%?Jf+2?3Y_6}Tuv~7Y+s@*Qb#{u)7)3H#yPK=4f6}b$=8r%7!uI9I5)_aJ(#2qePa^tvT+>z0j(=PWRrz z_xdPuVLg`xXVaDdSEcz4PSWdlX9fD^f!B$STUClz(2b1xc z{CMHM_KDkWuA7g!%cgrNTKLh8_hMYdWUsWojz0`G4y2_nz99e{VY6SANM$t+Ng^$^ zts%*JR>J?>M6|JUDkjyxXkt7cuc3wxGhmXiZrp&-7Lq!Tzo%7FQ|}A_y|HuW)IIKW zJ{RynA7l-4=6Spsy&7b!mrEKIewwd3X0z``wO7|Nr@84Of21(Ya&IbW{5UF+2@=Kq zakCQInD!{)XtR9dsYUj$7AU6_SqW@uxeAJT*1>G7h^iMo6B8tkS_%cOmU9x^B~eNd z<;)(*p*jf9A>8zmpu5tbadSe7B*=dnM{ap}*&mTCmZ3c3RU`p(+yoWRdQG*CFUn-(8Pv^!N(o(`oPat7F=Eq2QRpz^$W%-3*`7?C6!$)QT_=4a_0d zC%Msx0!*uG!2)(Ag@v(Xf*yruftl;uc`=Y|pWA_wsd-Tt5^RbOrly1UH)k8!Pxl49 zJkuW%-HlF{1IyAJAau{2f-6uVWXlG?UmVG;-Z2H&AHfXMYWotakscVzBvN< zLB~Jl$R9%yFomHV0tzH6O@#oz$eqfESVwxRI%LdeTQe=(^-hXIVO-0$*tZVQ%)Ivf)54vnO|_HW=8V3?(tT zYZ%TF)ZQFQH8#n!2@4#+mEZ`o^}QL?U;nKroP<6RVV&tbIo4cVyN`lk%S)OyS5&|pQ)$%+P)p9SfZOH|)2{_;y@Zn*Ilx6yDK6NDHXS42GnSc@h zJs#JI?hL^l4&C}|B}qd?>KQ#`CVzZ;Hym)YBK7VYB>!oss0d7(lqE1m3yX6ge(}sie+1q<5CfTQ(AU^8x!eDNg-E_6)c-7{suj7fyGlEYY zpGs>YK0G-%7HKx|%*XU4cTyGIU(qSE`|7ONaXXiJ0UHp`TSba)W`Qf5IOT`TQ}XO)uOdwz{daUxNJb>T?yBW#1mpD|D_G-w z`&pH%d6;t4G-Tw0J0djorFR+wzj%B;geHo~R#OE@t`$g+OtvIP>hs>oz9Bpb#S+GK z{y_FuM+ahlvZ8bF{HV{)!+!|Nk0p2`ng@fFPqpm(A)oeRxJew=1O?c{)O2PZ#&^wl zLgwDqTbE1I`YtoLWz=FF2p+}-LIxPhn~lu9d1)*nXfgmZ1-V-ER3!7gKf3h#eo$9` zA4ew3y{APLQFZZjT^CeSSSamtmcE2kvV>)Tw{=FE6;JK0}0Azod(sivpqmhO5OObnj*x+UO zzD)eb1BirDDsi5%7cnu!-3N~U&}!SSMnR#Gm8>mk78qEt$1GCqDE7GY-M=Ff{t(7& zlK;zlv^75eF63iTVTj-#oKEl-4z=7Upa1Y*Q-B zTh_{*W1Ky^XMYzO5yMj5lWMy^;VvOGlFIQhGHR)4AVTUH6zFqM%7y~`sv~r|wuow1 zyyAS|HiGDG<5rg17D8LSNp^mIKJ72~O8G75CR4&6$Cf0NUM=UpWKXA!V+Ih2OKh1z zl<0TqYBP&wW_Ul2tKJjr&xD*(cpZE{YIQj7KpZU5td^7L@=jc1<`L!D&IzYQ9NiQQCshlV=f zy1+hGyR0V}WMVhgye8xi`F95=A#BcgIUiPnG*-nVq+P zJs?Lo5GK+Z8ohcJ_I3)K!HV-H=K_xq9&7>|zJC1?f0r((`bwLM)j0wd8+}!6gvnF3=c$Ei zLU@>+fi+AkEIUbqf|q~)>l3He*N3l55A=1;b9T7l))nEZ_h$nX4n1eK^xw?{z?q*h z7Va*SbI)ik1TXk?e6?BLDwXe&Zx!Xw&M05>n9|k;eAIqJ=$)qOd#847Z?n!#sYUQlFb8#;d$)pjyh4cQo}T zwokX7Y068{*LSCb%o}xcHVMEOpMyB9`Zy^EIfAGUCcY&{z5M*-KecCB*4QiH3WK}q z>1TH`#6H@O%G^v*kl_%K;dMFyq`>LhYwM4edWa<0&3dn4FFLB^!>sguADl~@#rGjC zo^#7?E1yHj-tlmnX_lcET(afK5i7jEd-IDkaq_G@lipDy%U9gl?49|cbY5A5-do+# zXWwmGh=HE;8{d1`*$QK;cXvW5eRfY%+}Q;owOCu+Bwqz#H}q$QPz2;R*qd$P(QGEm zwaGbVbAom&jy$4=TQMFSqxR~k!q^$JR&qs3+?UzNB3Q?1XIMEvaA>o5BaNve$T9G= zNF(jHU-P2{;nzX&YBilMGE;YNjM&{XrlcyFysj8SB6R;kguUvF%v3ZUTjC!< zeg!{Tw5F5Z?ch=4dNxhuklqHEXm<>l$~e0hVoKDO95&U8$`mC=5!0$Q)l8fzf18OZ>vs;uQwtMRDyZhg+StyZc5 z^MsNQIWQpr2z-k#rry^Ly})*zv*y0p(|@AZ&~wk1$RwgD-GUB<1?*1)W1qm)yd(Tw zGiA_#NtHs1D@B7)Xv>@q)WG_ypJ!6;g==F{O^_=5W)kj%ZU(;1!)>-3gcP)N-mj{0N3hFMW*Q9U{CAah} z74@>Tv0FhUlaB1wEr@=h+OOU8D$F9>L+^vS6F$LYx0Wlo4lj#U*@>m-fCKG>qIko+ zg`yZe>4)NCLE+^5h=JE1gS-sXd!3Ilj4qx-w;W2CIh*gLg1ugF9b55CZabv7bwI>Q ziQ8jP8sayg>x2`8jMH84tYwGG8PmC63f+M$0e;@|BRp$pJ5%M^8|>bdcx#Dz)Q&fG3xwiX(>ze9`&R`;O8cpv<0-7m?ivHzq zE5f((Ru9HrgJ_x(tgjUG*X!K1%Gx%K`8v)MYRH#v7$4Qtn&jSTDrO02+BBc^j(=cm zy}T8PN@FvL2p4MDf~KPEE-q3jNUPX9dEkxqvHezB7Y~@4pFzCiGm>w*{q3M5Wq4+f z?^z$&u$wUflf~Z%_z!D$Hi-ko-Qx%gW!amL6U4?Ck>rcP~YlNT^ z)7rLNsEesyZVmH_Ik^MAT+M0Md>|KzMg8MwmNkrG;ur@1evWK?xwO~iaic}4-)#=r zbDB<<+kDLnLAFPzOr;Ht^k50@mb-2z`h zUM$tQPxq0j*S(@DxE;BG4y&#baee9WlDpa^_+^O8%}Y(8n03+^*w06R<*grOn?3N3 zvWMGZ6c0hG^trqqAo(SHHY#$o*s=kj8W4Hz1&Nzmo)hES8!44le&kgKA=&cQ+hXK6 zMjKQLXb1`zYjD||-L!832VyqO&S*NfsLXL`@rKy9PV;MHgF4?KC|uXOz-h@{u}JAX zI>ZvI{xpUZ#A$I;cfD9dX?qlAW~@A-t2(IX3j3z@lq z4P9rJZ3E(9o$eJRpt>)WGd-Yhp~6bdS5~&1$e4;`cFVKkzjHAUm}}X9zbuKI1f2F) zKLQo!A&h}|nq`a8JL?D5y!Xdl>*FelwKO?lk>QxMRb$54Lf%#~bfDP^4MN)3u)v2O z$DO=~rQZ*mXmurr7nP)*D9dXP*ge>_w8z3`OG|uIg}8;5NuuuExK<=0P5cGu5@4 z-|bH|(y5tb*jIa5GMF~^)=r#!9{_N;Y{W@VbmL2y;YOfg5&9eK>BY=M(%JCDvgrmb zGO&Byw_&|T)RnQ}C-ty;E6~WOUX}!oF`dgg?(H62Rt5>U%-c)dEFAeH7tzw4p4h{7 z;6SReCbTS@C4?3AY;vg>dEX1sS|vfG!y`=bvb`u~ZX}iA2buRje}(8bem`J<-_py4 z(YUJMz+ICfB>>-#3diktl6`#haYD(I3x0Qi{i+@|po#D)v$#Bhskld7OA@6|F%CTH zJgkhKOH?xYB}e*4!NMz9GGB@lWA(fxc-|HtYRNn&!fzh!y$J9jAF z(U)AP`Ca{mdH6`5Q_QkKu;HH+GaU+!lK@8O;ar7xE5mW!5BBzlWqFGY@-bQmT__g3 z!Gs@8MvTyHVfzon1nO*xn^WbMeBA0-{85UWi^G;YCd|9<8P1SH%0Q%(jXyqmpdirx^ny(L@5U>(tKJtx5bG);|V@72taW&FSzi+R1|^jrRP zQ2+54WX?U+$BD9p*O)R1)^ssBc(=Rs|;0*(E6 zit65{Au^ODth5RluVVyG!!$oN#NuRHQs}o`vMF&U2GV3F>vf8ZG zWDa0-rh{E;<4LX6i?G@iRK($%jO-Wp2I6!n~8bJE^%BLab`x^Ddb95`KWu#K zg2L-I5XD#Ns5Be;a6!>ziPb<7UC_&Usy>=2Nguy)uCAEZlvqRLuCA6=sQ!2zsO-~~ zPZ_)zii8-+1+FtGZ>v;g#27&V1w>eE{QlY>e`l-MeU3P`YlJWmU5)z`+U^lc^Q zGuBa&i`6awmB8QpRX+VAu5cJClU}~UJQk*GP=zT@bVZp1CA|Ai1{L=GtRyD$7JzH8 z$WkNmPcxK!_N#FdjS|m{-SmUSsAx&HD`!BkJ6$fAXnKL%kxYAg_LVFyW-FLuTf+*; z7eI|u@(IiGHn=$T&(S-tPu8sW+ar(y5@Q0*QssxM-<&8RfTkw3EEydOp=H_0P32|C zKdr&c7QW8|ta?m|hHB(jnXTqpa1N9F@SL#XfbsQEZd)!h=;=)8JgTgW;o_cReaByq9_}s|yg#Ayx zNhB}cB>mujIp8h+? zs`hJjPP9HmfKL}+G4d!hTmec6;aQ0k{!B6=Z5xFDfO-u6_xECFPT~0)$KA-EQE^4& zidlBfsAog-1E&p$AQlx)ov*O%4Kjn;uJU}(j4_sTGf)YDT0_Qu)gTj_p5#lnujdYF zog;KZ(y)jqKz!Z04}dCl$U@z;%+!2@R_|I#`7weJkVq zC;|+#X~Ev2iN}vN^th(ptKoFCkn`U0PM90&YgQeTM^f)-^p#3D!bu0DVQbjacAns1 zS_qAJiDh)K+NSnI6K_aMSLYV7wG{c}#i{AFT)`!ES=Ym|-IucShAm@!&uC7X962~Q zmEi5YHU8U{_%zI3VwfNvkgSx*OesOE>qGg^L#2Y({K8ViV`VE{qjiG!TIE@#3651q zu%_g67oYrl5ATGfay?6H-wx~c7hg{iD?7}%8!A~ETWJ=ed`#L+fzsot3{B&QZx=Gh zd%B89)bsHVw`V=zpUaldBsXaMi0SMA)dzRYLQw|qRHN1HJZJUIu5@WhJ%s6v?&alP z+LUzB8)kM>xK`C#X~u~r+uz#D{^O9yVx&;PX~_LUxw4Bj_^SoE*!u84D76W4P#am3 z)!8)5pBXs|M-g$qM*bu%XT*x#*^P-y8>Wdg-Ay_vfJo}3M1nwq8^kjfj{kUgWx4Oa znLukbkAAY5YMK>ZfSJHXu!zG=%q!Y*e99;Gq4O09afUdSX!}_i&U_^8EG#9C=gi7P z{PII!UYa$S+&G-E`^O;D_mTn4@6K4=@?aj1!pycM>lW%>b93_|%|TtS6CURwJDCL3 zE}qVpK@^S~NgA^a0o>B-GitEl;WW;{w5eDc!e*^bR+tR)pi!N8>FbQX4~O%OA0<&% zN?Mzb_l2Ks6xr+rO}A0KmU5b5F$I1a!He>mKY*vCh}VXHcf?-yPN%g}#lyvDVy`HbAgX@xFn~|}_ zfqKrQExGK>##X2sZ)07_3v~LI?!oIjS=R60Gk$k7(Yzm}%ipg$6HjODk7ND^#ZIRE z>HKuN|7)SQ_ql!{Lg7b~Sp=OxDyMFkgs@`0{ga*J9oD>n%{VLc;mVQE{R8G_81+|J zdK8m#=`IBx;mv|R!l_bD%De7d7u)8nl)*U&vOJiNL*@KyV{?A!-2_ZJuTzGMZ}u^T z?_;s>w0|*W7px#*BX4wQVPh~X2fkdu zJ>I2vBOipAypYfby$Qb1*1((al508rF&Hk0y|+i*9cv8BNc3y?ymzvPE>ECePl_#dLiho({avj1!XA&9m zEMS@ek??61I}7wxfK&w|UFLF=Unn+fz8fKa0UG1*{`qS?-1B%LJk@BQX9|sPKJ9H|{*@BsEsAn4Iuiy2ysm4SlTdKob1+57x6+ z-c|=!wBhE?$a@P{!g*>V)1noRZ{6`r9S+IDb zD`BCjn{yoVit@I@leW8dyVatgl6v2IC|ampq!9#uhRKNDfEfkuT+7F6&Z z^y^_kPW87JmeR+Lu>xslcRN+Tja*i|33{O?iFdu(*6Oyk2$A`#|I{`#Xn$h(in*F( zSp7Lr!w5}K(5z~;80|gY8%1cGi%c7iWbGPV!7$cQBsLv!>*9jLWGcpBk!^GA!Vwjm;Tgxi=jM5xoBfh z_`;%~Z*wYz)gg9%^3#+=*FqZoeP_{-B;`-)jd0|0r>IU{wn#oe##8r+H)_D_*gnGZ zm?g3WUgO34VP2lV+i0?K*3p7iW_9lyi6hS}XHslTX#A?yd6I`6*Wy{J;QZgA=R+PV- zB|g}58l5Y7za4uGMW5}F&xh2YKlK6sRRlL8yx>$^uKmrrJ<@1 zSEv9+tp#Q(K2Z^Zffa9+yacfO|oSc?&6s$cT?uIVEp z0_1Dz)JSoSVZ$;Mg)8nU61{RzyHiI>ybtHU}TeroL#`-f@6u4M^G}P&aai%m{saMtHaSfqFH$FIfg& z_f}N6LtdxU>cM0pF&G?d_vI>2`6pa20quE=?UNU!`eS zERLCGK9C&PZcmI~^5%t{o|>X>g!3R_S$G0PjJ1Wn81fSmS(a?CQyJYV0r7G%;Z=8m z#>H>yhzyAR0JamoeL!X)nMxGzj0Y{O|CmBl&aUf8UVlFQ)%vYeH=@Rk^P0&{wJ*2* zumqDXL^B@)rHXq&ETXq?VkXUUF3U{Q-oDi8G`Q+KTT$ln$2Y(R?4CO8v`&e_NWnpD z1$=R5nhiaeUE9Q8J)vD7eKYAhpZzh&9J_0~CA}jl-sSK<%Ao5rImebQ=$Zh2?=h9>7jJRJRx#U_9(%h3-Z|B4GbGgoVUdaqoUmJ9WZC zsYk&avWX4FUhmhA#ImrXnJ;~@o^qitx)B~;#*A^f zrDOY&*A|ihG#r|5w!fX%4?5p-_-55(Kp&H_82FhSiUH+g^1x|KoX#SC(T<1hmtDNS z$h^cLR-9YYX&2@W zizgi_d7fEG3Id9dmYb>%8w4^*OoQE7rXRy6JqZ>Zt>c*p88KG1=HpA`)|kB?B(+=3 z2YJRino6qgd_v!Kn0M@ms5k!}){+md${=+~>O7-;Czm{yCx<&RUMYGJbN1!KJd3sq zO2?;Mtpv|l>_4m$S?t0!#bBlhA+C@=Of(LEfaoG_)3|}Z;OE7O_okwRnS(%Th#$-A zbayI6z$nlTgeY*m9Jm2goQr8Due;g4Y0F+M~<9tQ=jEq04+l{Whv%Rb02Y6n$E@Oe%(qRx7t<%&%s{ z!u#|YN>6`}FTRI6ZSk$tiTx=P*O+*%w-4hM>8`W!H&oP8w(sLiFO9|KNi*bHq0=;< zvo+L9m?NsONe}Dm`$K@;w&B_q*iO()=jnNWhv)2lyR%Hw$ho@%(mDg{l7ilLKwF!Q zeB<1kC~2-;#A^L8qx^=HUzJ|yPNZsWRZG3j2b1|;^Yn6;A(%jy^in#ICe_7A-aPyu zSp8(oGd_P%44{u)jV(=_ZHCZ~7tXDuP=02!QG zJ4qpgVR9q$+^0tx)?Xzx>4d~g57j-x& z;Y}59jwS%%??lU}PkhyYaS8P>iu_S>6giV1(|5__Pme_68W4fAFp>-kwx-$b`aZ zh^vw=713{By^aJkh*sAQMXUwh(_mSvH2tC*>rLLA`CBN4cYpAxSaX1M$|j$9^Ct!; z#@PnAs`8JygF=B}__P6q5vU)_TQ1Xd90q8(ih3R>y5TDkrVMciB?vRvIWqlF(G2(i z23>WXLn~IPSKjs4EwHZ~4_ykcP4mBddG|smgF5ZZUIctPE>w5$6-`z{(Nvmzji|&`nR=NG zg6wxQU&b!Gb_Ru4cB;4I(_axQV2uy>hgUZp$A-x zve4u8ngXAB&DWYaVhIFrkv~JpIK|8S2*lJv5;zp_xmD{;xyki$wR~a##j-K9Nsh1K zFcNbmRw0%WK@4v6OV~!*y3S4v$}nwf>Jp=w9Ry-40~qbyk0*r;kRY)jPk48~9Iv6gk)pK%msY!79Dxmwv~5QoI{!jQ zk%#1&O{AkOZuIBTUkrGVa#BVSovvio%txTRO}OfN`8hF)Ppx<&SDvFxv&~%3&PB;-N4^QoY41y62*-=W@r_-2v3X0hRNM%Oxwxo{b^rLli$yoTx(NVF+_LOp@C}%6Q#jUw{XD^9 z;TtYIecmyF)V~ZHUpIH$KB^f0egbG2P;18khmHgFB{(Dhl3_RWHV54qnJNr(3@ZTf z()f%kX!5Lu6WKt3(m;^|&TETe+2uY?SNym;%VJyjoFE$OPWW2nD*qQ&Yh=7Rg;iY?e#nIa#!m_|i@_bn%|VK;>-gK)!G7HMk=sDsVCSI_FAG)9xj zK9f_v?!fj#RgAmIO(LfKIp9uV7wpk9M1_XWqwjNLLgn4dFc*YICznF;Tnfz`L5rQA zBOXQxAO`(5*a@+Z;<`==>s@o-L^dcf)Hwj)y()lUstx_}>ZSIheNZh?#+P79&xbKB6w>#*TKWp_KS@iQfg7$KrtsGA)bIT*w;Md>OXMHx+{ za7QFH%+*2{h_bk~X#%|nm<4JOrI}1RCz*fP>;~|3KPx{{Gq{;n+&l-cvB)qf4Mx90 z<+m3)DJ*pTx4yZz*UNPFN#QSc=X2Cz-?(7Qr0lb`Olgq6Wyvrb#%c`xBQ0FD?h zVbt9>2a#r*Mz=qcT8#>QM-8lkHLm44-}^_lJ`!I3syv#V()Zm zYJsGd?Mpuq>111T&Dn}(Ne_{kq-T&FVd|)q%YC%xxd|MNYkq{y*J?pER;&f#O;k+H zuC_f%{wQnVk?6}Ye1?Oc5n&|gM>YwAjfdkCBL zDsmLhQkNQibsm`do4OnWjow-jLg!ot+1wyvCsTxr2_)-woSy){NPFHN_E54<+}m8+ zMHuNV;~@1H8{5O3I_L`o%l(+i0!8vcge#Us01EP@8UcVogQ-Ps(Fzo_N`10Rl}A?VLtgtce@W`#>SeUn>|S90)a@|*;!YC>{9>R7&RnhG7%IXF{O_*f%u}C zWBr*>r||RWJy>~{6Esn!p{E9EJ&#J%cWLeEaCnb;!m$!?^fzr{;Pap5hbrIZnD+UT z#^%C#ora=+d*(B1F|f*@;r6d*S&`=7q=4_LRKZ0Zsh#ND^9Fk4dCn5w4H|=Fm?gx+ z7$h#I06JjKc?1eqv~Q&?LC~ScDzBFY+xDCCvG8sxU0DY!dbscBq>z0E+8DU zeMl)ZSns~O4JOcw9m|`D%tjbr=t+?tkID`x3f;Asdz@!Z_qHl&ZH>{ZX1CdZ8zCA| z;977}IVh-@@l8Z8hFU=zbjHT?T>rczkW+4G-(=7M)23$Gyvhr6Y5RRM&GH#1V%#+z zN52T6;4WS{DNeHq~i@c*<`>*4&k zc#ugtUAq(kA{-)v;Zx67ylA1IwSb$mEpA3p{@x$t97CW{i+A|aTo6YwRrbN!ltf)l zg^F?_7$H+IOoaCo%BZqp!ED>hsA-iyKT+ zvppZim_Wu00D0Crn{kxjEOY!P_FTGFA4IPU8%n?*gNUOa4yu;4s*(J(=N>bl2jC8^ zmsE#*JN~?QIx8J(@$Nf|xs>-|+mp`@z?DNI6PSjCHT4Gw=m5mi_aIWqr~0?V6nuB4 zv|3l&4G}$6xiM+pdK!;oazj68J@NuG@-R=&&ekisZfPvmby#{k-D|_=0ocQnO2L~> zw6HVFdf;V0?1lk(f2;T1tgDD|b9~XB@OOYAERXa}`0Xk3WlW$6bE~!z0g@$Bt12GM zMGC9&I#5Vfq}_dC%K9*(V+F%?$@z?e$U|Abn;1j9w&~@9C1p)H&ZpAUYcu|0@Y4?a z0xn`B1BsKq*rbR;%jE%1^Y*;UWmM2_^RPAhMYizRp&>hS=?q*YaTgce^6Lt{oR^Sn?a3~g@kRx^v zC|^`M(tg|gm?u>VOCnnE5{x^^esUAMK_aGFQcL{C)@*B#xy{P+y%0cQ*_5F4>J>05 zoKxUGcm*!I?Z#Cczx6o>XX)H4HqRxe&7WNg`L%XJ0fyg(nd->P8ms0 zJ59@DD(sinc1B7Z>ZCZ^XKDEz?uzP$afhRq;fX+c!+Ew9EJ|1|_t^eBzpo#;%I$k* z{)h1*WfeVq(2VL&H93z~e-@kD94R4fzPkd{xbe^nufF;p|W{qD!GJ&S@TUqz`0v(RCsM-;RPC zDD`+ev_>(fz>vm1GS6x1^{Mz}?+9aY<|yH?25`V*jITiIYaHhbE)NoLopbLpnbX4^ z=egS2UD=A`)GwcY4rYP@2bW!HN$PTzIMCSp*C1|1h=2f43sqtMOf*y_-zRd}L@a$m z!~IU(5XdezOGK^=zCEsZ)>?g+DBc>XYN!Kg^S62~Ju2Is+G$=+aK~4#*(m3z+tis7 zOVr{=%YS?MPo&1j=nr`a{$-v%9PxLtl+yj4htqF94OOJ{e%rs~$F=Da-)y z_kqx=#1+cv0Q2nj&Tj=YU+p$GE!&taXgUn6m3z-0N3Ia+UGx!oZ}Ej z)l$k(rr^bkfq1$nt--tk#+~sk_cn5>O6N(;+%zV<+G}@s<(r-Y<&y!=NeMSGXWPOB zOko8f3`xy_(TM@rYh5{gh|qz7f3pgM;8*SXet1=LGiHB$CkfmIW1`Ev4W-ozswG64yAr^uF%XI)r_j-u#8pzR`GJGFzXypXX ze~PoYpROzXwy1&j#*Cx{Sq~2mCKP1*%yx@%bl$aa62U>kPf8y(pN%-o+%6J3H7-P^-Fhthq8-uP{=bo-Fqw@MqY`z)uXg8e@uh6We=+H%-@k;TJkm zl2s11Y`-7ImrHUgLP4Gf?r*X==v6UD!$-v1-wSV5lHiT!MoU8yWx0pT=WdC$Il$i< zspBGiTRzK5SIc9BI%_+-7rj8c4t$Y;FAzd|T9@cW{U@pe$06Cp)Z!J@>A;42{d zK=X$sP61Ho0f$-hf*C!jl$tw7j=rsTW5y;XDFPkwaD&K|aBSW3TCFpmm~J2K_wkz~WfTS&I8H(z@$syY{_> z1kay35Xrxk6cAZ@G1s^pAEhj|_~uE{Fq*0iN@m|~Fdh!X5Imc58h1@RI;yel4ueJ#Ps^VqNc9$nouf0|Cdr#?tZ@dcUU_v^VG*R$~e#4L&r0=-hBj6ChBLNh3c-i8*!;RBJxe( z$hg~?N%-cLJGIc?Qf+&LxL@aN#P2DqH_w;@$2%xoPpR4s_6-PK%JsDA-bp;v;!SdOcWmJXd?17j6yYT^7s$OTTzkdO zuZ_=0UpdNisp9xZR;$JRITY;L4vkoh8z`(vs7D_2d)(M!@go1M&fuvg5QDEjcSY~u z5v7O#1dhGDk`0dFAxqQZj#>JZ=Sy&1nSWDje(NUn0S`}htih7Tb#6%-K8Ojl6;ue( zf0d-~!<28Vkev1_J}56hf^?0%b+=Jpb|-)9-N{D%JF5%MFCXn2H=zB??p*la4NqHs zaauRP-7GmvW=sOWy;t8FLe~%L>c;txdR}krbLIY7lN1M$jxmJOx6RQ2R^)}S!t$k} zg6D)6{T5EBUiAKUIS_L_ihU$D7?q${B(7Ag+`Q(t5?qI3Z?bFhqI1SN{C-VeCQazR zsHqEM?*D7=EWD!J+P@D-BLX5Q4GJSENP~1E-QA8N-Q6J_Dgp-(lm_XRZloMR8fobq znxWo3dVHRXw_jP^0AA0Q?wju1zrIwxaySVJ2aIUA5+P@NH+$=m0z{^l`4JNSR7zHSDKBLdtTkwye)q*$Z|r7ORz9 zAvd+-#`?UN1<MY^0b|u zbNM!D9fipdqT>uo=QkfDj3!C4=oQ{m|FoH&KGv5^txRNl-A;5@VN~THd-2_iq`L?D zR5yWc8M#nk&77y5!C@DX5n>T%+S*!?h2rV#!N99_#`9am0RAs&mR z*Q942$9za7o%T{*W4az+u(QKy$Bi|Ev132KL>#^4oAu~8ety0X zMpN_|h}r9r>L&>H0#`^tO`Y751=-1C5nv%VaPAA-T)}1tpVLQW-8(b1h~eoJHqEq~ z#Vm6Wr!e+fP#gWuou{l@B4jA$m%)~^}?mHafx^Ny6*uw;yqFab;krQyI#{Kqh9S2(OH(4 zs;^Dj*0PukKaG?x!3aavelq|(;O zjJt{Vs5GqSJ)U}auunWz2zj)IZd03Mpg-?MUtaO<*($c}wAW^tCf5%G6Kt#I zq>Q|mRz^)tal*&RIM!e9$)f)ZLovfoHv_g6>yxwsVViljpE_(n)T?u&T%9I#_k+h! zM3`l17%;DJ7GL2W;amiLSrOp9#D0$5T<)i#F4Nytv80H;dt*0C@u!|Wwd3hoN4MM+ zQ4fX!54P#X<#+VbuBe>Dii6vkWD~8=Iqh3<)LjsA1*$AnTkU8}^$r!Rf}0)%2!#Jf zMvThC^)L(t1w7a=!+W@s758q@z7rGw@g1USO#`8AnL!l{?r>}8=kkB;%xU{9+rBC8 z?>fSgFVy0WTR%aeWJ-t@(qew$C*xQ=`}OCIU;7B82DIWo8c;DbSK_^1-9x4o!lAqA z;zBIIi(hWh)At}wC^NNc6Y`ZD=Y;EVpaiv@V_=SjZaogx4PCn=<{w?F{Q7qJJSB8e zz>Ue7FaH+uR~M!f&(F;xN#7<)-FCCmn))dkXq)qGIR*z%6rK`s?R8uZk~6=umFJkf z;0k)Y#oiJpcdz4Ki%6nlh*-3vfbA4Fak=k6?pRh+$XQ zxf=f0154httPgL}xc#K@`1k|5LUymeGnFFk^NIBL*pGKggOehv*4X)_9aS2P{o}q* zJl3PBVvkN;q3PgUNJ;5Vn)dSL)Y#cSI=V18x<})3c0(m8C`;ur*lIwr9Rxqzkm@VR zFzx4nqxKKqO(Xre;~pLfwLor?@kjDq^^Oq~@?Y)URJ8A!a(kU^CMm9 z+ILdIiht+`2qB?N43*$#8HHw!*7u~`!i_R1c3gO0Wx1&IrfCOLJ?kiF3H@&+ zXNeLmJawo#wRh~d-#q{Y5-_1jNv9al5z_v!kKa6&sK^S;X8v1sAZzmzoT%eLeSI1d zlqfDlAZouAzAt2YJAy$~SB3}FtR{hv!F4C|8m^LHWZ)xKZ#qi65fj12x{hR)r2c5n zyd^=gAA@NqsT#~M08k0$P^pZAH1v%J0p&{;r0172V1;$t&Y-wi{UyG}*>I_n*mohl zMF>Ck3yo~_bQraloJ<_Gt(H7h$I)mh+m81+oNB&b3_f|__Td&aRz~?+wGsCL8^4_g z&+ER=3;7I_mlm-C-N(Y#xANjeCJBaoHlNhqmVB*Uk`#7qK_KK)DmHO)Y>*9U&e6yi z@e+(fL>?j*1rT_2#LF_9L{7HB?sp1fzFcmjFx@MXNQ^9cRH&C#r9vCd=Dkm6O&`LG ztq&ZS%%Q7FBUSHKMo@S{tMx|X4xUZ6%oZ8J`6+dC*v|U7omEjB2PJ%3?*h{m?Fe16 zY3{Ol?~BRNy9}6jUn!EL(H7NyykqPV(>Z21jV=;t{VL{{h~*m;N9yX?T7~Vi4&*9l z8hU@8xGy{-;w4 z5+c-n=j634C_H&K&7bYs`=6(>&1`|3QiN}rOklNs)vYhY^X~{^W%P;s4uT8Qk z4rAZR#btOEA!<1dapL~b)}#hf8vmoF&TaUq{j4&FVskq>{uqN&HHWxJ?_qEA%N(om zK3+Yyid)9^_9n&XM}{8Ww8Lgz7Dt!aNLf&}o0L!4mA4aTVW*!yfrCVjP_w{M+@j}jrdn}$ZP%wTwMtKjt5{oPl=t~XDcdmTh>;$M3&eO!37;^v)b||c zojC!sM)WA*>-0AFzSpwUFJ}#WZANs+t_MyJTsGAGQ(9-wv7x7@flJ|OX_PFa>qHx{ zJO)_1yYm-OcI9(4c_6kcfYV7kKf=mNZOryNn~i*~ z0R6X1*lqD1q7V+&!JP}F8hGTOhazt{cwtg4uxWnAB)%Q7aY*&GX9jZ4QCjuL_ zzy~#=zoQ;ekVApy6c{$NGrh|in)NW$XP$vOy+!(u#w_W6{O6YW`a7h*RUCrss2PT? zyR*WNdt;PQOgt7a4$Q-quFCZUkEhzQhopnn=B|>h>revZAw|}RqbG{Sz&K0BW0l~U zVBIH0{#H~s$7~Wpi6?d_@jjkZHi76p%g0-F$51DaTP&{u2qq;T(-FUII&{_SwxO*z zw^<8MxI5vF&tgPfF_kJoBVj8p)a%@VfOvMEjY!88OC>HVuZQT2&Si6~zCV(K?!+m} zbuXfRJZop_;V$AQ^?E!eJM0EUXRVA_Qx@t`&uVLb56Cr)VGRj!_z9Ur&vg*&vhSfs zz$1L%H!TP(NX!Yp(hZOPj8xvcGsgV(xSf> zsp8{_%Qeh0S_s{hA+dAWeZ=Z43`{~ru(A{C{g*{8jRYy`&z+Y%M7_u?YvZ&=PC)6j zr+E1uZ*AJE#U~HhdvFKlDWq7y5hY%W-#lpB1oI)rR6eZ-$(=86WNG4o0a(9arCLL} zdICYAFa)iYvl-bT+_X?UNEv$$VO!!JD5${yBXE*7W76`6xc&EcjxjIO4R@h5! zC|`cq_S1HeT}nAL7@D1)cna?wQ>ATQK-x($k``v6Av5MnqKF%M1{FGwvN?m29g_e`Z*m0_!`cdw8p-=L*m zMeB{AhiFa^B^g`J#Ox4?=+wjlnE*gDh(f zPKLf}X#|`aai+muVrfBKIN`q6r#+&q_OL9b%j##nw=YF>tvo#`gnSj^?sc#fSE)B; z$nvM_fm-Py--lYibOn8V!}sg(reYeLgNdmTxaJEP*O`%MAed+kiYNJg^@`*kdWqF` z#+H`$JBG45sY2cAsn~hGaXCrSOC_V1gS;b3-?>H5dC;pNEG?J%)3Splm$E&N?%U7i zLlttKT}-MAow=liNOL`Mv)pJl*(oy`G(` z`mnb8nuxl@f)}19=vo+|UO+64ZJZo(|8Qq!Ix!3X9!G0Qmg8f`$gkoT@NuA{b2dnqhu2F0?gy9XqfL?JYp8+31jkb)0 zET!5vzlMpN41ZNM{R9x*-Jm`{uTlfGdgTDg8qK^J+Vuft<-0ZW zqm`%o1`IEHgtK#PUPm~5!Ai7Jpgw)e2DfptZM?M+@L{d*N%k}()heAiv1>D4OP5}Y z>zXa6ALxI5K34(AK1=rQsiLg@H_=ESA1C_Pfv{G^v>hEARaTMI@drql zE-yy0lZInpCr2+VCqnC1p&+>k|}uIe}!TO=tB!bWabXaioF6C0d=d zwqjl}xML@aA%MuE_0sPW(F;-o*8QT6G4dRcmUQ+VI@&p;q!DqlYri@qByqF(t=Iwf zX>xRI&c%fg)hDxcCZ`S$!`wu6H5N&lRgv^m9cGJK9@IlFL|x^PjVr?rBVK(lcy=EULz{ALx zAW@xSQ1VFsWM9-6nrM6cAhg2O=1*|_KyU^9X(}*~!Q}`9+M=FDYxBj`gV2!&dv&H5 zjxT{k?D;~#d9qJvmAK(So$iVofR^=x#9@>HKCZTI;pgwl4XiINgE(LF70J;im`&a; z5%v&%Y}WOY1hv0}cFSz?U0D4_9T0a+&uS8)5yi6`tDzE}G~FD5_9bjW+d~whrK_mJ zlX~ad<$XPQp+T{{<98d2kA&^lFS|G9M)n&dC{o&orzdq=czKL9`fQ%2btB5l5ng05 z%fTK>gZ&3KTgi5RDanuPPI^#Z`h};jw$HFaKj7M>p1 ztX(#}sT@463E?zjNG#PhHyL~*y_%tJjRR?3!(*>g#ElgcXC@t}Wk}W|933gNnY6x6 z7W`8b z!DV|VYupK!G}k&xO%(k%`yeL2%*%8?q$8JpWq9Mo9wPBVZ`~+ADIryYwBLXv0V$&; z=6EBaekxmM@&FB@M~&3v8kh?Ju46-}yeOn6e2G||b(KQEDVq|&@m@C#C7PH=Tt>Tr z^g9I4+8EzvZ6}C4k#si4TiMKnmVItBh`*Tfx<%Dph8+r0L}5}qm6{qvC5yqeIWC7U)r-&5Jg<6hr}`xljw2{(0S47N zle|wUM94LB?=&OFX4taf9pU(o4ZAF*+l%B>{#+CXJ_ zT7#27vNCb)3hwY5liAM`l&(Q=^1+4V!m`OV`V`L`9cnT1h3mmojZ zZ#R}99KR4iN85UT2=l+vF!q5bnt1Q=UtR+q;sf#M^|u4R-1S%hS|m|D|CuMYA3IH# zL+8+ElFD;^$`g#;(jPVXG$rOIy8kd`qVy@zWLJj|B>Au0l^adU=+DGcew~6LiUEI0 zMVC!==#JiQIJ$K$H>x6R;z`D6RLi8{0Y&a!2l_F$C}VbaHRrl zVGy=;8VvW?5&SomW%t zb^rmAk=L=Ifgg~gOmTHeQ`&r+r8L8DC*y7O1J7OzYWdxUU6F%X?0#+=mpCD#FSehrZ2+Oqo??S$iu~B7W7Y{6e!6Y{&P~M1&|WoYc(g6QaX)>0 ze}!I5cyiHQ4ug%gn6+WWT<>^M<5)Uw4jbFRQ>W0 z)sLoIiL9gQb3({XX}Tt{QS_$WIN3vi68Ppp$&{1yre_XcRj+UVS5skgBut zdh+vJj8#;^>Rgo;l_W!B_U3CK6!5v`naeh;C5lJ-r^GPLY`}Ky9dHNgojr>7Yyw0t zE>CbS9JFRkbZW03JP_CK?0H-tHwCDPFT5M*2#ReRFS2V@N*iciXY7u@^6GeM3o1UA z%^0OoCI@oAMBd-TvDfZ;)++fGpT`&E=U(r@<42XQBQnQFom+0zUf`LOns3@uhE%GP z)Qq5!qryM+_vgr*=yMUToQl5OGRvJ^bPdSSx7nWm@lfprD=HhaHVf}e<(+o@rvZ82 zSucfSy5kDo-tf3rd}Zafr=RlXRnqUidmjwO-q#_OB8J~}Lt19);_`0t8hbKI0@Jw4 z?05{k+9^Hh73O1Ld`fFbNnhqU+90a|`Scxnm2OdLEHrekE*8uI&L8d2I6%49_2r*d7>aRc2 zbQYS5zv2g{s`3kXoWCM#Ui1o;usad{OLE*HkD&Z!6>JV6A_(efTQ9#_NQBm}M9{{~F z0ym1>2;O;Bo0)`_5jeRxl?A$p!%WPZI9xwe+(i&5e3mn#9#ue-@(rL2LN<_-M+XQ@c;T_S0=71Qi_|Hm@v9*T zrfNnUQIXJe*+XnN8*^(Lr|rcl8~~KhQ&H}Pe9q1>lsZuew;5`he?FMP0Gu2jg+T3B zThZ!jsKQhE*AV@!U;FjF7zv`behqC#4k9pg#atvD;CSarMhdRj@#>JWk2GZVcJ_<=a z0dQC}bZkO?X4I}JHThJ@0F*$c+sQ)Ghv2w}B^!S^^T@byf-enV6@#n|h5cfC973jh zuP(d0Wg5V_;@Wt63ou-_0rAK7<;(R=>k|TD!4lE+d5r{jc=(gIB0i^OO}^(f*FvAY zudy<)32DUwem6)PPyazzA&4&#{5pxIX4uu^p*gX?@6_PBsZFsnAdq%N_C%(I$8)d} zKDX%lP&v&85Ra@XD=W7_(SPnz9zLr!+;!gMcUhnGGHhm>%a3p8jy*VzH@Jb~($$nl z2II)$<}>)ojF{*@8Wo!l$7rVZcIecIc>wMt&?S&D|CN(Xowp^WXH8w*guPu^L&JIT z&&aIri$oaHr$_TSSfT{uhSSs2PpY;M7iZ2<8Uh5yLvzj^+bz2!b6wF3+#?p-K<#Yn z>RL@BUi6mlx--Q;A5|=%)dibzEcXGH0k{`hCEC7fxLkSN<2JCDodW!A z?~7AMQCzl?7E<@0l<6mPJXwc`$t77>M5Z09YgQ^pYo#B+{cl! z1IPajCAfYS4!AxW(K+(^;->p|`WY)1!>d#I>}yzbN~%_287CSdOI0w&c1Rrm`FpJ_ zmZ+2PlSm0RKVuUU`y}@3QM?mnsli0>*u_-|g)?To>gC}kD7YO1S8=gb?Q z6i96ANC_wX-Tlbuv!cotL3>jbkYkQC+}zsV|9aXLX58#E`N*h#L|a=Mh}*x`F0x&P zl!rgrf{{g4FfJ}GU7nw8PgPrQgUdH*QbaW-uZ#aT&?te-Xpz;-@{?~tJ2+^Lwv~)s zi)+<&S5x2fRHlL4?!5Y2cSArr$l{2umK{BR{v1)dBxq%AZEfr4*PLN4nCSkv!*%2q z@!=EXwD>#5xoTqNyfFn65#XX45RM;prl;%=cF@SjB@B#>?bwYQ*JR7On9|^O~83Yp*m+91mM>s{6~+{8nhBw zPvRu2{OeDu>SE>EoV*Ie|9JK97d^vc9IGJa$oSXAK4b@&7eBK}g#2gn{rTYwscI4Q zp{dCKZ9YIu9<@uqcY;;vU+u@UebDV!ZuR*`cz(wz@C}Ikn{vIBf3;6*AXc9EKH%)X z0sRwM28=t_3>KB#|8Bn~z?|&~>H*H5F8K2f^ryItV^6!Ezx;RmHsF@s&{qB(n1nm3 zMem{qhyUIFB)H`*^nr(e;_;uDGBSP8Wg$z=`FHyj;FkZ_G5_nB|2zKvH)H-cWB#|4 f{eS$7ImHreot6%oeyW80H@WiC%2Fi~ra}J?IC0Q7 diff --git a/openapi.json b/openapi.json index 6d92dcce..eb23e649 100644 --- a/openapi.json +++ b/openapi.json @@ -9,7 +9,7 @@ "name": "Immutable API Support", "email": "support@immutable.com" }, - "version": "0.1" + "version": "3.0" }, "host": "api.ropsten.x.immutable.com", "basePath": "/", @@ -133,6 +133,18 @@ "schema": { "$ref": "#/definitions/ListAssetsResponse" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -179,6 +191,18 @@ "schema": { "$ref": "#/definitions/Asset" } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -209,11 +233,11 @@ }, { "enum": [ - "\"name\"", - "\"address\"", - "\"project_id\"", - "\"created_at\"", - "\"updated_at\"" + "name", + "address", + "project_id", + "created_at", + "updated_at" ], "type": "string", "description": "Property to sort by", @@ -251,6 +275,18 @@ "schema": { "$ref": "#/definitions/ListCollectionsResponse" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } }, @@ -312,6 +348,30 @@ "description": "The amount of collections remaining for current four-week window." } } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -342,6 +402,12 @@ "schema": { "$ref": "#/definitions/Collection" } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/APIError" + } } } }, @@ -396,6 +462,36 @@ "schema": { "$ref": "#/definitions/Collection" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -471,6 +567,18 @@ "$ref": "#/definitions/MetadataSchemaProperty" } } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } }, @@ -525,6 +633,36 @@ "schema": { "$ref": "#/definitions/SuccessResponse" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -588,6 +726,30 @@ "schema": { "$ref": "#/definitions/SuccessResponse" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -783,6 +945,360 @@ } } }, + "/v1/metadata-refreshes": { + "get": { + "description": "Get a list of metadata refreshes", + "produces": [ + "application/json" + ], + "tags": [ + "metadata-refreshes" + ], + "operationId": "Get a list of metadata refreshes", + "parameters": [ + { + "type": "integer", + "description": "Page size of the result", + "name": "page_size", + "in": "query" + }, + { + "type": "string", + "description": "Cursor", + "name": "cursor", + "in": "query" + }, + { + "type": "string", + "description": "Collection address", + "name": "collection_address", + "in": "query" + }, + { + "type": "string", + "description": "String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature", + "name": "x-imx-eth-signature", + "in": "header", + "required": true + }, + { + "type": "string", + "description": "Unix Epoc timestamp", + "name": "x-imx-eth-timestamp", + "in": "header", + "required": true + }, + { + "type": "string", + "description": "Wallet Address that signed the signature", + "name": "x-imx-eth-address", + "in": "header", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GetMetadataRefreshes" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "401": { + "description": "Unauthorized Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "403": { + "description": "Forbidden Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } + } + } + }, + "post": { + "description": "Request metadata refresh for provided tokens", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "metadata-refreshes" + ], + "operationId": "Request a metadata refresh", + "parameters": [ + { + "description": "Create metadata refresh request", + "name": "CreateMetadataRefreshRequest", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateMetadataRefreshRequest" + } + }, + { + "type": "string", + "description": "String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature", + "name": "x-imx-eth-signature", + "in": "header", + "required": true + }, + { + "type": "string", + "description": "Unix Epoc timestamp", + "name": "x-imx-eth-timestamp", + "in": "header", + "required": true + }, + { + "type": "string", + "description": "Wallet Address that signed the signature", + "name": "x-imx-eth-address", + "in": "header", + "required": true + } + ], + "responses": { + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/CreateMetadataRefreshResponse" + }, + "headers": { + "Refresh_Limit_Reset": { + "type": "string", + "description": "The expiry date of the current one-hour window." + }, + "Refreshes_Limit": { + "type": "string", + "description": "The refresh request limit available to the project for each one-hour window." + }, + "Remaining_Refreshes": { + "type": "string", + "description": "The amount of refresh requests remaining for current one-hour window." + } + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "401": { + "description": "Unauthorized Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "403": { + "description": "Forbidden Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } + } + } + } + }, + "/v1/metadata-refreshes/{refresh_id}": { + "get": { + "description": "Get metadata refresh results", + "produces": [ + "application/json" + ], + "tags": [ + "metadata-refreshes" + ], + "operationId": "Get metadata refresh results", + "parameters": [ + { + "type": "string", + "description": "The metadata refresh ID", + "name": "refresh_id", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature", + "name": "x-imx-eth-signature", + "in": "header", + "required": true + }, + { + "type": "string", + "description": "Unix Epoc timestamp", + "name": "x-imx-eth-timestamp", + "in": "header", + "required": true + }, + { + "type": "string", + "description": "Wallet Address that signed the signature", + "name": "x-imx-eth-address", + "in": "header", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GetMetadataRefreshResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "401": { + "description": "Unauthorized Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "403": { + "description": "Forbidden Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } + } + } + } + }, + "/v1/metadata-refreshes/{refresh_id}/errors": { + "get": { + "description": "Get metadata refresh errors", + "produces": [ + "application/json" + ], + "tags": [ + "metadata-refreshes" + ], + "operationId": "Get metadata refresh errors", + "parameters": [ + { + "type": "string", + "description": "The metadata refresh ID", + "name": "refresh_id", + "in": "path", + "required": true + }, + { + "type": "integer", + "description": "Page size of the result", + "name": "page_size", + "in": "query" + }, + { + "type": "string", + "description": "Cursor", + "name": "cursor", + "in": "query" + }, + { + "type": "string", + "description": "String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature", + "name": "x-imx-eth-signature", + "in": "header", + "required": true + }, + { + "type": "string", + "description": "Unix Epoc timestamp", + "name": "x-imx-eth-timestamp", + "in": "header", + "required": true + }, + { + "type": "string", + "description": "Wallet Address that signed the signature", + "name": "x-imx-eth-address", + "in": "header", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GetMetadataRefreshErrorsResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "401": { + "description": "Unauthorized Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "403": { + "description": "Forbidden Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } + } + } + } + }, "/v1/mintable-token/{token_address}/{token_id}": { "get": { "description": "Get details of a mintable token with the given token address and token ID", @@ -816,6 +1332,18 @@ "schema": { "$ref": "#/definitions/MintableTokenDetails" } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -845,6 +1373,12 @@ "in": "query" }, { + "enum": [ + "transaction_id", + "token_id", + "created_at", + "updated_at" + ], "type": "string", "description": "Property to sort by", "name": "order_by", @@ -935,6 +1469,18 @@ "schema": { "$ref": "#/definitions/ListMintsResponse" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -965,6 +1511,24 @@ "schema": { "$ref": "#/definitions/Mint" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -1336,6 +1900,9 @@ "consumes": [ "application/json" ], + "produces": [ + "application/json" + ], "tags": [ "projects" ], @@ -1387,6 +1954,30 @@ "schema": { "$ref": "#/definitions/GetProjectsResponse" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } }, @@ -1395,6 +1986,9 @@ "consumes": [ "application/json" ], + "produces": [ + "application/json" + ], "tags": [ "projects" ], @@ -1431,6 +2025,30 @@ "schema": { "$ref": "#/definitions/CreateProjectResponse" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -1441,6 +2059,9 @@ "consumes": [ "application/json" ], + "produces": [ + "application/json" + ], "tags": [ "projects" ], @@ -1475,6 +2096,30 @@ "schema": { "$ref": "#/definitions/Project" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -1580,6 +2225,18 @@ "schema": { "$ref": "#/definitions/GetSignableRegistrationResponse" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -1615,6 +2272,18 @@ "schema": { "$ref": "#/definitions/GetSignableRegistrationOffchainResponse" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -1701,6 +2370,35 @@ "summary": "Get a list of tokens", "operationId": "listTokens", "parameters": [ + { + "type": "integer", + "description": "Page size of the result", + "name": "page_size", + "in": "query" + }, + { + "type": "string", + "description": "Cursor", + "name": "cursor", + "in": "query" + }, + { + "enum": [ + "contract_address", + "name", + "symbol" + ], + "type": "string", + "description": "Property to sort by", + "name": "order_by", + "in": "query" + }, + { + "type": "string", + "description": "Direction to sort (asc/desc)", + "name": "direction", + "in": "query" + }, { "type": "string", "description": "Contract address of the token", @@ -1766,12 +2464,6 @@ "summary": "Get a list of trades", "operationId": "listTrades", "parameters": [ - { - "type": "string", - "description": "Party A's (buy order) order id", - "name": "party_a_order_id", - "in": "query" - }, { "type": "string", "description": "Party A's (buy order) token type of currency used to buy", @@ -1784,12 +2476,6 @@ "name": "party_a_token_address", "in": "query" }, - { - "type": "string", - "description": "Party B's (sell order) order id", - "name": "party_b_order_id", - "in": "query" - }, { "type": "string", "description": "Party B's (sell order) token type of NFT sold - always ERC721", @@ -2064,6 +2750,18 @@ "schema": { "$ref": "#/definitions/ListTransfersResponse" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } }, @@ -2111,6 +2809,30 @@ "schema": { "$ref": "#/definitions/CreateTransferResponseV1" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -2144,6 +2866,18 @@ "schema": { "$ref": "#/definitions/Transfer" } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -2179,6 +2913,24 @@ "schema": { "$ref": "#/definitions/RegisterUserResponse" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -2212,6 +2964,18 @@ "schema": { "$ref": "#/definitions/GetUsersApiResponse" } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -2539,6 +3303,30 @@ "description": "The amount of mints remaining for current four-week window." } } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -2574,6 +3362,30 @@ "schema": { "$ref": "#/definitions/GetSignableTransferResponse" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -2623,6 +3435,30 @@ "schema": { "$ref": "#/definitions/CreateTransferResponse" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/APIError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/APIError" + } } } } @@ -2699,6 +3535,27 @@ } }, "definitions": { + "APIError": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The error code", + "type": "string" + }, + "details": { + "description": "The error details", + "type": "string" + }, + "message": { + "description": "The error message", + "type": "string" + } + } + }, "AddMetadataSchemaToCollectionRequest": { "type": "object", "required": [ @@ -2985,12 +3842,14 @@ "required": [ "address", "collection_image_url", + "created_at", "description", "icon_url", "metadata_api_url", "name", "project_id", - "project_owner_address" + "project_owner_address", + "updated_at" ], "properties": { "address": { @@ -3002,6 +3861,11 @@ "type": "string", "x-nullable": true }, + "created_at": { + "description": "Timestamp of when the collection was created", + "type": "string", + "x-nullable": true + }, "description": { "description": "Description of the collection", "type": "string", @@ -3028,6 +3892,11 @@ "project_owner_address": { "description": "Project owner address", "type": "string" + }, + "updated_at": { + "description": "Timestamp of when the collection was updated", + "type": "string", + "x-nullable": true } } }, @@ -3116,6 +3985,38 @@ } } }, + "CreateMetadataRefreshRequest": { + "type": "object", + "required": [ + "collection_address", + "token_ids" + ], + "properties": { + "collection_address": { + "description": "The collection contract address", + "type": "string" + }, + "token_ids": { + "description": "The tokens to refresh", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "CreateMetadataRefreshResponse": { + "type": "object", + "required": [ + "refresh_id" + ], + "properties": { + "refresh_id": { + "description": "The metadata refresh ID", + "type": "string" + } + } + }, "CreateOrderRequest": { "type": "object", "required": [ @@ -3196,6 +4097,10 @@ "description": "ID of the created order", "type": "integer" }, + "request_id": { + "description": "Request ID as a reference for an asynchronous order creation request", + "type": "string" + }, "status": { "description": "Status of the created order", "type": "string" @@ -3325,7 +4230,7 @@ ], "properties": { "request_id": { - "description": "Request ID that returns when a trade initiated through risk-manager", + "description": "Request ID as a reference for an asynchronous trade creation request", "type": "string" }, "status": { @@ -3678,6 +4583,101 @@ } } }, + "GetMetadataRefreshErrorsResponse": { + "type": "object", + "required": [ + "cursor", + "remaining", + "result" + ], + "properties": { + "cursor": { + "description": "Generated cursor returned by previous query", + "type": "string" + }, + "remaining": { + "description": "Remaining results flag. 1: there are remaining results matching this query, 0: no remaining results", + "type": "integer" + }, + "result": { + "description": "Metadata refresh errors matching query parameters", + "type": "array", + "items": { + "$ref": "#/definitions/MetadataRefreshErrors" + } + } + } + }, + "GetMetadataRefreshResponse": { + "type": "object", + "required": [ + "refresh_id", + "status", + "collection_address", + "started_at", + "summary" + ], + "properties": { + "collection_address": { + "description": "The collection address", + "type": "string" + }, + "completed_at": { + "description": "When the metadata refresh completed", + "type": "string", + "x-nullable": true + }, + "refresh_id": { + "description": "The metadata refresh ID", + "type": "string" + }, + "started_at": { + "description": "When the metadata refresh started", + "type": "string" + }, + "status": { + "description": "The metadata refresh status", + "type": "string", + "enum": [ + "queued", + "in_progress", + "completed" + ] + }, + "summary": { + "description": "The current metadata refresh summary. The summary continue to update until metadata refresh is completed", + "type": "array", + "items": { + "$ref": "#/definitions/MetadataRefreshSummary" + } + } + } + }, + "GetMetadataRefreshes": { + "type": "object", + "required": [ + "cursor", + "remaining", + "result" + ], + "properties": { + "cursor": { + "description": "Generated cursor returned by previous query", + "type": "string" + }, + "remaining": { + "description": "Remaining results flag. 1: there are remaining results matching this query, 0: no remaining results", + "type": "integer" + }, + "result": { + "description": "Metadata refresh errors matching query parameters", + "type": "array", + "items": { + "$ref": "#/definitions/MetadataRefreshExcludingSummary" + } + } + } + }, "GetProjectsResponse": { "type": "object", "required": [ @@ -4492,6 +5492,102 @@ } } }, + "MetadataRefreshErrors": { + "required": [ + "collection_address", + "token_id", + "error_code", + "client_token_metadata_url", + "client_response_body", + "client_response_status_code", + "created_at" + ], + "properties": { + "client_response_body": { + "description": "Metadata API response for the token", + "type": "string", + "x-nullable": true + }, + "client_response_status_code": { + "description": "Metadata API response code for the token", + "type": "string", + "x-nullable": true + }, + "client_token_metadata_url": { + "description": "Requested metadata url for the token", + "type": "string" + }, + "collection_address": { + "description": "The collection contract address", + "type": "string" + }, + "created_at": { + "description": "When the error was created", + "type": "string" + }, + "error_code": { + "description": "Metadata refresh error code", + "type": "string" + }, + "token_id": { + "description": "The token ID", + "type": "string" + } + } + }, + "MetadataRefreshExcludingSummary": { + "type": "object", + "required": [ + "refresh_id", + "status", + "collection_address", + "started_at" + ], + "properties": { + "collection_address": { + "description": "The collection address", + "type": "string" + }, + "completed_at": { + "description": "When the metadata refresh completed", + "type": "string", + "x-nullable": true + }, + "refresh_id": { + "description": "The metadata refresh ID", + "type": "string" + }, + "started_at": { + "description": "When the metadata refresh started", + "type": "string" + }, + "status": { + "description": "The metadata refresh status", + "type": "string", + "enum": [ + "queued", + "in_progress", + "completed" + ] + } + } + }, + "MetadataRefreshSummary": { + "properties": { + "failed": { + "description": "The number of tokens with failed metadata refreshes", + "type": "integer" + }, + "pending": { + "description": "The number of tokens that has not been refreshed yet", + "type": "integer" + }, + "succeeded": { + "description": "The number of tokens with successful metadata refreshes", + "type": "integer" + } + } + }, "MetadataSchemaProperty": { "type": "object", "required": [ @@ -5080,13 +6176,17 @@ "$ref": "#/definitions/AssetProperties" }, "quantity": { - "description": "Quantity of this asset", + "description": "Quantity of this asset - inclusive of fees for buy order in v1 API and exclusive of fees in v3 API", "type": "string" }, "quantity_with_fees": { "description": "Quantity of this asset with the sum of all fees applied to the asset", "type": "string" }, + "symbol": { + "description": "Symbol of a token", + "type": "string" + }, "token_address": { "description": "Address of ERC721/ERC20 contract", "type": "string" @@ -5369,4 +6469,4 @@ "x-go-gen-location": "models" } } -} +} \ No newline at end of file diff --git a/package.json b/package.json index c3e46ecc..1961ceed 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Immutable Core SDK", "main": "dist/index.cjs.js", "module": "dist/index.es.js", - "types": "dist/src/index.d.ts", + "types": "dist/index.d.ts", "repository": { "type": "git", "url": "https://github.com/immutable/imx-core-sdk.git" @@ -13,7 +13,11 @@ "immutable" ], "files": [ - "dist" + "dist/index.d.ts", + "dist/index.es.js", + "dist/index.es.js.map", + "dist/index.cjs.js", + "dist/index.cjs.js.map" ], "author": "Immutable", "license": "Apache-2.0", @@ -31,7 +35,9 @@ "typecheck-staged": "tsc-files --noEmit", "lint": "eslint ./src/utils/** ./src/workflows/** --max-warnings=0", "lint-fix": "eslint ./src/utils/** ./src/workflows/** --fix --max-warnings=0", - "prepare": "husky install" + "prepare": "husky install", + "docs:build": "yarn typedoc --cleanOutputDir ./src/ImmutableX.ts ./src/index.ts --excludePrivate --excludeProtected", + "docs:serve": "http-server -c-1 ./docs" }, "lint-staged": { "src/**/*.ts": "yarn run lint-fix", @@ -43,7 +49,6 @@ "@babel/plugin-transform-runtime": "^7.12.10", "@babel/preset-env": "^7.12.7", "@babel/preset-typescript": "^7.12.7", - "@ethersproject/providers": "^5.6.4", "@nomiclabs/hardhat-ethers": "^2.0.5", "@openzeppelin/contracts": "^4.6.0", "@release-it/keep-a-changelog": "^3.0.0", @@ -59,32 +64,35 @@ "@typescript-eslint/eslint-plugin": "^5.20.0", "@typescript-eslint/parser": "^5.20.0", "babel-jest": "^27.5.1", + "dts-bundle-generator": "^6.12.0", "eslint": "^8.13.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-prettier": "^4.2.1", "hardhat": "^2.9.9", + "http-server": "^14.1.1", "husky": "^8.0.0", "jest": "^28.1.1", "lint-staged": "^13.0.3", + "prettier": "2.7.1", "release-it": "^15.0.0", "rollup": "^2.71.1", + "rollup-plugin-dts": "^4.2.2", "rollup-plugin-node-externals": "^4.0.0", "rollup-plugin-terser": "^7.0.2", "ts-jest": "^28.0.5", "tsc-files": "^1.1.3", "typechain": "^8.1.0", + "typedoc": "^0.23.10", "typescript": "^4.6.3" }, "dependencies": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/providers": "^5.6.4", - "@ethersproject/units": "^5.6.1", - "@ethersproject/wallet": "^5.6.2", + "@ethersproject/abi": "^5.0.0", + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/providers": "^5.0.0", "axios": "^0.26.1", "bn.js": "^5.2.0", "elliptic": "^6.5.4", "enc-utils": "^3.0.0", - "ethereumjs-wallet": "^1.0.2", "ethers": "^5.6.9", "hash.js": "^1.1.7" } diff --git a/rollup.config.js b/rollup.config.js index bab3622e..703ecaa6 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -6,6 +6,7 @@ import typescript from '@rollup/plugin-typescript'; import { externals } from 'rollup-plugin-node-externals'; import json from '@rollup/plugin-json'; import { terser } from 'rollup-plugin-terser'; +import dts from 'rollup-plugin-dts'; import pkg from './package.json'; import path from 'path'; @@ -42,6 +43,10 @@ export default [ exports: 'named', }, ], + onwarn(warning, warn) { + if (warning.code === 'THIS_IS_UNDEFINED') return; + warn(warning); + }, plugins: [ externals(), json(), @@ -60,4 +65,9 @@ export default [ terser(), ], }, + { + input: './dist/src/index.d.ts', + output: [{ file: 'dist/index.d.ts', format: 'es' }], + plugins: [dts()], + }, ]; diff --git a/src/ImmutableX.ts b/src/ImmutableX.ts new file mode 100644 index 00000000..745047f9 --- /dev/null +++ b/src/ImmutableX.ts @@ -0,0 +1,842 @@ +import { + AnyToken, + EthSigner, + NftTransferDetails, + TokenAmount, + UnsignedMintRequest, + UnsignedOrderRequest, + UnsignedTransferRequest, + WalletConnection, +} from './types'; +import { Workflows } from './workflows'; +import { + DepositsApi, + MintsApi, + OrdersApi, + TokensApi, + TradesApi, + TransfersApi, + UsersApi, + WithdrawalsApi, + BalancesApi, + AssetsApi, + CollectionsApi, + MetadataApi, + ProjectsApi, + DepositsApiGetDepositRequest, + DepositsApiListDepositsRequest, + AssetsApiGetAssetRequest, + AssetsApiListAssetsRequest, + CreateCollectionRequest, + CollectionsApiGetCollectionRequest, + CollectionsApiListCollectionFiltersRequest, + CollectionsApiListCollectionsRequest, + UpdateCollectionRequest, + AddMetadataSchemaToCollectionRequest, + MetadataApiGetMetadataSchemaRequest, + MetadataSchemaRequest, + CreateProjectRequest, + BalancesApiGetBalanceRequest, + BalancesApiListBalancesRequest, + MintsApiGetMintRequest, + MintsApiListMintsRequest, + WithdrawalsApiListWithdrawalsRequest, + WithdrawalsApiGetWithdrawalRequest, + OrdersApiGetOrderRequest, + OrdersApiListOrdersRequest, + GetSignableCancelOrderRequest, + TradesApiGetTradeRequest, + TradesApiListTradesRequest, + GetSignableTradeRequest, + TokensApiGetTokenRequest, + TokensApiListTokensRequest, + TransfersApiGetTransferRequest, + TransfersApiListTransfersRequest, + MetadataRefreshesApi, + CreateMetadataRefreshRequest, +} from './api'; +import { formatError } from './utils/formatError'; +import { ImmutableXConfiguration } from './config'; + +/** + * The main entry point for the Core SDK + */ +export class ImmutableX { + private depositsApi: DepositsApi; + private mintsApi: MintsApi; + private ordersApi: OrdersApi; + private tokensApi: TokensApi; + private tradesApi: TradesApi; + private transfersApi: TransfersApi; + private usersApi: UsersApi; + private withdrawalsApi: WithdrawalsApi; + private balanceApi: BalancesApi; + private assetApi: AssetsApi; + private collectionApi: CollectionsApi; + private metadataApi: MetadataApi; + private metadataRefreshesApi: MetadataRefreshesApi; + private projectsApi: ProjectsApi; + private workflows: Workflows; + + constructor(config: ImmutableXConfiguration) { + this.depositsApi = new DepositsApi(config.apiConfiguration); + this.mintsApi = new MintsApi(config.apiConfiguration); + this.ordersApi = new OrdersApi(config.apiConfiguration); + this.tokensApi = new TokensApi(config.apiConfiguration); + this.tradesApi = new TradesApi(config.apiConfiguration); + this.transfersApi = new TransfersApi(config.apiConfiguration); + this.usersApi = new UsersApi(config.apiConfiguration); + this.withdrawalsApi = new WithdrawalsApi(config.apiConfiguration); + this.balanceApi = new BalancesApi(config.apiConfiguration); + this.assetApi = new AssetsApi(config.apiConfiguration); + this.collectionApi = new CollectionsApi(config.apiConfiguration); + this.metadataApi = new MetadataApi(config.apiConfiguration); + this.metadataRefreshesApi = new MetadataRefreshesApi( + config.apiConfiguration, + ); + this.projectsApi = new ProjectsApi(config.apiConfiguration); + this.workflows = new Workflows(config); + } + + /** + * Deposit based on a token type. For unregistered Users, the Deposit will be combined with a registration in order to register the User first + * @param ethSigner - the L1 signer + * @param deposit - the token type amount in its corresponding unit + * @returns a promise that resolves with the resulting transaction + * @throws {@link index.IMXError} + */ + public deposit(ethSigner: EthSigner, deposit: TokenAmount) { + return this.workflows.deposit(ethSigner, deposit).catch(err => { + throw formatError(err); + }); + } + + /** + * Get details of a Deposit with the given ID + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested Deposit + * @throws {@link index.IMXError} + */ + public getDeposit(request: DepositsApiGetDepositRequest) { + return this.depositsApi + .getDeposit(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get a list of Deposits + * @param request - optional request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested list of Deposits + * @throws {@link index.IMXError} + */ + public listDeposits(request?: DepositsApiListDepositsRequest) { + return this.depositsApi + .listDeposits(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Register a User to Immutable X if they are not already + * @param walletConnection - the pair of L1/L2 signers + * @returns a promise that resolves with void if successful + * @throws {@link index.IMXError} + */ + public registerOffchain(walletConnection: WalletConnection) { + return this.workflows.registerOffchain(walletConnection).catch(err => { + throw formatError(err); + }); + } + + /** + * Checks if a User is registered on on-chain + * @param walletConnection - the pair of L1/L2 signers + * @returns a promise that resolves with true if the User is registered, false otherwise + * @throws {@link index.IMXError} + */ + public isRegisteredOnchain(walletConnection: WalletConnection) { + return this.workflows.isRegisteredOnchain(walletConnection).catch(err => { + throw formatError(err); + }); + } + + /** + * Get Stark keys for a registered User + * @param ethAddress - the eth address of the User + * @returns a promise that resolves with the requested User + * @throws {@link index.IMXError} + */ + public getUser(ethAddress: string) { + return this.usersApi + .getUsers({ user: ethAddress }) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get details of an Asset + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested Asset + * @throws {@link index.IMXError} + */ + public getAsset(request: AssetsApiGetAssetRequest) { + return this.assetApi + .getAsset(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get a list of Assets + * @param request - optional request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested list of Assets + * @throws {@link index.IMXError} + */ + public listAssets(request?: AssetsApiListAssetsRequest) { + return this.assetApi + .listAssets(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Create a Collection + * @param ethSigner - the L1 signer + * @param request - the request object to be provided in the API request + * @returns a promise that resolves with the created Collection + * @throws {@link index.IMXError} + */ + public createCollection( + ethSigner: EthSigner, + request: CreateCollectionRequest, + ) { + return this.workflows + .createCollection(ethSigner, request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get details of a Collection at the given address + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested Collection + * @throws {@link index.IMXError} + */ + public getCollection(request: CollectionsApiGetCollectionRequest) { + return this.collectionApi + .getCollection(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get a list of Collection filters + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested list of Collection Filters + * @throws {@link index.IMXError} + */ + public listCollectionFilters( + request: CollectionsApiListCollectionFiltersRequest, + ) { + return this.collectionApi + .listCollectionFilters(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get a list of Collections + * @param request - optional request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested list of Collections + * @throws {@link index.IMXError} + */ + public listCollections(request?: CollectionsApiListCollectionsRequest) { + return this.collectionApi + .listCollections(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Update a Collection + * @param ethSigner - the L1 signer + * @param collectionAddress - the Collection contract address + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the updated Collection + * @throws {@link index.IMXError} + */ + public updateCollection( + ethSigner: EthSigner, + collectionAddress: string, + request: UpdateCollectionRequest, + ) { + return this.workflows + .updateCollection(ethSigner, collectionAddress, request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Add metadata schema to Collection + * @param ethSigner - the L1 signer + * @param collectionAddress - the Collection contract address + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the SuccessResponse if successful + * @throws {@link index.IMXError} + */ + public addMetadataSchemaToCollection( + ethSigner: EthSigner, + collectionAddress: string, + request: AddMetadataSchemaToCollectionRequest, + ) { + return this.workflows + .addMetadataSchemaToCollection(ethSigner, collectionAddress, request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get Metadata schema + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested Metadata schema + * @throws {@link index.IMXError} + */ + public getMetadataSchema(request: MetadataApiGetMetadataSchemaRequest) { + return this.metadataApi + .getMetadataSchema(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Update metadata schema by name + * @param ethSigner - the L1 signer + * @param collectionAddress - the Collection contract address + * @param name - the Metadata schema name + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the SuccessResponse if successful + * @throws {@link index.IMXError} + */ + public updateMetadataSchemaByName( + ethSigner: EthSigner, + collectionAddress: string, + name: string, + request: MetadataSchemaRequest, + ) { + return this.workflows + .updateMetadataSchemaByName(ethSigner, collectionAddress, name, request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get a list of metadata refreshes + * @param ethSigner - the L1 signer + * @param collectionAddress - the Collection contract address + * @param pageSize - the page size of the result + * @param cursor - the cursor + * @returns a promise that resolves with the requested metadata refreshes + * @throws {@link index.IMXError} + */ + public listMetadataRefreshes( + ethSigner: EthSigner, + collectionAddress?: string, + pageSize?: number, + cursor?: string, + ) { + return this.workflows + .listMetadataRefreshes(ethSigner, collectionAddress, pageSize, cursor) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get a list of metadata refresh errors + * @param ethSigner - the L1 signer + * @param refreshId - the metadata refresh ID + * @param pageSize - the page size of the result + * @param cursor - the cursor + * @returns a promise that resolves with the requested metadata refresh errors + * @throws {@link index.IMXError} + */ + public getMetadataRefreshErrors( + ethSigner: EthSigner, + refreshId: string, + pageSize?: number, + cursor?: string, + ) { + return this.workflows + .getMetadataRefreshErrors(ethSigner, refreshId, pageSize, cursor) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get a list of metadata refresh results + * @param ethSigner - the L1 signer + * @param refreshId - the metadata refresh ID + * @returns a promise that resolves with the requested metadata refresh results + * @throws {@link index.IMXError} + */ + public getMetadataRefreshResults(ethSigner: EthSigner, refreshId: string) { + return this.workflows + .getMetadataRefreshResults(ethSigner, refreshId) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Request a metadata refresh + * @param ethSigner - the L1 signer + * @param request the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested metadata refresh + * @throws {@link index.IMXError} + */ + public createMetadataRefresh( + ethSigner: EthSigner, + request: CreateMetadataRefreshRequest, + ) { + return this.workflows + .createMetadataRefresh(ethSigner, request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Create a Project + * @param ethSigner - the L1 signer + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the created Project + * @throws {@link index.IMXError} + */ + public async createProject( + ethSigner: EthSigner, + request: CreateProjectRequest, + ) { + return this.workflows + .createProject(ethSigner, request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get a Project + * @param ethSigner - the L1 signer + * @param id - the Project ID + * @returns a promise that resolves with the requested Project + * @throws {@link index.IMXError} + */ + public async getProject(ethSigner: EthSigner, id: string) { + return this.workflows + .getProject(ethSigner, id) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get Projects owned by the given User + * @param ethSigner - the L1 signer + * @param pageSize - the page size of the result + * @param cursor - the cursor + * @param orderBy - the property to sort by + * @param direction - direction to sort (asc/desc) + * @returns a promise that resolves with the requested Projects + * @throws {@link index.IMXError} + */ + public async getProjects( + ethSigner: EthSigner, + pageSize?: number, + cursor?: string, + orderBy?: string, + direction?: string, + ) { + return this.workflows + .getProjects(ethSigner, pageSize, cursor, orderBy, direction) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get the token Balances of the User + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested Balance + * @throws {@link index.IMXError} + */ + public getBalance(request: BalancesApiGetBalanceRequest) { + return this.balanceApi + .getBalance(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get a list of Balances for given User + * @param request the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested list of Balances + * @throws {@link index.IMXError} + */ + public listBalances(request: BalancesApiListBalancesRequest) { + return this.balanceApi + .listBalances(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get details of a Mint with the given ID + * @param request the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested Mint + * @throws {@link index.IMXError} + */ + public getMint(request: MintsApiGetMintRequest) { + return this.mintsApi + .getMint(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get a list of Mints + * @param request optional request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested list of Mints + * @throws {@link index.IMXError} + */ + public listMints(request?: MintsApiListMintsRequest) { + return this.mintsApi + .listMints(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Mint tokens in a batch with fees + * @param ethSigner - the L1 signer + * @param request - the request object to be provided in the API request + * @returns a promise that resolves with the minted tokens + * @throws {@link index.IMXError} + */ + public mint(ethSigner: EthSigner, request: UnsignedMintRequest) { + return this.workflows.mint(ethSigner, request).catch(err => { + throw formatError(err); + }); + } + + /** + * Get a list of Withdrawals + * @param request - optional request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested list of Withdrawals + * @throws {@link index.IMXError} + */ + public listWithdrawals(request?: WithdrawalsApiListWithdrawalsRequest) { + return this.withdrawalsApi + .listWithdrawals(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get details of Withdrawal with the given ID + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested Withdrawal + * @throws {@link index.IMXError} + */ + public getWithdrawal(request: WithdrawalsApiGetWithdrawalRequest) { + return this.withdrawalsApi + .getWithdrawal(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Create a Withdrawal + * @param walletConnection - the pair of L1/L2 signers + * @param request - the token type amount in its corresponding unit + * @returns a promise that resolves with the created Withdrawal + * @throws {@link index.IMXError} + */ + public prepareWithdrawal( + walletConnection: WalletConnection, + request: TokenAmount, + ) { + return this.workflows + .prepareWithdrawal(walletConnection, request) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Completes a Withdrawal + * @param ethSigner - the L1 signer + * @param starkPublicKey - the Signer address + * @param token - the token + * @returns a promise that resolves with the transaction + * @throws {@link index.IMXError} + */ + public completeWithdrawal( + ethSigner: EthSigner, + starkPublicKey: string, + token: AnyToken, + ) { + return this.workflows + .completeWithdrawal(ethSigner, starkPublicKey, token) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get details of an Order with the given ID + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested Order + * @throws {@link index.IMXError} + */ + public getOrder(request: OrdersApiGetOrderRequest) { + return this.ordersApi + .getOrder(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get a list of Orders + * @param request - optional request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested list of Orders + * @throws {@link index.IMXError} + */ + public listOrders(request?: OrdersApiListOrdersRequest) { + return this.ordersApi + .listOrders(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Create an Order + * @param walletConnection - the pair of L1/L2 signers + * @param request - the request object to be provided in the API request + * @returns a promise that resolves with the created Order + * @throws {@link index.IMXError} + */ + public createOrder( + walletConnection: WalletConnection, + request: UnsignedOrderRequest, + ) { + return this.workflows.createOrder(walletConnection, request).catch(err => { + throw formatError(err); + }); + } + + /** + * Cancel an Order + * @param walletConnection - the pair of L1/L2 signers + * @param request - the request object to be provided in the API request + * @returns a promise that resolves with the cancelled Order + * @throws {@link index.IMXError} + */ + public cancelOrder( + walletConnection: WalletConnection, + request: GetSignableCancelOrderRequest, + ) { + return this.workflows.cancelOrder(walletConnection, request).catch(err => { + throw formatError(err); + }); + } + + /** + * Get details of a Trade with the given ID + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested Trade + * @throws {@link index.IMXError} + */ + public getTrade(request: TradesApiGetTradeRequest) { + return this.tradesApi + .getTrade(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get a list of Trades + * @param request - optional request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested list of Trades + * @throws {@link index.IMXError} + */ + public listTrades(request?: TradesApiListTradesRequest) { + return this.tradesApi + .listTrades(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Create a Trade + * @param walletConnection - the pair of L1/L2 signers + * @param request - the request object to be provided in the API request + * @returns a promise that resolves with the created Trade + * @throws {@link index.IMXError} + */ + public createTrade( + walletConnection: WalletConnection, + request: GetSignableTradeRequest, + ) { + return this.workflows.createTrade(walletConnection, request).catch(err => { + throw formatError(err); + }); + } + + /** + * Get details of a Token + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested Token + * @throws {@link index.IMXError} + */ + public getToken(request: TokensApiGetTokenRequest) { + return this.tokensApi + .getToken(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get a list of Tokens + * @param request - optional request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested list of Tokens + * @throws {@link index.IMXError} + */ + public listTokens(request?: TokensApiListTokensRequest) { + return this.tokensApi + .listTokens(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get details of a Transfer with the given ID + * @param request - the request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested Transfer + * @throws {@link index.IMXError} + */ + public getTransfer(request: TransfersApiGetTransferRequest) { + return this.transfersApi + .getTransfer(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Get a list of Transfers + * @param request - optional request object containing the parameters to be provided in the API request + * @returns a promise that resolves with the requested list of Transfers + * @throws {@link index.IMXError} + */ + public listTransfers(request?: TransfersApiListTransfersRequest) { + return this.transfersApi + .listTransfers(request) + .then(res => res.data) + .catch(err => { + throw formatError(err); + }); + } + + /** + * Create a new Transfer request + * @param walletConnection - the pair of L1/L2 signers + * @param request - the request object to be provided in the API request + * @returns a promise that resolves with the created Transfer + * @throws {@link index.IMXError} + */ + public transfer( + walletConnection: WalletConnection, + request: UnsignedTransferRequest, + ) { + return this.workflows.transfer(walletConnection, request).catch(err => { + throw formatError(err); + }); + } + + /** + * Create a batch of NFT transfer requests + * @param walletConnection - the pair of L1/L2 signers + * @param request - the request object to be provided in the API request + * @returns a promise that resolves with the list of Transfer IDs + * @throws {@link index.IMXError} + */ + public batchNftTransfer( + walletConnection: WalletConnection, + request: Array, + ) { + return this.workflows + .batchNftTransfer(walletConnection, request) + .catch(err => { + throw formatError(err); + }); + } +} diff --git a/src/api/.openapi-generator/FILES b/src/api/.openapi-generator/FILES index 70a42113..725c65a6 100644 --- a/src/api/.openapi-generator/FILES +++ b/src/api/.openapi-generator/FILES @@ -11,6 +11,7 @@ domain/collections-api.ts domain/deposits-api.ts domain/encoding-api.ts domain/metadata-api.ts +domain/metadata-refreshes-api.ts domain/mints-api.ts domain/orders-api.ts domain/projects-api.ts @@ -22,6 +23,7 @@ domain/withdrawals-api.ts git_push.sh index.ts models/add-metadata-schema-to-collection-request.ts +models/apierror.ts models/asset-properties.ts models/asset-with-orders.ts models/asset.ts @@ -32,6 +34,8 @@ models/collection-details.ts models/collection-filter.ts models/collection.ts models/create-collection-request.ts +models/create-metadata-refresh-request.ts +models/create-metadata-refresh-response.ts models/create-order-request.ts models/create-order-response.ts models/create-project-request.ts @@ -54,6 +58,9 @@ models/fee-entry.ts models/fee-info.ts models/fee-token.ts models/fee.ts +models/get-metadata-refresh-errors-response.ts +models/get-metadata-refresh-response.ts +models/get-metadata-refreshes.ts models/get-projects-response.ts models/get-signable-cancel-order-request.ts models/get-signable-cancel-order-response.ts @@ -84,6 +91,9 @@ models/list-tokens-response.ts models/list-trades-response.ts models/list-transfers-response.ts models/list-withdrawals-response.ts +models/metadata-refresh-errors.ts +models/metadata-refresh-excluding-summary.ts +models/metadata-refresh-summary.ts models/metadata-schema-property.ts models/metadata-schema-request.ts models/mint-fee.ts diff --git a/src/api/.openapi-generator/VERSION b/src/api/.openapi-generator/VERSION index 66672d4e..7b7e20b5 100644 --- a/src/api/.openapi-generator/VERSION +++ b/src/api/.openapi-generator/VERSION @@ -1 +1 @@ -6.1.0-SNAPSHOT \ No newline at end of file +6.1.1-SNAPSHOT \ No newline at end of file diff --git a/src/api/api.ts b/src/api/api.ts index e5564c84..f2d05af7 100644 --- a/src/api/api.ts +++ b/src/api/api.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -20,6 +20,7 @@ export * from './domain/collections-api'; export * from './domain/deposits-api'; export * from './domain/encoding-api'; export * from './domain/metadata-api'; +export * from './domain/metadata-refreshes-api'; export * from './domain/mints-api'; export * from './domain/orders-api'; export * from './domain/projects-api'; diff --git a/src/api/base.ts b/src/api/base.ts index 0494cf4a..fd8781c0 100644 --- a/src/api/base.ts +++ b/src/api/base.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/common.ts b/src/api/common.ts index 7a502ba0..0ad7a73a 100644 --- a/src/api/common.ts +++ b/src/api/common.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -83,24 +83,34 @@ export const setOAuthToObject = async function (object: any, name: string, scope } } +function setFlattenedQueryParams(urlSearchParams: URLSearchParams, parameter: any, key: string = ""): void { + if (typeof parameter === "object") { + if (Array.isArray(parameter)) { + (parameter as any[]).forEach(item => setFlattenedQueryParams(urlSearchParams, item, key)); + } + else { + Object.keys(parameter).forEach(currentKey => + setFlattenedQueryParams(urlSearchParams, parameter[currentKey], `${key}${key !== '' ? '.' : ''}${currentKey}`) + ); + } + } + else { + if (urlSearchParams.has(key)) { + urlSearchParams.append(key, parameter); + } + else { + urlSearchParams.set(key, parameter); + } + } +} + /** * * @export */ export const setSearchParams = function (url: URL, ...objects: any[]) { const searchParams = new URLSearchParams(url.search); - for (const object of objects) { - for (const key in object) { - if (Array.isArray(object[key])) { - searchParams.delete(key); - for (const item of object[key]) { - searchParams.append(key, item); - } - } else { - searchParams.set(key, object[key]); - } - } - } + setFlattenedQueryParams(searchParams, objects); url.search = searchParams.toString(); } diff --git a/src/api/configuration.ts b/src/api/configuration.ts index 991e1f2f..69b1f2a6 100644 --- a/src/api/configuration.ts +++ b/src/api/configuration.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/domain/assets-api.ts b/src/api/domain/assets-api.ts index 0f4eb716..a79c0cd1 100644 --- a/src/api/domain/assets-api.ts +++ b/src/api/domain/assets-api.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -21,6 +21,8 @@ import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObj // @ts-ignore import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base'; // @ts-ignore +import { APIError } from '../models'; +// @ts-ignore import { Asset } from '../models'; // @ts-ignore import { ListAssetsResponse } from '../models'; diff --git a/src/api/domain/balances-api.ts b/src/api/domain/balances-api.ts index 11cbe6cc..6ee64bb0 100644 --- a/src/api/domain/balances-api.ts +++ b/src/api/domain/balances-api.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/domain/collections-api.ts b/src/api/domain/collections-api.ts index cb10fc4f..cfc4e240 100644 --- a/src/api/domain/collections-api.ts +++ b/src/api/domain/collections-api.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -21,6 +21,8 @@ import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObj // @ts-ignore import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base'; // @ts-ignore +import { APIError } from '../models'; +// @ts-ignore import { Collection } from '../models'; // @ts-ignore import { CollectionFilter } from '../models'; @@ -169,7 +171,7 @@ export const CollectionsApiAxiosParamCreator = function (configuration?: Configu * @summary Get a list of collections * @param {number} [pageSize] Page size of the result * @param {string} [cursor] Cursor - * @param {'\"name\"' | '\"address\"' | '\"project_id\"' | '\"created_at\"' | '\"updated_at\"'} [orderBy] Property to sort by + * @param {'name' | 'address' | 'project_id' | 'created_at' | 'updated_at'} [orderBy] Property to sort by * @param {string} [direction] Direction to sort (asc/desc) * @param {string} [blacklist] List of collections not to be included, separated by commas * @param {string} [whitelist] List of collections to be included, separated by commas @@ -177,7 +179,7 @@ export const CollectionsApiAxiosParamCreator = function (configuration?: Configu * @param {*} [options] Override http request option. * @throws {RequiredError} */ - listCollections: async (pageSize?: number, cursor?: string, orderBy?: '\"name\"' | '\"address\"' | '\"project_id\"' | '\"created_at\"' | '\"updated_at\"', direction?: string, blacklist?: string, whitelist?: string, keyword?: string, options: AxiosRequestConfig = {}): Promise => { + listCollections: async (pageSize?: number, cursor?: string, orderBy?: 'name' | 'address' | 'project_id' | 'created_at' | 'updated_at', direction?: string, blacklist?: string, whitelist?: string, keyword?: string, options: AxiosRequestConfig = {}): Promise => { const localVarPath = `/v1/collections`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -335,7 +337,7 @@ export const CollectionsApiFp = function(configuration?: Configuration) { * @summary Get a list of collections * @param {number} [pageSize] Page size of the result * @param {string} [cursor] Cursor - * @param {'\"name\"' | '\"address\"' | '\"project_id\"' | '\"created_at\"' | '\"updated_at\"'} [orderBy] Property to sort by + * @param {'name' | 'address' | 'project_id' | 'created_at' | 'updated_at'} [orderBy] Property to sort by * @param {string} [direction] Direction to sort (asc/desc) * @param {string} [blacklist] List of collections not to be included, separated by commas * @param {string} [whitelist] List of collections to be included, separated by commas @@ -343,7 +345,7 @@ export const CollectionsApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async listCollections(pageSize?: number, cursor?: string, orderBy?: '\"name\"' | '\"address\"' | '\"project_id\"' | '\"created_at\"' | '\"updated_at\"', direction?: string, blacklist?: string, whitelist?: string, keyword?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + async listCollections(pageSize?: number, cursor?: string, orderBy?: 'name' | 'address' | 'project_id' | 'created_at' | 'updated_at', direction?: string, blacklist?: string, whitelist?: string, keyword?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.listCollections(pageSize, cursor, orderBy, direction, blacklist, whitelist, keyword, options); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, @@ -410,7 +412,7 @@ export const CollectionsApiFactory = function (configuration?: Configuration, ba * @summary Get a list of collections * @param {number} [pageSize] Page size of the result * @param {string} [cursor] Cursor - * @param {'\"name\"' | '\"address\"' | '\"project_id\"' | '\"created_at\"' | '\"updated_at\"'} [orderBy] Property to sort by + * @param {'name' | 'address' | 'project_id' | 'created_at' | 'updated_at'} [orderBy] Property to sort by * @param {string} [direction] Direction to sort (asc/desc) * @param {string} [blacklist] List of collections not to be included, separated by commas * @param {string} [whitelist] List of collections to be included, separated by commas @@ -418,7 +420,7 @@ export const CollectionsApiFactory = function (configuration?: Configuration, ba * @param {*} [options] Override http request option. * @throws {RequiredError} */ - listCollections(pageSize?: number, cursor?: string, orderBy?: '\"name\"' | '\"address\"' | '\"project_id\"' | '\"created_at\"' | '\"updated_at\"', direction?: string, blacklist?: string, whitelist?: string, keyword?: string, options?: any): AxiosPromise { + listCollections(pageSize?: number, cursor?: string, orderBy?: 'name' | 'address' | 'project_id' | 'created_at' | 'updated_at', direction?: string, blacklist?: string, whitelist?: string, keyword?: string, options?: any): AxiosPromise { return localVarFp.listCollections(pageSize, cursor, orderBy, direction, blacklist, whitelist, keyword, options).then((request) => request(axios, basePath)); }, /** @@ -529,10 +531,10 @@ export interface CollectionsApiListCollectionsRequest { /** * Property to sort by - * @type {'\"name\"' | '\"address\"' | '\"project_id\"' | '\"created_at\"' | '\"updated_at\"'} + * @type {'name' | 'address' | 'project_id' | 'created_at' | 'updated_at'} * @memberof CollectionsApiListCollections */ - readonly orderBy?: '\"name\"' | '\"address\"' | '\"project_id\"' | '\"created_at\"' | '\"updated_at\"' + readonly orderBy?: 'name' | 'address' | 'project_id' | 'created_at' | 'updated_at' /** * Direction to sort (asc/desc) diff --git a/src/api/domain/deposits-api.ts b/src/api/domain/deposits-api.ts index 315fd947..f6f28f1d 100644 --- a/src/api/domain/deposits-api.ts +++ b/src/api/domain/deposits-api.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/domain/encoding-api.ts b/src/api/domain/encoding-api.ts index ff1f87ff..54edc679 100644 --- a/src/api/domain/encoding-api.ts +++ b/src/api/domain/encoding-api.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/domain/metadata-api.ts b/src/api/domain/metadata-api.ts index 96bc6d96..030079b3 100644 --- a/src/api/domain/metadata-api.ts +++ b/src/api/domain/metadata-api.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -21,6 +21,8 @@ import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObj // @ts-ignore import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base'; // @ts-ignore +import { APIError } from '../models'; +// @ts-ignore import { AddMetadataSchemaToCollectionRequest } from '../models'; // @ts-ignore import { MetadataSchemaProperty } from '../models'; diff --git a/src/api/domain/metadata-refreshes-api.ts b/src/api/domain/metadata-refreshes-api.ts new file mode 100644 index 00000000..17a9aaec --- /dev/null +++ b/src/api/domain/metadata-refreshes-api.ts @@ -0,0 +1,629 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable X API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 3.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios'; +import { Configuration } from '../configuration'; +// Some imports not used depending on template conditions +// @ts-ignore +import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '../common'; +// @ts-ignore +import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base'; +// @ts-ignore +import { APIError } from '../models'; +// @ts-ignore +import { CreateMetadataRefreshRequest } from '../models'; +// @ts-ignore +import { CreateMetadataRefreshResponse } from '../models'; +// @ts-ignore +import { GetMetadataRefreshErrorsResponse } from '../models'; +// @ts-ignore +import { GetMetadataRefreshResponse } from '../models'; +// @ts-ignore +import { GetMetadataRefreshes } from '../models'; +/** + * MetadataRefreshesApi - axios parameter creator + * @export + */ +export const MetadataRefreshesApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Get a list of metadata refreshes + * @param {string} xImxEthSignature String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature + * @param {string} xImxEthTimestamp Unix Epoc timestamp + * @param {string} xImxEthAddress Wallet Address that signed the signature + * @param {number} [pageSize] Page size of the result + * @param {string} [cursor] Cursor + * @param {string} [collectionAddress] Collection address + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getAListOfMetadataRefreshes: async (xImxEthSignature: string, xImxEthTimestamp: string, xImxEthAddress: string, pageSize?: number, cursor?: string, collectionAddress?: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'xImxEthSignature' is not null or undefined + assertParamExists('getAListOfMetadataRefreshes', 'xImxEthSignature', xImxEthSignature) + // verify required parameter 'xImxEthTimestamp' is not null or undefined + assertParamExists('getAListOfMetadataRefreshes', 'xImxEthTimestamp', xImxEthTimestamp) + // verify required parameter 'xImxEthAddress' is not null or undefined + assertParamExists('getAListOfMetadataRefreshes', 'xImxEthAddress', xImxEthAddress) + const localVarPath = `/v1/metadata-refreshes`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + if (pageSize !== undefined) { + localVarQueryParameter['page_size'] = pageSize; + } + + if (cursor !== undefined) { + localVarQueryParameter['cursor'] = cursor; + } + + if (collectionAddress !== undefined) { + localVarQueryParameter['collection_address'] = collectionAddress; + } + + if (xImxEthSignature != null) { + localVarHeaderParameter['x-imx-eth-signature'] = String(xImxEthSignature); + } + + if (xImxEthTimestamp != null) { + localVarHeaderParameter['x-imx-eth-timestamp'] = String(xImxEthTimestamp); + } + + if (xImxEthAddress != null) { + localVarHeaderParameter['x-imx-eth-address'] = String(xImxEthAddress); + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get metadata refresh errors + * @param {string} refreshId The metadata refresh ID + * @param {string} xImxEthSignature String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature + * @param {string} xImxEthTimestamp Unix Epoc timestamp + * @param {string} xImxEthAddress Wallet Address that signed the signature + * @param {number} [pageSize] Page size of the result + * @param {string} [cursor] Cursor + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMetadataRefreshErrors: async (refreshId: string, xImxEthSignature: string, xImxEthTimestamp: string, xImxEthAddress: string, pageSize?: number, cursor?: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'refreshId' is not null or undefined + assertParamExists('getMetadataRefreshErrors', 'refreshId', refreshId) + // verify required parameter 'xImxEthSignature' is not null or undefined + assertParamExists('getMetadataRefreshErrors', 'xImxEthSignature', xImxEthSignature) + // verify required parameter 'xImxEthTimestamp' is not null or undefined + assertParamExists('getMetadataRefreshErrors', 'xImxEthTimestamp', xImxEthTimestamp) + // verify required parameter 'xImxEthAddress' is not null or undefined + assertParamExists('getMetadataRefreshErrors', 'xImxEthAddress', xImxEthAddress) + const localVarPath = `/v1/metadata-refreshes/{refresh_id}/errors` + .replace(`{${"refresh_id"}}`, encodeURIComponent(String(refreshId))); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + if (pageSize !== undefined) { + localVarQueryParameter['page_size'] = pageSize; + } + + if (cursor !== undefined) { + localVarQueryParameter['cursor'] = cursor; + } + + if (xImxEthSignature != null) { + localVarHeaderParameter['x-imx-eth-signature'] = String(xImxEthSignature); + } + + if (xImxEthTimestamp != null) { + localVarHeaderParameter['x-imx-eth-timestamp'] = String(xImxEthTimestamp); + } + + if (xImxEthAddress != null) { + localVarHeaderParameter['x-imx-eth-address'] = String(xImxEthAddress); + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get metadata refresh results + * @param {string} refreshId The metadata refresh ID + * @param {string} xImxEthSignature String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature + * @param {string} xImxEthTimestamp Unix Epoc timestamp + * @param {string} xImxEthAddress Wallet Address that signed the signature + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMetadataRefreshResults: async (refreshId: string, xImxEthSignature: string, xImxEthTimestamp: string, xImxEthAddress: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'refreshId' is not null or undefined + assertParamExists('getMetadataRefreshResults', 'refreshId', refreshId) + // verify required parameter 'xImxEthSignature' is not null or undefined + assertParamExists('getMetadataRefreshResults', 'xImxEthSignature', xImxEthSignature) + // verify required parameter 'xImxEthTimestamp' is not null or undefined + assertParamExists('getMetadataRefreshResults', 'xImxEthTimestamp', xImxEthTimestamp) + // verify required parameter 'xImxEthAddress' is not null or undefined + assertParamExists('getMetadataRefreshResults', 'xImxEthAddress', xImxEthAddress) + const localVarPath = `/v1/metadata-refreshes/{refresh_id}` + .replace(`{${"refresh_id"}}`, encodeURIComponent(String(refreshId))); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + if (xImxEthSignature != null) { + localVarHeaderParameter['x-imx-eth-signature'] = String(xImxEthSignature); + } + + if (xImxEthTimestamp != null) { + localVarHeaderParameter['x-imx-eth-timestamp'] = String(xImxEthTimestamp); + } + + if (xImxEthAddress != null) { + localVarHeaderParameter['x-imx-eth-address'] = String(xImxEthAddress); + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Request metadata refresh for provided tokens + * @param {string} xImxEthSignature String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature + * @param {string} xImxEthTimestamp Unix Epoc timestamp + * @param {string} xImxEthAddress Wallet Address that signed the signature + * @param {CreateMetadataRefreshRequest} createMetadataRefreshRequest Create metadata refresh request + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + requestAMetadataRefresh: async (xImxEthSignature: string, xImxEthTimestamp: string, xImxEthAddress: string, createMetadataRefreshRequest: CreateMetadataRefreshRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'xImxEthSignature' is not null or undefined + assertParamExists('requestAMetadataRefresh', 'xImxEthSignature', xImxEthSignature) + // verify required parameter 'xImxEthTimestamp' is not null or undefined + assertParamExists('requestAMetadataRefresh', 'xImxEthTimestamp', xImxEthTimestamp) + // verify required parameter 'xImxEthAddress' is not null or undefined + assertParamExists('requestAMetadataRefresh', 'xImxEthAddress', xImxEthAddress) + // verify required parameter 'createMetadataRefreshRequest' is not null or undefined + assertParamExists('requestAMetadataRefresh', 'createMetadataRefreshRequest', createMetadataRefreshRequest) + const localVarPath = `/v1/metadata-refreshes`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + if (xImxEthSignature != null) { + localVarHeaderParameter['x-imx-eth-signature'] = String(xImxEthSignature); + } + + if (xImxEthTimestamp != null) { + localVarHeaderParameter['x-imx-eth-timestamp'] = String(xImxEthTimestamp); + } + + if (xImxEthAddress != null) { + localVarHeaderParameter['x-imx-eth-address'] = String(xImxEthAddress); + } + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(createMetadataRefreshRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * MetadataRefreshesApi - functional programming interface + * @export + */ +export const MetadataRefreshesApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = MetadataRefreshesApiAxiosParamCreator(configuration) + return { + /** + * Get a list of metadata refreshes + * @param {string} xImxEthSignature String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature + * @param {string} xImxEthTimestamp Unix Epoc timestamp + * @param {string} xImxEthAddress Wallet Address that signed the signature + * @param {number} [pageSize] Page size of the result + * @param {string} [cursor] Cursor + * @param {string} [collectionAddress] Collection address + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getAListOfMetadataRefreshes(xImxEthSignature: string, xImxEthTimestamp: string, xImxEthAddress: string, pageSize?: number, cursor?: string, collectionAddress?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getAListOfMetadataRefreshes(xImxEthSignature, xImxEthTimestamp, xImxEthAddress, pageSize, cursor, collectionAddress, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get metadata refresh errors + * @param {string} refreshId The metadata refresh ID + * @param {string} xImxEthSignature String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature + * @param {string} xImxEthTimestamp Unix Epoc timestamp + * @param {string} xImxEthAddress Wallet Address that signed the signature + * @param {number} [pageSize] Page size of the result + * @param {string} [cursor] Cursor + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMetadataRefreshErrors(refreshId: string, xImxEthSignature: string, xImxEthTimestamp: string, xImxEthAddress: string, pageSize?: number, cursor?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMetadataRefreshErrors(refreshId, xImxEthSignature, xImxEthTimestamp, xImxEthAddress, pageSize, cursor, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get metadata refresh results + * @param {string} refreshId The metadata refresh ID + * @param {string} xImxEthSignature String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature + * @param {string} xImxEthTimestamp Unix Epoc timestamp + * @param {string} xImxEthAddress Wallet Address that signed the signature + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMetadataRefreshResults(refreshId: string, xImxEthSignature: string, xImxEthTimestamp: string, xImxEthAddress: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMetadataRefreshResults(refreshId, xImxEthSignature, xImxEthTimestamp, xImxEthAddress, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Request metadata refresh for provided tokens + * @param {string} xImxEthSignature String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature + * @param {string} xImxEthTimestamp Unix Epoc timestamp + * @param {string} xImxEthAddress Wallet Address that signed the signature + * @param {CreateMetadataRefreshRequest} createMetadataRefreshRequest Create metadata refresh request + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async requestAMetadataRefresh(xImxEthSignature: string, xImxEthTimestamp: string, xImxEthAddress: string, createMetadataRefreshRequest: CreateMetadataRefreshRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.requestAMetadataRefresh(xImxEthSignature, xImxEthTimestamp, xImxEthAddress, createMetadataRefreshRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * MetadataRefreshesApi - factory interface + * @export + */ +export const MetadataRefreshesApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = MetadataRefreshesApiFp(configuration) + return { + /** + * Get a list of metadata refreshes + * @param {string} xImxEthSignature String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature + * @param {string} xImxEthTimestamp Unix Epoc timestamp + * @param {string} xImxEthAddress Wallet Address that signed the signature + * @param {number} [pageSize] Page size of the result + * @param {string} [cursor] Cursor + * @param {string} [collectionAddress] Collection address + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getAListOfMetadataRefreshes(xImxEthSignature: string, xImxEthTimestamp: string, xImxEthAddress: string, pageSize?: number, cursor?: string, collectionAddress?: string, options?: any): AxiosPromise { + return localVarFp.getAListOfMetadataRefreshes(xImxEthSignature, xImxEthTimestamp, xImxEthAddress, pageSize, cursor, collectionAddress, options).then((request) => request(axios, basePath)); + }, + /** + * Get metadata refresh errors + * @param {string} refreshId The metadata refresh ID + * @param {string} xImxEthSignature String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature + * @param {string} xImxEthTimestamp Unix Epoc timestamp + * @param {string} xImxEthAddress Wallet Address that signed the signature + * @param {number} [pageSize] Page size of the result + * @param {string} [cursor] Cursor + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMetadataRefreshErrors(refreshId: string, xImxEthSignature: string, xImxEthTimestamp: string, xImxEthAddress: string, pageSize?: number, cursor?: string, options?: any): AxiosPromise { + return localVarFp.getMetadataRefreshErrors(refreshId, xImxEthSignature, xImxEthTimestamp, xImxEthAddress, pageSize, cursor, options).then((request) => request(axios, basePath)); + }, + /** + * Get metadata refresh results + * @param {string} refreshId The metadata refresh ID + * @param {string} xImxEthSignature String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature + * @param {string} xImxEthTimestamp Unix Epoc timestamp + * @param {string} xImxEthAddress Wallet Address that signed the signature + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMetadataRefreshResults(refreshId: string, xImxEthSignature: string, xImxEthTimestamp: string, xImxEthAddress: string, options?: any): AxiosPromise { + return localVarFp.getMetadataRefreshResults(refreshId, xImxEthSignature, xImxEthTimestamp, xImxEthAddress, options).then((request) => request(axios, basePath)); + }, + /** + * Request metadata refresh for provided tokens + * @param {string} xImxEthSignature String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature + * @param {string} xImxEthTimestamp Unix Epoc timestamp + * @param {string} xImxEthAddress Wallet Address that signed the signature + * @param {CreateMetadataRefreshRequest} createMetadataRefreshRequest Create metadata refresh request + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + requestAMetadataRefresh(xImxEthSignature: string, xImxEthTimestamp: string, xImxEthAddress: string, createMetadataRefreshRequest: CreateMetadataRefreshRequest, options?: any): AxiosPromise { + return localVarFp.requestAMetadataRefresh(xImxEthSignature, xImxEthTimestamp, xImxEthAddress, createMetadataRefreshRequest, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for getAListOfMetadataRefreshes operation in MetadataRefreshesApi. + * @export + * @interface MetadataRefreshesApiGetAListOfMetadataRefreshesRequest + */ +export interface MetadataRefreshesApiGetAListOfMetadataRefreshesRequest { + /** + * String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature + * @type {string} + * @memberof MetadataRefreshesApiGetAListOfMetadataRefreshes + */ + readonly xImxEthSignature: string + + /** + * Unix Epoc timestamp + * @type {string} + * @memberof MetadataRefreshesApiGetAListOfMetadataRefreshes + */ + readonly xImxEthTimestamp: string + + /** + * Wallet Address that signed the signature + * @type {string} + * @memberof MetadataRefreshesApiGetAListOfMetadataRefreshes + */ + readonly xImxEthAddress: string + + /** + * Page size of the result + * @type {number} + * @memberof MetadataRefreshesApiGetAListOfMetadataRefreshes + */ + readonly pageSize?: number + + /** + * Cursor + * @type {string} + * @memberof MetadataRefreshesApiGetAListOfMetadataRefreshes + */ + readonly cursor?: string + + /** + * Collection address + * @type {string} + * @memberof MetadataRefreshesApiGetAListOfMetadataRefreshes + */ + readonly collectionAddress?: string +} + +/** + * Request parameters for getMetadataRefreshErrors operation in MetadataRefreshesApi. + * @export + * @interface MetadataRefreshesApiGetMetadataRefreshErrorsRequest + */ +export interface MetadataRefreshesApiGetMetadataRefreshErrorsRequest { + /** + * The metadata refresh ID + * @type {string} + * @memberof MetadataRefreshesApiGetMetadataRefreshErrors + */ + readonly refreshId: string + + /** + * String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature + * @type {string} + * @memberof MetadataRefreshesApiGetMetadataRefreshErrors + */ + readonly xImxEthSignature: string + + /** + * Unix Epoc timestamp + * @type {string} + * @memberof MetadataRefreshesApiGetMetadataRefreshErrors + */ + readonly xImxEthTimestamp: string + + /** + * Wallet Address that signed the signature + * @type {string} + * @memberof MetadataRefreshesApiGetMetadataRefreshErrors + */ + readonly xImxEthAddress: string + + /** + * Page size of the result + * @type {number} + * @memberof MetadataRefreshesApiGetMetadataRefreshErrors + */ + readonly pageSize?: number + + /** + * Cursor + * @type {string} + * @memberof MetadataRefreshesApiGetMetadataRefreshErrors + */ + readonly cursor?: string +} + +/** + * Request parameters for getMetadataRefreshResults operation in MetadataRefreshesApi. + * @export + * @interface MetadataRefreshesApiGetMetadataRefreshResultsRequest + */ +export interface MetadataRefreshesApiGetMetadataRefreshResultsRequest { + /** + * The metadata refresh ID + * @type {string} + * @memberof MetadataRefreshesApiGetMetadataRefreshResults + */ + readonly refreshId: string + + /** + * String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature + * @type {string} + * @memberof MetadataRefreshesApiGetMetadataRefreshResults + */ + readonly xImxEthSignature: string + + /** + * Unix Epoc timestamp + * @type {string} + * @memberof MetadataRefreshesApiGetMetadataRefreshResults + */ + readonly xImxEthTimestamp: string + + /** + * Wallet Address that signed the signature + * @type {string} + * @memberof MetadataRefreshesApiGetMetadataRefreshResults + */ + readonly xImxEthAddress: string +} + +/** + * Request parameters for requestAMetadataRefresh operation in MetadataRefreshesApi. + * @export + * @interface MetadataRefreshesApiRequestAMetadataRefreshRequest + */ +export interface MetadataRefreshesApiRequestAMetadataRefreshRequest { + /** + * String created by signing wallet address and timestamp. See https://docs.x.immutable.com/docs/generate-imx-signature + * @type {string} + * @memberof MetadataRefreshesApiRequestAMetadataRefresh + */ + readonly xImxEthSignature: string + + /** + * Unix Epoc timestamp + * @type {string} + * @memberof MetadataRefreshesApiRequestAMetadataRefresh + */ + readonly xImxEthTimestamp: string + + /** + * Wallet Address that signed the signature + * @type {string} + * @memberof MetadataRefreshesApiRequestAMetadataRefresh + */ + readonly xImxEthAddress: string + + /** + * Create metadata refresh request + * @type {CreateMetadataRefreshRequest} + * @memberof MetadataRefreshesApiRequestAMetadataRefresh + */ + readonly createMetadataRefreshRequest: CreateMetadataRefreshRequest +} + +/** + * MetadataRefreshesApi - object-oriented interface + * @export + * @class MetadataRefreshesApi + * @extends {BaseAPI} + */ +export class MetadataRefreshesApi extends BaseAPI { + /** + * Get a list of metadata refreshes + * @param {MetadataRefreshesApiGetAListOfMetadataRefreshesRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MetadataRefreshesApi + */ + public getAListOfMetadataRefreshes(requestParameters: MetadataRefreshesApiGetAListOfMetadataRefreshesRequest, options?: AxiosRequestConfig) { + return MetadataRefreshesApiFp(this.configuration).getAListOfMetadataRefreshes(requestParameters.xImxEthSignature, requestParameters.xImxEthTimestamp, requestParameters.xImxEthAddress, requestParameters.pageSize, requestParameters.cursor, requestParameters.collectionAddress, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get metadata refresh errors + * @param {MetadataRefreshesApiGetMetadataRefreshErrorsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MetadataRefreshesApi + */ + public getMetadataRefreshErrors(requestParameters: MetadataRefreshesApiGetMetadataRefreshErrorsRequest, options?: AxiosRequestConfig) { + return MetadataRefreshesApiFp(this.configuration).getMetadataRefreshErrors(requestParameters.refreshId, requestParameters.xImxEthSignature, requestParameters.xImxEthTimestamp, requestParameters.xImxEthAddress, requestParameters.pageSize, requestParameters.cursor, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get metadata refresh results + * @param {MetadataRefreshesApiGetMetadataRefreshResultsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MetadataRefreshesApi + */ + public getMetadataRefreshResults(requestParameters: MetadataRefreshesApiGetMetadataRefreshResultsRequest, options?: AxiosRequestConfig) { + return MetadataRefreshesApiFp(this.configuration).getMetadataRefreshResults(requestParameters.refreshId, requestParameters.xImxEthSignature, requestParameters.xImxEthTimestamp, requestParameters.xImxEthAddress, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Request metadata refresh for provided tokens + * @param {MetadataRefreshesApiRequestAMetadataRefreshRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MetadataRefreshesApi + */ + public requestAMetadataRefresh(requestParameters: MetadataRefreshesApiRequestAMetadataRefreshRequest, options?: AxiosRequestConfig) { + return MetadataRefreshesApiFp(this.configuration).requestAMetadataRefresh(requestParameters.xImxEthSignature, requestParameters.xImxEthTimestamp, requestParameters.xImxEthAddress, requestParameters.createMetadataRefreshRequest, options).then((request) => request(this.axios, this.basePath)); + } +} diff --git a/src/api/domain/mints-api.ts b/src/api/domain/mints-api.ts index 6a65ef82..d5dae752 100644 --- a/src/api/domain/mints-api.ts +++ b/src/api/domain/mints-api.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -21,6 +21,8 @@ import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObj // @ts-ignore import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base'; // @ts-ignore +import { APIError } from '../models'; +// @ts-ignore import { ListMintsResponse } from '../models'; // @ts-ignore import { Mint } from '../models'; @@ -113,7 +115,7 @@ export const MintsApiAxiosParamCreator = function (configuration?: Configuration * @summary Get a list of mints * @param {number} [pageSize] Page size of the result * @param {string} [cursor] Cursor - * @param {string} [orderBy] Property to sort by + * @param {'transaction_id' | 'token_id' | 'created_at' | 'updated_at'} [orderBy] Property to sort by * @param {string} [direction] Direction to sort (asc/desc) * @param {string} [user] Ethereum address of the user who submitted this mint * @param {string} [status] Status of this mint @@ -130,7 +132,7 @@ export const MintsApiAxiosParamCreator = function (configuration?: Configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - listMints: async (pageSize?: number, cursor?: string, orderBy?: string, direction?: string, user?: string, status?: string, minTimestamp?: string, maxTimestamp?: string, tokenType?: string, tokenId?: string, assetId?: string, tokenName?: string, tokenAddress?: string, minQuantity?: string, maxQuantity?: string, metadata?: string, options: AxiosRequestConfig = {}): Promise => { + listMints: async (pageSize?: number, cursor?: string, orderBy?: 'transaction_id' | 'token_id' | 'created_at' | 'updated_at', direction?: string, user?: string, status?: string, minTimestamp?: string, maxTimestamp?: string, tokenType?: string, tokenId?: string, assetId?: string, tokenName?: string, tokenAddress?: string, minQuantity?: string, maxQuantity?: string, metadata?: string, options: AxiosRequestConfig = {}): Promise => { const localVarPath = `/v1/mints`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -292,7 +294,7 @@ export const MintsApiFp = function(configuration?: Configuration) { * @summary Get a list of mints * @param {number} [pageSize] Page size of the result * @param {string} [cursor] Cursor - * @param {string} [orderBy] Property to sort by + * @param {'transaction_id' | 'token_id' | 'created_at' | 'updated_at'} [orderBy] Property to sort by * @param {string} [direction] Direction to sort (asc/desc) * @param {string} [user] Ethereum address of the user who submitted this mint * @param {string} [status] Status of this mint @@ -309,7 +311,7 @@ export const MintsApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async listMints(pageSize?: number, cursor?: string, orderBy?: string, direction?: string, user?: string, status?: string, minTimestamp?: string, maxTimestamp?: string, tokenType?: string, tokenId?: string, assetId?: string, tokenName?: string, tokenAddress?: string, minQuantity?: string, maxQuantity?: string, metadata?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + async listMints(pageSize?: number, cursor?: string, orderBy?: 'transaction_id' | 'token_id' | 'created_at' | 'updated_at', direction?: string, user?: string, status?: string, minTimestamp?: string, maxTimestamp?: string, tokenType?: string, tokenId?: string, assetId?: string, tokenName?: string, tokenAddress?: string, minQuantity?: string, maxQuantity?: string, metadata?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.listMints(pageSize, cursor, orderBy, direction, user, status, minTimestamp, maxTimestamp, tokenType, tokenId, assetId, tokenName, tokenAddress, minQuantity, maxQuantity, metadata, options); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, @@ -360,7 +362,7 @@ export const MintsApiFactory = function (configuration?: Configuration, basePath * @summary Get a list of mints * @param {number} [pageSize] Page size of the result * @param {string} [cursor] Cursor - * @param {string} [orderBy] Property to sort by + * @param {'transaction_id' | 'token_id' | 'created_at' | 'updated_at'} [orderBy] Property to sort by * @param {string} [direction] Direction to sort (asc/desc) * @param {string} [user] Ethereum address of the user who submitted this mint * @param {string} [status] Status of this mint @@ -377,7 +379,7 @@ export const MintsApiFactory = function (configuration?: Configuration, basePath * @param {*} [options] Override http request option. * @throws {RequiredError} */ - listMints(pageSize?: number, cursor?: string, orderBy?: string, direction?: string, user?: string, status?: string, minTimestamp?: string, maxTimestamp?: string, tokenType?: string, tokenId?: string, assetId?: string, tokenName?: string, tokenAddress?: string, minQuantity?: string, maxQuantity?: string, metadata?: string, options?: any): AxiosPromise { + listMints(pageSize?: number, cursor?: string, orderBy?: 'transaction_id' | 'token_id' | 'created_at' | 'updated_at', direction?: string, user?: string, status?: string, minTimestamp?: string, maxTimestamp?: string, tokenType?: string, tokenId?: string, assetId?: string, tokenName?: string, tokenAddress?: string, minQuantity?: string, maxQuantity?: string, metadata?: string, options?: any): AxiosPromise { return localVarFp.listMints(pageSize, cursor, orderBy, direction, user, status, minTimestamp, maxTimestamp, tokenType, tokenId, assetId, tokenName, tokenAddress, minQuantity, maxQuantity, metadata, options).then((request) => request(axios, basePath)); }, /** @@ -450,10 +452,10 @@ export interface MintsApiListMintsRequest { /** * Property to sort by - * @type {string} + * @type {'transaction_id' | 'token_id' | 'created_at' | 'updated_at'} * @memberof MintsApiListMints */ - readonly orderBy?: string + readonly orderBy?: 'transaction_id' | 'token_id' | 'created_at' | 'updated_at' /** * Direction to sort (asc/desc) diff --git a/src/api/domain/orders-api.ts b/src/api/domain/orders-api.ts index d24a086c..58e51b99 100644 --- a/src/api/domain/orders-api.ts +++ b/src/api/domain/orders-api.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/domain/projects-api.ts b/src/api/domain/projects-api.ts index 9e11288f..1aa3cb7c 100644 --- a/src/api/domain/projects-api.ts +++ b/src/api/domain/projects-api.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -21,6 +21,8 @@ import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObj // @ts-ignore import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base'; // @ts-ignore +import { APIError } from '../models'; +// @ts-ignore import { CreateProjectRequest } from '../models'; // @ts-ignore import { CreateProjectResponse } from '../models'; diff --git a/src/api/domain/tokens-api.ts b/src/api/domain/tokens-api.ts index 1f1e010a..02fb3555 100644 --- a/src/api/domain/tokens-api.ts +++ b/src/api/domain/tokens-api.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -67,12 +67,16 @@ export const TokensApiAxiosParamCreator = function (configuration?: Configuratio /** * Get a list of tokens * @summary Get a list of tokens + * @param {number} [pageSize] Page size of the result + * @param {string} [cursor] Cursor + * @param {'contract_address' | 'name' | 'symbol'} [orderBy] Property to sort by + * @param {string} [direction] Direction to sort (asc/desc) * @param {string} [address] Contract address of the token * @param {string} [symbols] Token symbols for the token, e.g. ?symbols=IMX,ETH * @param {*} [options] Override http request option. * @throws {RequiredError} */ - listTokens: async (address?: string, symbols?: string, options: AxiosRequestConfig = {}): Promise => { + listTokens: async (pageSize?: number, cursor?: string, orderBy?: 'contract_address' | 'name' | 'symbol', direction?: string, address?: string, symbols?: string, options: AxiosRequestConfig = {}): Promise => { const localVarPath = `/v1/tokens`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -85,6 +89,22 @@ export const TokensApiAxiosParamCreator = function (configuration?: Configuratio const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (pageSize !== undefined) { + localVarQueryParameter['page_size'] = pageSize; + } + + if (cursor !== undefined) { + localVarQueryParameter['cursor'] = cursor; + } + + if (orderBy !== undefined) { + localVarQueryParameter['order_by'] = orderBy; + } + + if (direction !== undefined) { + localVarQueryParameter['direction'] = direction; + } + if (address !== undefined) { localVarQueryParameter['address'] = address; } @@ -128,13 +148,17 @@ export const TokensApiFp = function(configuration?: Configuration) { /** * Get a list of tokens * @summary Get a list of tokens + * @param {number} [pageSize] Page size of the result + * @param {string} [cursor] Cursor + * @param {'contract_address' | 'name' | 'symbol'} [orderBy] Property to sort by + * @param {string} [direction] Direction to sort (asc/desc) * @param {string} [address] Contract address of the token * @param {string} [symbols] Token symbols for the token, e.g. ?symbols=IMX,ETH * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async listTokens(address?: string, symbols?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listTokens(address, symbols, options); + async listTokens(pageSize?: number, cursor?: string, orderBy?: 'contract_address' | 'name' | 'symbol', direction?: string, address?: string, symbols?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.listTokens(pageSize, cursor, orderBy, direction, address, symbols, options); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, } @@ -160,13 +184,17 @@ export const TokensApiFactory = function (configuration?: Configuration, basePat /** * Get a list of tokens * @summary Get a list of tokens + * @param {number} [pageSize] Page size of the result + * @param {string} [cursor] Cursor + * @param {'contract_address' | 'name' | 'symbol'} [orderBy] Property to sort by + * @param {string} [direction] Direction to sort (asc/desc) * @param {string} [address] Contract address of the token * @param {string} [symbols] Token symbols for the token, e.g. ?symbols=IMX,ETH * @param {*} [options] Override http request option. * @throws {RequiredError} */ - listTokens(address?: string, symbols?: string, options?: any): AxiosPromise { - return localVarFp.listTokens(address, symbols, options).then((request) => request(axios, basePath)); + listTokens(pageSize?: number, cursor?: string, orderBy?: 'contract_address' | 'name' | 'symbol', direction?: string, address?: string, symbols?: string, options?: any): AxiosPromise { + return localVarFp.listTokens(pageSize, cursor, orderBy, direction, address, symbols, options).then((request) => request(axios, basePath)); }, }; }; @@ -191,6 +219,34 @@ export interface TokensApiGetTokenRequest { * @interface TokensApiListTokensRequest */ export interface TokensApiListTokensRequest { + /** + * Page size of the result + * @type {number} + * @memberof TokensApiListTokens + */ + readonly pageSize?: number + + /** + * Cursor + * @type {string} + * @memberof TokensApiListTokens + */ + readonly cursor?: string + + /** + * Property to sort by + * @type {'contract_address' | 'name' | 'symbol'} + * @memberof TokensApiListTokens + */ + readonly orderBy?: 'contract_address' | 'name' | 'symbol' + + /** + * Direction to sort (asc/desc) + * @type {string} + * @memberof TokensApiListTokens + */ + readonly direction?: string + /** * Contract address of the token * @type {string} @@ -234,6 +290,6 @@ export class TokensApi extends BaseAPI { * @memberof TokensApi */ public listTokens(requestParameters: TokensApiListTokensRequest = {}, options?: AxiosRequestConfig) { - return TokensApiFp(this.configuration).listTokens(requestParameters.address, requestParameters.symbols, options).then((request) => request(this.axios, this.basePath)); + return TokensApiFp(this.configuration).listTokens(requestParameters.pageSize, requestParameters.cursor, requestParameters.orderBy, requestParameters.direction, requestParameters.address, requestParameters.symbols, options).then((request) => request(this.axios, this.basePath)); } } diff --git a/src/api/domain/trades-api.ts b/src/api/domain/trades-api.ts index 2056bfd2..36be2605 100644 --- a/src/api/domain/trades-api.ts +++ b/src/api/domain/trades-api.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -161,10 +161,8 @@ export const TradesApiAxiosParamCreator = function (configuration?: Configuratio /** * Get a list of trades * @summary Get a list of trades - * @param {string} [partyAOrderId] Party A\'s (buy order) order id * @param {string} [partyATokenType] Party A\'s (buy order) token type of currency used to buy * @param {string} [partyATokenAddress] Party A\'s (buy order) token address of currency used to buy - * @param {string} [partyBOrderId] Party B\'s (sell order) order id * @param {string} [partyBTokenType] Party B\'s (sell order) token type of NFT sold - always ERC721 * @param {string} [partyBTokenAddress] Party B\'s (sell order) collection address of NFT sold * @param {string} [partyBTokenId] Party B\'s (sell order) token id of NFT sold @@ -177,7 +175,7 @@ export const TradesApiAxiosParamCreator = function (configuration?: Configuratio * @param {*} [options] Override http request option. * @throws {RequiredError} */ - listTrades: async (partyAOrderId?: string, partyATokenType?: string, partyATokenAddress?: string, partyBOrderId?: string, partyBTokenType?: string, partyBTokenAddress?: string, partyBTokenId?: string, pageSize?: number, cursor?: string, orderBy?: string, direction?: string, minTimestamp?: string, maxTimestamp?: string, options: AxiosRequestConfig = {}): Promise => { + listTrades: async (partyATokenType?: string, partyATokenAddress?: string, partyBTokenType?: string, partyBTokenAddress?: string, partyBTokenId?: string, pageSize?: number, cursor?: string, orderBy?: string, direction?: string, minTimestamp?: string, maxTimestamp?: string, options: AxiosRequestConfig = {}): Promise => { const localVarPath = `/v1/trades`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -190,10 +188,6 @@ export const TradesApiAxiosParamCreator = function (configuration?: Configuratio const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; - if (partyAOrderId !== undefined) { - localVarQueryParameter['party_a_order_id'] = partyAOrderId; - } - if (partyATokenType !== undefined) { localVarQueryParameter['party_a_token_type'] = partyATokenType; } @@ -202,10 +196,6 @@ export const TradesApiAxiosParamCreator = function (configuration?: Configuratio localVarQueryParameter['party_a_token_address'] = partyATokenAddress; } - if (partyBOrderId !== undefined) { - localVarQueryParameter['party_b_order_id'] = partyBOrderId; - } - if (partyBTokenType !== undefined) { localVarQueryParameter['party_b_token_type'] = partyBTokenType; } @@ -301,10 +291,8 @@ export const TradesApiFp = function(configuration?: Configuration) { /** * Get a list of trades * @summary Get a list of trades - * @param {string} [partyAOrderId] Party A\'s (buy order) order id * @param {string} [partyATokenType] Party A\'s (buy order) token type of currency used to buy * @param {string} [partyATokenAddress] Party A\'s (buy order) token address of currency used to buy - * @param {string} [partyBOrderId] Party B\'s (sell order) order id * @param {string} [partyBTokenType] Party B\'s (sell order) token type of NFT sold - always ERC721 * @param {string} [partyBTokenAddress] Party B\'s (sell order) collection address of NFT sold * @param {string} [partyBTokenId] Party B\'s (sell order) token id of NFT sold @@ -317,8 +305,8 @@ export const TradesApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async listTrades(partyAOrderId?: string, partyATokenType?: string, partyATokenAddress?: string, partyBOrderId?: string, partyBTokenType?: string, partyBTokenAddress?: string, partyBTokenId?: string, pageSize?: number, cursor?: string, orderBy?: string, direction?: string, minTimestamp?: string, maxTimestamp?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listTrades(partyAOrderId, partyATokenType, partyATokenAddress, partyBOrderId, partyBTokenType, partyBTokenAddress, partyBTokenId, pageSize, cursor, orderBy, direction, minTimestamp, maxTimestamp, options); + async listTrades(partyATokenType?: string, partyATokenAddress?: string, partyBTokenType?: string, partyBTokenAddress?: string, partyBTokenId?: string, pageSize?: number, cursor?: string, orderBy?: string, direction?: string, minTimestamp?: string, maxTimestamp?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.listTrades(partyATokenType, partyATokenAddress, partyBTokenType, partyBTokenAddress, partyBTokenId, pageSize, cursor, orderBy, direction, minTimestamp, maxTimestamp, options); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, } @@ -366,10 +354,8 @@ export const TradesApiFactory = function (configuration?: Configuration, basePat /** * Get a list of trades * @summary Get a list of trades - * @param {string} [partyAOrderId] Party A\'s (buy order) order id * @param {string} [partyATokenType] Party A\'s (buy order) token type of currency used to buy * @param {string} [partyATokenAddress] Party A\'s (buy order) token address of currency used to buy - * @param {string} [partyBOrderId] Party B\'s (sell order) order id * @param {string} [partyBTokenType] Party B\'s (sell order) token type of NFT sold - always ERC721 * @param {string} [partyBTokenAddress] Party B\'s (sell order) collection address of NFT sold * @param {string} [partyBTokenId] Party B\'s (sell order) token id of NFT sold @@ -382,8 +368,8 @@ export const TradesApiFactory = function (configuration?: Configuration, basePat * @param {*} [options] Override http request option. * @throws {RequiredError} */ - listTrades(partyAOrderId?: string, partyATokenType?: string, partyATokenAddress?: string, partyBOrderId?: string, partyBTokenType?: string, partyBTokenAddress?: string, partyBTokenId?: string, pageSize?: number, cursor?: string, orderBy?: string, direction?: string, minTimestamp?: string, maxTimestamp?: string, options?: any): AxiosPromise { - return localVarFp.listTrades(partyAOrderId, partyATokenType, partyATokenAddress, partyBOrderId, partyBTokenType, partyBTokenAddress, partyBTokenId, pageSize, cursor, orderBy, direction, minTimestamp, maxTimestamp, options).then((request) => request(axios, basePath)); + listTrades(partyATokenType?: string, partyATokenAddress?: string, partyBTokenType?: string, partyBTokenAddress?: string, partyBTokenId?: string, pageSize?: number, cursor?: string, orderBy?: string, direction?: string, minTimestamp?: string, maxTimestamp?: string, options?: any): AxiosPromise { + return localVarFp.listTrades(partyATokenType, partyATokenAddress, partyBTokenType, partyBTokenAddress, partyBTokenId, pageSize, cursor, orderBy, direction, minTimestamp, maxTimestamp, options).then((request) => request(axios, basePath)); }, }; }; @@ -450,13 +436,6 @@ export interface TradesApiGetTradeRequest { * @interface TradesApiListTradesRequest */ export interface TradesApiListTradesRequest { - /** - * Party A\'s (buy order) order id - * @type {string} - * @memberof TradesApiListTrades - */ - readonly partyAOrderId?: string - /** * Party A\'s (buy order) token type of currency used to buy * @type {string} @@ -471,13 +450,6 @@ export interface TradesApiListTradesRequest { */ readonly partyATokenAddress?: string - /** - * Party B\'s (sell order) order id - * @type {string} - * @memberof TradesApiListTrades - */ - readonly partyBOrderId?: string - /** * Party B\'s (sell order) token type of NFT sold - always ERC721 * @type {string} @@ -594,6 +566,6 @@ export class TradesApi extends BaseAPI { * @memberof TradesApi */ public listTrades(requestParameters: TradesApiListTradesRequest = {}, options?: AxiosRequestConfig) { - return TradesApiFp(this.configuration).listTrades(requestParameters.partyAOrderId, requestParameters.partyATokenType, requestParameters.partyATokenAddress, requestParameters.partyBOrderId, requestParameters.partyBTokenType, requestParameters.partyBTokenAddress, requestParameters.partyBTokenId, requestParameters.pageSize, requestParameters.cursor, requestParameters.orderBy, requestParameters.direction, requestParameters.minTimestamp, requestParameters.maxTimestamp, options).then((request) => request(this.axios, this.basePath)); + return TradesApiFp(this.configuration).listTrades(requestParameters.partyATokenType, requestParameters.partyATokenAddress, requestParameters.partyBTokenType, requestParameters.partyBTokenAddress, requestParameters.partyBTokenId, requestParameters.pageSize, requestParameters.cursor, requestParameters.orderBy, requestParameters.direction, requestParameters.minTimestamp, requestParameters.maxTimestamp, options).then((request) => request(this.axios, this.basePath)); } } diff --git a/src/api/domain/transfers-api.ts b/src/api/domain/transfers-api.ts index 29c9ae65..888ce48e 100644 --- a/src/api/domain/transfers-api.ts +++ b/src/api/domain/transfers-api.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -21,6 +21,8 @@ import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObj // @ts-ignore import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base'; // @ts-ignore +import { APIError } from '../models'; +// @ts-ignore import { CreateTransferRequest } from '../models'; // @ts-ignore import { CreateTransferRequestV1 } from '../models'; diff --git a/src/api/domain/users-api.ts b/src/api/domain/users-api.ts index 64ad0930..a79f4f02 100644 --- a/src/api/domain/users-api.ts +++ b/src/api/domain/users-api.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -21,6 +21,8 @@ import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObj // @ts-ignore import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base'; // @ts-ignore +import { APIError } from '../models'; +// @ts-ignore import { GetSignableRegistrationOffchainResponse } from '../models'; // @ts-ignore import { GetSignableRegistrationRequest } from '../models'; diff --git a/src/api/domain/withdrawals-api.ts b/src/api/domain/withdrawals-api.ts index 13b3b9b1..adb770b5 100644 --- a/src/api/domain/withdrawals-api.ts +++ b/src/api/domain/withdrawals-api.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/index.ts b/src/api/index.ts index d5f74e20..78d159ff 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/add-metadata-schema-to-collection-request.ts b/src/api/models/add-metadata-schema-to-collection-request.ts index 249ca05c..55288702 100644 --- a/src/api/models/add-metadata-schema-to-collection-request.ts +++ b/src/api/models/add-metadata-schema-to-collection-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { MetadataSchemaRequest } from './metadata-schema-request'; /** diff --git a/src/api/models/apierror.ts b/src/api/models/apierror.ts new file mode 100644 index 00000000..baea72bf --- /dev/null +++ b/src/api/models/apierror.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable X API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 3.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface APIError + */ +export interface APIError { + /** + * The error code + * @type {string} + * @memberof APIError + */ + 'code': string; + /** + * The error details + * @type {string} + * @memberof APIError + */ + 'details'?: string; + /** + * The error message + * @type {string} + * @memberof APIError + */ + 'message': string; +} + diff --git a/src/api/models/asset-properties.ts b/src/api/models/asset-properties.ts index 62e3d1d4..f6e67708 100644 --- a/src/api/models/asset-properties.ts +++ b/src/api/models/asset-properties.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { CollectionDetails } from './collection-details'; /** diff --git a/src/api/models/asset-with-orders.ts b/src/api/models/asset-with-orders.ts index 7eaaedf4..02a141b3 100644 --- a/src/api/models/asset-with-orders.ts +++ b/src/api/models/asset-with-orders.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,8 +13,14 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { CollectionDetails } from './collection-details'; +// May contain unused imports in some cases +// @ts-ignore import { Fee } from './fee'; +// May contain unused imports in some cases +// @ts-ignore import { OrderDetails } from './order-details'; /** diff --git a/src/api/models/asset.ts b/src/api/models/asset.ts index 44cd35fb..b8cb0fe1 100644 --- a/src/api/models/asset.ts +++ b/src/api/models/asset.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,8 +13,14 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { CollectionDetails } from './collection-details'; +// May contain unused imports in some cases +// @ts-ignore import { Fee } from './fee'; +// May contain unused imports in some cases +// @ts-ignore import { OrderDetails } from './order-details'; /** diff --git a/src/api/models/balance.ts b/src/api/models/balance.ts index 07d39949..82f5a539 100644 --- a/src/api/models/balance.ts +++ b/src/api/models/balance.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/cancel-order-request.ts b/src/api/models/cancel-order-request.ts index 7e65b980..bff0d786 100644 --- a/src/api/models/cancel-order-request.ts +++ b/src/api/models/cancel-order-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/cancel-order-response.ts b/src/api/models/cancel-order-response.ts index ade53121..819a018a 100644 --- a/src/api/models/cancel-order-response.ts +++ b/src/api/models/cancel-order-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/collection-details.ts b/src/api/models/collection-details.ts index 2e7cebbf..0bdc9e32 100644 --- a/src/api/models/collection-details.ts +++ b/src/api/models/collection-details.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/collection-filter.ts b/src/api/models/collection-filter.ts index 02432671..adf4f4b3 100644 --- a/src/api/models/collection-filter.ts +++ b/src/api/models/collection-filter.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { Range } from './range'; /** diff --git a/src/api/models/collection.ts b/src/api/models/collection.ts index 0f88d301..0c603c5c 100644 --- a/src/api/models/collection.ts +++ b/src/api/models/collection.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -32,6 +32,12 @@ export interface Collection { * @memberof Collection */ 'collection_image_url': string | null; + /** + * Timestamp of when the collection was created + * @type {string} + * @memberof Collection + */ + 'created_at': string | null; /** * Description of the collection * @type {string} @@ -68,5 +74,11 @@ export interface Collection { * @memberof Collection */ 'project_owner_address': string; + /** + * Timestamp of when the collection was updated + * @type {string} + * @memberof Collection + */ + 'updated_at': string | null; } diff --git a/src/api/models/create-collection-request.ts b/src/api/models/create-collection-request.ts index d58a8a1c..9509d3c9 100644 --- a/src/api/models/create-collection-request.ts +++ b/src/api/models/create-collection-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/create-metadata-refresh-request.ts b/src/api/models/create-metadata-refresh-request.ts new file mode 100644 index 00000000..f401a001 --- /dev/null +++ b/src/api/models/create-metadata-refresh-request.ts @@ -0,0 +1,36 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable X API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 3.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface CreateMetadataRefreshRequest + */ +export interface CreateMetadataRefreshRequest { + /** + * The collection contract address + * @type {string} + * @memberof CreateMetadataRefreshRequest + */ + 'collection_address': string; + /** + * The tokens to refresh + * @type {Array} + * @memberof CreateMetadataRefreshRequest + */ + 'token_ids': Array; +} + diff --git a/src/api/models/create-metadata-refresh-response.ts b/src/api/models/create-metadata-refresh-response.ts new file mode 100644 index 00000000..aaf7f8ad --- /dev/null +++ b/src/api/models/create-metadata-refresh-response.ts @@ -0,0 +1,30 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable X API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 3.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface CreateMetadataRefreshResponse + */ +export interface CreateMetadataRefreshResponse { + /** + * The metadata refresh ID + * @type {string} + * @memberof CreateMetadataRefreshResponse + */ + 'refresh_id': string; +} + diff --git a/src/api/models/create-order-request.ts b/src/api/models/create-order-request.ts index 784649a5..fa690624 100644 --- a/src/api/models/create-order-request.ts +++ b/src/api/models/create-order-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { FeeEntry } from './fee-entry'; /** diff --git a/src/api/models/create-order-response.ts b/src/api/models/create-order-response.ts index b51b2ab3..144d1953 100644 --- a/src/api/models/create-order-response.ts +++ b/src/api/models/create-order-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -26,6 +26,12 @@ export interface CreateOrderResponse { * @memberof CreateOrderResponse */ 'order_id': number; + /** + * Request ID as a reference for an asynchronous order creation request + * @type {string} + * @memberof CreateOrderResponse + */ + 'request_id'?: string; /** * Status of the created order * @type {string} diff --git a/src/api/models/create-project-request.ts b/src/api/models/create-project-request.ts index e8b02caf..202dce67 100644 --- a/src/api/models/create-project-request.ts +++ b/src/api/models/create-project-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/create-project-response.ts b/src/api/models/create-project-response.ts index 15fb1c81..6a21d931 100644 --- a/src/api/models/create-project-response.ts +++ b/src/api/models/create-project-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/create-trade-request-v1.ts b/src/api/models/create-trade-request-v1.ts index 1ddda24e..5919b9dd 100644 --- a/src/api/models/create-trade-request-v1.ts +++ b/src/api/models/create-trade-request-v1.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,7 +13,11 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { FeeEntry } from './fee-entry'; +// May contain unused imports in some cases +// @ts-ignore import { FeeInfo } from './fee-info'; /** diff --git a/src/api/models/create-trade-response.ts b/src/api/models/create-trade-response.ts index 7bd38977..9e5c4f2d 100644 --- a/src/api/models/create-trade-response.ts +++ b/src/api/models/create-trade-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -21,7 +21,7 @@ */ export interface CreateTradeResponse { /** - * Request ID that returns when a trade initiated through risk-manager + * Request ID as a reference for an asynchronous trade creation request * @type {string} * @memberof CreateTradeResponse */ diff --git a/src/api/models/create-transfer-request-v1.ts b/src/api/models/create-transfer-request-v1.ts index e4a13635..bf666068 100644 --- a/src/api/models/create-transfer-request-v1.ts +++ b/src/api/models/create-transfer-request-v1.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/create-transfer-request.ts b/src/api/models/create-transfer-request.ts index 3421a493..b816cbf3 100644 --- a/src/api/models/create-transfer-request.ts +++ b/src/api/models/create-transfer-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { TransferRequest } from './transfer-request'; /** diff --git a/src/api/models/create-transfer-response-v1.ts b/src/api/models/create-transfer-response-v1.ts index 61dbdb7b..7f02d411 100644 --- a/src/api/models/create-transfer-response-v1.ts +++ b/src/api/models/create-transfer-response-v1.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/create-transfer-response.ts b/src/api/models/create-transfer-response.ts index e09b2ec7..042b58ff 100644 --- a/src/api/models/create-transfer-response.ts +++ b/src/api/models/create-transfer-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/create-withdrawal-request.ts b/src/api/models/create-withdrawal-request.ts index a7075a0f..77069087 100644 --- a/src/api/models/create-withdrawal-request.ts +++ b/src/api/models/create-withdrawal-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/create-withdrawal-response.ts b/src/api/models/create-withdrawal-response.ts index 3a19de23..4acf7786 100644 --- a/src/api/models/create-withdrawal-response.ts +++ b/src/api/models/create-withdrawal-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/deposit.ts b/src/api/models/deposit.ts index 8e3fa607..194833ed 100644 --- a/src/api/models/deposit.ts +++ b/src/api/models/deposit.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { Token } from './token'; /** diff --git a/src/api/models/encode-asset-request-token.ts b/src/api/models/encode-asset-request-token.ts index 38c3a620..aaf71dbe 100644 --- a/src/api/models/encode-asset-request-token.ts +++ b/src/api/models/encode-asset-request-token.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { EncodeAssetTokenData } from './encode-asset-token-data'; /** diff --git a/src/api/models/encode-asset-request.ts b/src/api/models/encode-asset-request.ts index 82e236ba..4894a64d 100644 --- a/src/api/models/encode-asset-request.ts +++ b/src/api/models/encode-asset-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { EncodeAssetRequestToken } from './encode-asset-request-token'; /** diff --git a/src/api/models/encode-asset-response.ts b/src/api/models/encode-asset-response.ts index 5b94791e..3610289f 100644 --- a/src/api/models/encode-asset-response.ts +++ b/src/api/models/encode-asset-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/encode-asset-token-data.ts b/src/api/models/encode-asset-token-data.ts index 92da6928..737dcd0e 100644 --- a/src/api/models/encode-asset-token-data.ts +++ b/src/api/models/encode-asset-token-data.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/fee-data.ts b/src/api/models/fee-data.ts index 72280c0b..ef8b5e5b 100644 --- a/src/api/models/fee-data.ts +++ b/src/api/models/fee-data.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/fee-entry.ts b/src/api/models/fee-entry.ts index 62d833fa..e42f038b 100644 --- a/src/api/models/fee-entry.ts +++ b/src/api/models/fee-entry.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/fee-info.ts b/src/api/models/fee-info.ts index 60cb765d..2fe00157 100644 --- a/src/api/models/fee-info.ts +++ b/src/api/models/fee-info.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/fee-token.ts b/src/api/models/fee-token.ts index 640e6d37..d3512377 100644 --- a/src/api/models/fee-token.ts +++ b/src/api/models/fee-token.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { FeeData } from './fee-data'; /** diff --git a/src/api/models/fee.ts b/src/api/models/fee.ts index 5fd41177..4598397c 100644 --- a/src/api/models/fee.ts +++ b/src/api/models/fee.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/get-metadata-refresh-errors-response.ts b/src/api/models/get-metadata-refresh-errors-response.ts new file mode 100644 index 00000000..cc40e735 --- /dev/null +++ b/src/api/models/get-metadata-refresh-errors-response.ts @@ -0,0 +1,45 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable X API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 3.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { MetadataRefreshErrors } from './metadata-refresh-errors'; + +/** + * + * @export + * @interface GetMetadataRefreshErrorsResponse + */ +export interface GetMetadataRefreshErrorsResponse { + /** + * Generated cursor returned by previous query + * @type {string} + * @memberof GetMetadataRefreshErrorsResponse + */ + 'cursor': string; + /** + * Remaining results flag. 1: there are remaining results matching this query, 0: no remaining results + * @type {number} + * @memberof GetMetadataRefreshErrorsResponse + */ + 'remaining': number; + /** + * Metadata refresh errors matching query parameters + * @type {Array} + * @memberof GetMetadataRefreshErrorsResponse + */ + 'result': Array; +} + diff --git a/src/api/models/get-metadata-refresh-response.ts b/src/api/models/get-metadata-refresh-response.ts new file mode 100644 index 00000000..da05afdd --- /dev/null +++ b/src/api/models/get-metadata-refresh-response.ts @@ -0,0 +1,72 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable X API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 3.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { MetadataRefreshSummary } from './metadata-refresh-summary'; + +/** + * + * @export + * @interface GetMetadataRefreshResponse + */ +export interface GetMetadataRefreshResponse { + /** + * The collection address + * @type {string} + * @memberof GetMetadataRefreshResponse + */ + 'collection_address': string; + /** + * When the metadata refresh completed + * @type {string} + * @memberof GetMetadataRefreshResponse + */ + 'completed_at'?: string | null; + /** + * The metadata refresh ID + * @type {string} + * @memberof GetMetadataRefreshResponse + */ + 'refresh_id': string; + /** + * When the metadata refresh started + * @type {string} + * @memberof GetMetadataRefreshResponse + */ + 'started_at': string; + /** + * The metadata refresh status + * @type {string} + * @memberof GetMetadataRefreshResponse + */ + 'status': GetMetadataRefreshResponseStatusEnum; + /** + * The current metadata refresh summary. The summary continue to update until metadata refresh is completed + * @type {Array} + * @memberof GetMetadataRefreshResponse + */ + 'summary': Array; +} + +export const GetMetadataRefreshResponseStatusEnum = { + Queued: 'queued', + InProgress: 'in_progress', + Completed: 'completed' +} as const; + +export type GetMetadataRefreshResponseStatusEnum = typeof GetMetadataRefreshResponseStatusEnum[keyof typeof GetMetadataRefreshResponseStatusEnum]; + + diff --git a/src/api/models/get-metadata-refreshes.ts b/src/api/models/get-metadata-refreshes.ts new file mode 100644 index 00000000..584c9984 --- /dev/null +++ b/src/api/models/get-metadata-refreshes.ts @@ -0,0 +1,45 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable X API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 3.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import { MetadataRefreshExcludingSummary } from './metadata-refresh-excluding-summary'; + +/** + * + * @export + * @interface GetMetadataRefreshes + */ +export interface GetMetadataRefreshes { + /** + * Generated cursor returned by previous query + * @type {string} + * @memberof GetMetadataRefreshes + */ + 'cursor': string; + /** + * Remaining results flag. 1: there are remaining results matching this query, 0: no remaining results + * @type {number} + * @memberof GetMetadataRefreshes + */ + 'remaining': number; + /** + * Metadata refresh errors matching query parameters + * @type {Array} + * @memberof GetMetadataRefreshes + */ + 'result': Array; +} + diff --git a/src/api/models/get-projects-response.ts b/src/api/models/get-projects-response.ts index b756ef67..f8cb990b 100644 --- a/src/api/models/get-projects-response.ts +++ b/src/api/models/get-projects-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { Project } from './project'; /** diff --git a/src/api/models/get-signable-cancel-order-request.ts b/src/api/models/get-signable-cancel-order-request.ts index 1258470e..c0a2b131 100644 --- a/src/api/models/get-signable-cancel-order-request.ts +++ b/src/api/models/get-signable-cancel-order-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/get-signable-cancel-order-response.ts b/src/api/models/get-signable-cancel-order-response.ts index 5cf0af60..aa4bde84 100644 --- a/src/api/models/get-signable-cancel-order-response.ts +++ b/src/api/models/get-signable-cancel-order-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/get-signable-deposit-request.ts b/src/api/models/get-signable-deposit-request.ts index 307dc34a..9ba74427 100644 --- a/src/api/models/get-signable-deposit-request.ts +++ b/src/api/models/get-signable-deposit-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { SignableToken } from './signable-token'; /** diff --git a/src/api/models/get-signable-deposit-response.ts b/src/api/models/get-signable-deposit-response.ts index 4972bc82..3e86d50f 100644 --- a/src/api/models/get-signable-deposit-response.ts +++ b/src/api/models/get-signable-deposit-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/get-signable-order-request.ts b/src/api/models/get-signable-order-request.ts index d3ad1b12..308bb4ea 100644 --- a/src/api/models/get-signable-order-request.ts +++ b/src/api/models/get-signable-order-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,7 +13,11 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { FeeEntry } from './fee-entry'; +// May contain unused imports in some cases +// @ts-ignore import { SignableToken } from './signable-token'; /** diff --git a/src/api/models/get-signable-order-response.ts b/src/api/models/get-signable-order-response.ts index 3e1617fd..2ef31e6e 100644 --- a/src/api/models/get-signable-order-response.ts +++ b/src/api/models/get-signable-order-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { FeeInfo } from './fee-info'; /** diff --git a/src/api/models/get-signable-registration-offchain-response.ts b/src/api/models/get-signable-registration-offchain-response.ts index 8f98d1a7..d1b2d1d9 100644 --- a/src/api/models/get-signable-registration-offchain-response.ts +++ b/src/api/models/get-signable-registration-offchain-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/get-signable-registration-request.ts b/src/api/models/get-signable-registration-request.ts index f694491a..ef44fdd0 100644 --- a/src/api/models/get-signable-registration-request.ts +++ b/src/api/models/get-signable-registration-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/get-signable-registration-response.ts b/src/api/models/get-signable-registration-response.ts index 37ec0c41..74057e80 100644 --- a/src/api/models/get-signable-registration-response.ts +++ b/src/api/models/get-signable-registration-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/get-signable-trade-request.ts b/src/api/models/get-signable-trade-request.ts index edf3d251..1bc2ecb8 100644 --- a/src/api/models/get-signable-trade-request.ts +++ b/src/api/models/get-signable-trade-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { FeeEntry } from './fee-entry'; /** diff --git a/src/api/models/get-signable-trade-response.ts b/src/api/models/get-signable-trade-response.ts index 6664d32a..0a466b6c 100644 --- a/src/api/models/get-signable-trade-response.ts +++ b/src/api/models/get-signable-trade-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { FeeInfo } from './fee-info'; /** diff --git a/src/api/models/get-signable-transfer-request-v1.ts b/src/api/models/get-signable-transfer-request-v1.ts index d2304371..c0d64434 100644 --- a/src/api/models/get-signable-transfer-request-v1.ts +++ b/src/api/models/get-signable-transfer-request-v1.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { SignableToken } from './signable-token'; /** diff --git a/src/api/models/get-signable-transfer-request.ts b/src/api/models/get-signable-transfer-request.ts index 41a583d1..df9392c6 100644 --- a/src/api/models/get-signable-transfer-request.ts +++ b/src/api/models/get-signable-transfer-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { SignableTransferDetails } from './signable-transfer-details'; /** diff --git a/src/api/models/get-signable-transfer-response-v1.ts b/src/api/models/get-signable-transfer-response-v1.ts index 47d3e85e..f09d3169 100644 --- a/src/api/models/get-signable-transfer-response-v1.ts +++ b/src/api/models/get-signable-transfer-response-v1.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/get-signable-transfer-response.ts b/src/api/models/get-signable-transfer-response.ts index 5344eafb..6f4a6cb3 100644 --- a/src/api/models/get-signable-transfer-response.ts +++ b/src/api/models/get-signable-transfer-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { SignableTransferResponseDetails } from './signable-transfer-response-details'; /** diff --git a/src/api/models/get-signable-withdrawal-request.ts b/src/api/models/get-signable-withdrawal-request.ts index be0a1e5c..d388e5f9 100644 --- a/src/api/models/get-signable-withdrawal-request.ts +++ b/src/api/models/get-signable-withdrawal-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { SignableToken } from './signable-token'; /** diff --git a/src/api/models/get-signable-withdrawal-response.ts b/src/api/models/get-signable-withdrawal-response.ts index 90e306b9..be794b17 100644 --- a/src/api/models/get-signable-withdrawal-response.ts +++ b/src/api/models/get-signable-withdrawal-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/get-users-api-response.ts b/src/api/models/get-users-api-response.ts index 4222104f..5b90e2b0 100644 --- a/src/api/models/get-users-api-response.ts +++ b/src/api/models/get-users-api-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/index.ts b/src/api/models/index.ts index 5ab7abbc..5a882437 100644 --- a/src/api/models/index.ts +++ b/src/api/models/index.ts @@ -1,3 +1,4 @@ +export * from './apierror'; export * from './add-metadata-schema-to-collection-request'; export * from './asset'; export * from './asset-properties'; @@ -9,6 +10,8 @@ export * from './collection'; export * from './collection-details'; export * from './collection-filter'; export * from './create-collection-request'; +export * from './create-metadata-refresh-request'; +export * from './create-metadata-refresh-response'; export * from './create-order-request'; export * from './create-order-response'; export * from './create-project-request'; @@ -31,6 +34,9 @@ export * from './fee-data'; export * from './fee-entry'; export * from './fee-info'; export * from './fee-token'; +export * from './get-metadata-refresh-errors-response'; +export * from './get-metadata-refresh-response'; +export * from './get-metadata-refreshes'; export * from './get-projects-response'; export * from './get-signable-cancel-order-request'; export * from './get-signable-cancel-order-response'; @@ -60,6 +66,9 @@ export * from './list-tokens-response'; export * from './list-trades-response'; export * from './list-transfers-response'; export * from './list-withdrawals-response'; +export * from './metadata-refresh-errors'; +export * from './metadata-refresh-excluding-summary'; +export * from './metadata-refresh-summary'; export * from './metadata-schema-property'; export * from './metadata-schema-request'; export * from './mint'; diff --git a/src/api/models/list-assets-response.ts b/src/api/models/list-assets-response.ts index a0651a84..3d3aac0e 100644 --- a/src/api/models/list-assets-response.ts +++ b/src/api/models/list-assets-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { AssetWithOrders } from './asset-with-orders'; /** diff --git a/src/api/models/list-balances-response.ts b/src/api/models/list-balances-response.ts index 6a2a9986..b9280a34 100644 --- a/src/api/models/list-balances-response.ts +++ b/src/api/models/list-balances-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { Balance } from './balance'; /** diff --git a/src/api/models/list-collections-response.ts b/src/api/models/list-collections-response.ts index dc5bdac7..9db13807 100644 --- a/src/api/models/list-collections-response.ts +++ b/src/api/models/list-collections-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { Collection } from './collection'; /** diff --git a/src/api/models/list-deposits-response.ts b/src/api/models/list-deposits-response.ts index b5ec7044..8aaa7fd0 100644 --- a/src/api/models/list-deposits-response.ts +++ b/src/api/models/list-deposits-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { Deposit } from './deposit'; /** diff --git a/src/api/models/list-mints-response.ts b/src/api/models/list-mints-response.ts index d0a246a2..7ddd9cf8 100644 --- a/src/api/models/list-mints-response.ts +++ b/src/api/models/list-mints-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { Mint } from './mint'; /** diff --git a/src/api/models/list-orders-response.ts b/src/api/models/list-orders-response.ts index 45ee897d..1b50f5f4 100644 --- a/src/api/models/list-orders-response.ts +++ b/src/api/models/list-orders-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { Order } from './order'; /** diff --git a/src/api/models/list-tokens-response.ts b/src/api/models/list-tokens-response.ts index 9e212569..12a9b94d 100644 --- a/src/api/models/list-tokens-response.ts +++ b/src/api/models/list-tokens-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { TokenDetails } from './token-details'; /** diff --git a/src/api/models/list-trades-response.ts b/src/api/models/list-trades-response.ts index e174fea3..37a1c548 100644 --- a/src/api/models/list-trades-response.ts +++ b/src/api/models/list-trades-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { Trade } from './trade'; /** diff --git a/src/api/models/list-transfers-response.ts b/src/api/models/list-transfers-response.ts index 37aee4da..e7285e14 100644 --- a/src/api/models/list-transfers-response.ts +++ b/src/api/models/list-transfers-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { Transfer } from './transfer'; /** diff --git a/src/api/models/list-withdrawals-response.ts b/src/api/models/list-withdrawals-response.ts index 8378252d..637ed3c0 100644 --- a/src/api/models/list-withdrawals-response.ts +++ b/src/api/models/list-withdrawals-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { Withdrawal } from './withdrawal'; /** diff --git a/src/api/models/metadata-refresh-errors.ts b/src/api/models/metadata-refresh-errors.ts new file mode 100644 index 00000000..86830fb3 --- /dev/null +++ b/src/api/models/metadata-refresh-errors.ts @@ -0,0 +1,66 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable X API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 3.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface MetadataRefreshErrors + */ +export interface MetadataRefreshErrors { + /** + * Metadata API response for the token + * @type {string} + * @memberof MetadataRefreshErrors + */ + 'client_response_body': string | null; + /** + * Metadata API response code for the token + * @type {string} + * @memberof MetadataRefreshErrors + */ + 'client_response_status_code': string | null; + /** + * Requested metadata url for the token + * @type {string} + * @memberof MetadataRefreshErrors + */ + 'client_token_metadata_url': string; + /** + * The collection contract address + * @type {string} + * @memberof MetadataRefreshErrors + */ + 'collection_address': string; + /** + * When the error was created + * @type {string} + * @memberof MetadataRefreshErrors + */ + 'created_at': string; + /** + * Metadata refresh error code + * @type {string} + * @memberof MetadataRefreshErrors + */ + 'error_code': string; + /** + * The token ID + * @type {string} + * @memberof MetadataRefreshErrors + */ + 'token_id': string; +} + diff --git a/src/api/models/metadata-refresh-excluding-summary.ts b/src/api/models/metadata-refresh-excluding-summary.ts new file mode 100644 index 00000000..d3bee7bd --- /dev/null +++ b/src/api/models/metadata-refresh-excluding-summary.ts @@ -0,0 +1,63 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable X API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 3.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface MetadataRefreshExcludingSummary + */ +export interface MetadataRefreshExcludingSummary { + /** + * The collection address + * @type {string} + * @memberof MetadataRefreshExcludingSummary + */ + 'collection_address': string; + /** + * When the metadata refresh completed + * @type {string} + * @memberof MetadataRefreshExcludingSummary + */ + 'completed_at'?: string | null; + /** + * The metadata refresh ID + * @type {string} + * @memberof MetadataRefreshExcludingSummary + */ + 'refresh_id': string; + /** + * When the metadata refresh started + * @type {string} + * @memberof MetadataRefreshExcludingSummary + */ + 'started_at': string; + /** + * The metadata refresh status + * @type {string} + * @memberof MetadataRefreshExcludingSummary + */ + 'status': MetadataRefreshExcludingSummaryStatusEnum; +} + +export const MetadataRefreshExcludingSummaryStatusEnum = { + Queued: 'queued', + InProgress: 'in_progress', + Completed: 'completed' +} as const; + +export type MetadataRefreshExcludingSummaryStatusEnum = typeof MetadataRefreshExcludingSummaryStatusEnum[keyof typeof MetadataRefreshExcludingSummaryStatusEnum]; + + diff --git a/src/api/models/metadata-refresh-summary.ts b/src/api/models/metadata-refresh-summary.ts new file mode 100644 index 00000000..90b8fce9 --- /dev/null +++ b/src/api/models/metadata-refresh-summary.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Immutable X API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 3.0 + * Contact: support@immutable.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface MetadataRefreshSummary + */ +export interface MetadataRefreshSummary { + /** + * The number of tokens with failed metadata refreshes + * @type {number} + * @memberof MetadataRefreshSummary + */ + 'failed'?: number; + /** + * The number of tokens that has not been refreshed yet + * @type {number} + * @memberof MetadataRefreshSummary + */ + 'pending'?: number; + /** + * The number of tokens with successful metadata refreshes + * @type {number} + * @memberof MetadataRefreshSummary + */ + 'succeeded'?: number; +} + diff --git a/src/api/models/metadata-schema-property.ts b/src/api/models/metadata-schema-property.ts index 60f3819e..a9ff19c2 100644 --- a/src/api/models/metadata-schema-property.ts +++ b/src/api/models/metadata-schema-property.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/metadata-schema-request.ts b/src/api/models/metadata-schema-request.ts index ff1ea006..37c8f844 100644 --- a/src/api/models/metadata-schema-request.ts +++ b/src/api/models/metadata-schema-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/mint-fee.ts b/src/api/models/mint-fee.ts index 068edf12..309f4245 100644 --- a/src/api/models/mint-fee.ts +++ b/src/api/models/mint-fee.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/mint-request.ts b/src/api/models/mint-request.ts index 906ec7bd..5f6f025a 100644 --- a/src/api/models/mint-request.ts +++ b/src/api/models/mint-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,7 +13,11 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { MintFee } from './mint-fee'; +// May contain unused imports in some cases +// @ts-ignore import { MintUser } from './mint-user'; /** diff --git a/src/api/models/mint-result-details.ts b/src/api/models/mint-result-details.ts index 73036717..25f54c18 100644 --- a/src/api/models/mint-result-details.ts +++ b/src/api/models/mint-result-details.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/mint-token-data-v2.ts b/src/api/models/mint-token-data-v2.ts index e0c35224..b0d0db05 100644 --- a/src/api/models/mint-token-data-v2.ts +++ b/src/api/models/mint-token-data-v2.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { MintFee } from './mint-fee'; /** diff --git a/src/api/models/mint-tokens-response.ts b/src/api/models/mint-tokens-response.ts index 13a6b0cc..bf658728 100644 --- a/src/api/models/mint-tokens-response.ts +++ b/src/api/models/mint-tokens-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { MintResultDetails } from './mint-result-details'; /** diff --git a/src/api/models/mint-user.ts b/src/api/models/mint-user.ts index 5a772d38..4b786114 100644 --- a/src/api/models/mint-user.ts +++ b/src/api/models/mint-user.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { MintTokenDataV2 } from './mint-token-data-v2'; /** diff --git a/src/api/models/mint.ts b/src/api/models/mint.ts index cade33b8..b42531b8 100644 --- a/src/api/models/mint.ts +++ b/src/api/models/mint.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,7 +13,11 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { Fee } from './fee'; +// May contain unused imports in some cases +// @ts-ignore import { Token } from './token'; /** diff --git a/src/api/models/mintable-token-details.ts b/src/api/models/mintable-token-details.ts index fda01cb0..093f4e5e 100644 --- a/src/api/models/mintable-token-details.ts +++ b/src/api/models/mintable-token-details.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/order-details.ts b/src/api/models/order-details.ts index b8015618..9631ad81 100644 --- a/src/api/models/order-details.ts +++ b/src/api/models/order-details.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/order-fee-info.ts b/src/api/models/order-fee-info.ts index bc24b067..2e3ce5f2 100644 --- a/src/api/models/order-fee-info.ts +++ b/src/api/models/order-fee-info.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { FeeToken } from './fee-token'; /** diff --git a/src/api/models/order.ts b/src/api/models/order.ts index 48329062..313289d4 100644 --- a/src/api/models/order.ts +++ b/src/api/models/order.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,7 +13,11 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { OrderFeeInfo } from './order-fee-info'; +// May contain unused imports in some cases +// @ts-ignore import { Token } from './token'; /** diff --git a/src/api/models/project.ts b/src/api/models/project.ts index b3b453ae..4d231274 100644 --- a/src/api/models/project.ts +++ b/src/api/models/project.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/range.ts b/src/api/models/range.ts index 18d90ab3..57ea187c 100644 --- a/src/api/models/range.ts +++ b/src/api/models/range.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/register-user-request.ts b/src/api/models/register-user-request.ts index 805a7fa5..de389391 100644 --- a/src/api/models/register-user-request.ts +++ b/src/api/models/register-user-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/register-user-response.ts b/src/api/models/register-user-response.ts index 3486da6d..119098dd 100644 --- a/src/api/models/register-user-response.ts +++ b/src/api/models/register-user-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/signable-token.ts b/src/api/models/signable-token.ts index bb2d4c75..b43fd8c2 100644 --- a/src/api/models/signable-token.ts +++ b/src/api/models/signable-token.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/signable-transfer-details.ts b/src/api/models/signable-transfer-details.ts index 2711451a..88fd7451 100644 --- a/src/api/models/signable-transfer-details.ts +++ b/src/api/models/signable-transfer-details.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { SignableToken } from './signable-token'; /** diff --git a/src/api/models/signable-transfer-response-details.ts b/src/api/models/signable-transfer-response-details.ts index d4460617..bcc89fb5 100644 --- a/src/api/models/signable-transfer-response-details.ts +++ b/src/api/models/signable-transfer-response-details.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { SignableToken } from './signable-token'; /** diff --git a/src/api/models/success-response.ts b/src/api/models/success-response.ts index a3820f0e..67049e09 100644 --- a/src/api/models/success-response.ts +++ b/src/api/models/success-response.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/token-data.ts b/src/api/models/token-data.ts index 61f8bab5..9a6deac1 100644 --- a/src/api/models/token-data.ts +++ b/src/api/models/token-data.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { AssetProperties } from './asset-properties'; /** @@ -40,7 +42,7 @@ export interface TokenData { */ 'properties'?: AssetProperties; /** - * Quantity of this asset + * Quantity of this asset - inclusive of fees for buy order in v1 API and exclusive of fees in v3 API * @type {string} * @memberof TokenData */ @@ -51,6 +53,12 @@ export interface TokenData { * @memberof TokenData */ 'quantity_with_fees': string; + /** + * Symbol of a token + * @type {string} + * @memberof TokenData + */ + 'symbol'?: string; /** * Address of ERC721/ERC20 contract * @type {string} diff --git a/src/api/models/token-details.ts b/src/api/models/token-details.ts index 641bbea8..c6f7657f 100644 --- a/src/api/models/token-details.ts +++ b/src/api/models/token-details.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/token.ts b/src/api/models/token.ts index af97e317..6c8587f3 100644 --- a/src/api/models/token.ts +++ b/src/api/models/token.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { TokenData } from './token-data'; /** diff --git a/src/api/models/trade-side.ts b/src/api/models/trade-side.ts index 030736ba..5a15a136 100644 --- a/src/api/models/trade-side.ts +++ b/src/api/models/trade-side.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/trade.ts b/src/api/models/trade.ts index 7ee7e705..901405d2 100644 --- a/src/api/models/trade.ts +++ b/src/api/models/trade.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { TradeSide } from './trade-side'; /** diff --git a/src/api/models/transfer-request.ts b/src/api/models/transfer-request.ts index 34fc089c..d1752a2a 100644 --- a/src/api/models/transfer-request.ts +++ b/src/api/models/transfer-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/transfer.ts b/src/api/models/transfer.ts index 857100ad..f0a3eeab 100644 --- a/src/api/models/transfer.ts +++ b/src/api/models/transfer.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { Token } from './token'; /** diff --git a/src/api/models/update-collection-request.ts b/src/api/models/update-collection-request.ts index ce31903e..893e019b 100644 --- a/src/api/models/update-collection-request.ts +++ b/src/api/models/update-collection-request.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/api/models/withdrawal.ts b/src/api/models/withdrawal.ts index 950c01b3..2177cc7c 100644 --- a/src/api/models/withdrawal.ts +++ b/src/api/models/withdrawal.ts @@ -4,7 +4,7 @@ * Immutable X API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: 0.1 + * The version of the OpenAPI document: 3.0 * Contact: support@immutable.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -13,6 +13,8 @@ */ +// May contain unused imports in some cases +// @ts-ignore import { Token } from './token'; /** diff --git a/src/utils/config.test.ts b/src/config/config.test.ts similarity index 87% rename from src/utils/config.test.ts rename to src/config/config.test.ts index 4cf514a4..577fc22f 100644 --- a/src/utils/config.test.ts +++ b/src/config/config.test.ts @@ -1,14 +1,13 @@ -import { getConfig } from './config'; +import { Config, ImmutableXConfiguration } from './config'; import { version } from '../../package.json'; -import { ImmutableXConfiguration } from '../types'; import { Configuration } from '../api'; const defaultHeaders = { 'x-sdk-version': `imx-core-sdk-ts-${version}` }; -describe('getConfig', () => { +describe('createConfig', () => { it('should throw if basePath is whitespace', () => { expect(() => - getConfig({ + Config.createConfig({ coreContractAddress: '0x1', registrationContractAddress: '0x2', chainID: 3, @@ -19,7 +18,7 @@ describe('getConfig', () => { it('should throw if basePath is empty', () => { expect(() => - getConfig({ + Config.createConfig({ coreContractAddress: '0x1', registrationContractAddress: '0x2', chainID: 3, @@ -44,14 +43,14 @@ describe('getConfig', () => { headers: { 'x-custom-headers': 'x values', ...defaultHeaders }, }, }), - l1Configuration: { + ethConfiguration: { chainID, coreContractAddress, registrationContractAddress, }, }; - const actual = getConfig({ + const actual = Config.createConfig({ coreContractAddress, registrationContractAddress, chainID, diff --git a/src/config/config.ts b/src/config/config.ts new file mode 100644 index 00000000..311d3086 --- /dev/null +++ b/src/config/config.ts @@ -0,0 +1,97 @@ +import { + Configuration as APIConfiguration, + ConfigurationParameters, +} from '../api'; +import { version } from '../../package.json'; + +const defaultHeaders = { 'x-sdk-version': `imx-core-sdk-ts-${version}` }; + +/** + * The configuration for the Ethereum network + */ +export interface EthConfiguration { + coreContractAddress: string; + registrationContractAddress: string; + chainID: number; +} + +/** + * The configuration for the ImmutableX client + */ +export interface ImmutableXConfiguration { + /** + * The configuration for the API client + */ + apiConfiguration: APIConfiguration; + /** + * The configuration for the Ethereum network + */ + ethConfiguration: EthConfiguration; +} + +interface Environment extends EthConfiguration { + basePath: string; + headers?: Record; +} + +const createConfig = ({ + coreContractAddress, + registrationContractAddress, + chainID, + basePath, + headers, +}: Environment): ImmutableXConfiguration => { + if (!basePath.trim()) { + throw Error('basePath can not be empty'); + } + + headers = { ...(headers || {}), ...defaultHeaders }; + const apiConfigOptions: ConfigurationParameters = { + basePath, + baseOptions: { headers }, + }; + + return { + apiConfiguration: new APIConfiguration(apiConfigOptions), + ethConfiguration: { + coreContractAddress, + registrationContractAddress, + chainID, + }, + }; +}; + +/** + * Creates a Configuration for the specified environment + * @returns an ImmutableXConfiguration + */ +export const Config = { + get PRODUCTION() { + return createConfig({ + basePath: 'https://api.x.immutable.com', + chainID: 1, + coreContractAddress: '0x5FDCCA53617f4d2b9134B29090C87D01058e27e9', + registrationContractAddress: '0x72a06bf2a1CE5e39cBA06c0CAb824960B587d64c', + }); + }, + + get SANDBOX() { + return createConfig({ + basePath: 'https://api.sandbox.x.immutable.com', + chainID: 5, + coreContractAddress: '0x7917eDb51ecD6CdB3F9854c3cc593F33de10c623', + registrationContractAddress: '0x1C97Ada273C9A52253f463042f29117090Cd7D83', + }); + }, + + get ROPSTEN() { + return createConfig({ + basePath: 'https://api.ropsten.x.immutable.com', + chainID: 3, + coreContractAddress: '0x4527BE8f31E2ebFbEF4fCADDb5a17447B27d2aef', + registrationContractAddress: '0x6C21EC8DE44AE44D0992ec3e2d9f1aBb6207D864', + }); + }, + + createConfig: createConfig, +}; diff --git a/src/config/index.ts b/src/config/index.ts new file mode 100644 index 00000000..f03c2281 --- /dev/null +++ b/src/config/index.ts @@ -0,0 +1 @@ +export * from './config'; diff --git a/src/contracts/index.ts b/src/contracts/index.ts index 0f226a26..664dabce 100644 --- a/src/contracts/index.ts +++ b/src/contracts/index.ts @@ -1,18 +1,19 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -import type * as openzeppelin from "./@openzeppelin"; +import type * as openzeppelin from './@openzeppelin'; export type { openzeppelin }; -import type * as contracts from "./contracts"; +import type * as contracts from './contracts'; export type { contracts }; -export * as factories from "./factories"; -export type { IERC20 } from "./@openzeppelin/contracts/token/ERC20/IERC20"; -export { IERC20__factory } from "./factories/@openzeppelin/contracts/token/ERC20/IERC20__factory"; -export type { IERC721 } from "./@openzeppelin/contracts/token/ERC721/IERC721"; -export { IERC721__factory } from "./factories/@openzeppelin/contracts/token/ERC721/IERC721__factory"; -export type { IERC165 } from "./@openzeppelin/contracts/utils/introspection/IERC165"; -export { IERC165__factory } from "./factories/@openzeppelin/contracts/utils/introspection/IERC165__factory"; -export type { Core } from "./contracts/Core"; -export { Core__factory } from "./factories/contracts/Core__factory"; -export type { Registration } from "./contracts/Registration"; -export { Registration__factory } from "./factories/contracts/Registration__factory"; +import * as factories from './factories'; +export { factories }; +export type { IERC20 } from './@openzeppelin/contracts/token/ERC20/IERC20'; +export { IERC20__factory } from './factories/@openzeppelin/contracts/token/ERC20/IERC20__factory'; +export type { IERC721 } from './@openzeppelin/contracts/token/ERC721/IERC721'; +export { IERC721__factory } from './factories/@openzeppelin/contracts/token/ERC721/IERC721__factory'; +export type { IERC165 } from './@openzeppelin/contracts/utils/introspection/IERC165'; +export { IERC165__factory } from './factories/@openzeppelin/contracts/utils/introspection/IERC165__factory'; +export type { Core } from './contracts/Core'; +export { Core__factory } from './factories/contracts/Core__factory'; +export type { Registration } from './contracts/Registration'; +export { Registration__factory } from './factories/contracts/Registration__factory'; diff --git a/src/exportApiModels.ts b/src/exportApiModels.ts new file mode 100644 index 00000000..15904cd9 --- /dev/null +++ b/src/exportApiModels.ts @@ -0,0 +1,33 @@ +export { + DepositsApiGetDepositRequest, + DepositsApiListDepositsRequest, + AssetsApiGetAssetRequest, + AssetsApiListAssetsRequest, + CreateCollectionRequest, + CollectionsApiGetCollectionRequest, + CollectionsApiListCollectionFiltersRequest, + CollectionsApiListCollectionsRequest, + UpdateCollectionRequest, + AddMetadataSchemaToCollectionRequest, + MetadataApiGetMetadataSchemaRequest, + MetadataSchemaRequest, + CreateProjectRequest, + BalancesApiGetBalanceRequest, + BalancesApiListBalancesRequest, + MintsApiGetMintRequest, + MintsApiListMintsRequest, + WithdrawalsApiListWithdrawalsRequest, + WithdrawalsApiGetWithdrawalRequest, + OrdersApiGetOrderRequest, + OrdersApiListOrdersRequest, + GetSignableCancelOrderRequest, + TradesApiGetTradeRequest, + TradesApiListTradesRequest, + GetSignableTradeRequest, + TokensApiGetTokenRequest, + TokensApiListTokensRequest, + TransfersApiGetTransferRequest, + TransfersApiListTransfersRequest, +} from './api'; + +export * from './api/models'; diff --git a/src/exportContracts.ts b/src/exportContracts.ts new file mode 100644 index 00000000..e667955e --- /dev/null +++ b/src/exportContracts.ts @@ -0,0 +1,6 @@ +export { + Core__factory as Core, + Registration__factory as Registration, + IERC20__factory as IERC20, + IERC721__factory as IERC721, +} from './contracts'; diff --git a/src/exportUtils.ts b/src/exportUtils.ts new file mode 100644 index 00000000..8f9fd3eb --- /dev/null +++ b/src/exportUtils.ts @@ -0,0 +1 @@ +export { generateStarkPrivateKey, createStarkSigner } from './utils'; diff --git a/src/index.ts b/src/index.ts index 90cf4d46..a4203be0 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,6 @@ -export * from './api'; -export * from './contracts'; +export * as Contracts from './exportContracts'; +export * from './exportUtils'; +export * from './exportApiModels'; export * from './types'; -export * from './utils'; -export * from './workflows'; +export { Config, EthConfiguration, ImmutableXConfiguration } from './config'; +export { ImmutableX } from './ImmutableX'; diff --git a/src/types/deposit.ts b/src/types/deposit.ts deleted file mode 100644 index 52b3aad8..00000000 --- a/src/types/deposit.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { TokenType } from './token'; - -export interface ETHDeposit { - type: TokenType.ETH; - amount: string; -} - -export interface ERC20Deposit { - type: TokenType.ERC20; - tokenAddress: string; - symbol: string; - amount: string; -} - -export interface ERC721Deposit { - type: TokenType.ERC721; - tokenId: string; - tokenAddress: string; -} - -export type TokenDeposit = ETHDeposit | ERC20Deposit | ERC721Deposit; diff --git a/src/types/errors.ts b/src/types/errors.ts new file mode 100644 index 00000000..d19bd68d --- /dev/null +++ b/src/types/errors.ts @@ -0,0 +1,18 @@ +import { APIError } from '../api'; + +/** + * Custom Error class that is returned from the API when a request fails + */ +export class IMXError extends Error { + /** + * [See a list of thrown error codes](https://docs.x.immutable.com/docs/error-codes/) + */ + readonly code: string; + readonly details?: string; + + constructor({ code, details, message }: APIError) { + super(message); + this.code = code; + this.details = details; + } +} diff --git a/src/types/index.ts b/src/types/index.ts index d5c241ad..fcc0f5f1 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,48 +1,5 @@ -import { ec } from 'elliptic'; -import { - MintRequest, - GetSignableTransferRequestV1, - GetSignableTransferRequest, - Configuration as APIConfiguration, -} from '../api'; -import { GetSignableBurnRequest } from '../workflows/types'; -import { Signer as L1Signer } from '@ethersproject/abstract-signer'; - -export { L1Signer }; - -export interface L2Signer { - signMessage(message: string): Promise; - getAddress(): string | Promise; -} - -export interface StarkWallet { - path: string; - starkPublicKey: string; - starkKeyPair: ec.KeyPair; -} - -export interface WalletConnection { - l1Signer: L1Signer; - l2Signer: L2Signer; -} - -export interface L1Configuration { - coreContractAddress: string; - registrationContractAddress: string; - chainID: number; -} - -export interface ImmutableXConfiguration { - apiConfiguration: APIConfiguration; - l1Configuration: L1Configuration; -} - -export type UnsignedMintRequest = Omit; -export type UnsignedTransferRequest = GetSignableTransferRequestV1; -export type UnsignedBatchNftTransferRequest = GetSignableTransferRequest; -export type UnsignedBurnRequest = GetSignableBurnRequest; - -export * from './deposit'; -export * from './withdrawal'; -export * from './token'; -export * from './signable-withdrawal'; +export * from './signers'; +export * from './tokens'; +export * from './requests'; +export * from './transfers'; +export * from './errors'; diff --git a/src/types/requests.ts b/src/types/requests.ts new file mode 100644 index 00000000..07f1c3df --- /dev/null +++ b/src/types/requests.ts @@ -0,0 +1,43 @@ +import { TokenAmount } from './tokens'; +import { FeeEntry, MintRequest } from '../api'; + +// These custom request interfaces are used because API.SignableToken is not yet a union type due to OAS 2.0 spec not supporting `OneOf` +// As well as the fact that SignableToken has an extra `data` object which we would like to flatten +// SignableToken is replaced with AnyToken + +/** + * Parameter required to create an Order + */ +export interface UnsignedOrderRequest { + /** + * The amount of tokens that will be bought for this order + */ + buy: TokenAmount; + /** + * The amount of tokens that will be sold for this order + */ + sell: TokenAmount; + /** + * ExpirationTimestamp in Unix time. Note: will be rounded down to the nearest hour + */ + expiration_timestamp?: number; + /** + * Inclusion of either maker or taker fees + */ + fees?: Array; +} + +/** + * Parameter required to create a Transfer + */ +export type UnsignedTransferRequest = TokenAmount & { + /** + * Ethereum address of the receiving user + */ + receiver: string; +}; + +/** + * Parameter required to Mint tokens + */ +export type UnsignedMintRequest = Omit; diff --git a/src/types/signable-withdrawal.ts b/src/types/signable-withdrawal.ts deleted file mode 100644 index 4735ce9d..00000000 --- a/src/types/signable-withdrawal.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { TokenPrepareWithdrawal } from './withdrawal'; -import { TokenType } from './token'; - -interface SignableWithdrawalERC20 { - type: TokenType.ERC20; - data: { - token_address: string; - decimals: number, - }; -} - -interface SignableWithdrawalERC721 { - type: TokenType.ERC721; - data: { - token_id: string, - token_address: string; - }; -} - -type SignableWithdrawalEth = { - type: TokenType.ETH, - data: { - decimals: number, - } -} - -type SignableWithdrawalToken = SignableWithdrawalEth | SignableWithdrawalERC721 | SignableWithdrawalERC20 - -//SignableWithdrawal endpoint requires fields in snake_case format -export function convertToSignableRequestFormat(token: TokenPrepareWithdrawal): SignableWithdrawalToken { - if (token.type === TokenType.ERC721) { - return { - type: TokenType.ERC721, - data: { - token_id: token.data.tokenId, - token_address: token.data.tokenAddress, - }, - } - } - if (token.type === TokenType.ERC20) { - return { - type: TokenType.ERC20, - data: { - decimals: token.data.decimals, - token_address: token.data.tokenAddress, - }, - } - } - return token; -} diff --git a/src/types/signers.ts b/src/types/signers.ts new file mode 100644 index 00000000..706364a3 --- /dev/null +++ b/src/types/signers.ts @@ -0,0 +1,35 @@ +import { Signer as EthSigner } from '@ethersproject/abstract-signer'; + +export { EthSigner }; + +/** + * An abstraction of a Stark account, which can be used to sign messages and transactions on StarkEx to execute state changing operations + */ +export interface StarkSigner { + /** + * Signs the prefixed-message + * @params message - this must be a UTF8-message + * @example "0x1234" + * @returns the signed prefixed-message + */ + signMessage(message: string): Promise; + /** + * Get the Signer address + * @returns the Signer's checksum address + */ + getAddress(): string | Promise; +} + +/** + * A pair of Signers + */ +export interface WalletConnection { + /** + * The L1 signer + */ + ethSigner: EthSigner; + /** + * The L2 signer + */ + starkSigner: StarkSigner; +} diff --git a/src/types/token.ts b/src/types/token.ts deleted file mode 100644 index afb46f73..00000000 --- a/src/types/token.ts +++ /dev/null @@ -1,5 +0,0 @@ -export enum TokenType { - ETH = 'ETH', - ERC20 = 'ERC20', - ERC721 = 'ERC721', -} diff --git a/src/types/tokens.ts b/src/types/tokens.ts new file mode 100644 index 00000000..d0eebef2 --- /dev/null +++ b/src/types/tokens.ts @@ -0,0 +1,53 @@ +/** + * An ERC20 token + */ +export interface ERC20Token { + type: 'ERC20'; + tokenAddress: string; +} + +/** + * An ERC721 token + */ +export interface ERC721Token { + type: 'ERC721'; + tokenId: string; + tokenAddress: string; +} + +/** + * An ETH token + */ +export interface ETHToken { + type: 'ETH'; +} + +/** + * An amount of ETH token of unit Wei + */ +export interface ETHAmount extends ETHToken { + /** + * An amount in unit Wei + */ + amount: string; +} + +/** + * The token details and amount of ERC20 token units + */ +export interface ERC20Amount extends ERC20Token { + /** + * An amount in units for the given ERC20 token + */ + amount: string; +} + +/** + * Union type that represents all token types + */ +export type AnyToken = ETHToken | ERC721Token | ERC20Token; + +/** + * Union type that represents all token type amounts + */ +export type TokenAmount = ETHAmount | ERC20Amount | ERC721Token; diff --git a/src/types/transfers.ts b/src/types/transfers.ts new file mode 100644 index 00000000..1705b677 --- /dev/null +++ b/src/types/transfers.ts @@ -0,0 +1,17 @@ +/** + * Parameter required to create a batchNftTransfer + */ +export interface NftTransferDetails { + /** + * Ethereum address of the receiving user + */ + receiver: string; + /** + * The token ID + */ + tokenId: string; + /** + * The token contract address + */ + tokenAddress: string; +} diff --git a/src/types/withdrawal.ts b/src/types/withdrawal.ts deleted file mode 100644 index 27a0b5bf..00000000 --- a/src/types/withdrawal.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { TokenType } from './token'; -import { WalletConnection } from './index'; -import { WithdrawalsApi } from '../api'; - -export interface ETHWithdrawal { - type: TokenType.ETH; -} - -interface ETHPrepareWithdrawal { - type: TokenType.ETH; - data: { - decimals: number - } -} - -export const ETH_PREPARE_WITHDRAWAL_DATA: ETHPrepareWithdrawal = { - type: TokenType.ETH, - data: { - decimals: 18, - }, -} - -export interface ERC721Withdrawal { - type: TokenType.ERC721; - data: { - tokenId: string, - tokenAddress: string; - }; -} - -export interface ERC20Withdrawal { - type: TokenType.ERC20; - data: { - tokenId: string, - tokenAddress: string; - }; -} - -export interface ERC20PrepareWithdrawal { - type: TokenType.ERC20; - data: { - tokenAddress: string, - decimals: number, - }; -} - - -export type TokenWithdrawal = ETHWithdrawal | ERC20Withdrawal | ERC721Withdrawal; -export type TokenPrepareWithdrawal = ETHPrepareWithdrawal | ERC20PrepareWithdrawal | ERC721Withdrawal; - -export type PrepareWithdrawalRequest = { - token: TokenPrepareWithdrawal; - quantity: string; -} diff --git a/src/utils/config.ts b/src/utils/config.ts deleted file mode 100644 index b3d56452..00000000 --- a/src/utils/config.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { Configuration, ConfigurationParameters } from '../api'; -import { ImmutableXConfiguration, L1Configuration } from '../types'; -import { version } from '../../package.json'; - -const defaultHeaders = { 'x-sdk-version': `imx-core-sdk-ts-${version}` }; - -interface Environment extends L1Configuration { - basePath: string; - headers?: Record; -} - -export const getConfig = ({ - coreContractAddress, - registrationContractAddress, - chainID, - basePath, - headers, -}: Environment): ImmutableXConfiguration => { - if (!basePath.trim()) { - throw Error('basePath can not be empty'); - } - - headers = { ...(headers || {}), ...defaultHeaders }; - const apiConfigOptions: ConfigurationParameters = { - basePath, - baseOptions: { headers }, - }; - - return { - apiConfiguration: new Configuration(apiConfigOptions), - l1Configuration: { - coreContractAddress, - registrationContractAddress, - chainID, - }, - }; -}; diff --git a/src/utils/convertToSignableToken.ts b/src/utils/convertToSignableToken.ts new file mode 100644 index 00000000..22cefa22 --- /dev/null +++ b/src/utils/convertToSignableToken.ts @@ -0,0 +1,34 @@ +import { SignableToken } from '../api'; +import { TokenAmount } from '../types/tokens'; + +/** + * Helper method to convert token type to a SignableToken type + * @param token - the token type to convert to a SignableToken type + * @returns the converted SignableToken + */ +export function convertToSignableToken(token: TokenAmount): SignableToken { + switch (token.type) { + case 'ERC721': + return { + type: 'ERC721', + data: { + token_id: token.tokenId, + token_address: token.tokenAddress, + }, + }; + case 'ERC20': + return { + type: 'ERC20', + data: { + token_address: token.tokenAddress, + }, + }; + case 'ETH': + return { + type: 'ETH', + data: { + decimals: 18, + }, + }; + } +} diff --git a/src/utils/crypto/crypto.test.ts b/src/utils/crypto/crypto.test.ts index ed35687e..05416612 100644 --- a/src/utils/crypto/crypto.test.ts +++ b/src/utils/crypto/crypto.test.ts @@ -1,4 +1,4 @@ -import { grindKey, signMessage, signRaw } from './crypto'; +import { signMessage, signRaw } from './crypto'; import { getDefaultProvider } from '@ethersproject/providers'; import { Wallet } from '@ethersproject/wallet'; @@ -35,13 +35,3 @@ describe('signMessage()', () => { }); }); }); - -describe('Key grinding', () => { - it('should produce the correct ground key', () => { - const privateKey = - '86F3E7293141F20A8BAFF320E8EE4ACCB9D4A4BF2B4D295E8CEE784DB46E0519'; - expect(grindKey(privateKey)).toEqual( - '5c8c8683596c732541a59e03007b2d30dbbbb873556fe65b5fb63c16688f941', - ); - }); -}); diff --git a/src/utils/crypto/crypto.ts b/src/utils/crypto/crypto.ts index 0ab322da..7931af02 100644 --- a/src/utils/crypto/crypto.ts +++ b/src/utils/crypto/crypto.ts @@ -1,6 +1,5 @@ import BN from 'bn.js'; import * as encUtils from 'enc-utils'; -import hashJS from 'hash.js'; import { Signer } from '@ethersproject/abstract-signer'; type SignatureOptions = { @@ -9,42 +8,6 @@ type SignatureOptions = { recoveryParam: number | null | undefined; }; -const order = new BN( - '08000000 00000010 ffffffff ffffffff b781126d cae7b232 1e66a241 adc64d2f', - 16, -); - -const secpOrder = new BN( - 'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141', - 16, -); - -function hashKeyWithIndex(key: string, index: number): BN { - return new BN( - hashJS - .sha256() - .update( - encUtils.hexToBuffer( - encUtils.removeHexPrefix(key) + - encUtils.sanitizeBytes(encUtils.numberToHex(index), 2), - ), - ) - .digest('hex'), - 16, - ); -} - -export function grindKey(privateKey: string): string { - let i = 0; - let key: BN = hashKeyWithIndex(privateKey, i); - - while (!key.lt(secpOrder.sub(secpOrder.mod(order)))) { - key = hashKeyWithIndex(key.toString(16), i); - i = i++; - } - return key.mod(order).toString('hex'); -} - // used to sign message with L1 keys. Used for registration function serializeEthSignature(sig: SignatureOptions): string { // This is because golang appends a recovery param @@ -82,6 +45,23 @@ export async function signRaw( return serializeEthSignature(signature); } +type IMXAuthorisationHeaders = { + timestamp: string; + signature: string; +}; + +export async function generateIMXAuthorisationHeaders( + ethSigner: Signer, +): Promise { + const timestamp = Math.floor(Date.now() / 1000).toString(); + const signature = await signRaw(timestamp, ethSigner); + + return { + timestamp, + signature, + }; +} + export async function signMessage( message: string, signer: Signer, diff --git a/src/utils/formatError.ts b/src/utils/formatError.ts new file mode 100644 index 00000000..0756d5ef --- /dev/null +++ b/src/utils/formatError.ts @@ -0,0 +1,23 @@ +import axios from 'axios'; +import { APIError } from '../api'; +import { IMXError } from '../types/errors'; + +/** + * [Formats an error in the IMXError shape](https://axios-http.com/docs/handling_errors) + * @param error - The Error object thrown by the request + * @returns IMXError + */ +export function formatError(error: unknown): IMXError { + if (axios.isAxiosError(error) && error.response) { + const apiError: APIError = error.response.data; + return new IMXError({ + code: apiError.code, + details: apiError.details, + message: apiError.message, + }); + } + return new IMXError({ + code: 'unknown_error_code', + message: String(error), + }); +} diff --git a/src/utils/index.ts b/src/utils/index.ts index 55c3be99..4eaa9d17 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,5 +1,3 @@ -export * from './config'; export * from './crypto/crypto'; -export * from './stark/stark-curve'; -export * from './stark/stark-key'; -export * from './stark/base-signer'; +export * from './stark/starkCurve'; +export * from './stark/starkSigner'; diff --git a/src/utils/stark/base-signer.ts b/src/utils/stark/base-signer.ts deleted file mode 100644 index b8e1e8c6..00000000 --- a/src/utils/stark/base-signer.ts +++ /dev/null @@ -1,43 +0,0 @@ -import BN from 'bn.js'; -import { ec } from 'elliptic'; -import * as encUtils from 'enc-utils'; -import { L2Signer } from '../../types'; -import { Errors } from '../../workflows/errors'; -import { getXCoordinate } from './stark-key'; - -export class BaseSigner implements L2Signer { - constructor(private keyPair: ec.KeyPair) {} - - public getAddress(): string { - return encUtils.sanitizeHex( - getXCoordinate(this.keyPair.getPublic(true, 'hex')), - ); - } - - public async signMessage(msg: string): Promise { - return this.serialize(this.keyPair.sign(this.fixMessage(msg))); - } - - private fixMessage(msg: string): string { - msg = encUtils.removeHexPrefix(msg); - msg = new BN(msg, 16).toString(16); - - if (msg.length <= 62) { - // In this case, msg should not be transformed, as the byteLength() is at most 31, - // so delta < 0 (see _truncateToN). - return msg; - } - if (msg.length !== 63) { - throw new Error(Errors.StarkCurveInvalidMessageLength); - } - // In this case delta will be 4 so we perform a shift-left of 4 bits by adding a ZERO_BN. - return `${msg}0`; - } - - private serialize(sig: ec.Signature): string { - return encUtils.addHexPrefix( - encUtils.padLeft(sig.r.toString(16), 64) + - encUtils.padLeft(sig.s.toString(16), 64), - ); - } -} diff --git a/src/utils/stark/stark-curve.ts b/src/utils/stark/stark-curve.ts deleted file mode 100644 index ca37417d..00000000 --- a/src/utils/stark/stark-curve.ts +++ /dev/null @@ -1,30 +0,0 @@ -import * as encUtils from 'enc-utils'; -import BN from 'bn.js'; -import { Errors } from '../../workflows/errors'; - -export function getIntFromBits( - hex: string, - start: number, - end: number | undefined = undefined, -): number { - const bin = encUtils.hexToBinary(hex); - const bits = bin.slice(start, end); - const int = encUtils.binaryToNumber(bits); - return int; -} - -export function fixMessage(msg: string) { - msg = encUtils.removeHexPrefix(msg); - msg = new BN(msg, 16).toString(16); - - if (msg.length <= 62) { - // In this case, msg should not be transformed, as the byteLength() is at most 31, - // so delta < 0 (see _truncateToN). - return msg; - } - if (msg.length !== 63) { - throw new Error(Errors.StarkCurveInvalidMessageLength); - } - // In this case delta will be 4 so we perform a shift-left of 4 bits by adding a ZERO_BN. - return `${msg}0`; -} diff --git a/src/utils/stark/stark-key.test.ts b/src/utils/stark/stark-key.test.ts deleted file mode 100644 index 90ed641e..00000000 --- a/src/utils/stark/stark-key.test.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { - getAccountPath, - getKeyPairFromPath, - generateStarkWalletFromSignedMessage, -} from './stark-key'; - -const layer = 'starkex'; -const application = 'starkdeployement'; - -const seed = - '0xed43abe2785ca9dfe74a2a8b05feaf2cdd4eda6847914674f88f5f114c3b694d4ae930dd3808088ce40143430157ed79a66d7ff8d4919bd833d31d4a0f16f441'; -const ethAddress = '0xa4864d977b944315389d1765ffa7e66F74ee8cd7'; - -describe('Key derivation', () => { - it('should derive key from mnemonic and eth-address correctly', () => { - const index = '0'; - const path = getAccountPath(layer, application, ethAddress, index); - const keyPair = getKeyPairFromPath(seed, path); - expect(keyPair.getPrivate('hex')).toEqual( - '06cf0a8bf113352eb863157a45c5e5567abb34f8d32cddafd2c22aa803f4892c', - ); - }); -}); - -describe('generateStarkWalletFromSignedMessage', () => { - const signature = - '0x6d1550458c7a9a1257d73adbcf0fabc12f4497e970d9fa62dd88bf7d9e12719148c96225c1402d8707fd061b1aae2222bdf13571dfc82b3aa9974039f247f2b81b'; - - it('should generate stark wallet correctly', async () => { - const { starkPublicKey } = await generateStarkWalletFromSignedMessage( - ethAddress, - signature, - ); - expect(starkPublicKey).toEqual( - '0x035919acd61e97b3ecdc75ff8beed8d1803f7ea3cad2937926ae59cc3f8070d4', - ); - }); -}); diff --git a/src/utils/stark/stark-key.ts b/src/utils/stark/stark-key.ts deleted file mode 100644 index 8a3c7eb7..00000000 --- a/src/utils/stark/stark-key.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { getIntFromBits } from './stark-curve'; -import hashJS from 'hash.js'; -import { grindKey } from '../crypto/crypto'; -import { hdkey } from 'ethereumjs-wallet'; -import { curves, ec as Ec } from 'elliptic'; -import BN from 'bn.js'; -import * as encUtils from 'enc-utils'; -import { ec } from 'elliptic'; -import { splitSignature } from '@ethersproject/bytes'; -import { Signer } from '@ethersproject/abstract-signer'; -import { StarkWallet } from '../../types'; - -const DEFAULT_SIGNATURE_MESSAGE = - 'Only sign this request if you’ve initiated an action with Immutable X.'; - -const DEFAULT_ACCOUNT_APPLICATION = 'immutablex'; -const DEFAULT_ACCOUNT_LAYER = 'starkex'; -const DEFAULT_ACCOUNT_INDEX = '1'; - -const prime = new BN( - '800000000000011000000000000000000000000000000000000000000000001', - 16, -); -const order = new BN( - '08000000 00000010 ffffffff ffffffff b781126d cae7b232 1e66a241 adc64d2f', - 16, -); - -const constantPointsHex = [ - [ - '49ee3eba8c1600700ee1b87eb599f16716b0b1022947733551fde4050ca6804', - '3ca0cfe4b3bc6ddf346d49d06ea0ed34e621062c0e056c1d0405d266e10268a', - ], - [ - '1ef15c18599971b7beced415a40f0c7deacfd9b0d1819e03d723d8bc943cfca', - '5668060aa49730b7be4801df46ec62de53ecd11abe43a32873000c36e8dc1f', - ], -]; - -export function getAccountPath( - layer: string, - application: string, - ethereumAddress: string, - index: string, -): string { - const layerHash = hashJS.sha256().update(layer).digest('hex'); - const applicationHash = hashJS.sha256().update(application).digest('hex'); - const layerInt = getIntFromBits(layerHash, -31); - const applicationInt = getIntFromBits(applicationHash, -31); - const ethAddressInt1 = getIntFromBits(ethereumAddress, -31); - const ethAddressInt2 = getIntFromBits(ethereumAddress, -62, -31); - return `m/2645'/${layerInt}'/${applicationInt}'/${ethAddressInt1}'/${ethAddressInt2}'/${index}`; -} - -const starkEc = new Ec( - new curves.PresetCurve({ - type: 'short', - prime: null, - p: prime as any, // eslint-disable-line @typescript-eslint/no-explicit-any - a: '00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001', - b: '06f21413 efbe40de 150e596d 72f7a8c5 609ad26c 15c915c1 f4cdfcb9 9cee9e89', - n: order as any, // eslint-disable-line @typescript-eslint/no-explicit-any - hash: hashJS.sha256, - gRed: false, - g: constantPointsHex[1], - }), -); - -export function getKeyPair(privateKey: string): ec.KeyPair { - return starkEc.keyFromPrivate(privateKey, 'hex'); -} - -export function getKeyPairFromPath(seed: string, path: string): ec.KeyPair { - const privateKey = hdkey - .fromMasterSeed(Buffer.from(seed.slice(2), 'hex')) // assuming seed is '0x...' - .derivePath(path) - .getWallet() - .getPrivateKeyString(); - return getKeyPair(grindKey(privateKey)); -} - -export function getPublic(keyPair: ec.KeyPair, compressed = false): string { - return keyPair.getPublic(compressed, 'hex'); -} - -export function getXCoordinate(publicKey: string): string { - const keyPair = starkEc.keyFromPublic(encUtils.hexToArray(publicKey)); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return encUtils.sanitizeBytes((keyPair as any).pub.getX().toString(16), 2); -} - -function getStarkPublicKey(keyPair: ec.KeyPair): string { - return encUtils.sanitizeHex(getXCoordinate(getPublic(keyPair, true))); -} - -export async function generateStarkWalletFromSignedMessage( - ethAddress: string, - signature: string, -): Promise { - const path = getAccountPath( - DEFAULT_ACCOUNT_LAYER, - DEFAULT_ACCOUNT_APPLICATION, - ethAddress, - DEFAULT_ACCOUNT_INDEX, - ); - const keyPair = getKeyPairFromPath(splitSignature(signature).s, path); - const starkPublicKey = getStarkPublicKey(keyPair); - return { - path, - starkPublicKey, - starkKeyPair: keyPair, - }; -} - -export async function generateStarkWallet( - signer: Signer, -): Promise { - const ethAddress = (await signer.getAddress()).toLowerCase(); - const signature = await signer.signMessage(DEFAULT_SIGNATURE_MESSAGE); - return generateStarkWalletFromSignedMessage(ethAddress, signature); -} diff --git a/src/utils/stark/starkCurve.test.ts b/src/utils/stark/starkCurve.test.ts new file mode 100644 index 00000000..7b0e6dc4 --- /dev/null +++ b/src/utils/stark/starkCurve.test.ts @@ -0,0 +1,21 @@ +import BN from 'bn.js'; +import { generateStarkPrivateKey, grindKey, starkEcOrder } from './starkCurve'; + +describe('Key generation', () => { + it('should generate random Stark key', async () => { + expect(generateStarkPrivateKey()).not.toEqual(generateStarkPrivateKey()); + }); +}); + +describe('Key grinding', () => { + it('should produce the correct ground key', () => { + const privateKey = new BN( + '86F3E7293141F20A8BAFF320E8EE4ACCB9D4A4BF2B4D295E8CEE784DB46E0519', + 16, + ); + + expect(grindKey(privateKey, starkEcOrder)).toEqual( + '5c8c8683596c732541a59e03007b2d30dbbbb873556fe65b5fb63c16688f941', + ); + }); +}); diff --git a/src/utils/stark/starkCurve.ts b/src/utils/stark/starkCurve.ts new file mode 100644 index 00000000..4b71e3fc --- /dev/null +++ b/src/utils/stark/starkCurve.ts @@ -0,0 +1,102 @@ +import hash from 'hash.js'; +import { curves, ec } from 'elliptic'; +import * as encUtils from 'enc-utils'; +import BN from 'bn.js'; + +/* +Stark-friendly elliptic curve + +The Stark-friendly elliptic curve used is defined as follows: + +`y² ≡ x³ + α ⋅ x + β(modp)` + +where: + +``` +α = 1 +β = 3141592653589793238462643383279502884197169399375105820974944592307816406665 +p = 3618502788666131213697322783095070105623107215331596699973092056135872020481 + = 2²⁵¹ + 17 ⋅ 2¹⁹² + 1 +``` + +The Generator point used in the ECDSA scheme is: +``` +G = (874739451078007766457464989774322083649278607533249481151382481072868806602, + 152666792071518830868575557812948353041420400780739481342941381225525861407) +``` +https://docs.starkware.co/starkex-v4/crypto/stark-curve +*/ + +export const starkEcOrder = new BN( + '08000000 00000010 ffffffff ffffffff b781126d cae7b232 1e66a241 adc64d2f', + 16, +); + +export const starkEc = new ec( + new curves.PresetCurve({ + type: 'short', + prime: null, + p: '08000000 00000011 00000000 00000000 00000000 00000000 00000000 00000001', + a: '00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001', + b: '06f21413 efbe40de 150e596d 72f7a8c5 609ad26c 15c915c1 f4cdfcb9 9cee9e89', + n: starkEcOrder.toString('hex'), + hash: hash.sha256, + gRed: false, + g: [ + '1ef15c18599971b7beced415a40f0c7deacfd9b0d1819e03d723d8bc943cfca', + '5668060aa49730b7be4801df46ec62de53ecd11abe43a32873000c36e8dc1f', + ], + }), +); + +// Create a hash from a key + an index +function hashKeyWithIndex(key: string, index: number): BN { + return new BN( + hash + .sha256() + .update( + encUtils.hexToBuffer( + encUtils.removeHexPrefix(key) + + encUtils.sanitizeBytes(encUtils.numberToHex(index), 2), + ), + ) + .digest('hex'), + 16, + ); +} + +/* + This function receives a key seed and produces an appropriate StarkEx key from a uniform + distribution. + Although it is possible to define a StarkEx key as a residue between the StarkEx EC order and a + random 256bit digest value, the result would be a biased key. In order to prevent this bias, we + deterministically search (by applying more hashes, AKA grinding) for a value lower than the largest + 256bit multiple of StarkEx EC order. + + https://github.com/starkware-libs/starkware-crypto-utils/blob/dev/src/js/key_derivation.js#L119 +*/ +export function grindKey(keySeed: BN, keyValLimit: BN) { + const sha256EcMaxDigest = new BN( + '1 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000', + 16, + ); + const maxAllowedVal = sha256EcMaxDigest.sub( + sha256EcMaxDigest.mod(keyValLimit), + ); + let key = hashKeyWithIndex(keySeed.toString('hex'), 0); + // Make sure the produced key is devided by the Stark EC order, and falls within the range + // [0, maxAllowedVal). + for (let i = 1; key.gte(maxAllowedVal); i++) { + key = hashKeyWithIndex(key.toString('hex'), i); + } + return key.umod(keyValLimit).toString('hex'); +} + +/** + * Generates a new Stark private key + * @returns the private key as a hex string + */ +export function generateStarkPrivateKey(): string { + const keyPair = starkEc.genKeyPair(); + return grindKey(keyPair.getPrivate(), starkEcOrder); +} diff --git a/src/utils/stark/starkSigner.test.ts b/src/utils/stark/starkSigner.test.ts new file mode 100644 index 00000000..3c7db967 --- /dev/null +++ b/src/utils/stark/starkSigner.test.ts @@ -0,0 +1,42 @@ +import { Errors } from '../../workflows/errors'; +import { createStarkSigner } from './starkSigner'; + +describe('StarkSigner', () => { + it('should return correct address', async () => { + const mockPrivateKey = + '019b5de47e5fc8f2e8c3415b42a126aadb462637f2feca1df3733fe3f37cf50f'; + const expectedPublicKey = + '0x0790436373c1d5b7a88ce4fd7ac96591a385b2b6392d1ea44a165f75115b82ac'; + + const signer = createStarkSigner(mockPrivateKey); + + expect(signer.getAddress()).toEqual(expectedPublicKey); + }); + + it('should sign message and produce expected signature', async () => { + const privateKey = + '7CEFD165C3A374AC3E05170D699BF6549E371522883B447B284A3C16FC04CCC'; + const encodedMessage = + 'e2919c6f19f93d3b9e40c1eef10660bd12240a1520793a28ef21a7457037dd'; + const expectedSignature = + '0x0752063caed87ef11d6e91c4a226ebfe98f190d248b857d882ae331771e6e4620364a2c46e2190bbb243309a40da051b88f0657ea9d1c2ca11510fe18a8a22ae'; + const signer = createStarkSigner(privateKey); + + const signature = await signer.signMessage(encodedMessage); + + expect(signature).toEqual(expectedSignature); + }); + + it('should throw an error if message is too long', async () => { + const privateKey = + '7CEFD165C3A374AC3E05170D699BF6549E371522883B447B284A3C16FC04CCC'; + const encodedMessage = + 'e2919c6f19f93d3b9e40c1eef10660bd12240a1520793a28ef21a7457037dd02'; + + const signer = createStarkSigner(privateKey); + + expect(signer.signMessage(encodedMessage)).rejects.toThrow( + new Error(Errors.StarkCurveInvalidMessageLength), + ); + }); +}); diff --git a/src/utils/stark/starkSigner.ts b/src/utils/stark/starkSigner.ts new file mode 100644 index 00000000..b87d93a7 --- /dev/null +++ b/src/utils/stark/starkSigner.ts @@ -0,0 +1,62 @@ +import { ec } from 'elliptic'; +import * as encUtils from 'enc-utils'; +import { StarkSigner } from '../../types'; +import { starkEc } from './starkCurve'; +import BN from 'bn.js'; +import { Errors } from '../../workflows/errors'; + +export class StandardStarkSigner implements StarkSigner { + private keyPair: ec.KeyPair; + + constructor(private privateKey: string) { + this.keyPair = starkEc.keyFromPrivate(privateKey, 'hex'); + } + + public getAddress(): string { + const xCoordinate = this.keyPair.getPublic().getX().toString('hex'); + return encUtils.sanitizeHex(xCoordinate); + } + + public async signMessage(msg: string): Promise { + return this.serialize(this.keyPair.sign(this.fixMsgHashLen(msg))); + } + + private serialize(sig: ec.Signature): string { + return encUtils.addHexPrefix( + encUtils.padLeft(sig.r.toString('hex'), 64) + + encUtils.padLeft(sig.s.toString('hex'), 64), + ); + } + + /* + The function _truncateToN in lib/elliptic/ec/index.js does a shift-right of delta bits, + if delta is positive, where + delta = msgHash.byteLength() * 8 - starkEx.n.bitLength(). + This function does the opposite operation so that + _truncateToN(fixMsgHashLen(msgHash)) == msgHash. +*/ + private fixMsgHashLen(msg: string) { + msg = encUtils.removeHexPrefix(msg); + msg = new BN(msg, 'hex').toString('hex'); + + if (msg.length <= 62) { + // In this case, msg should not be transformed, as the byteLength() is at most 31, + // so delta < 0 (see _truncateToN). + return msg; + } + if (msg.length !== 63) { + throw new Error(Errors.StarkCurveInvalidMessageLength); + } + // In this case delta will be 4 so we perform a shift-left of 4 bits by adding a ZERO_BN. + return `${msg}0`; + } +} + +/** + * Creates a new Stark Signer + * @params starkPrivateKey - the private key as a hex string + * @returns a StarkSigner + */ +export function createStarkSigner(starkPrivateKey: string): StarkSigner { + return new StandardStarkSigner(starkPrivateKey); +} diff --git a/src/workflows/burn.ts b/src/workflows/burn.ts deleted file mode 100644 index ce6e60d3..00000000 --- a/src/workflows/burn.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { - TransfersApi, - TransfersApiGetTransferRequest, - CreateTransferResponseV1, -} from '../api'; -import { WalletConnection, UnsignedTransferRequest } from '../types'; -import { GetSignableBurnRequest } from './types'; -import { transfersWorkflow } from './transfers'; - -const BurnEthAddress = '0x0000000000000000000000000000000000000000'; - -type burnWorkflowParams = WalletConnection & { - request: GetSignableBurnRequest; - transfersApi: TransfersApi; -}; - -export async function burnWorkflow({ - l1Signer, - l2Signer, - request, - transfersApi, -}: burnWorkflowParams): Promise { - const transferRequest: UnsignedTransferRequest = { - sender: request.sender, - receiver: BurnEthAddress, - token: request.token, - amount: request.amount, - }; - - return transfersWorkflow({ - l1Signer, - l2Signer, - request: transferRequest, - transfersApi, - }); -} - -export async function getBurnWorkflow( - request: TransfersApiGetTransferRequest, - transfersApi: TransfersApi, -) { - return await transfersApi.getTransfer({ id: request.id }); -} diff --git a/src/workflows/deposit/depositERC20.ts b/src/workflows/deposit/depositERC20.ts index a39e2e79..1a452fa1 100644 --- a/src/workflows/deposit/depositERC20.ts +++ b/src/workflows/deposit/depositERC20.ts @@ -12,8 +12,9 @@ import { getSignableRegistrationOnchain, isRegisteredOnChainWorkflow, } from '../registration'; -import { ImmutableXConfiguration, ERC20Deposit } from '../../types'; +import { ERC20Amount } from '../../types'; import { BigNumber } from '@ethersproject/bignumber'; +import { ImmutableXConfiguration } from '../../config'; interface ERC20TokenData { decimals: number; @@ -70,7 +71,7 @@ async function executeRegisterAndDepositERC20( export async function depositERC20Workflow( signer: Signer, - deposit: ERC20Deposit, + deposit: ERC20Amount, depositsApi: DepositsApi, usersApi: UsersApi, tokensApi: TokensApi, @@ -88,12 +89,12 @@ export async function depositERC20Workflow( token_address: deposit.tokenAddress, }; - const amount = parseUnits(deposit.amount, BigNumber.from(decimals)); + const amount = parseUnits(deposit.amount, 0); // 0 to always use undecimalized value // Approve whether an amount of token from an account can be spent by a third-party account const tokenContract = IERC20__factory.connect(deposit.tokenAddress, signer); const approveTransaction = await tokenContract.populateTransaction.approve( - config.l1Configuration.coreContractAddress, + config.ethConfiguration.coreContractAddress, amount, ); await signer.sendTransaction(approveTransaction); @@ -130,12 +131,12 @@ export async function depositERC20Workflow( const quantizedAmount = BigNumber.from(signableDepositResult.data.amount); const coreContract = Core__factory.connect( - config.l1Configuration.coreContractAddress, + config.ethConfiguration.coreContractAddress, signer, ); const registrationContract = Registration__factory.connect( - config.l1Configuration.registrationContractAddress, + config.ethConfiguration.registrationContractAddress, signer, ); diff --git a/src/workflows/deposit/depositERC721.ts b/src/workflows/deposit/depositERC721.ts index eb52c750..2a4be24b 100644 --- a/src/workflows/deposit/depositERC721.ts +++ b/src/workflows/deposit/depositERC721.ts @@ -12,7 +12,8 @@ import { getSignableRegistrationOnchain, isRegisteredOnChainWorkflow, } from '../registration'; -import { ImmutableXConfiguration, ERC721Deposit } from '../../types'; +import { ERC721Token } from '../../types'; +import { ImmutableXConfiguration } from '../../config'; interface ERC721TokenData { token_id: string; @@ -70,7 +71,7 @@ async function executeDepositERC721( export async function depositERC721Workflow( signer: Signer, - deposit: ERC721Deposit, + deposit: ERC721Token, depositsApi: DepositsApi, usersApi: UsersApi, encodingApi: EncodingApi, @@ -88,7 +89,7 @@ export async function depositERC721Workflow( // Approve whether an amount of token from an account can be spent by a third-party account const tokenContract = IERC721__factory.connect(deposit.tokenAddress, signer); const approveTransaction = await tokenContract.populateTransaction.approve( - config.l1Configuration.coreContractAddress, + config.ethConfiguration.coreContractAddress, deposit.tokenId, ); await signer.sendTransaction(approveTransaction); @@ -125,12 +126,12 @@ export async function depositERC721Workflow( const vaultId = signableDepositResult.data.vault_id; const coreContract = Core__factory.connect( - config.l1Configuration.coreContractAddress, + config.ethConfiguration.coreContractAddress, signer, ); const registrationContract = Registration__factory.connect( - config.l1Configuration.registrationContractAddress, + config.ethConfiguration.registrationContractAddress, signer, ); diff --git a/src/workflows/deposit/depositEth.ts b/src/workflows/deposit/depositEth.ts index 24f367c6..b04502c6 100644 --- a/src/workflows/deposit/depositEth.ts +++ b/src/workflows/deposit/depositEth.ts @@ -1,14 +1,15 @@ import { Signer } from '@ethersproject/abstract-signer'; import { TransactionResponse } from '@ethersproject/providers'; import { DepositsApi, EncodingApi, UsersApi } from '../../api'; -import { parseEther } from '@ethersproject/units'; +import { parseUnits } from '@ethersproject/units'; import { Core, Core__factory, Registration__factory } from '../../contracts'; import { getSignableRegistrationOnchain, isRegisteredOnChainWorkflow, } from '../registration'; -import { ImmutableXConfiguration, ETHDeposit } from '../../types'; +import { ETHAmount } from '../../types'; import { BigNumber } from '@ethersproject/bignumber'; +import { ImmutableXConfiguration } from '../../config'; interface ETHTokenData { decimals: number; @@ -60,7 +61,7 @@ async function executeDepositEth( export async function depositEthWorkflow( signer: Signer, - deposit: ETHDeposit, + deposit: ETHAmount, depositsApi: DepositsApi, usersApi: UsersApi, encodingApi: EncodingApi, @@ -70,7 +71,7 @@ export async function depositEthWorkflow( const data: ETHTokenData = { decimals: 18, }; - const amount = parseEther(deposit.amount); + const amount = parseUnits(deposit.amount, 'wei'); const getSignableDepositRequest = { user, @@ -99,12 +100,12 @@ export async function depositEthWorkflow( const vaultId = signableDepositResult.data.vault_id; const coreContract = Core__factory.connect( - config.l1Configuration.coreContractAddress, + config.ethConfiguration.coreContractAddress, signer, ); const registrationContract = Registration__factory.connect( - config.l1Configuration.registrationContractAddress, + config.ethConfiguration.registrationContractAddress, signer, ); diff --git a/src/workflows/orders.ts b/src/workflows/orders.ts index 2a879087..77343853 100644 --- a/src/workflows/orders.ts +++ b/src/workflows/orders.ts @@ -1,14 +1,17 @@ import { OrdersApi, OrdersApiCreateOrderRequest, - GetSignableOrderRequest, GetSignableCancelOrderRequest, + GetSignableOrderRequest, + CancelOrderResponse, + CreateOrderResponse, } from '../api'; -import { WalletConnection } from '../types'; +import { UnsignedOrderRequest, WalletConnection } from '../types'; import { signRaw } from '../utils'; +import { convertToSignableToken } from '../utils/convertToSignableToken'; type CreateOrderWorkflowParams = WalletConnection & { - request: GetSignableOrderRequest; + request: UnsignedOrderRequest; ordersApi: OrdersApi; }; @@ -18,23 +21,35 @@ type CancelOrderWorkflowParams = WalletConnection & { }; export async function createOrderWorkflow({ - l1Signer, - l2Signer, + ethSigner, + starkSigner, request, ordersApi, -}: CreateOrderWorkflowParams) { +}: CreateOrderWorkflowParams): Promise { + const ethAddress = await ethSigner.getAddress(); + + const amountSell = request.sell.type === 'ERC721' ? '1' : request.sell.amount; + const amountBuy = request.buy.type === 'ERC721' ? '1' : request.buy.amount; + const getSignableOrderRequest: GetSignableOrderRequest = { + user: ethAddress, + amount_buy: amountBuy, + token_buy: convertToSignableToken(request.buy), + amount_sell: amountSell, + token_sell: convertToSignableToken(request.sell), + fees: request.fees, + expiration_timestamp: request.expiration_timestamp, + }; + const getSignableOrderResponse = await ordersApi.getSignableOrder({ - getSignableOrderRequestV3: request, + getSignableOrderRequestV3: getSignableOrderRequest, }); const { signable_message: signableMessage, payload_hash: payloadHash } = getSignableOrderResponse.data; - const ethSignature = await signRaw(signableMessage, l1Signer); - - const starkSignature = await l2Signer.signMessage(payloadHash); + const ethSignature = await signRaw(signableMessage, ethSigner); - const ethAddress = await l1Signer.getAddress(); + const starkSignature = await starkSigner.signMessage(payloadHash); const resp = getSignableOrderResponse.data; @@ -65,11 +80,11 @@ export async function createOrderWorkflow({ } export async function cancelOrderWorkflow({ - l1Signer, - l2Signer, + ethSigner, + starkSigner, request, ordersApi, -}: CancelOrderWorkflowParams) { +}: CancelOrderWorkflowParams): Promise { const getSignableCancelOrderResponse = await ordersApi.getSignableCancelOrder( { getSignableCancelOrderRequest: { @@ -81,11 +96,11 @@ export async function cancelOrderWorkflow({ const { signable_message: signableMessage, payload_hash: payloadHash } = getSignableCancelOrderResponse.data; - const ethSignature = await signRaw(signableMessage, l1Signer); + const ethSignature = await signRaw(signableMessage, ethSigner); - const starkSignature = await l2Signer.signMessage(payloadHash); + const starkSignature = await starkSigner.signMessage(payloadHash); - const ethAddress = await l1Signer.getAddress(); + const ethAddress = await ethSigner.getAddress(); const cancelOrderResponse = await ordersApi.cancelOrder({ id: request.order_id.toString(), diff --git a/src/workflows/registration.ts b/src/workflows/registration.ts index f0ed048f..9cd33f6b 100644 --- a/src/workflows/registration.ts +++ b/src/workflows/registration.ts @@ -1,4 +1,8 @@ -import { UsersApi, GetSignableRegistrationResponse } from '../api'; +import { + UsersApi, + GetSignableRegistrationResponse, + RegisterUserResponse, +} from '../api'; import { WalletConnection } from '../types'; import { signRaw } from '../utils'; import { Registration } from '../contracts'; @@ -7,29 +11,13 @@ type registerOffchainWorkflowParams = WalletConnection & { usersApi: UsersApi; }; -async function isUserRegistered( - userAddress: string, - usersApi: UsersApi, -): Promise { - try { - await usersApi.getUsers({ user: userAddress }); - return true; - } catch (error) { - return false; - } -} - export async function registerOffchainWorkflow({ - l1Signer, - l2Signer, + ethSigner, + starkSigner, usersApi, -}: registerOffchainWorkflowParams): Promise { - const userAddress = await l1Signer.getAddress(); - const starkPublicKey = await l2Signer.getAddress(); - - if (await isUserRegistered(userAddress, usersApi)) { - return; - } +}: registerOffchainWorkflowParams): Promise { + const userAddress = await ethSigner.getAddress(); + const starkPublicKey = await starkSigner.getAddress(); const signableResult = await usersApi.getSignableRegistrationOffchain({ getSignableRegistrationRequest: { @@ -41,11 +29,11 @@ export async function registerOffchainWorkflow({ const { signable_message: signableMessage, payload_hash: payloadHash } = signableResult.data; - const ethSignature = await signRaw(signableMessage, l1Signer); + const ethSignature = await signRaw(signableMessage, ethSigner); - const starkSignature = await l2Signer.signMessage(payloadHash); + const starkSignature = await starkSigner.signMessage(payloadHash); - await usersApi.registerUser({ + const registeredUser = await usersApi.registerUser({ registerUserRequest: { eth_signature: ethSignature, ether_key: userAddress, @@ -54,14 +42,25 @@ export async function registerOffchainWorkflow({ }, }); - return; + return registeredUser.data; +} + +interface IsRegisteredCheckError { + reason: string; } export async function isRegisteredOnChainWorkflow( starkPublicKey: string, contract: Registration, ): Promise { - return await contract.isRegistered(starkPublicKey); + try { + return await contract.isRegistered(starkPublicKey); + } catch (ex) { + if ((ex as IsRegisteredCheckError).reason === 'USER_UNREGISTERED') { + return false; + } + throw ex; + } } export async function getSignableRegistrationOnchain( diff --git a/src/workflows/trades.ts b/src/workflows/trades.ts index 182a0044..11b92e36 100644 --- a/src/workflows/trades.ts +++ b/src/workflows/trades.ts @@ -12,12 +12,12 @@ type createTradeWorkflowParams = WalletConnection & { }; export async function createTradeWorkflow({ - l1Signer, - l2Signer, + ethSigner, + starkSigner, request, tradesApi, }: createTradeWorkflowParams): Promise { - const ethAddress = await l1Signer.getAddress(); + const ethAddress = await ethSigner.getAddress(); const signableResult = await tradesApi.getSignableTrade({ getSignableTradeRequest: { @@ -30,9 +30,9 @@ export async function createTradeWorkflow({ const { signable_message: signableMessage, payload_hash: payloadHash } = signableResult.data; - const ethSignature = await signRaw(signableMessage, l1Signer); + const ethSignature = await signRaw(signableMessage, ethSigner); - const starkSignature = await l2Signer.signMessage(payloadHash); + const starkSignature = await starkSigner.signMessage(payloadHash); const createTradeResponse = await tradesApi.createTrade({ createTradeRequest: { diff --git a/src/workflows/transfers.ts b/src/workflows/transfers.ts index d49a89ac..96501f88 100644 --- a/src/workflows/transfers.ts +++ b/src/workflows/transfers.ts @@ -1,33 +1,40 @@ import { TransfersApi, - GetSignableTransferRequest, - GetSignableTransferRequestV1, - CreateTransferResponse, CreateTransferResponseV1, + CreateTransferResponse, } from '../api'; -import { WalletConnection } from '../types'; +import { + NftTransferDetails, + UnsignedTransferRequest, + WalletConnection, +} from '../types'; import { signRaw } from '../utils'; +import { convertToSignableToken } from '../utils/convertToSignableToken'; type TransfersWorkflowParams = WalletConnection & { - request: GetSignableTransferRequestV1; + request: UnsignedTransferRequest; transfersApi: TransfersApi; }; + type BatchTransfersWorkflowParams = WalletConnection & { - request: GetSignableTransferRequest; + request: Array; transfersApi: TransfersApi; }; export async function transfersWorkflow({ - l1Signer, - l2Signer, + ethSigner, + starkSigner, request, transfersApi, }: TransfersWorkflowParams): Promise { + const ethAddress = await ethSigner.getAddress(); + + const transferAmount = request.type === 'ERC721' ? '1' : request.amount; const signableResult = await transfersApi.getSignableTransferV1({ getSignableTransferRequest: { - sender: request.sender, - token: request.token, - amount: request.amount, + sender: ethAddress, + token: convertToSignableToken(request), + amount: transferAmount, receiver: request.receiver, }, }); @@ -35,11 +42,9 @@ export async function transfersWorkflow({ const { signable_message: signableMessage, payload_hash: payloadHash } = signableResult.data; - const ethSignature = await signRaw(signableMessage, l1Signer); + const ethSignature = await signRaw(signableMessage, ethSigner); - const starkSignature = await l2Signer.signMessage(payloadHash); - - const ethAddress = await l1Signer.getAddress(); + const starkSignature = await starkSigner.signMessage(payloadHash); const transferSigningParams = { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion @@ -69,15 +74,29 @@ export async function transfersWorkflow({ } export async function batchTransfersWorkflow({ - l1Signer, - l2Signer, + ethSigner, + starkSigner, request, transfersApi, }: BatchTransfersWorkflowParams): Promise { + const ethAddress = await ethSigner.getAddress(); + + const signableRequests = request.map(nftTransfer => { + return { + amount: '1', + token: convertToSignableToken({ + type: 'ERC721', + tokenId: nftTransfer.tokenId, + tokenAddress: nftTransfer.tokenAddress, + }), + receiver: nftTransfer.receiver, + }; + }); + const signableResult = await transfersApi.getSignableTransfer({ getSignableTransferRequestV2: { - sender_ether_key: request.sender_ether_key, - signable_requests: request.signable_requests, + sender_ether_key: ethAddress, + signable_requests: signableRequests, }, }); @@ -87,13 +106,11 @@ export async function batchTransfersWorkflow({ throw new Error('Invalid response from Signable registration offchain'); } - const ethAddress = await l1Signer.getAddress(); - - const ethSignature = await signRaw(signableMessage, l1Signer); + const ethSignature = await signRaw(signableMessage, ethSigner); const requests = []; for (const resp of signableResult.data.signable_responses) { - const starkSignature = await l2Signer.signMessage(resp.payload_hash); + const starkSignature = await starkSigner.signMessage(resp.payload_hash); const req = { sender_vault_id: resp.sender_vault_id, receiver_stark_key: resp.receiver_stark_key, diff --git a/src/workflows/types.ts b/src/workflows/types.ts deleted file mode 100644 index 6b74ea5e..00000000 --- a/src/workflows/types.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { SignableToken } from '../api'; - -/** - * - * @export - * @interface GetSignableBurnRequest - */ -export interface GetSignableBurnRequest { - /** - * Amount of the token to transfer - * @type {string} - * @memberof GetSignableBurnRequest - */ - amount: string; - /** - * Ethereum address of the receiving user - * @type {string} - * @memberof GetSignableBurnRequest - */ - sender: string; - /** - * - * @type {SignableToken} - * @memberof GetSignableBurnRequest - */ - token: SignableToken; -} diff --git a/src/workflows/withdrawal/completeERC20Withdrawal.ts b/src/workflows/withdrawal/completeERC20Withdrawal.ts index cf3c0bf5..de237098 100644 --- a/src/workflows/withdrawal/completeERC20Withdrawal.ts +++ b/src/workflows/withdrawal/completeERC20Withdrawal.ts @@ -1,17 +1,14 @@ import { Signer } from '@ethersproject/abstract-signer'; import { TransactionResponse } from '@ethersproject/providers'; import { EncodingApi, UsersApi } from '../../api'; +import { ImmutableXConfiguration } from '../../config'; import { Core, Core__factory, Registration, Registration__factory, } from '../../contracts'; -import { - ImmutableXConfiguration, - ERC20Withdrawal, - TokenType, -} from '../../types'; +import { ERC20Token } from '../../types'; import { getSignableRegistrationOnchain, isRegisteredOnChainWorkflow, @@ -58,31 +55,25 @@ async function executeWithdrawERC20( return signer.sendTransaction(populatedTransaction); } -export async function completeERC20WithdrawalWorfklow( +export async function completeERC20WithdrawalWorkflow( signer: Signer, starkPublicKey: string, - token: ERC20Withdrawal, + token: ERC20Token, encodingApi: EncodingApi, usersApi: UsersApi, config: ImmutableXConfiguration, ) { - const assetType = await getEncodeAssetInfo( - 'asset', - TokenType.ERC20, - encodingApi, - { - token_id: token.data.tokenId, - token_address: token.data.tokenAddress, - }, - ); + const assetType = await getEncodeAssetInfo('asset', 'ERC20', encodingApi, { + token_address: token.tokenAddress, + }); const coreContract = Core__factory.connect( - config.l1Configuration.coreContractAddress, + config.ethConfiguration.coreContractAddress, signer, ); const registrationContract = Registration__factory.connect( - config.l1Configuration.registrationContractAddress, + config.ethConfiguration.registrationContractAddress, signer, ); diff --git a/src/workflows/withdrawal/completeERC721Withdrawal.ts b/src/workflows/withdrawal/completeERC721Withdrawal.ts index 27df001c..9e09cda9 100644 --- a/src/workflows/withdrawal/completeERC721Withdrawal.ts +++ b/src/workflows/withdrawal/completeERC721Withdrawal.ts @@ -7,20 +7,17 @@ import { Registration__factory, } from '../../contracts'; import * as encUtils from 'enc-utils'; -import { - ImmutableXConfiguration, - ERC721Withdrawal, - TokenType, -} from '../../types'; +import { ERC721Token } from '../../types'; import { getEncodeAssetInfo } from './getEncodeAssetInfo'; import { getSignableRegistrationOnchain, isRegisteredOnChainWorkflow, } from '../registration'; import { TransactionResponse } from '@ethersproject/providers'; +import { ImmutableXConfiguration } from '../../config'; interface MintableERC721Withdrawal { - type: TokenType.ERC721; + type: 'ERC721'; data: { id: string; blueprint?: string; @@ -88,7 +85,7 @@ async function completeMintableERC721Withdrawal( ) { const assetType = await getEncodeAssetInfo( 'mintable-asset', - TokenType.ERC721, + 'ERC721', encodingApi, { id: token.data.id, @@ -99,12 +96,12 @@ async function completeMintableERC721Withdrawal( const mintingBlob = getMintingBlob(token); const coreContract = Core__factory.connect( - config.l1Configuration.coreContractAddress, + config.ethConfiguration.coreContractAddress, signer, ); const registrationContract = Registration__factory.connect( - config.l1Configuration.registrationContractAddress, + config.ethConfiguration.registrationContractAddress, signer, ); @@ -179,28 +176,23 @@ async function executeWithdrawERC721( async function completeERC721Withdrawal( signer: Signer, starkPublicKey: string, - token: ERC721Withdrawal, + token: ERC721Token, encodingApi: EncodingApi, usersApi: UsersApi, config: ImmutableXConfiguration, ) { - const assetType = await getEncodeAssetInfo( - 'asset', - TokenType.ERC721, - encodingApi, - { - token_id: token.data.tokenId, - token_address: token.data.tokenAddress, - }, - ); + const assetType = await getEncodeAssetInfo('asset', 'ERC721', encodingApi, { + token_id: token.tokenId, + token_address: token.tokenAddress, + }); const coreContract = Core__factory.connect( - config.l1Configuration.coreContractAddress, + config.ethConfiguration.coreContractAddress, signer, ); const registrationContract = Registration__factory.connect( - config.l1Configuration.registrationContractAddress, + config.ethConfiguration.registrationContractAddress, signer, ); @@ -214,7 +206,7 @@ async function completeERC721Withdrawal( signer, assetType.asset_type, starkPublicKey, - token.data.tokenId, + token.tokenId, registrationContract, usersApi, ); @@ -223,7 +215,7 @@ async function completeERC721Withdrawal( signer, assetType.asset_type, starkPublicKey, - token.data.tokenId, + token.tokenId, coreContract, ); } @@ -232,14 +224,14 @@ async function completeERC721Withdrawal( export async function completeERC721WithdrawalWorkflow( signer: Signer, starkPublicKey: string, - token: ERC721Withdrawal, + token: ERC721Token, encodingApi: EncodingApi, mintsApi: MintsApi, usersApi: UsersApi, config: ImmutableXConfiguration, ) { - const tokenAddress = token.data.tokenAddress; - const tokenId = token.data.tokenId; + const tokenAddress = token.tokenAddress; + const tokenId = token.tokenId; return await mintsApi .getMintableTokenDetailsByClientTokenId({ tokenAddress, @@ -250,7 +242,7 @@ export async function completeERC721WithdrawalWorkflow( signer, starkPublicKey, { - type: TokenType.ERC721, + type: 'ERC721', data: { id: tokenId, tokenAddress: tokenAddress, @@ -263,8 +255,8 @@ export async function completeERC721WithdrawalWorkflow( ), ) .catch(error => { - if (error.response.status === 404) { - console.log(error.response); // token is already minted on L1 + if (error.response?.status === 404) { + // token is already minted on L1 return completeERC721Withdrawal( signer, starkPublicKey, diff --git a/src/workflows/withdrawal/completeEthWithdrawal.ts b/src/workflows/withdrawal/completeEthWithdrawal.ts index 934a050e..130207b3 100644 --- a/src/workflows/withdrawal/completeEthWithdrawal.ts +++ b/src/workflows/withdrawal/completeEthWithdrawal.ts @@ -1,13 +1,13 @@ import { Signer } from '@ethersproject/abstract-signer'; import { TransactionResponse } from '@ethersproject/providers'; import { EncodingApi, UsersApi } from '../../api'; +import { ImmutableXConfiguration } from '../../config'; import { Core, Core__factory, Registration, Registration__factory, } from '../../contracts'; -import { ImmutableXConfiguration } from '../../types'; import { getSignableRegistrationOnchain, isRegisteredOnChainWorkflow, @@ -64,12 +64,12 @@ export async function completeEthWithdrawalWorkflow( const assetType = await getEncodeAssetInfo('asset', 'ETH', encodingApi); const coreContract = Core__factory.connect( - config.l1Configuration.coreContractAddress, + config.ethConfiguration.coreContractAddress, signer, ); const registrationContract = Registration__factory.connect( - config.l1Configuration.registrationContractAddress, + config.ethConfiguration.registrationContractAddress, signer, ); diff --git a/src/workflows/withdrawal/prepareWithdrawal.ts b/src/workflows/withdrawal/prepareWithdrawal.ts index 2aad8e46..fae7cc21 100644 --- a/src/workflows/withdrawal/prepareWithdrawal.ts +++ b/src/workflows/withdrawal/prepareWithdrawal.ts @@ -1,50 +1,45 @@ import { WithdrawalsApi, CreateWithdrawalResponse } from '../../api'; -import { - convertToSignableRequestFormat, - PrepareWithdrawalRequest, - WalletConnection, -} from '../../types'; +import { TokenAmount, WalletConnection } from '../../types'; import { signMessage } from '../../utils'; +import { convertToSignableToken } from '../../utils/convertToSignableToken'; const assertIsDefined = (value?: T): T => { if (value !== undefined) return value; throw new Error('undefined field exception'); }; -type PrepareWithdrawalWorkflowParams = PrepareWithdrawalRequest & +type PrepareWithdrawalWorkflowParams = TokenAmount & WalletConnection & { withdrawalsApi: WithdrawalsApi; }; -export async function prepareWithdrawalWorkflow({ - l1Signer, - l2Signer, - token, - quantity, - withdrawalsApi, -}: PrepareWithdrawalWorkflowParams): Promise { +export async function prepareWithdrawalWorkflow( + params: PrepareWithdrawalWorkflowParams, +): Promise { + const { ethSigner, starkSigner, withdrawalsApi } = params; + const withdrawalAmount = params.type === 'ERC721' ? '1' : params.amount; const signableWithdrawalResult = await withdrawalsApi.getSignableWithdrawal({ getSignableWithdrawalRequest: { - user: await l1Signer.getAddress(), - token: convertToSignableRequestFormat(token), - amount: quantity.toString(), + user: await ethSigner.getAddress(), + token: convertToSignableToken(params), + amount: withdrawalAmount, }, }); const { signable_message: signableMessage, payload_hash: payloadHash } = signableWithdrawalResult.data; - const starkSignature = await l2Signer.signMessage(payloadHash); + const starkSignature = await starkSigner.signMessage(payloadHash); const { ethAddress, ethSignature } = await signMessage( signableMessage, - l1Signer, + ethSigner, ); const prepareWithdrawalResponse = await withdrawalsApi.createWithdrawal({ createWithdrawalRequest: { stark_key: assertIsDefined(signableWithdrawalResult.data.stark_key), - amount: quantity.toString(), + amount: withdrawalAmount, asset_id: assertIsDefined(signableWithdrawalResult.data.asset_id), vault_id: assertIsDefined(signableWithdrawalResult.data.vault_id), nonce: assertIsDefined(signableWithdrawalResult.data.nonce), diff --git a/src/workflows/workflows.ts b/src/workflows/workflows.ts index f200703f..da1c3206 100644 --- a/src/workflows/workflows.ts +++ b/src/workflows/workflows.ts @@ -1,5 +1,4 @@ import { Signer } from '@ethersproject/abstract-signer'; - import { DepositsApi, EncodingApi, @@ -8,29 +7,34 @@ import { TokensApi, UsersApi, TransfersApi, - TransfersApiGetTransferRequest, WithdrawalsApi, - GetSignableOrderRequest, GetSignableCancelOrderRequest, GetSignableTradeRequest, TradesApi, + ProjectsApi, + CreateProjectRequest, + CollectionsApi, + CreateCollectionRequest, + UpdateCollectionRequest, + MetadataApi, + AddMetadataSchemaToCollectionRequest, + MetadataSchemaRequest, + MetadataRefreshesApi, + CreateMetadataRefreshRequest, } from '../api'; import { UnsignedMintRequest, UnsignedTransferRequest, - UnsignedBatchNftTransferRequest, - ERC20Deposit, - ERC721Deposit, - ETHDeposit, - TokenDeposit, - TokenType, - UnsignedBurnRequest, - ImmutableXConfiguration, - ERC721Withdrawal, - ERC20Withdrawal, - TokenWithdrawal, - PrepareWithdrawalRequest, WalletConnection, + ERC721Token, + UnsignedOrderRequest, + NftTransferDetails, + TokenAmount, + ETHAmount, + ERC20Amount, + AnyToken, + ERC20Token, + EthSigner, } from '../types'; import { Registration__factory } from '../contracts'; import { @@ -44,15 +48,16 @@ import { depositERC721Workflow, depositEthWorkflow, } from './deposit'; -import { getBurnWorkflow, burnWorkflow } from './burn'; import { - completeERC20WithdrawalWorfklow, + completeERC20WithdrawalWorkflow, completeERC721WithdrawalWorkflow, completeEthWithdrawalWorkflow, prepareWithdrawalWorkflow, } from './withdrawal'; import { cancelOrderWorkflow, createOrderWorkflow } from './orders'; import { createTradeWorkflow } from './trades'; +import { generateIMXAuthorisationHeaders } from '../utils'; +import { ImmutableXConfiguration } from '../config'; export class Workflows { private readonly depositsApi: DepositsApi; @@ -64,22 +69,32 @@ export class Workflows { private readonly transfersApi: TransfersApi; private readonly usersApi: UsersApi; private readonly withdrawalsApi: WithdrawalsApi; + private readonly projectsApi: ProjectsApi; + private readonly collectionsApi: CollectionsApi; + private readonly metadataApi: MetadataApi; + private readonly metadataRefreshesApi: MetadataRefreshesApi; private isChainValid(chainID: number) { - return chainID === this.config.l1Configuration.chainID; + return chainID === this.config.ethConfiguration.chainID; } constructor(protected config: ImmutableXConfiguration) { + const { apiConfiguration } = config; + this.config = config; - this.depositsApi = new DepositsApi(config.apiConfiguration); - this.encodingApi = new EncodingApi(config.apiConfiguration); - this.mintsApi = new MintsApi(config.apiConfiguration); - this.ordersApi = new OrdersApi(config.apiConfiguration); - this.tokensApi = new TokensApi(config.apiConfiguration); - this.tradesApi = new TradesApi(config.apiConfiguration); - this.transfersApi = new TransfersApi(config.apiConfiguration); - this.usersApi = new UsersApi(config.apiConfiguration); - this.withdrawalsApi = new WithdrawalsApi(config.apiConfiguration); + this.depositsApi = new DepositsApi(apiConfiguration); + this.encodingApi = new EncodingApi(apiConfiguration); + this.mintsApi = new MintsApi(apiConfiguration); + this.ordersApi = new OrdersApi(apiConfiguration); + this.tokensApi = new TokensApi(apiConfiguration); + this.tradesApi = new TradesApi(apiConfiguration); + this.transfersApi = new TransfersApi(apiConfiguration); + this.usersApi = new UsersApi(apiConfiguration); + this.withdrawalsApi = new WithdrawalsApi(apiConfiguration); + this.projectsApi = new ProjectsApi(apiConfiguration); + this.collectionsApi = new CollectionsApi(apiConfiguration); + this.metadataApi = new MetadataApi(apiConfiguration); + this.metadataRefreshesApi = new MetadataRefreshesApi(apiConfiguration); } private async validateChain(signer: Signer) { @@ -92,7 +107,7 @@ export class Workflows { } public async registerOffchain(walletConnection: WalletConnection) { - await this.validateChain(walletConnection.l1Signer); + await this.validateChain(walletConnection.ethSigner); return registerOffchainWorkflow({ ...walletConnection, @@ -101,14 +116,14 @@ export class Workflows { } public async isRegisteredOnchain(walletConnection: WalletConnection) { - await this.validateChain(walletConnection.l1Signer); + await this.validateChain(walletConnection.ethSigner); const registrationContract = Registration__factory.connect( - this.config.l1Configuration.registrationContractAddress, - walletConnection.l1Signer, + this.config.ethConfiguration.registrationContractAddress, + walletConnection.ethSigner, ); - const l2Address = await walletConnection.l2Signer.getAddress(); + const l2Address = await walletConnection.starkSigner.getAddress(); return isRegisteredOnChainWorkflow(l2Address, registrationContract); } @@ -123,7 +138,7 @@ export class Workflows { walletConnection: WalletConnection, request: UnsignedTransferRequest, ) { - await this.validateChain(walletConnection.l1Signer); + await this.validateChain(walletConnection.ethSigner); return transfersWorkflow({ ...walletConnection, @@ -134,9 +149,9 @@ export class Workflows { public async batchNftTransfer( walletConnection: WalletConnection, - request: UnsignedBatchNftTransferRequest, + request: Array, ) { - await this.validateChain(walletConnection.l1Signer); + await this.validateChain(walletConnection.ethSigner); return batchTransfersWorkflow({ ...walletConnection, @@ -145,35 +160,18 @@ export class Workflows { }); } - public async burn( - walletConnection: WalletConnection, - request: UnsignedBurnRequest, - ) { - await this.validateChain(walletConnection.l1Signer); - - return burnWorkflow({ - ...walletConnection, - request, - transfersApi: this.transfersApi, - }); - } - - public async getBurn(request: TransfersApiGetTransferRequest) { - return getBurnWorkflow(request, this.transfersApi); - } - - public async deposit(signer: Signer, deposit: TokenDeposit) { + public async deposit(signer: Signer, deposit: TokenAmount) { switch (deposit.type) { - case TokenType.ETH: + case 'ETH': return this.depositEth(signer, deposit); - case TokenType.ERC20: + case 'ERC20': return this.depositERC20(signer, deposit); - case TokenType.ERC721: + case 'ERC721': return this.depositERC721(signer, deposit); } } - public async depositEth(signer: Signer, deposit: ETHDeposit) { + private async depositEth(signer: Signer, deposit: ETHAmount) { await this.validateChain(signer); return depositEthWorkflow( @@ -186,7 +184,7 @@ export class Workflows { ); } - public async depositERC20(signer: Signer, deposit: ERC20Deposit) { + private async depositERC20(signer: Signer, deposit: ERC20Amount) { await this.validateChain(signer); return depositERC20Workflow( @@ -200,7 +198,7 @@ export class Workflows { ); } - public async depositERC721(signer: Signer, deposit: ERC721Deposit) { + private async depositERC721(signer: Signer, deposit: ERC721Token) { await this.validateChain(signer); return depositERC721Workflow( @@ -215,9 +213,9 @@ export class Workflows { public async prepareWithdrawal( walletConnection: WalletConnection, - request: PrepareWithdrawalRequest, + request: TokenAmount, ) { - await this.validateChain(walletConnection.l1Signer); + await this.validateChain(walletConnection.ethSigner); return prepareWithdrawalWorkflow({ ...walletConnection, @@ -229,19 +227,19 @@ export class Workflows { public completeWithdrawal( signer: Signer, starkPublicKey: string, - token: TokenWithdrawal, + token: AnyToken, ) { switch (token.type) { - case TokenType.ETH: + case 'ETH': return this.completeEthWithdrawal(signer, starkPublicKey); - case TokenType.ERC20: + case 'ERC20': return this.completeERC20Withdrawal(signer, starkPublicKey, token); - case TokenType.ERC721: + case 'ERC721': return this.completeERC721Withdrawal(signer, starkPublicKey, token); } } - public async completeEthWithdrawal(signer: Signer, starkPublicKey: string) { + private async completeEthWithdrawal(signer: Signer, starkPublicKey: string) { await this.validateChain(signer); return completeEthWithdrawalWorkflow( @@ -253,14 +251,14 @@ export class Workflows { ); } - public async completeERC20Withdrawal( + private async completeERC20Withdrawal( signer: Signer, starkPublicKey: string, - token: ERC20Withdrawal, + token: ERC20Token, ) { await this.validateChain(signer); - return completeERC20WithdrawalWorfklow( + return completeERC20WithdrawalWorkflow( signer, starkPublicKey, token, @@ -270,10 +268,10 @@ export class Workflows { ); } - public async completeERC721Withdrawal( + private async completeERC721Withdrawal( signer: Signer, starkPublicKey: string, - token: ERC721Withdrawal, + token: ERC721Token, ) { await this.validateChain(signer); @@ -290,9 +288,9 @@ export class Workflows { public async createOrder( walletConnection: WalletConnection, - request: GetSignableOrderRequest, + request: UnsignedOrderRequest, ) { - await this.validateChain(walletConnection.l1Signer); + await this.validateChain(walletConnection.ethSigner); return createOrderWorkflow({ ...walletConnection, @@ -305,7 +303,7 @@ export class Workflows { walletConnection: WalletConnection, request: GetSignableCancelOrderRequest, ) { - await this.validateChain(walletConnection.l1Signer); + await this.validateChain(walletConnection.ethSigner); return cancelOrderWorkflow({ ...walletConnection, @@ -318,7 +316,7 @@ export class Workflows { walletConnection: WalletConnection, request: GetSignableTradeRequest, ) { - await this.validateChain(walletConnection.l1Signer); + await this.validateChain(walletConnection.ethSigner); return createTradeWorkflow({ ...walletConnection, @@ -326,4 +324,177 @@ export class Workflows { tradesApi: this.tradesApi, }); } + + /** + * IMX authorisation header functions + */ + public async createProject( + ethSigner: EthSigner, + createProjectRequest: CreateProjectRequest, + ) { + const imxAuthHeaders = await generateIMXAuthorisationHeaders(ethSigner); + + return this.projectsApi.createProject({ + iMXSignature: imxAuthHeaders.signature, + iMXTimestamp: imxAuthHeaders.timestamp, + createProjectRequest, + }); + } + + public async getProject(ethSigner: EthSigner, id: string) { + const imxAuthHeaders = await generateIMXAuthorisationHeaders(ethSigner); + + return this.projectsApi.getProject({ + id, + iMXSignature: imxAuthHeaders.signature, + iMXTimestamp: imxAuthHeaders.timestamp, + }); + } + + public async getProjects( + ethSigner: EthSigner, + pageSize?: number, + cursor?: string, + orderBy?: string, + direction?: string, + ) { + const imxAuthHeaders = await generateIMXAuthorisationHeaders(ethSigner); + + return this.projectsApi.getProjects({ + iMXSignature: imxAuthHeaders.signature, + iMXTimestamp: imxAuthHeaders.timestamp, + pageSize, + cursor, + orderBy, + direction, + }); + } + + public async createCollection( + ethSigner: EthSigner, + createCollectionRequest: CreateCollectionRequest, + ) { + const imxAuthHeaders = await generateIMXAuthorisationHeaders(ethSigner); + + return this.collectionsApi.createCollection({ + iMXSignature: imxAuthHeaders.signature, + iMXTimestamp: imxAuthHeaders.timestamp, + createCollectionRequest, + }); + } + + public async updateCollection( + ethSigner: EthSigner, + address: string, + updateCollectionRequest: UpdateCollectionRequest, + ) { + const imxAuthHeaders = await generateIMXAuthorisationHeaders(ethSigner); + + return this.collectionsApi.updateCollection({ + iMXSignature: imxAuthHeaders.signature, + iMXTimestamp: imxAuthHeaders.timestamp, + address, + updateCollectionRequest, + }); + } + + public async addMetadataSchemaToCollection( + ethSigner: EthSigner, + address: string, + addMetadataSchemaToCollectionRequest: AddMetadataSchemaToCollectionRequest, + ) { + const imxAuthHeaders = await generateIMXAuthorisationHeaders(ethSigner); + + return this.metadataApi.addMetadataSchemaToCollection({ + iMXSignature: imxAuthHeaders.signature, + iMXTimestamp: imxAuthHeaders.timestamp, + addMetadataSchemaToCollectionRequest, + address, + }); + } + + public async updateMetadataSchemaByName( + ethSigner: EthSigner, + address: string, + name: string, + metadataSchemaRequest: MetadataSchemaRequest, + ) { + const imxAuthHeaders = await generateIMXAuthorisationHeaders(ethSigner); + + return this.metadataApi.updateMetadataSchemaByName({ + iMXSignature: imxAuthHeaders.signature, + iMXTimestamp: imxAuthHeaders.timestamp, + address, + name, + metadataSchemaRequest, + }); + } + + public async listMetadataRefreshes( + ethSigner: EthSigner, + collectionAddress?: string, + pageSize?: number, + cursor?: string, + ) { + const imxAuthHeaders = await generateIMXAuthorisationHeaders(ethSigner); + const ethAddress = await ethSigner.getAddress(); + + return this.metadataRefreshesApi.getAListOfMetadataRefreshes({ + xImxEthSignature: imxAuthHeaders.signature, + xImxEthTimestamp: imxAuthHeaders.timestamp, + xImxEthAddress: ethAddress, + collectionAddress, + pageSize, + cursor, + }); + } + + public async getMetadataRefreshErrors( + ethSigner: EthSigner, + refreshId: string, + pageSize?: number, + cursor?: string, + ) { + const imxAuthHeaders = await generateIMXAuthorisationHeaders(ethSigner); + const ethAddress = await ethSigner.getAddress(); + + return this.metadataRefreshesApi.getMetadataRefreshErrors({ + xImxEthSignature: imxAuthHeaders.signature, + xImxEthTimestamp: imxAuthHeaders.timestamp, + xImxEthAddress: ethAddress, + refreshId, + pageSize, + cursor, + }); + } + + public async getMetadataRefreshResults( + ethSigner: EthSigner, + refreshId: string, + ) { + const imxAuthHeaders = await generateIMXAuthorisationHeaders(ethSigner); + const ethAddress = await ethSigner.getAddress(); + + return this.metadataRefreshesApi.getMetadataRefreshResults({ + xImxEthSignature: imxAuthHeaders.signature, + xImxEthTimestamp: imxAuthHeaders.timestamp, + xImxEthAddress: ethAddress, + refreshId, + }); + } + + public async createMetadataRefresh( + ethSigner: EthSigner, + request: CreateMetadataRefreshRequest, + ) { + const imxAuthHeaders = await generateIMXAuthorisationHeaders(ethSigner); + const ethAddress = await ethSigner.getAddress(); + + return this.metadataRefreshesApi.requestAMetadataRefresh({ + xImxEthSignature: imxAuthHeaders.signature, + xImxEthTimestamp: imxAuthHeaders.timestamp, + xImxEthAddress: ethAddress, + createMetadataRefreshRequest: request, + }); + } } diff --git a/yarn.lock b/yarn.lock index 0d81b720..a6be59d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11,60 +11,60 @@ "@jridgewell/trace-mapping" "^0.3.9" "@babel/cli@^7.12.8": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.18.6.tgz#b1228eb9196b34d608155a47508011d9e47ab1f2" - integrity sha512-jXNHoYCbxZ8rKy+2lyy0VjcaGxS4NPbN0qc95DjIiGZQL/mTNx3o2/yI0TG+X0VrrTuwmO7zH52T9NcNdbF9Uw== + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.18.10.tgz#4211adfc45ffa7d4f3cee6b60bb92e9fe68fe56a" + integrity sha512-dLvWH+ZDFAkd2jPBSghrsFBuXrREvFwjpDycXbmUoeochqKYe4zNSLEJYErpLg8dvxvZYe79/MkN461XCwpnGw== dependencies: "@jridgewell/trace-mapping" "^0.3.8" commander "^4.0.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.1.0" - glob "^7.0.0" + glob "^7.2.0" make-dir "^2.1.0" slash "^2.0.0" optionalDependencies: "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.6.tgz#8b37d24e88e8e21c499d4328db80577d8882fa53" - integrity sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ== +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8", "@babel/compat-data@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.1.tgz#72d647b4ff6a4f82878d184613353af1dd0290f9" + integrity sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg== "@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.12.9": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.6.tgz#54a107a3c298aee3fe5e1947a6464b9b6faca03d" - integrity sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ== + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.1.tgz#c8fa615c5e88e272564ace3d42fbc8b17bfeb22b" + integrity sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.6" - "@babel/helper-compilation-targets" "^7.18.6" - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helpers" "^7.18.6" - "@babel/parser" "^7.18.6" - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/generator" "^7.19.0" + "@babel/helper-compilation-targets" "^7.19.1" + "@babel/helper-module-transforms" "^7.19.0" + "@babel/helpers" "^7.19.0" + "@babel/parser" "^7.19.1" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.1" + "@babel/types" "^7.19.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.18.6", "@babel/generator@^7.7.2": - version "7.18.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.7.tgz#2aa78da3c05aadfc82dbac16c99552fc802284bd" - integrity sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A== +"@babel/generator@^7.19.0", "@babel/generator@^7.7.2": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.0.tgz#785596c06425e59334df2ccee63ab166b738419a" + integrity sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg== dependencies: - "@babel/types" "^7.18.7" + "@babel/types" "^7.19.0" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -76,62 +76,60 @@ "@babel/types" "^7.18.6" "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz#f14d640ed1ee9246fb33b8255f08353acfe70e6a" - integrity sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw== + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" + integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== dependencies: "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/types" "^7.18.9" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz#18d35bfb9f83b1293c22c55b3d576c1315b6ed96" - integrity sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg== +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.19.0", "@babel/helper-compilation-targets@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz#7f630911d83b408b76fe584831c98e5395d7a17c" + integrity sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg== dependencies: - "@babel/compat-data" "^7.18.6" + "@babel/compat-data" "^7.19.1" "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.20.2" + browserslist "^4.21.3" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz#6f15f8459f3b523b39e00a99982e2c040871ed72" - integrity sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz#bfd6904620df4e46470bae4850d66be1054c404b" + integrity sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-function-name" "^7.18.6" - "@babel/helper-member-expression-to-functions" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-member-expression-to-functions" "^7.18.9" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.9" "@babel/helper-split-export-declaration" "^7.18.6" -"@babel/helper-create-regexp-features-plugin@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c" - integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b" + integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" regexpu-core "^5.1.0" -"@babel/helper-define-polyfill-provider@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" - integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== +"@babel/helper-define-polyfill-provider@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" + integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" debug "^4.1.1" lodash.debounce "^4.0.8" resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz#b7eee2b5b9d70602e59d1a6cad7dd24de7ca6cd7" - integrity sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q== +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== "@babel/helper-explode-assignable-expression@^7.18.6": version "7.18.6" @@ -140,13 +138,13 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-function-name@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz#8334fecb0afba66e6d87a7e8c6bb7fed79926b83" - integrity sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw== +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== dependencies: - "@babel/template" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" @@ -155,33 +153,33 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-member-expression-to-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz#44802d7d602c285e1692db0bad9396d007be2afc" - integrity sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng== +"@babel/helper-member-expression-to-functions@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" + integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.18.9" -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.18.6": +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz#57e3ca669e273d55c3cda55e6ebf552f37f483c8" - integrity sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw== +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" + integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== dependencies: - "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" "@babel/helper-simple-access" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-validator-identifier" "^7.18.6" - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" @@ -190,31 +188,31 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz#9448974dd4fb1d80fefe72e8a0af37809cd30d6d" - integrity sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" + integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== -"@babel/helper-remap-async-to-generator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz#fa1f81acd19daee9d73de297c0308783cd3cfc23" - integrity sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ== +"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" + integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-wrap-function" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-wrap-function" "^7.18.9" + "@babel/types" "^7.18.9" -"@babel/helper-replace-supers@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz#efedf51cfccea7b7b8c0f00002ab317e7abfe420" - integrity sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g== +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz#e1592a9b4b368aa6bdb8784a711e0bcbf0612b78" + integrity sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw== dependencies: - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-member-expression-to-functions" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.18.9" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/traverse" "^7.19.1" + "@babel/types" "^7.19.0" "@babel/helper-simple-access@^7.18.6": version "7.18.6" @@ -223,12 +221,12 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-skip-transparent-expression-wrappers@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.6.tgz#7dff00a5320ca4cf63270e5a0eca4b268b7380d9" - integrity sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw== +"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" + integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.18.9" "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" @@ -237,34 +235,39 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-string-parser@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" + integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== + "@babel/helper-validator-identifier@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" - integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== "@babel/helper-validator-option@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== -"@babel/helper-wrap-function@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz#ec44ea4ad9d8988b90c3e465ba2382f4de81a073" - integrity sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw== +"@babel/helper-wrap-function@^7.18.9": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz#89f18335cff1152373222f76a4b37799636ae8b1" + integrity sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg== dependencies: - "@babel/helper-function-name" "^7.18.6" - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/helper-function-name" "^7.19.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" -"@babel/helpers@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.6.tgz#4c966140eaa1fcaa3d5a8c09d7db61077d4debfd" - integrity sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ== +"@babel/helpers@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.0.tgz#f30534657faf246ae96551d88dd31e9d1fa1fc18" + integrity sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg== dependencies: - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" "@babel/highlight@^7.18.6": version "7.18.6" @@ -275,10 +278,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.6.tgz#845338edecad65ebffef058d3be851f1d28a63bc" - integrity sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.1.tgz#6f6d6c2e621aad19a92544cc217ed13f1aac5b4c" + integrity sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -287,23 +290,23 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.6.tgz#b4e4dbc2cd1acd0133479918f7c6412961c9adb8" - integrity sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50" + integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" -"@babel/plugin-proposal-async-generator-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz#aedac81e6fc12bb643374656dd5f2605bf743d17" - integrity sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w== +"@babel/plugin-proposal-async-generator-functions@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz#34f6f5174b688529342288cd264f80c9ea9fb4a7" + integrity sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q== dependencies: - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-remap-async-to-generator" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-proposal-class-properties@^7.18.6": @@ -331,12 +334,12 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.6.tgz#1016f0aa5ab383bbf8b3a85a2dcaedf6c8ee7491" - integrity sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw== +"@babel/plugin-proposal-export-namespace-from@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" + integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-proposal-json-strings@^7.18.6": @@ -347,12 +350,12 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.6.tgz#3b9cac6f1ffc2aa459d111df80c12020dfc6b665" - integrity sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q== +"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23" + integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": @@ -371,16 +374,16 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.6.tgz#ec93bba06bfb3e15ebd7da73e953d84b094d5daf" - integrity sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw== +"@babel/plugin-proposal-object-rest-spread@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz#f9434f6beb2c8cae9dfcf97d2a5941bbbf9ad4e7" + integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== dependencies: - "@babel/compat-data" "^7.18.6" - "@babel/helper-compilation-targets" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/compat-data" "^7.18.8" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.18.8" "@babel/plugin-proposal-optional-catch-binding@^7.18.6": version "7.18.6" @@ -390,13 +393,13 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.6.tgz#46d4f2ffc20e87fad1d98bc4fa5d466366f6aa0b" - integrity sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA== +"@babel/plugin-proposal-optional-chaining@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993" + integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-proposal-private-methods@^7.18.6": @@ -574,40 +577,41 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-block-scoping@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.6.tgz#b5f78318914615397d86a731ef2cc668796a726c" - integrity sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ== +"@babel/plugin-transform-block-scoping@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz#f9b7e018ac3f373c81452d6ada8bd5a18928926d" + integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-classes@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.6.tgz#3501a8f3f4c7d5697c27a3eedbee71d68312669f" - integrity sha512-XTg8XW/mKpzAF3actL554Jl/dOYoJtv3l8fxaEczpgz84IeeVf+T1u2CSvPHuZbt0w3JkIx4rdn/MRQI7mo0HQ== +"@babel/plugin-transform-classes@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz#0e61ec257fba409c41372175e7c1e606dc79bb20" + integrity sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-function-name" "^7.18.6" + "@babel/helper-compilation-targets" "^7.19.0" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-replace-supers" "^7.18.9" "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.6.tgz#5d15eb90e22e69604f3348344c91165c5395d032" - integrity sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A== +"@babel/plugin-transform-computed-properties@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e" + integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-destructuring@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.6.tgz#a98b0e42c7ffbf5eefcbcf33280430f230895c6f" - integrity sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ== +"@babel/plugin-transform-destructuring@^7.18.13": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz#9e03bc4a94475d62b7f4114938e6c5c33372cbf5" + integrity sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.18.6" @@ -617,12 +621,12 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-duplicate-keys@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.6.tgz#e6c94e8cd3c9dd8a88144f7b78ae22975a7ff473" - integrity sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg== +"@babel/plugin-transform-duplicate-keys@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" + integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-exponentiation-operator@^7.18.6": version "7.18.6" @@ -632,28 +636,28 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-for-of@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.6.tgz#e0fdb813be908e91ccc9ec87b30cc2eabf046f7c" - integrity sha512-WAjoMf4wIiSsy88KmG7tgj2nFdEK7E46tArVtcgED7Bkj6Fg/tG5SbvNIOKxbFS2VFgNh6+iaPswBeQZm4ox8w== +"@babel/plugin-transform-for-of@^7.18.8": + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" + integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-function-name@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.6.tgz#6a7e4ae2893d336fd1b8f64c9f92276391d0f1b4" - integrity sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA== +"@babel/plugin-transform-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== dependencies: - "@babel/helper-compilation-targets" "^7.18.6" - "@babel/helper-function-name" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.6.tgz#9d6af353b5209df72960baf4492722d56f39a205" - integrity sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q== +"@babel/plugin-transform-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-member-expression-literals@^7.18.6": version "7.18.6" @@ -681,14 +685,14 @@ "@babel/helper-simple-access" "^7.18.6" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.6.tgz#026511b7657d63bf5d4cf2fd4aeb963139914a54" - integrity sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g== +"@babel/plugin-transform-modules-systemjs@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz#5f20b471284430f02d9c5059d9b9a16d4b085a1f" + integrity sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A== dependencies: "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-module-transforms" "^7.19.0" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/helper-validator-identifier" "^7.18.6" babel-plugin-dynamic-import-node "^2.3.3" @@ -700,13 +704,13 @@ "@babel/helper-module-transforms" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-named-capturing-groups-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz#c89bfbc7cc6805d692f3a49bc5fc1b630007246d" - integrity sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg== +"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz#ec7455bab6cd8fb05c525a94876f435a48128888" + integrity sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.19.0" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-transform-new-target@^7.18.6": version "7.18.6" @@ -723,10 +727,10 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/helper-replace-supers" "^7.18.6" -"@babel/plugin-transform-parameters@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.6.tgz#cbe03d5a4c6385dd756034ac1baa63c04beab8dc" - integrity sha512-FjdqgMv37yVl/gwvzkcB+wfjRI8HQmc5EgOG9iGNvUY1ok+TjsoaMP7IqCDZBhkFcM5f3OPVMs6Dmp03C5k4/A== +"@babel/plugin-transform-parameters@^7.18.8": + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" + integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -753,15 +757,15 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-runtime@^7.12.10": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.6.tgz#77b14416015ea93367ca06979710f5000ff34ccb" - integrity sha512-8uRHk9ZmRSnWqUgyae249EJZ94b0yAGLBIqzZzl+0iEdbno55Pmlt/32JZsHwXD9k/uZj18Aqqk35wBX4CBTXA== + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.1.tgz#a3df2d7312eea624c7889a2dcd37fd1dfd25b2c6" + integrity sha512-2nJjTUFIzBMP/f/miLxEK9vxwW/KUXsdvN4sR//TmuDhe6yU2h57WmIOE12Gng3MDP/xpjUV/ToZRdcf8Yj4fA== dependencies: "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - babel-plugin-polyfill-corejs2 "^0.3.1" - babel-plugin-polyfill-corejs3 "^0.5.2" - babel-plugin-polyfill-regenerator "^0.3.1" + "@babel/helper-plugin-utils" "^7.19.0" + babel-plugin-polyfill-corejs2 "^0.3.3" + babel-plugin-polyfill-corejs3 "^0.6.0" + babel-plugin-polyfill-regenerator "^0.4.1" semver "^6.3.0" "@babel/plugin-transform-shorthand-properties@^7.18.6": @@ -771,13 +775,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-spread@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.6.tgz#82b080241965f1689f0a60ecc6f1f6575dbdb9d6" - integrity sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw== +"@babel/plugin-transform-spread@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz#dd60b4620c2fec806d60cfaae364ec2188d593b6" + integrity sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" "@babel/plugin-transform-sticky-regex@^7.18.6": version "7.18.6" @@ -786,35 +790,35 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-template-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.6.tgz#b763f4dc9d11a7cce58cf9a490d82e80547db9c2" - integrity sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw== +"@babel/plugin-transform-template-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-typeof-symbol@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.6.tgz#486bb39d5a18047358e0d04dc0d2f322f0b92e92" - integrity sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g== +"@babel/plugin-transform-typeof-symbol@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" + integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-typescript@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.6.tgz#8f4ade1a9cf253e5cf7c7c20173082c2c08a50a7" - integrity sha512-ijHNhzIrLj5lQCnI6aaNVRtGVuUZhOXFLRVFs7lLrkXTHip4FKty5oAuQdk4tywG0/WjXmjTfQCWmuzrvFer1w== + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.1.tgz#adcf180a041dcbd29257ad31b0c65d4de531ce8d" + integrity sha512-+ILcOU+6mWLlvCwnL920m2Ow3wWx3Wo8n2t5aROQmV55GZt+hOiLvBaa3DNzRjSEHa1aauRs4/YLmkCfFkhhRQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.19.0" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-syntax-typescript" "^7.18.6" -"@babel/plugin-transform-unicode-escapes@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz#0d01fb7fb2243ae1c033f65f6e3b4be78db75f27" - integrity sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw== +"@babel/plugin-transform-unicode-escapes@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" + integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-unicode-regex@^7.18.6": version "7.18.6" @@ -825,28 +829,28 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/preset-env@^7.12.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.6.tgz#953422e98a5f66bc56cd0b9074eaea127ec86ace" - integrity sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw== + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.19.1.tgz#9f04c916f9c0205a48ebe5cc1be7768eb1983f67" + integrity sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA== dependencies: - "@babel/compat-data" "^7.18.6" - "@babel/helper-compilation-targets" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/compat-data" "^7.19.1" + "@babel/helper-compilation-targets" "^7.19.1" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/helper-validator-option" "^7.18.6" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.6" - "@babel/plugin-proposal-async-generator-functions" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-async-generator-functions" "^7.19.1" "@babel/plugin-proposal-class-properties" "^7.18.6" "@babel/plugin-proposal-class-static-block" "^7.18.6" "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.18.9" "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" "@babel/plugin-proposal-private-methods" "^7.18.6" "@babel/plugin-proposal-private-property-in-object" "^7.18.6" "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" @@ -868,41 +872,41 @@ "@babel/plugin-transform-arrow-functions" "^7.18.6" "@babel/plugin-transform-async-to-generator" "^7.18.6" "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.18.6" - "@babel/plugin-transform-classes" "^7.18.6" - "@babel/plugin-transform-computed-properties" "^7.18.6" - "@babel/plugin-transform-destructuring" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.18.9" + "@babel/plugin-transform-classes" "^7.19.0" + "@babel/plugin-transform-computed-properties" "^7.18.9" + "@babel/plugin-transform-destructuring" "^7.18.13" "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.18.6" - "@babel/plugin-transform-function-name" "^7.18.6" - "@babel/plugin-transform-literals" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.18.8" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-literals" "^7.18.9" "@babel/plugin-transform-member-expression-literals" "^7.18.6" "@babel/plugin-transform-modules-amd" "^7.18.6" "@babel/plugin-transform-modules-commonjs" "^7.18.6" - "@babel/plugin-transform-modules-systemjs" "^7.18.6" + "@babel/plugin-transform-modules-systemjs" "^7.19.0" "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" "@babel/plugin-transform-new-target" "^7.18.6" "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.18.8" "@babel/plugin-transform-property-literals" "^7.18.6" "@babel/plugin-transform-regenerator" "^7.18.6" "@babel/plugin-transform-reserved-words" "^7.18.6" "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.18.6" + "@babel/plugin-transform-spread" "^7.19.0" "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.6" - "@babel/plugin-transform-typeof-symbol" "^7.18.6" - "@babel/plugin-transform-unicode-escapes" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" + "@babel/plugin-transform-unicode-escapes" "^7.18.10" "@babel/plugin-transform-unicode-regex" "^7.18.6" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.18.6" - babel-plugin-polyfill-corejs2 "^0.3.1" - babel-plugin-polyfill-corejs3 "^0.5.2" - babel-plugin-polyfill-regenerator "^0.3.1" - core-js-compat "^3.22.1" + "@babel/types" "^7.19.0" + babel-plugin-polyfill-corejs2 "^0.3.3" + babel-plugin-polyfill-corejs3 "^0.6.0" + babel-plugin-polyfill-regenerator "^0.4.1" + core-js-compat "^3.25.1" semver "^6.3.0" "@babel/preset-modules@^0.1.5": @@ -926,42 +930,43 @@ "@babel/plugin-transform-typescript" "^7.18.6" "@babel/runtime@^7.8.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.6.tgz#6a1ef59f838debd670421f8c7f2cbb8da9751580" - integrity sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ== + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.0.tgz#22b11c037b094d27a8a2504ea4dcff00f50e2259" + integrity sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.18.6", "@babel/template@^7.3.3": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.6.tgz#1283f4993e00b929d6e2d3c72fdc9168a2977a31" - integrity sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw== +"@babel/template@^7.18.10", "@babel/template@^7.3.3": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" + integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/parser" "^7.18.10" + "@babel/types" "^7.18.10" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.18.6", "@babel/traverse@^7.7.2": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.6.tgz#a228562d2f46e89258efa4ddd0416942e2fd671d" - integrity sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw== +"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.7.2": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.1.tgz#0fafe100a8c2a603b4718b1d9bf2568d1d193347" + integrity sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-function-name" "^7.18.6" + "@babel/generator" "^7.19.0" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/parser" "^7.19.1" + "@babel/types" "^7.19.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.18.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.7.tgz#a4a2c910c15040ea52cdd1ddb1614a65c8041726" - integrity sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ== +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600" + integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA== dependencies: + "@babel/helper-string-parser" "^7.18.10" "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" @@ -970,14 +975,14 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@eslint/eslintrc@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" - integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== +"@eslint/eslintrc@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.2.tgz#58b69582f3b7271d8fa67fe5251767a5b38ea356" + integrity sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.3.2" + espree "^9.4.0" globals "^13.15.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -985,425 +990,367 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@ethereumjs/block@^3.5.0", "@ethereumjs/block@^3.6.2", "@ethereumjs/block@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@ethereumjs/block/-/block-3.6.3.tgz#d96cbd7af38b92ebb3424223dbf773f5ccd27f84" - integrity sha512-CegDeryc2DVKnDkg5COQrE0bJfw/p0v3GBk2W5/Dj5dOVfEmb50Ux0GLnSPypooLnfqjwFaorGuT9FokWB3GRg== - dependencies: - "@ethereumjs/common" "^2.6.5" - "@ethereumjs/tx" "^3.5.2" - ethereumjs-util "^7.1.5" - merkle-patricia-tree "^4.2.4" +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.0.0", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + +"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" + integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" + integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + bn.js "^5.2.1" -"@ethereumjs/blockchain@^5.5.2", "@ethereumjs/blockchain@^5.5.3": - version "5.5.3" - resolved "https://registry.yarnpkg.com/@ethereumjs/blockchain/-/blockchain-5.5.3.tgz#aa49a6a04789da6b66b5bcbb0d0b98efc369f640" - integrity sha512-bi0wuNJ1gw4ByNCV56H0Z4Q7D+SxUbwyG12Wxzbvqc89PXLRNR20LBcSUZRKpN0+YCPo6m0XZL/JLio3B52LTw== - dependencies: - "@ethereumjs/block" "^3.6.2" - "@ethereumjs/common" "^2.6.4" - "@ethereumjs/ethash" "^1.1.0" - debug "^4.3.3" - ethereumjs-util "^7.1.5" - level-mem "^5.0.1" - lru-cache "^5.1.1" - semaphore-async-await "^1.5.1" +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.0.0", "@ethersproject/bytes@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + +"@ethersproject/contracts@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" + integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== + dependencies: + "@ethersproject/abi" "^5.7.0" + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" + integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" + integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" + integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + aes-js "3.0.0" + scrypt-js "3.0.1" -"@ethereumjs/common@^2.6.4", "@ethereumjs/common@^2.6.5": - version "2.6.5" - resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.5.tgz#0a75a22a046272579d91919cb12d84f2756e8d30" - integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== dependencies: - crc-32 "^1.2.0" - ethereumjs-util "^7.1.5" + "@ethersproject/bytes" "^5.7.0" + js-sha3 "0.8.0" -"@ethereumjs/ethash@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/ethash/-/ethash-1.1.0.tgz#7c5918ffcaa9cb9c1dc7d12f77ef038c11fb83fb" - integrity sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA== - dependencies: - "@ethereumjs/block" "^3.5.0" - "@types/levelup" "^4.3.0" - buffer-xor "^2.0.1" - ethereumjs-util "^7.1.1" - miller-rabin "^4.0.0" - -"@ethereumjs/tx@^3.5.1", "@ethereumjs/tx@^3.5.2": - version "3.5.2" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.2.tgz#197b9b6299582ad84f9527ca961466fce2296c1c" - integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== - dependencies: - "@ethereumjs/common" "^2.6.4" - ethereumjs-util "^7.1.5" - -"@ethereumjs/vm@^5.9.0": - version "5.9.3" - resolved "https://registry.yarnpkg.com/@ethereumjs/vm/-/vm-5.9.3.tgz#6d69202e4c132a4a1e1628ac246e92062e230823" - integrity sha512-Ha04TeF8goEglr8eL7hkkYyjhzdZS0PsoRURzYlTF6I0VVId5KjKb0N7MrA8GMgheN+UeTncfTgYx52D/WhEmg== - dependencies: - "@ethereumjs/block" "^3.6.3" - "@ethereumjs/blockchain" "^5.5.3" - "@ethereumjs/common" "^2.6.5" - "@ethereumjs/tx" "^3.5.2" - async-eventemitter "^0.2.4" - core-js-pure "^3.0.1" - debug "^4.3.3" - ethereumjs-util "^7.1.5" - functional-red-black-tree "^1.0.1" - mcl-wasm "^0.7.1" - merkle-patricia-tree "^4.2.4" - rustbn.js "~0.2.0" +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== -"@ethersproject/abi@5.6.4", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.6.3": - version "5.6.4" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.6.4.tgz#f6e01b6ed391a505932698ecc0d9e7a99ee60362" - integrity sha512-TTeZUlCeIHG6527/2goZA6gW5F8Emoc7MrZDC7hhP84aRGvW3TEdTnZR08Ls88YXM1m2SuK42Osw/jSi3uO8gg== - dependencies: - "@ethersproject/address" "^5.6.1" - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/constants" "^5.6.1" - "@ethersproject/hash" "^5.6.1" - "@ethersproject/keccak256" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/strings" "^5.6.1" - -"@ethersproject/abstract-provider@5.6.1", "@ethersproject/abstract-provider@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.6.1.tgz#02ddce150785caf0c77fe036a0ebfcee61878c59" - integrity sha512-BxlIgogYJtp1FS8Muvj8YfdClk3unZH0vRMVX791Z9INBNT/kuACZ9GzaY1Y4yFq+YSy6/w4gzj3HCRKrK9hsQ== - dependencies: - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/networks" "^5.6.3" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/transactions" "^5.6.2" - "@ethersproject/web" "^5.6.1" - -"@ethersproject/abstract-signer@5.6.2", "@ethersproject/abstract-signer@^5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.6.2.tgz#491f07fc2cbd5da258f46ec539664713950b0b33" - integrity sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ== - dependencies: - "@ethersproject/abstract-provider" "^5.6.1" - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - -"@ethersproject/address@5.6.1", "@ethersproject/address@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.6.1.tgz#ab57818d9aefee919c5721d28cd31fd95eff413d" - integrity sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q== - dependencies: - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/keccak256" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/rlp" "^5.6.1" - -"@ethersproject/base64@5.6.1", "@ethersproject/base64@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.6.1.tgz#2c40d8a0310c9d1606c2c37ae3092634b41d87cb" - integrity sha512-qB76rjop6a0RIYYMiB4Eh/8n+Hxu2NIZm8S/Q7kNo5pmZfXhHGHmS4MinUainiBC54SCyRnwzL+KZjj8zbsSsw== - dependencies: - "@ethersproject/bytes" "^5.6.1" - -"@ethersproject/basex@5.6.1", "@ethersproject/basex@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.6.1.tgz#badbb2f1d4a6f52ce41c9064f01eab19cc4c5305" - integrity sha512-a52MkVz4vuBXR06nvflPMotld1FJWSj2QT0985v7P/emPZO00PucFAkbcmq2vpVU7Ts7umKiSI6SppiLykVWsA== - dependencies: - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/properties" "^5.6.0" - -"@ethersproject/bignumber@5.6.2", "@ethersproject/bignumber@^5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.6.2.tgz#72a0717d6163fab44c47bcc82e0c550ac0315d66" - integrity sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw== - dependencies: - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - bn.js "^5.2.1" +"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" + integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== + dependencies: + "@ethersproject/logger" "^5.7.0" -"@ethersproject/bytes@5.6.1", "@ethersproject/bytes@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.6.1.tgz#24f916e411f82a8a60412344bf4a813b917eefe7" - integrity sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g== - dependencies: - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/constants@5.6.1", "@ethersproject/constants@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.6.1.tgz#e2e974cac160dd101cf79fdf879d7d18e8cb1370" - integrity sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg== - dependencies: - "@ethersproject/bignumber" "^5.6.2" - -"@ethersproject/contracts@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.6.2.tgz#20b52e69ebc1b74274ff8e3d4e508de971c287bc" - integrity sha512-hguUA57BIKi6WY0kHvZp6PwPlWF87MCeB4B7Z7AbUpTxfFXFdn/3b0GmjZPagIHS+3yhcBJDnuEfU4Xz+Ks/8g== - dependencies: - "@ethersproject/abi" "^5.6.3" - "@ethersproject/abstract-provider" "^5.6.1" - "@ethersproject/abstract-signer" "^5.6.2" - "@ethersproject/address" "^5.6.1" - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/constants" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/transactions" "^5.6.2" - -"@ethersproject/hash@5.6.1", "@ethersproject/hash@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.6.1.tgz#224572ea4de257f05b4abf8ae58b03a67e99b0f4" - integrity sha512-L1xAHurbaxG8VVul4ankNX5HgQ8PNCTrnVXEiFnE9xoRnaUcgfD12tZINtDinSllxPLCtGwguQxJ5E6keE84pA== - dependencies: - "@ethersproject/abstract-signer" "^5.6.2" - "@ethersproject/address" "^5.6.1" - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/keccak256" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/strings" "^5.6.1" - -"@ethersproject/hdnode@5.6.2", "@ethersproject/hdnode@^5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.6.2.tgz#26f3c83a3e8f1b7985c15d1db50dc2903418b2d2" - integrity sha512-tERxW8Ccf9CxW2db3WsN01Qao3wFeRsfYY9TCuhmG0xNpl2IO8wgXU3HtWIZ49gUWPggRy4Yg5axU0ACaEKf1Q== - dependencies: - "@ethersproject/abstract-signer" "^5.6.2" - "@ethersproject/basex" "^5.6.1" - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/pbkdf2" "^5.6.1" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/sha2" "^5.6.1" - "@ethersproject/signing-key" "^5.6.2" - "@ethersproject/strings" "^5.6.1" - "@ethersproject/transactions" "^5.6.2" - "@ethersproject/wordlists" "^5.6.1" - -"@ethersproject/json-wallets@5.6.1", "@ethersproject/json-wallets@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.6.1.tgz#3f06ba555c9c0d7da46756a12ac53483fe18dd91" - integrity sha512-KfyJ6Zwz3kGeX25nLihPwZYlDqamO6pfGKNnVMWWfEVVp42lTfCZVXXy5Ie8IZTN0HKwAngpIPi7gk4IJzgmqQ== - dependencies: - "@ethersproject/abstract-signer" "^5.6.2" - "@ethersproject/address" "^5.6.1" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/hdnode" "^5.6.2" - "@ethersproject/keccak256" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/pbkdf2" "^5.6.1" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/random" "^5.6.1" - "@ethersproject/strings" "^5.6.1" - "@ethersproject/transactions" "^5.6.2" - aes-js "3.0.0" - scrypt-js "3.0.1" +"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" + integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" -"@ethersproject/keccak256@5.6.1", "@ethersproject/keccak256@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.6.1.tgz#b867167c9b50ba1b1a92bccdd4f2d6bd168a91cc" - integrity sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA== +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" + integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== dependencies: - "@ethersproject/bytes" "^5.6.1" - js-sha3 "0.8.0" + "@ethersproject/logger" "^5.7.0" -"@ethersproject/logger@5.6.0", "@ethersproject/logger@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.6.0.tgz#d7db1bfcc22fd2e4ab574cba0bb6ad779a9a3e7a" - integrity sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg== - -"@ethersproject/networks@5.6.4", "@ethersproject/networks@^5.6.3": - version "5.6.4" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.6.4.tgz#51296d8fec59e9627554f5a8a9c7791248c8dc07" - integrity sha512-KShHeHPahHI2UlWdtDMn2lJETcbtaJge4k7XSjDR9h79QTd6yQJmv6Cp2ZA4JdqWnhszAOLSuJEd9C0PRw7hSQ== - dependencies: - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/pbkdf2@5.6.1", "@ethersproject/pbkdf2@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.6.1.tgz#f462fe320b22c0d6b1d72a9920a3963b09eb82d1" - integrity sha512-k4gRQ+D93zDRPNUfmduNKq065uadC2YjMP/CqwwX5qG6R05f47boq6pLZtV/RnC4NZAYOPH1Cyo54q0c9sshRQ== - dependencies: - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/sha2" "^5.6.1" - -"@ethersproject/properties@5.6.0", "@ethersproject/properties@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.6.0.tgz#38904651713bc6bdd5bdd1b0a4287ecda920fa04" - integrity sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg== - dependencies: - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/providers@5.6.8", "@ethersproject/providers@^5.6.4": - version "5.6.8" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.6.8.tgz#22e6c57be215ba5545d3a46cf759d265bb4e879d" - integrity sha512-Wf+CseT/iOJjrGtAOf3ck9zS7AgPmr2fZ3N97r4+YXN3mBePTG2/bJ8DApl9mVwYL+RpYbNxMEkEp4mPGdwG/w== - dependencies: - "@ethersproject/abstract-provider" "^5.6.1" - "@ethersproject/abstract-signer" "^5.6.2" - "@ethersproject/address" "^5.6.1" - "@ethersproject/base64" "^5.6.1" - "@ethersproject/basex" "^5.6.1" - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/constants" "^5.6.1" - "@ethersproject/hash" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/networks" "^5.6.3" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/random" "^5.6.1" - "@ethersproject/rlp" "^5.6.1" - "@ethersproject/sha2" "^5.6.1" - "@ethersproject/strings" "^5.6.1" - "@ethersproject/transactions" "^5.6.2" - "@ethersproject/web" "^5.6.1" +"@ethersproject/providers@5.7.1", "@ethersproject/providers@^5.0.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.1.tgz#b0799b616d5579cd1067a8ebf1fc1ec74c1e122c" + integrity sha512-vZveG/DLyo+wk4Ga1yx6jSEHrLPgmTt+dFv0dv8URpVCRf0jVhalps1jq/emN/oXnMRsC7cQgAF32DcXLL7BPQ== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@5.6.1", "@ethersproject/random@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.6.1.tgz#66915943981bcd3e11bbd43733f5c3ba5a790255" - integrity sha512-/wtPNHwbmng+5yi3fkipA8YBT59DdkGRoC2vWk09Dci/q5DlgnMkhIycjHlavrvrjJBkFjO/ueLyT+aUDfc4lA== +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" + integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== dependencies: - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/logger" "^5.6.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" -"@ethersproject/rlp@5.6.1", "@ethersproject/rlp@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.6.1.tgz#df8311e6f9f24dcb03d59a2bac457a28a4fe2bd8" - integrity sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ== +"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== dependencies: - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/logger" "^5.6.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" -"@ethersproject/sha2@5.6.1", "@ethersproject/sha2@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.6.1.tgz#211f14d3f5da5301c8972a8827770b6fd3e51656" - integrity sha512-5K2GyqcW7G4Yo3uenHegbXRPDgARpWUiXc6RiF7b6i/HXUoWlb7uCARh7BAHg7/qT/Q5ydofNwiZcim9qpjB6g== +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" + integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== dependencies: - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/logger" "^5.6.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" hash.js "1.1.7" -"@ethersproject/signing-key@5.6.2", "@ethersproject/signing-key@^5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.6.2.tgz#8a51b111e4d62e5a62aee1da1e088d12de0614a3" - integrity sha512-jVbu0RuP7EFpw82vHcL+GP35+KaNruVAZM90GxgQnGqB6crhBqW/ozBfFvdeImtmb4qPko0uxXjn8l9jpn0cwQ== +"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" + integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== dependencies: - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" bn.js "^5.2.1" elliptic "6.5.4" hash.js "1.1.7" -"@ethersproject/solidity@5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.6.1.tgz#5845e71182c66d32e6ec5eefd041fca091a473e2" - integrity sha512-KWqVLkUUoLBfL1iwdzUVlkNqAUIFMpbbeH0rgCfKmJp0vFtY4AsaN91gHKo9ZZLkC4UOm3cI3BmMV4N53BOq4g== - dependencies: - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/keccak256" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/sha2" "^5.6.1" - "@ethersproject/strings" "^5.6.1" - -"@ethersproject/strings@5.6.1", "@ethersproject/strings@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.6.1.tgz#dbc1b7f901db822b5cafd4ebf01ca93c373f8952" - integrity sha512-2X1Lgk6Jyfg26MUnsHiT456U9ijxKUybz8IM1Vih+NJxYtXhmvKBcHOmvGqpFSVJ0nQ4ZCoIViR8XlRw1v/+Cw== - dependencies: - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/constants" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/transactions@5.6.2", "@ethersproject/transactions@^5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.6.2.tgz#793a774c01ced9fe7073985bb95a4b4e57a6370b" - integrity sha512-BuV63IRPHmJvthNkkt9G70Ullx6AcM+SDc+a8Aw/8Yew6YwT51TcBKEp1P4oOQ/bP25I18JJr7rcFRgFtU9B2Q== - dependencies: - "@ethersproject/address" "^5.6.1" - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/constants" "^5.6.1" - "@ethersproject/keccak256" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/rlp" "^5.6.1" - "@ethersproject/signing-key" "^5.6.2" - -"@ethersproject/units@5.6.1", "@ethersproject/units@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.6.1.tgz#ecc590d16d37c8f9ef4e89e2005bda7ddc6a4e6f" - integrity sha512-rEfSEvMQ7obcx3KWD5EWWx77gqv54K6BKiZzKxkQJqtpriVsICrktIQmKl8ReNToPeIYPnFHpXvKpi068YFZXw== - dependencies: - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/constants" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/wallet@5.6.2", "@ethersproject/wallet@^5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.6.2.tgz#cd61429d1e934681e413f4bc847a5f2f87e3a03c" - integrity sha512-lrgh0FDQPuOnHcF80Q3gHYsSUODp6aJLAdDmDV0xKCN/T7D99ta1jGVhulg3PY8wiXEngD0DfM0I2XKXlrqJfg== - dependencies: - "@ethersproject/abstract-provider" "^5.6.1" - "@ethersproject/abstract-signer" "^5.6.2" - "@ethersproject/address" "^5.6.1" - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/hash" "^5.6.1" - "@ethersproject/hdnode" "^5.6.2" - "@ethersproject/json-wallets" "^5.6.1" - "@ethersproject/keccak256" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/random" "^5.6.1" - "@ethersproject/signing-key" "^5.6.2" - "@ethersproject/transactions" "^5.6.2" - "@ethersproject/wordlists" "^5.6.1" - -"@ethersproject/web@5.6.1", "@ethersproject/web@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.6.1.tgz#6e2bd3ebadd033e6fe57d072db2b69ad2c9bdf5d" - integrity sha512-/vSyzaQlNXkO1WV+RneYKqCJwualcUdx/Z3gseVovZP0wIlOFcCE1hkRhKBH8ImKbGQbMl9EAAyJFrJu7V0aqA== - dependencies: - "@ethersproject/base64" "^5.6.1" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/strings" "^5.6.1" - -"@ethersproject/wordlists@5.6.1", "@ethersproject/wordlists@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.6.1.tgz#1e78e2740a8a21e9e99947e47979d72e130aeda1" - integrity sha512-wiPRgBpNbNwCQFoCr8bcWO8o5I810cqO6mkdtKfLKFlLxeCWcnzDi4Alu8iyNzlhYuS9npCwivMbRWF19dyblw== - dependencies: - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/hash" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/strings" "^5.6.1" - -"@humanwhocodes/config-array@^0.9.2": - version "0.9.5" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" - integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw== +"@ethersproject/solidity@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" + integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + +"@ethersproject/units@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" + integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/wallet@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" + integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/json-wallets" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" + integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@humanwhocodes/config-array@^0.10.4": + version "0.10.4" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" + integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" minimatch "^3.0.4" +"@humanwhocodes/gitignore-to-minimatch@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" + integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" @@ -1430,109 +1377,109 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.1.tgz#305f8ca50b6e70413839f54c0e002b60a0f2fd7d" - integrity sha512-0RiUocPVFEm3WRMOStIHbRWllG6iW6E3/gUPnf4lkrVFyXIIDeCe+vlKeYyFOMhB2EPE6FLFCNADSOOQMaqvyA== +"@jest/console@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.3.tgz#2030606ec03a18c31803b8a36382762e447655df" + integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^28.1.1" - jest-util "^28.1.1" + jest-message-util "^28.1.3" + jest-util "^28.1.3" slash "^3.0.0" -"@jest/core@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.2.tgz#eac519b9acbd154313854b8823a47b5c645f785a" - integrity sha512-Xo4E+Sb/nZODMGOPt2G3cMmCBqL4/W2Ijwr7/mrXlq4jdJwcFQ/9KrrJZT2adQRk2otVBXXOz1GRQ4Z5iOgvRQ== - dependencies: - "@jest/console" "^28.1.1" - "@jest/reporters" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" +"@jest/core@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.3.tgz#0ebf2bd39840f1233cd5f2d1e6fc8b71bd5a1ac7" + integrity sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA== + dependencies: + "@jest/console" "^28.1.3" + "@jest/reporters" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^28.0.2" - jest-config "^28.1.2" - jest-haste-map "^28.1.1" - jest-message-util "^28.1.1" + jest-changed-files "^28.1.3" + jest-config "^28.1.3" + jest-haste-map "^28.1.3" + jest-message-util "^28.1.3" jest-regex-util "^28.0.2" - jest-resolve "^28.1.1" - jest-resolve-dependencies "^28.1.2" - jest-runner "^28.1.2" - jest-runtime "^28.1.2" - jest-snapshot "^28.1.2" - jest-util "^28.1.1" - jest-validate "^28.1.1" - jest-watcher "^28.1.1" + jest-resolve "^28.1.3" + jest-resolve-dependencies "^28.1.3" + jest-runner "^28.1.3" + jest-runtime "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" + jest-watcher "^28.1.3" micromatch "^4.0.4" - pretty-format "^28.1.1" + pretty-format "^28.1.3" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.2.tgz#94a052c0c5f9f8c8e6d13ea6da78dbc5d7d9b85b" - integrity sha512-I0CR1RUMmOzd0tRpz10oUfaChBWs+/Hrvn5xYhMEF/ZqrDaaeHwS8yDBqEWCrEnkH2g+WE/6g90oBv3nKpcm8Q== +"@jest/environment@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.3.tgz#abed43a6b040a4c24fdcb69eab1f97589b2d663e" + integrity sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA== dependencies: - "@jest/fake-timers" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/fake-timers" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" - jest-mock "^28.1.1" + jest-mock "^28.1.3" -"@jest/expect-utils@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.1.tgz#d84c346025b9f6f3886d02c48a6177e2b0360587" - integrity sha512-n/ghlvdhCdMI/hTcnn4qV57kQuV9OTsZzH1TTCVARANKhl6hXJqLKUkwX69ftMGpsbpt96SsDD8n8LD2d9+FRw== +"@jest/expect-utils@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz#58561ce5db7cd253a7edddbc051fb39dda50f525" + integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== dependencies: jest-get-type "^28.0.2" -"@jest/expect@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.2.tgz#0b25acedff46e1e1e5606285306c8a399c12534f" - integrity sha512-HBzyZBeFBiOelNbBKN0pilWbbrGvwDUwAqMC46NVJmWm8AVkuE58NbG1s7DR4cxFt4U5cVLxofAoHxgvC5MyOw== +"@jest/expect@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.3.tgz#9ac57e1d4491baca550f6bdbd232487177ad6a72" + integrity sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw== dependencies: - expect "^28.1.1" - jest-snapshot "^28.1.2" + expect "^28.1.3" + jest-snapshot "^28.1.3" -"@jest/fake-timers@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.2.tgz#d49e8ee4e02ba85a6e844a52a5e7c59c23e3b76f" - integrity sha512-xSYEI7Y0D5FbZN2LsCUj/EKRR1zfQYmGuAUVh6xTqhx7V5JhjgMcK5Pa0iR6WIk0GXiHDe0Ke4A+yERKE9saqg== +"@jest/fake-timers@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.3.tgz#230255b3ad0a3d4978f1d06f70685baea91c640e" + integrity sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^28.1.1" - jest-mock "^28.1.1" - jest-util "^28.1.1" + jest-message-util "^28.1.3" + jest-mock "^28.1.3" + jest-util "^28.1.3" -"@jest/globals@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.2.tgz#92fab296e337c7309c25e4202fb724f62249d83f" - integrity sha512-cz0lkJVDOtDaYhvT3Fv2U1B6FtBnV+OpEyJCzTHM1fdoTsU4QNLAt/H4RkiwEUU+dL4g/MFsoTuHeT2pvbo4Hg== +"@jest/globals@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.3.tgz#a601d78ddc5fdef542728309894895b4a42dc333" + integrity sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA== dependencies: - "@jest/environment" "^28.1.2" - "@jest/expect" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/environment" "^28.1.3" + "@jest/expect" "^28.1.3" + "@jest/types" "^28.1.3" -"@jest/reporters@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.2.tgz#0327be4ce4d0d9ae49e7908656f89669d0c2a260" - integrity sha512-/whGLhiwAqeCTmQEouSigUZJPVl7sW8V26EiboImL+UyXznnr1a03/YZ2BX8OlFw0n+Zlwu+EZAITZtaeRTxyA== +"@jest/reporters@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.3.tgz#9adf6d265edafc5fc4a434cfb31e2df5a67a369a" + integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.1.1" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/console" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" "@jridgewell/trace-mapping" "^0.3.13" "@types/node" "*" chalk "^4.0.0" @@ -1545,21 +1492,21 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^28.1.1" - jest-util "^28.1.1" - jest-worker "^28.1.1" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + jest-worker "^28.1.3" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" terminal-link "^2.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.0.2.tgz#08c30df6a8d07eafea0aef9fb222c5e26d72e613" - integrity sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA== +"@jest/schemas@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905" + integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== dependencies: - "@sinclair/typebox" "^0.23.3" + "@sinclair/typebox" "^0.24.1" "@jest/source-map@^28.1.2": version "28.1.2" @@ -1570,24 +1517,24 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.1.tgz#c6f18d1bbb01aa88925dd687872a75f8414b317a" - integrity sha512-hPmkugBktqL6rRzwWAtp1JtYT4VHwv8OQ+9lE5Gymj6dHzubI/oJHMUpPOt8NrdVWSrz9S7bHjJUmv2ggFoUNQ== +"@jest/test-result@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.3.tgz#5eae945fd9f4b8fcfce74d239e6f725b6bf076c5" + integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== dependencies: - "@jest/console" "^28.1.1" - "@jest/types" "^28.1.1" + "@jest/console" "^28.1.3" + "@jest/types" "^28.1.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.1.tgz#f594ee2331df75000afe0d1ae3237630ecec732e" - integrity sha512-nuL+dNSVMcWB7OOtgb0EGH5AjO4UBCt68SLP08rwmC+iRhyuJWS9MtZ/MpipxFwKAlHFftbMsydXqWre8B0+XA== +"@jest/test-sequencer@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz#9d0c283d906ac599c74bde464bc0d7e6a82886c3" + integrity sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw== dependencies: - "@jest/test-result" "^28.1.1" + "@jest/test-result" "^28.1.3" graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" + jest-haste-map "^28.1.3" slash "^3.0.0" "@jest/transform@^27.5.1": @@ -1611,22 +1558,22 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/transform@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.2.tgz#b367962c53fd53821269bde050ce373e111327c1" - integrity sha512-3o+lKF6iweLeJFHBlMJysdaPbpoMmtbHEFsjzSv37HIq/wWt5ijTeO2Yf7MO5yyczCopD507cNwNLeX8Y/CuIg== +"@jest/transform@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.3.tgz#59d8098e50ab07950e0f2fc0fc7ec462371281b0" + integrity sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@jridgewell/trace-mapping" "^0.3.13" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" + jest-haste-map "^28.1.3" jest-regex-util "^28.0.2" - jest-util "^28.1.1" + jest-util "^28.1.3" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -1643,12 +1590,12 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@jest/types@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.1.tgz#d059bbc80e6da6eda9f081f293299348bd78ee0b" - integrity sha512-vRXVqSg1VhDnB8bWcmvLzmg0Bt9CRKVgHPXqYwvWMX3TvAjeO+nRuK6+VdTKCtWOvYlmkF/HqNAL/z+N3B53Kw== +"@jest/types@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" + integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== dependencies: - "@jest/schemas" "^28.0.2" + "@jest/schemas" "^28.1.3" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -1696,9 +1643,9 @@ integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.8", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.14" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" - integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== + version "0.3.15" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" + integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" @@ -1719,6 +1666,16 @@ resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== +"@noble/hashes@1.1.2", "@noble/hashes@~1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.2.tgz#e9e035b9b166ca0af657a7848eb2718f0f22f183" + integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA== + +"@noble/secp256k1@1.6.3", "@noble/secp256k1@~1.6.0": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.6.3.tgz#7eed12d9f4404b416999d0c87686836c4c5c9b94" + integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1740,116 +1697,314 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@nomicfoundation/ethereumjs-block@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-4.0.0.tgz#fdd5c045e7baa5169abeed0e1202bf94e4481c49" + integrity sha512-bk8uP8VuexLgyIZAHExH1QEovqx0Lzhc9Ntm63nCRKLHXIZkobaFaeCVwTESV7YkPKUk7NiK11s8ryed4CS9yA== + dependencies: + "@nomicfoundation/ethereumjs-common" "^3.0.0" + "@nomicfoundation/ethereumjs-rlp" "^4.0.0" + "@nomicfoundation/ethereumjs-trie" "^5.0.0" + "@nomicfoundation/ethereumjs-tx" "^4.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-blockchain@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-6.0.0.tgz#1a8c243a46d4d3691631f139bfb3a4a157187b0c" + integrity sha512-pLFEoea6MWd81QQYSReLlLfH7N9v7lH66JC/NMPN848ySPPQA5renWnE7wPByfQFzNrPBuDDRFFULMDmj1C0xw== + dependencies: + "@nomicfoundation/ethereumjs-block" "^4.0.0" + "@nomicfoundation/ethereumjs-common" "^3.0.0" + "@nomicfoundation/ethereumjs-ethash" "^2.0.0" + "@nomicfoundation/ethereumjs-rlp" "^4.0.0" + "@nomicfoundation/ethereumjs-trie" "^5.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + abstract-level "^1.0.3" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + level "^8.0.0" + lru-cache "^5.1.1" + memory-level "^1.0.0" + +"@nomicfoundation/ethereumjs-common@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-3.0.0.tgz#f6bcc7753994555e49ab3aa517fc8bcf89c280b9" + integrity sha512-WS7qSshQfxoZOpHG/XqlHEGRG1zmyjYrvmATvc4c62+gZXgre1ymYP8ZNgx/3FyZY0TWe9OjFlKOfLqmgOeYwA== + dependencies: + "@nomicfoundation/ethereumjs-util" "^8.0.0" + crc-32 "^1.2.0" + +"@nomicfoundation/ethereumjs-ethash@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-2.0.0.tgz#11539c32fe0990e1122ff987d1b84cfa34774e81" + integrity sha512-WpDvnRncfDUuXdsAXlI4lXbqUDOA+adYRQaEezIkxqDkc+LDyYDbd/xairmY98GnQzo1zIqsIL6GB5MoMSJDew== + dependencies: + "@nomicfoundation/ethereumjs-block" "^4.0.0" + "@nomicfoundation/ethereumjs-rlp" "^4.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + abstract-level "^1.0.3" + bigint-crypto-utils "^3.0.23" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-evm@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-1.0.0.tgz#99cd173c03b59107c156a69c5e215409098a370b" + integrity sha512-hVS6qRo3V1PLKCO210UfcEQHvlG7GqR8iFzp0yyjTg2TmJQizcChKgWo8KFsdMw6AyoLgLhHGHw4HdlP8a4i+Q== + dependencies: + "@nomicfoundation/ethereumjs-common" "^3.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + "@types/async-eventemitter" "^0.2.1" + async-eventemitter "^0.2.4" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + mcl-wasm "^0.7.1" + rustbn.js "~0.2.0" + +"@nomicfoundation/ethereumjs-rlp@^4.0.0", "@nomicfoundation/ethereumjs-rlp@^4.0.0-beta.2": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-4.0.0.tgz#d9a9c5f0f10310c8849b6525101de455a53e771d" + integrity sha512-GaSOGk5QbUk4eBP5qFbpXoZoZUj/NrW7MRa0tKY4Ew4c2HAS0GXArEMAamtFrkazp0BO4K5p2ZCG3b2FmbShmw== + +"@nomicfoundation/ethereumjs-statemanager@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-1.0.0.tgz#14a9d4e1c828230368f7ab520c144c34d8721e4b" + integrity sha512-jCtqFjcd2QejtuAMjQzbil/4NHf5aAWxUc+CvS0JclQpl+7M0bxMofR2AJdtz+P3u0ke2euhYREDiE7iSO31vQ== + dependencies: + "@nomicfoundation/ethereumjs-common" "^3.0.0" + "@nomicfoundation/ethereumjs-rlp" "^4.0.0" + "@nomicfoundation/ethereumjs-trie" "^5.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + functional-red-black-tree "^1.0.1" + +"@nomicfoundation/ethereumjs-trie@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-5.0.0.tgz#dcfbe3be53a94bc061c9767a396c16702bc2f5b7" + integrity sha512-LIj5XdE+s+t6WSuq/ttegJzZ1vliwg6wlb+Y9f4RlBpuK35B9K02bO7xU+E6Rgg9RGptkWd6TVLdedTI4eNc2A== + dependencies: + "@nomicfoundation/ethereumjs-rlp" "^4.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + ethereum-cryptography "0.1.3" + readable-stream "^3.6.0" + +"@nomicfoundation/ethereumjs-tx@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-4.0.0.tgz#59dc7452b0862b30342966f7052ab9a1f7802f52" + integrity sha512-Gg3Lir2lNUck43Kp/3x6TfBNwcWC9Z1wYue9Nz3v4xjdcv6oDW9QSMJxqsKw9QEGoBBZ+gqwpW7+F05/rs/g1w== + dependencies: + "@nomicfoundation/ethereumjs-common" "^3.0.0" + "@nomicfoundation/ethereumjs-rlp" "^4.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-util@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-8.0.0.tgz#deb2b15d2c308a731e82977aefc4e61ca0ece6c5" + integrity sha512-2emi0NJ/HmTG+CGY58fa+DQuAoroFeSH9gKu9O6JnwTtlzJtgfTixuoOqLEgyyzZVvwfIpRueuePb8TonL1y+A== + dependencies: + "@nomicfoundation/ethereumjs-rlp" "^4.0.0-beta.2" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-vm@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-6.0.0.tgz#2bb50d332bf41790b01a3767ffec3987585d1de6" + integrity sha512-JMPxvPQ3fzD063Sg3Tp+UdwUkVxMoo1uML6KSzFhMH3hoQi/LMuXBoEHAoW83/vyNS9BxEe6jm6LmT5xdeEJ6w== + dependencies: + "@nomicfoundation/ethereumjs-block" "^4.0.0" + "@nomicfoundation/ethereumjs-blockchain" "^6.0.0" + "@nomicfoundation/ethereumjs-common" "^3.0.0" + "@nomicfoundation/ethereumjs-evm" "^1.0.0" + "@nomicfoundation/ethereumjs-rlp" "^4.0.0" + "@nomicfoundation/ethereumjs-statemanager" "^1.0.0" + "@nomicfoundation/ethereumjs-trie" "^5.0.0" + "@nomicfoundation/ethereumjs-tx" "^4.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + "@types/async-eventemitter" "^0.2.1" + async-eventemitter "^0.2.4" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + functional-red-black-tree "^1.0.1" + mcl-wasm "^0.7.1" + rustbn.js "~0.2.0" + +"@nomicfoundation/solidity-analyzer-darwin-arm64@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.0.3.tgz#1d49e4ac028831a3011a9f3dca60bd1963185342" + integrity sha512-W+bIiNiZmiy+MTYFZn3nwjyPUO6wfWJ0lnXx2zZrM8xExKObMrhCh50yy8pQING24mHfpPFCn89wEB/iG7vZDw== + +"@nomicfoundation/solidity-analyzer-darwin-x64@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.0.3.tgz#c0fccecc5506ff5466225e41e65691abafef3dbe" + integrity sha512-HuJd1K+2MgmFIYEpx46uzwEFjvzKAI765mmoMxy4K+Aqq1p+q7hHRlsFU2kx3NB8InwotkkIq3A5FLU1sI1WDw== + +"@nomicfoundation/solidity-analyzer-freebsd-x64@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.0.3.tgz#8261d033f7172b347490cd005931ef8168ab4d73" + integrity sha512-2cR8JNy23jZaO/vZrsAnWCsO73asU7ylrHIe0fEsXbZYqBP9sMr+/+xP3CELDHJxUbzBY8zqGvQt1ULpyrG+Kw== + +"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.0.3.tgz#1ba64b1d76425f8953dedc6367bd7dd46f31dfc5" + integrity sha512-Eyv50EfYbFthoOb0I1568p+eqHGLwEUhYGOxcRNywtlTE9nj+c+MT1LA53HnxD9GsboH4YtOOmJOulrjG7KtbA== + +"@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.0.3.tgz#8d864c49b55e683f7e3b5cce9d10b628797280ac" + integrity sha512-V8grDqI+ivNrgwEt2HFdlwqV2/EQbYAdj3hbOvjrA8Qv+nq4h9jhQUxFpegYMDtpU8URJmNNlXgtfucSrAQwtQ== + +"@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.0.3.tgz#16e769500cf1a8bb42ab9498cee3b93c30f78295" + integrity sha512-uRfVDlxtwT1vIy7MAExWAkRD4r9M79zMG7S09mCrWUn58DbLs7UFl+dZXBX0/8FTGYWHhOT/1Etw1ZpAf5DTrg== + +"@nomicfoundation/solidity-analyzer-linux-x64-musl@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.0.3.tgz#75f4e1a25526d54c506e4eba63b3d698b6255b8f" + integrity sha512-8HPwYdLbhcPpSwsE0yiU/aZkXV43vlXT2ycH+XlOjWOnLfH8C41z0njK8DHRtEFnp4OVN6E7E5lHBBKDZXCliA== + +"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.0.3.tgz#ef6e20cfad5eedfdb145cc34a44501644cd7d015" + integrity sha512-5WWcT6ZNvfCuxjlpZOY7tdvOqT1kIQYlDF9Q42wMpZ5aTm4PvjdCmFDDmmTvyXEBJ4WTVmY5dWNWaxy8h/E28g== + +"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.0.3.tgz#98c4e3af9cee68896220fa7e270aefdf7fc89c7b" + integrity sha512-P/LWGZwWkyjSwkzq6skvS2wRc3gabzAbk6Akqs1/Iiuggql2CqdLBkcYWL5Xfv3haynhL+2jlNkak+v2BTZI4A== + +"@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.0.3.tgz#12da288e7ef17ec14848f19c1e8561fed20d231d" + integrity sha512-4AcTtLZG1s/S5mYAIr/sdzywdNwJpOcdStGF3QMBzEt+cGn3MchMaS9b1gyhb2KKM2c39SmPF5fUuWq1oBSQZQ== + +"@nomicfoundation/solidity-analyzer@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.0.3.tgz#d1029f872e66cb1082503b02cc8b0be12f8dd95e" + integrity sha512-VFMiOQvsw7nx5bFmrmVp2Q9rhIjw2AFST4DYvWVVO9PMHPE23BY2+kyfrQ4J3xCMFC8fcBbGLt7l4q7m1SlTqg== + optionalDependencies: + "@nomicfoundation/solidity-analyzer-darwin-arm64" "0.0.3" + "@nomicfoundation/solidity-analyzer-darwin-x64" "0.0.3" + "@nomicfoundation/solidity-analyzer-freebsd-x64" "0.0.3" + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu" "0.0.3" + "@nomicfoundation/solidity-analyzer-linux-arm64-musl" "0.0.3" + "@nomicfoundation/solidity-analyzer-linux-x64-gnu" "0.0.3" + "@nomicfoundation/solidity-analyzer-linux-x64-musl" "0.0.3" + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc" "0.0.3" + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc" "0.0.3" + "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.0.3" + "@nomiclabs/hardhat-ethers@^2.0.5": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.0.6.tgz#1c695263d5b46a375dcda48c248c4fba9dfe2fc2" - integrity sha512-q2Cjp20IB48rEn2NPjR1qxsIQBvFVYW9rFRCFq+bC4RUrn1Ljz3g4wM8uSlgIBZYBi2JMXxmOzFqHraczxq4Ng== + version "2.1.1" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.1.1.tgz#3f1d1ab49813d1bae4c035cc1adec224711e528b" + integrity sha512-Gg0IFkT/DW3vOpih4/kMjeZCLYqtfgECLeLXTs7ZDPzcK0cfoc5wKk4nq5n/izCUzdhidO/Utd6ptF9JrWwWVA== -"@octokit/auth-token@^2.4.4": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" - integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== +"@octokit/auth-token@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.1.tgz#88bc2baf5d706cb258474e722a720a8365dff2ec" + integrity sha512-/USkK4cioY209wXRpund6HZzHo9GmjakpV9ycOkpMcMxMk7QVcVFVyCMtzvXYiHsB2crgDgrtNYSELYFBXhhaA== dependencies: - "@octokit/types" "^6.0.3" + "@octokit/types" "^7.0.0" -"@octokit/core@^3.5.1": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" - integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== - dependencies: - "@octokit/auth-token" "^2.4.4" - "@octokit/graphql" "^4.5.8" - "@octokit/request" "^5.6.3" - "@octokit/request-error" "^2.0.5" - "@octokit/types" "^6.0.3" +"@octokit/core@^4.0.0": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.0.5.tgz#589e68c0a35d2afdcd41dafceab072c2fbc6ab5f" + integrity sha512-4R3HeHTYVHCfzSAi0C6pbGXV8UDI5Rk+k3G7kLVNckswN9mvpOzW9oENfjfH3nEmzg8y3AmKmzs8Sg6pLCeOCA== + dependencies: + "@octokit/auth-token" "^3.0.0" + "@octokit/graphql" "^5.0.0" + "@octokit/request" "^6.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^7.0.0" before-after-hook "^2.2.0" universal-user-agent "^6.0.0" -"@octokit/endpoint@^6.0.1": - version "6.0.12" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" - integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== +"@octokit/endpoint@^7.0.0": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.2.tgz#11ee868406ba7bb1642e61bbe676d641f79f02be" + integrity sha512-8/AUACfE9vpRpehE6ZLfEtzkibe5nfsSwFZVMsG8qabqRt1M81qZYUFRZa1B8w8lP6cdfDJfRq9HWS+MbmR7tw== dependencies: - "@octokit/types" "^6.0.3" + "@octokit/types" "^7.0.0" is-plain-object "^5.0.0" universal-user-agent "^6.0.0" -"@octokit/graphql@^4.5.8": - version "4.8.0" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" - integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== +"@octokit/graphql@^5.0.0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.1.tgz#a06982514ad131fb6fbb9da968653b2233fade9b" + integrity sha512-sxmnewSwAixkP1TrLdE6yRG53eEhHhDTYUykUwdV9x8f91WcbhunIHk9x1PZLALdBZKRPUO2HRcm4kezZ79HoA== dependencies: - "@octokit/request" "^5.6.0" - "@octokit/types" "^6.0.3" + "@octokit/request" "^6.0.0" + "@octokit/types" "^7.0.0" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^12.5.0": - version "12.5.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.5.0.tgz#e10b256237c877fa6f0a21922151dc03d9c57510" - integrity sha512-VatvE5wtRkJq6hAWGTBZ62WkrdlCiy0G0u27cVOYTfAWVZi7QqTurVcjpsyc5+9hXLPRP5O/DaNEs4TgAp4Mqg== +"@octokit/openapi-types@^13.10.0": + version "13.10.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-13.10.0.tgz#27e29c97a6dc26e218834730ae3f7ea5e05bcb7f" + integrity sha512-wPQDpTyy35D6VS/lekXDaKcxy6LI2hzcbmXBnP180Pdgz3dXRzoHdav0w09yZzzWX8HHLGuqwAeyMqEPtWY2XA== -"@octokit/plugin-paginate-rest@^2.16.8": - version "2.20.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.20.0.tgz#874f9d0cd500bfa0f0901a44de834e3de115d28b" - integrity sha512-LbemX86JEmOCFo9eRwrtdP5Isq69TefLS1J7w0DO4PMhfpvRfqYVzq9c0eH1xgcx2PSA7/VJHu9SwvNhD9FjVg== +"@octokit/plugin-paginate-rest@^4.0.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.3.0.tgz#f328665ece9e8def7773c6d5620f4cf94124e037" + integrity sha512-4V8hWMoXuxb03xPs3s3RjUb5Bzx4HmVRhG+gvbO08PB48ag6G8mk6/HDFKlAXz9XEorDIkc0pXcXnaOz8spHgg== dependencies: - "@octokit/types" "^6.38.1" + "@octokit/types" "^7.4.0" "@octokit/plugin-request-log@^1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== -"@octokit/plugin-rest-endpoint-methods@^5.12.0": - version "5.16.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.0.tgz#e0a774d78bb17fb9b6b9ae48d5517940f7f61e90" - integrity sha512-mvdwq+LvhR2GRDY82FgSZ52xX6wkOCpjiI3amiKbzKHd9nyKeFdXLsIQ3Go12tWRtvo+HwqoypLHDjRrgMFDQA== +"@octokit/plugin-rest-endpoint-methods@^6.0.0": + version "6.6.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.6.0.tgz#7bece1ba1b687b723be7d4502c494055fdda0e10" + integrity sha512-IAuT/e1gIUVszNmV+vfXNxa6xXI9dlghhBDqLGEmjz3so9sHqOlXN4R5gWcCRJkt4mum4NCaNjUk17yTrK76Rw== dependencies: - "@octokit/types" "^6.38.0" + "@octokit/types" "^7.4.0" deprecation "^2.3.1" -"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" - integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== +"@octokit/request-error@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.1.tgz#3fd747913c06ab2195e52004a521889dadb4b295" + integrity sha512-ym4Bp0HTP7F3VFssV88WD1ZyCIRoE8H35pXSKwLeMizcdZAYc/t6N9X9Yr9n6t3aG9IH75XDnZ6UeZph0vHMWQ== dependencies: - "@octokit/types" "^6.0.3" + "@octokit/types" "^7.0.0" deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^5.6.0", "@octokit/request@^5.6.3": - version "5.6.3" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" - integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== +"@octokit/request@^6.0.0": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.1.tgz#3ceeb22dab09a29595d96594b6720fc14495cf4e" + integrity sha512-gYKRCia3cpajRzDSU+3pt1q2OcuC6PK8PmFIyxZDWCzRXRSIBH8jXjFJ8ZceoygBIm0KsEUg4x1+XcYBz7dHPQ== dependencies: - "@octokit/endpoint" "^6.0.1" - "@octokit/request-error" "^2.1.0" - "@octokit/types" "^6.16.1" + "@octokit/endpoint" "^7.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^7.0.0" is-plain-object "^5.0.0" node-fetch "^2.6.7" universal-user-agent "^6.0.0" -"@octokit/rest@18.12.0": - version "18.12.0" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" - integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== +"@octokit/rest@19.0.4": + version "19.0.4" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.4.tgz#fd8bed1cefffa486e9ae46a9dc608ce81bcfcbdd" + integrity sha512-LwG668+6lE8zlSYOfwPj4FxWdv/qFXYBpv79TWIQEpBLKA9D/IMcWsF/U9RGpA3YqMVDiTxpgVpEW3zTFfPFTA== dependencies: - "@octokit/core" "^3.5.1" - "@octokit/plugin-paginate-rest" "^2.16.8" + "@octokit/core" "^4.0.0" + "@octokit/plugin-paginate-rest" "^4.0.0" "@octokit/plugin-request-log" "^1.0.4" - "@octokit/plugin-rest-endpoint-methods" "^5.12.0" + "@octokit/plugin-rest-endpoint-methods" "^6.0.0" -"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.38.0", "@octokit/types@^6.38.1": - version "6.38.1" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.38.1.tgz#03d70745564954dfdae32df23d5f1578f958474f" - integrity sha512-kWMohLCIvnwApRmxRFDOqve7puiNNdtVfgwdDOm6QyJNorWOgKv2/AodCcGqx63o28kF7Dr4/nJCatrwwqhULg== +"@octokit/types@^7.0.0", "@octokit/types@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-7.4.0.tgz#ac2aecc9c46b30f7899976dc7c56b47c0e093688" + integrity sha512-ln1GW0p72+P8qeRjHGj0wyR5ePy6slqvczveOqonMk1w1UWua6UgrkwFzv6S0vKWjSqt/ijYXF1ehNVRRRSvLA== dependencies: - "@octokit/openapi-types" "^12.5.0" + "@octokit/openapi-types" "^13.10.0" "@openzeppelin/contracts@^4.6.0": - version "4.7.2" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.7.2.tgz#7587416fe2d35abf574193515b8971bfe9f64bc7" - integrity sha512-4n/JL9izql8303mPqPdubuna/DWEMbmOzWYUWyCPhjhiEr2w3nQrjE7vZz1fBF+wzzP6dZbIcsgqACk53c9FGA== + version "4.7.3" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.7.3.tgz#939534757a81f8d69cc854c7692805684ff3111e" + integrity sha512-dGRS0agJzu8ybo44pCIf3xBaPQN/65AIXNgK8+4gzKd5kbvlqyxryUYVLJv7fK98Seyd2hDZzVEHSWAh0Bt1Yw== "@pnpm/network.ca-file@^1.0.1": version "1.0.1" @@ -1859,17 +2014,17 @@ graceful-fs "4.2.10" "@pnpm/npm-conf@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-1.0.4.tgz#e2c927a933f55e9211e12ef6cc4885ce915211ce" - integrity sha512-o5YFq/+ksEJMbSzzkaQDHlp00aonLDU5xNPVTRL12hTWBbVSSeWXxPukq75h+mvXnoOWT95vV2u1HSTw2C4XOw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-1.0.5.tgz#3475541fb71d7b6ce68acaaa3392eae9fedf3276" + integrity sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A== dependencies: "@pnpm/network.ca-file" "^1.0.1" config-chain "^1.1.11" "@release-it/keep-a-changelog@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@release-it/keep-a-changelog/-/keep-a-changelog-3.0.0.tgz#60727d238a0291d829a1c19e2ecdc6a9f2fb6fc5" - integrity sha512-ZUWbe17/i+HsGIVKOZtEeyALRyCLBvLUzvfG3rXjb7cPetEM82+ZNIHbVpiYFmR+YZT749ftWag98/QZ8/ganQ== + version "3.1.0" + resolved "https://registry.yarnpkg.com/@release-it/keep-a-changelog/-/keep-a-changelog-3.1.0.tgz#47e1a3ae7d3480e8e9afa16d8359c8a18dac627e" + integrity sha512-o8lxZCAFwFkFpo88aIIgS5dR3kDy6yLjJVpe9QAGNY6tpKMMRHxsiJ8MS5NvrEeIC2VTzOoOjN/CDvdd3a4+/A== dependencies: detect-newline "^4.0.0" string-template "^1.0.0" @@ -1883,9 +2038,9 @@ "@rollup/pluginutils" "^3.1.0" "@rollup/plugin-commonjs@^22.0.0": - version "22.0.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.1.tgz#f7cb777d20de3eeeaf994f39080115c336bef810" - integrity sha512-dGfEZvdjDHObBiP5IvwTKMVeq/tBZGMBHZFMdIV1ClMM/YoWS34xrHFGfag9SN2ZtMgNZRFruqvxZQEa70O6nQ== + version "22.0.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz#ee8ca8415cda30d383b4096aad5222435b4b69b6" + integrity sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg== dependencies: "@rollup/pluginutils" "^3.1.0" commondir "^1.0.1" @@ -1915,9 +2070,9 @@ resolve "^1.19.0" "@rollup/plugin-typescript@^8.3.2": - version "8.3.3" - resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-8.3.3.tgz#eee7edab9cfc064f1cfd16570492693cf1432215" - integrity sha512-55L9SyiYu3r/JtqdjhwcwaECXP7JeJ9h1Sg1VWRJKIutla2MdZQodTgcCNybXLMCnqpNLEhS2vGENww98L1npg== + version "8.5.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-8.5.0.tgz#7ea11599a15b0a30fa7ea69ce3b791d41b862515" + integrity sha512-wMv1/scv0m/rXx21wD2IsBbJFba8wGF3ErJIr6IKRfRj49S85Lszbxb4DCo8iILpluTjk2GAAu9CoZt4G3ppgQ== dependencies: "@rollup/pluginutils" "^3.1.0" resolve "^1.17.0" @@ -1931,6 +2086,28 @@ estree-walker "^1.0.1" picomatch "^2.2.2" +"@scure/base@~1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" + integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== + +"@scure/bip32@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.1.0.tgz#dea45875e7fbc720c2b4560325f1cf5d2246d95b" + integrity sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q== + dependencies: + "@noble/hashes" "~1.1.1" + "@noble/secp256k1" "~1.6.0" + "@scure/base" "~1.1.0" + +"@scure/bip39@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.0.tgz#92f11d095bae025f166bef3defcc5bf4945d419a" + integrity sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w== + dependencies: + "@noble/hashes" "~1.1.1" + "@scure/base" "~1.1.0" + "@sentry/core@5.30.0": version "5.30.0" resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3" @@ -1999,15 +2176,15 @@ "@sentry/types" "5.30.0" tslib "^1.9.3" -"@sinclair/typebox@^0.23.3": - version "0.23.5" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.23.5.tgz#93f7b9f4e3285a7a9ade7557d9a8d36809cbc47d" - integrity sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg== +"@sinclair/typebox@^0.24.1": + version "0.24.41" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.41.tgz#45470b8bae32a28f1e0501066d0bacbd8b772804" + integrity sha512-TJCgQurls4FipFvHeC+gfAzb+GGstL0TDwYJKQVtTeSvJIznWzP7g3bAd5gEBlr8+bIxqnWS9VGVWREDhmE8jA== -"@sindresorhus/is@^4.6.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" - integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== +"@sindresorhus/is@^5.2.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.3.0.tgz#0ec9264cf54a527671d990eb874e030b55b70dcc" + integrity sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw== "@sinonjs/commons@^1.7.0": version "1.8.3" @@ -2023,13 +2200,6 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@solidity-parser/parser@^0.14.1": - version "0.14.2" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.2.tgz#2d8f2bddb217621df882ceeae7d7b42ae8664db3" - integrity sha512-10cr0s+MtRtqjEw0WFJrm2rwULN30xx7btd/v9cmqME2617/2M5MbHDkFIGIGTa7lwNw4bN9mVGfhlLzrYw8pA== - dependencies: - antlr4ts "^0.5.0-alpha.4" - "@szmarczak/http-timer@^5.0.1": version "5.0.1" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" @@ -2051,17 +2221,16 @@ ts-essentials "^7.0.1" "@typechain/hardhat@^6.0.0": - version "6.1.2" - resolved "https://registry.yarnpkg.com/@typechain/hardhat/-/hardhat-6.1.2.tgz#d3beccc6937d93f9b437616b741f839a8b953693" - integrity sha512-k4Ea3pVITKB2DH8p1a5U38cyy7KZPD04Spo4q5b4wO+n2mT+uAz5dxckPtbczn/Kk5wiFq+ZkuOtw5ZKFhL/+w== + version "6.1.3" + resolved "https://registry.yarnpkg.com/@typechain/hardhat/-/hardhat-6.1.3.tgz#e6121502eb64903ab562d89e094a5506e7b86822" + integrity sha512-e1H9MVl286ma0HuD9CBL248+pbdA7lWF6+I7FYwzykIrjilKhvLUv0Q7LtcyZztzgbP2g4Tyg1UPE+xy+qR7cA== dependencies: fs-extra "^9.1.0" - lodash "^4.17.15" -"@types/abstract-leveldown@*": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz#f055979a99f7654e84d6b8e6267419e9c4cfff87" - integrity sha512-q5veSX6zjUy/DlDhR4Y4cU0k2Ar+DT2LUraP00T19WLmTO6Se1djepCCaqU6nQrwcJ5Hyo/CWqxTzrrFg8eqbQ== +"@types/async-eventemitter@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@types/async-eventemitter/-/async-eventemitter-0.2.1.tgz#f8e6280e87e8c60b2b938624b0a3530fb3e24712" + integrity sha512-M2P4Ng26QbAeITiH7w1d7OxtldgfAe0wobpyJzVK/XOb0cUGKU2R4pfAhqcJBXAe2ife5ZOhSv4wk7p+ffURtg== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": version "7.1.19" @@ -2090,16 +2259,16 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.17.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.1.tgz#1a0e73e8c28c7e832656db372b779bfd2ef37314" - integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA== + version "7.18.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.1.tgz#ce5e2c8c272b99b7a9fd69fa39f0b4cd85028bd9" + integrity sha512-FSdLaZh2UxaMuLp9lixWaHq/golWTRWOnRsAXzDTDSDOQLuZb1nsdCt6pJSPWSEQt2eFZ2YVk3oYhn+1kLMeMA== dependencies: "@babel/types" "^7.3.0" "@types/bn.js@*", "@types/bn.js@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.0.tgz#32c5d271503a12653c62cf4d2b45e6eab8cebc68" - integrity sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA== + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" + integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== dependencies: "@types/node" "*" @@ -2128,9 +2297,9 @@ "@types/bn.js" "*" "@types/estree@*": - version "0.0.52" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.52.tgz#7f1f57ad5b741f3d5b210d3b1f145640d89bf8fe" - integrity sha512-BZWrtCU0bMVAIliIV+HJO1f1PR41M7NKjfxrFJwwhKI1KwhwOxYw1SXg9ao+CIMt774nFuGiG6eU+udtbEI9oQ== + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== "@types/estree@0.0.39": version "0.0.39" @@ -2176,11 +2345,6 @@ jest-matcher-utils "^27.0.0" pretty-format "^27.0.0" -"@types/json-buffer@~3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/json-buffer/-/json-buffer-3.0.0.tgz#85c1ff0f0948fc159810d4b5be35bf8c20875f64" - integrity sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ== - "@types/json-schema@^7.0.9": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" @@ -2193,29 +2357,15 @@ dependencies: "@types/node" "*" -"@types/level-errors@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/level-errors/-/level-errors-3.0.0.tgz#15c1f4915a5ef763b51651b15e90f6dc081b96a8" - integrity sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ== - -"@types/levelup@^4.3.0": - version "4.3.3" - resolved "https://registry.yarnpkg.com/@types/levelup/-/levelup-4.3.3.tgz#4dc2b77db079b1cf855562ad52321aa4241b8ef4" - integrity sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA== - dependencies: - "@types/abstract-leveldown" "*" - "@types/level-errors" "*" - "@types/node" "*" - "@types/lru-cache@^5.1.0": version "5.1.1" resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== "@types/node@*": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a" - integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA== + version "18.7.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.18.tgz#633184f55c322e4fb08612307c274ee6d5ed3154" + integrity sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg== "@types/parse-json@^4.0.0": version "4.0.0" @@ -2230,9 +2380,9 @@ "@types/node" "*" "@types/prettier@^2.1.1", "@types/prettier@^2.1.5": - version "2.6.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.3.tgz#68ada76827b0010d0db071f739314fa429943d0a" - integrity sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg== + version "2.7.0" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.0.tgz#ea03e9f0376a4446f44797ca19d9c46c36e352dc" + integrity sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A== "@types/resolve@1.17.1": version "1.17.1" @@ -2273,20 +2423,20 @@ "@types/yargs-parser" "*" "@types/yargs@^17.0.8": - version "17.0.10" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.10.tgz#591522fce85d8739bca7b8bb90d048e4478d186a" - integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA== + version "17.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.12.tgz#0745ff3e4872b4ace98616d4b7e37ccbd75f9526" + integrity sha512-Nz4MPhecOFArtm81gFQvQqdV7XYCrWKx5uUt6GNHredFHn1i2mtWqXTON7EPXMtNi1qjtjEM/VCHDhcHsAMLXQ== dependencies: "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.20.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.0.tgz#524a11e15c09701733033c96943ecf33f55d9ca1" - integrity sha512-lvhRJ2pGe2V9MEU46ELTdiHgiAFZPKtLhiU5wlnaYpMc2+c1R8fh8i80ZAa665drvjHKUJyRRGg3gEm1If54ow== + version "5.37.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.37.0.tgz#5ccdd5d9004120f28fc6e717fb4b5c9bddcfbc04" + integrity sha512-Fde6W0IafXktz1UlnhGkrrmnnGpAo1kyX7dnyHHVrmwJOn72Oqm3eYtddrpOwwel2W8PAK9F3pIL5S+lfoM0og== dependencies: - "@typescript-eslint/scope-manager" "5.30.0" - "@typescript-eslint/type-utils" "5.30.0" - "@typescript-eslint/utils" "5.30.0" + "@typescript-eslint/scope-manager" "5.37.0" + "@typescript-eslint/type-utils" "5.37.0" + "@typescript-eslint/utils" "5.37.0" debug "^4.3.4" functional-red-black-tree "^1.0.1" ignore "^5.2.0" @@ -2295,68 +2445,69 @@ tsutils "^3.21.0" "@typescript-eslint/parser@^5.20.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.30.0.tgz#a2184fb5f8ef2bf1db0ae61a43907e2e32aa1b8f" - integrity sha512-2oYYUws5o2liX6SrFQ5RB88+PuRymaM2EU02/9Ppoyu70vllPnHVO7ioxDdq/ypXHA277R04SVjxvwI8HmZpzA== + version "5.37.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.37.0.tgz#c382077973f3a4ede7453fb14cadcad3970cbf3b" + integrity sha512-01VzI/ipYKuaG5PkE5+qyJ6m02fVALmMPY3Qq5BHflDx3y4VobbLdHQkSMg9VPRS4KdNt4oYTMaomFoHonBGAw== dependencies: - "@typescript-eslint/scope-manager" "5.30.0" - "@typescript-eslint/types" "5.30.0" - "@typescript-eslint/typescript-estree" "5.30.0" + "@typescript-eslint/scope-manager" "5.37.0" + "@typescript-eslint/types" "5.37.0" + "@typescript-eslint/typescript-estree" "5.37.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.30.0.tgz#bf585ee801ab4ad84db2f840174e171a6bb002c7" - integrity sha512-3TZxvlQcK5fhTBw5solQucWSJvonXf5yua5nx8OqK94hxdrT7/6W3/CS42MLd/f1BmlmmbGEgQcTHHCktUX5bQ== +"@typescript-eslint/scope-manager@5.37.0": + version "5.37.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.37.0.tgz#044980e4f1516a774a418dafe701a483a6c9f9ca" + integrity sha512-F67MqrmSXGd/eZnujjtkPgBQzgespu/iCZ+54Ok9X5tALb9L2v3G+QBSoWkXG0p3lcTJsL+iXz5eLUEdSiJU9Q== dependencies: - "@typescript-eslint/types" "5.30.0" - "@typescript-eslint/visitor-keys" "5.30.0" + "@typescript-eslint/types" "5.37.0" + "@typescript-eslint/visitor-keys" "5.37.0" -"@typescript-eslint/type-utils@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.30.0.tgz#98f3af926a5099153f092d4dad87148df21fbaae" - integrity sha512-GF8JZbZqSS+azehzlv/lmQQ3EU3VfWYzCczdZjJRxSEeXDQkqFhCBgFhallLDbPwQOEQ4MHpiPfkjKk7zlmeNg== +"@typescript-eslint/type-utils@5.37.0": + version "5.37.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.37.0.tgz#43ed2f567ada49d7e33a6e4b6f9babd060445fe5" + integrity sha512-BSx/O0Z0SXOF5tY0bNTBcDEKz2Ec20GVYvq/H/XNKiUorUFilH7NPbFUuiiyzWaSdN3PA8JV0OvYx0gH/5aFAQ== dependencies: - "@typescript-eslint/utils" "5.30.0" + "@typescript-eslint/typescript-estree" "5.37.0" + "@typescript-eslint/utils" "5.37.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.30.0.tgz#db7d81d585a3da3801432a9c1d2fafbff125e110" - integrity sha512-vfqcBrsRNWw/LBXyncMF/KrUTYYzzygCSsVqlZ1qGu1QtGs6vMkt3US0VNSQ05grXi5Yadp3qv5XZdYLjpp8ag== +"@typescript-eslint/types@5.37.0": + version "5.37.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.37.0.tgz#09e4870a5f3af7af3f84e08d792644a87d232261" + integrity sha512-3frIJiTa5+tCb2iqR/bf7XwU20lnU05r/sgPJnRpwvfZaqCJBrl8Q/mw9vr3NrNdB/XtVyMA0eppRMMBqdJ1bA== -"@typescript-eslint/typescript-estree@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.0.tgz#4565ee8a6d2ac368996e20b2344ea0eab1a8f0bb" - integrity sha512-hDEawogreZB4n1zoqcrrtg/wPyyiCxmhPLpZ6kmWfKF5M5G0clRLaEexpuWr31fZ42F96SlD/5xCt1bT5Qm4Nw== +"@typescript-eslint/typescript-estree@5.37.0": + version "5.37.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.37.0.tgz#956dcf5c98363bcb97bdd5463a0a86072ff79355" + integrity sha512-JkFoFIt/cx59iqEDSgIGnQpCTRv96MQnXCYvJi7QhBC24uyuzbD8wVbajMB1b9x4I0octYFJ3OwjAwNqk1AjDA== dependencies: - "@typescript-eslint/types" "5.30.0" - "@typescript-eslint/visitor-keys" "5.30.0" + "@typescript-eslint/types" "5.37.0" + "@typescript-eslint/visitor-keys" "5.37.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.30.0.tgz#1dac771fead5eab40d31860716de219356f5f754" - integrity sha512-0bIgOgZflLKIcZsWvfklsaQTM3ZUbmtH0rJ1hKyV3raoUYyeZwcjQ8ZUJTzS7KnhNcsVT1Rxs7zeeMHEhGlltw== +"@typescript-eslint/utils@5.37.0": + version "5.37.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.37.0.tgz#7784cb8e91390c4f90ccaffd24a0cf9874df81b2" + integrity sha512-jUEJoQrWbZhmikbcWSMDuUSxEE7ID2W/QCV/uz10WtQqfOuKZUqFGjqLJ+qhDd17rjgp+QJPqTdPIBWwoob2NQ== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.30.0" - "@typescript-eslint/types" "5.30.0" - "@typescript-eslint/typescript-estree" "5.30.0" + "@typescript-eslint/scope-manager" "5.37.0" + "@typescript-eslint/types" "5.37.0" + "@typescript-eslint/typescript-estree" "5.37.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.0.tgz#07721d23daca2ec4c2da7f1e660d41cd78bacac3" - integrity sha512-6WcIeRk2DQ3pHKxU1Ni0qMXJkjO/zLjBymlYBy/53qxe7yjEFSvzKLDToJjURUhSl2Fzhkl4SMXQoETauF74cw== +"@typescript-eslint/visitor-keys@5.37.0": + version "5.37.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.37.0.tgz#7b72dd343295ea11e89b624995abc7103c554eee" + integrity sha512-Hp7rT4cENBPIzMwrlehLW/28EVCOcE9U1Z1BQTc8EA8v5qpr7GRGuG+U58V5tTY48zvUOA3KHvw3rA8tY9fbdA== dependencies: - "@typescript-eslint/types" "5.30.0" + "@typescript-eslint/types" "5.37.0" eslint-visitor-keys "^3.3.0" "@ungap/promise-all-settled@1.1.2": @@ -2371,27 +2522,18 @@ abort-controller@^3.0.0: dependencies: event-target-shim "^5.0.0" -abstract-leveldown@^6.2.1: - version "6.3.0" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz#d25221d1e6612f820c35963ba4bd739928f6026a" - integrity sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ== - dependencies: - buffer "^5.5.0" - immediate "^3.2.3" - level-concat-iterator "~2.0.0" - level-supports "~1.0.0" - xtend "~4.0.0" - -abstract-leveldown@~6.2.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz#036543d87e3710f2528e47040bc3261b77a9a8eb" - integrity sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ== - dependencies: - buffer "^5.5.0" - immediate "^3.2.3" - level-concat-iterator "~2.0.0" - level-supports "~1.0.0" - xtend "~4.0.0" +abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" + integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA== + dependencies: + buffer "^6.0.3" + catering "^2.1.0" + is-buffer "^2.0.5" + level-supports "^4.0.0" + level-transcoder "^1.0.1" + module-error "^1.0.1" + queue-microtask "^1.2.3" acorn-jsx@^5.3.2: version "5.3.2" @@ -2403,7 +2545,7 @@ acorn-walk@^8.2.0: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^8.5.0, acorn@^8.7.0, acorn@^8.7.1: +acorn@^8.5.0, acorn@^8.7.0, acorn@^8.8.0: version "8.8.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== @@ -2418,11 +2560,6 @@ aes-js@3.0.0: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== -aes-js@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" - integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== - agent-base@6, agent-base@^6.0.0, agent-base@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -2509,14 +2646,9 @@ ansi-styles@^5.0.0: integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== ansi-styles@^6.0.0, ansi-styles@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" - integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== - -antlr4ts@^0.5.0-alpha.4: - version "0.5.0-alpha.4" - resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" - integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== + version "6.1.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.1.tgz#63cd61c72283a71cb30bd881dbb60adada74bc70" + integrity sha512-qDOv24WjnYuL+wbwHdlsYZFy+cgPtrYw0Tn7GLORicQp9BkQLzrgI3Pm4VyR9ERZ41YTn7KlMPuL1n05WdZvmg== anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.2" @@ -2590,7 +2722,7 @@ async-retry@1.3.3: dependencies: retry "0.13.1" -async@^2.4.0: +async@^2.4.0, async@^2.6.4: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== @@ -2628,15 +2760,15 @@ babel-jest@^27.5.1: graceful-fs "^4.2.9" slash "^3.0.0" -babel-jest@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.2.tgz#2b37fb81439f14d34d8b2cc4a4bd7efabf9acbfe" - integrity sha512-pfmoo6sh4L/+5/G2OOfQrGJgvH7fTa1oChnuYH2G/6gA+JwDvO8PELwvwnofKBMNrQsam0Wy/Rw+QSrBNewq2Q== +babel-jest@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.3.tgz#c1187258197c099072156a0a121c11ee1e3917d5" + integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q== dependencies: - "@jest/transform" "^28.1.2" + "@jest/transform" "^28.1.3" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.1.1" + babel-preset-jest "^28.1.3" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -2669,39 +2801,39 @@ babel-plugin-jest-hoist@^27.5.1: "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -babel-plugin-jest-hoist@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.1.tgz#5e055cdcc47894f28341f87f5e35aad2df680b11" - integrity sha512-NovGCy5Hn25uMJSAU8FaHqzs13cFoOI4lhIujiepssjCKRsAo3TA734RDWSGxuFTsUJXerYOqQQodlxgmtqbzw== +babel-plugin-jest-hoist@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz#1952c4d0ea50f2d6d794353762278d1d8cca3fbe" + integrity sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" -babel-plugin-polyfill-corejs2@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" - integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== +babel-plugin-polyfill-corejs2@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" + integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.3.3" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" - integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== +babel-plugin-polyfill-corejs3@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" + integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" - core-js-compat "^3.21.0" + "@babel/helper-define-polyfill-provider" "^0.3.3" + core-js-compat "^3.25.1" -babel-plugin-polyfill-regenerator@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" - integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== +babel-plugin-polyfill-regenerator@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" + integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@babel/helper-define-polyfill-provider" "^0.3.3" babel-preset-current-node-syntax@^1.0.0: version "1.0.1" @@ -2729,12 +2861,12 @@ babel-preset-jest@^27.5.1: babel-plugin-jest-hoist "^27.5.1" babel-preset-current-node-syntax "^1.0.0" -babel-preset-jest@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.1.tgz#5b6e5e69f963eb2d70f739c607b8f723c0ee75e4" - integrity sha512-FCq9Oud0ReTeWtcneYf/48981aTfXYuB9gbU4rBNNJVBSQ6ssv7E6v/qvbBxtOWwZFXjLZwpg+W3q7J6vhH25g== +babel-preset-jest@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz#5dfc20b99abed5db994406c2b9ab94c73aaa419d" + integrity sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A== dependencies: - babel-plugin-jest-hoist "^28.1.1" + babel-plugin-jest-hoist "^28.1.3" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -2754,6 +2886,13 @@ base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +basic-auth@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== + dependencies: + safe-buffer "5.1.2" + bech32@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" @@ -2764,6 +2903,18 @@ before-after-hook@^2.2.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== +bigint-crypto-utils@^3.0.23: + version "3.1.6" + resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.1.6.tgz#3a52a660423416856342d0d9981935fa9856f177" + integrity sha512-k5ljSLHx94jQTW3+18KEfxLJR8/XFBHqhfhEGF48qT8p/jL6EdiG7oNOiiIRGMFh2wEP8kaCXZbVd+5dYkngUg== + dependencies: + bigint-mod-arith "^3.1.0" + +bigint-mod-arith@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/bigint-mod-arith/-/bigint-mod-arith-3.1.1.tgz#127c504faf30d27ba010ac7b7d58708a68e3c20b" + integrity sha512-SzFqdncZKXq5uh3oLFZXmzaZEMDsA7ml9l53xKaVGO6/+y26xNwAaTQEg2R+D+d07YduLbKi0dni3YPsR51UDQ== + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -2783,12 +2934,12 @@ blakejs@^1.1.0: resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== -bn.js@^4.0.0, bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9: +bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: +bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== @@ -2815,6 +2966,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -2822,11 +2980,21 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.0.1, brorand@^1.1.0: +brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== +browser-level@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011" + integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ== + dependencies: + abstract-level "^1.0.2" + catering "^2.1.1" + module-error "^1.0.2" + run-parallel-limit "^1.1.0" + browser-stdout@1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" @@ -2844,15 +3012,15 @@ browserify-aes@^1.2.0: inherits "^2.0.1" safe-buffer "^5.0.1" -browserslist@^4.20.2, browserslist@^4.21.0: - version "4.21.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.1.tgz#c9b9b0a54c7607e8dc3e01a0d311727188011a00" - integrity sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ== +browserslist@^4.21.3: + version "4.21.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" + integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== dependencies: - caniuse-lite "^1.0.30001359" - electron-to-chromium "^1.4.172" - node-releases "^2.0.5" - update-browserslist-db "^1.0.4" + caniuse-lite "^1.0.30001370" + electron-to-chromium "^1.4.202" + node-releases "^2.0.6" + update-browserslist-db "^1.0.5" bs-logger@0.x: version "0.2.6" @@ -2894,21 +3062,6 @@ buffer-xor@^1.0.3: resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== -buffer-xor@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-2.0.2.tgz#34f7c64f04c777a1f8aac5e661273bb9dd320289" - integrity sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ== - dependencies: - safe-buffer "^5.1.1" - -buffer@^5.5.0, buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - buffer@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" @@ -2917,7 +3070,7 @@ buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -builtin-modules@^3.0.0: +builtin-modules@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== @@ -2928,9 +3081,9 @@ bytes@3.1.2: integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== cacheable-lookup@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz#65c0e51721bb7f9f2cb513aed6da4a1b93ad7dc8" - integrity sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A== + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz#0330a543471c61faa4e9035db583aad753b36385" + integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww== cacheable-request@^7.0.2: version "7.0.2" @@ -2973,10 +3126,15 @@ camelcase@^7.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.0.tgz#fd112621b212126741f998d614cbc2a8623fd174" integrity sha512-JToIvOmz6nhGsUhAYScbo2d6Py5wojjNfoxoc2mEVLUdJ70gJK2gnd+ABY1Tc3sVMyK7QDPtN0T/XdlCQWITyQ== -caniuse-lite@^1.0.30001359: - version "1.0.30001361" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001361.tgz#ba2adb2527566fb96f3ac7c67698ae7fc495a28d" - integrity sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ== +caniuse-lite@^1.0.30001370: + version "1.0.30001400" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001400.tgz#3038bee70d8b875604cd8833cb0e5e254ee0281a" + integrity sha512-Mv659Hn65Z4LgZdJ7ge5JTVbE3rqbJaaXgW5LEI9/tOaXclfIZ8DW7D7FCWWWmWiiPS7AC48S8kf3DApSxQdgA== + +catering@^2.1.0, catering@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" + integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== chalk@5.0.1, chalk@^5.0.0, chalk@^5.0.1: version "5.0.1" @@ -2992,7 +3150,7 @@ chalk@^2.0.0, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -3031,9 +3189,9 @@ ci-info@^2.0.0: integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== ci-info@^3.2.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128" - integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg== + version "3.4.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.4.0.tgz#b28484fd436cbc267900364f096c9dc185efb251" + integrity sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" @@ -3048,6 +3206,17 @@ cjs-module-lexer@^1.0.0: resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== +classic-level@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.2.0.tgz#2d52bdec8e7a27f534e67fdeb890abef3e643c27" + integrity sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg== + dependencies: + abstract-level "^1.0.2" + catering "^2.1.0" + module-error "^1.0.1" + napi-macros "~2.0.0" + node-gyp-build "^4.3.0" + clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" @@ -3073,9 +3242,9 @@ cli-cursor@^4.0.0: restore-cursor "^4.0.0" cli-spinners@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" - integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== + version "2.7.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" + integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== cli-truncate@^2.1.0: version "2.1.0" @@ -3108,9 +3277,9 @@ cliui@^7.0.2: wrap-ansi "^7.0.0" clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q== + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== dependencies: mimic-response "^1.0.0" @@ -3215,14 +3384,6 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== -compress-brotli@^1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/compress-brotli/-/compress-brotli-1.3.8.tgz#0c0a60c97a989145314ec381e84e26682e7b38db" - integrity sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ== - dependencies: - "@types/json-buffer" "~3.0.0" - json-buffer "~3.0.1" - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -3259,24 +3420,23 @@ cookie@^0.4.1: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== -core-js-compat@^3.21.0, core-js-compat@^3.22.1: - version "3.23.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.23.3.tgz#7d8503185be76bb6d8d592c291a4457a8e440aa9" - integrity sha512-WSzUs2h2vvmKsacLHNTdpyOC9k43AEhcGoFlVgCY4L7aw98oSBKtPL6vD0/TqZjRWRQYdDSLkzZIni4Crbbiqw== +core-js-compat@^3.25.1: + version "3.25.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.1.tgz#6f13a90de52f89bbe6267e5620a412c7f7ff7e42" + integrity sha512-pOHS7O0i8Qt4zlPW/eIFjwp+NrTPx+wTL0ctgI2fHn31sZOq89rDsmtc/A2vAX7r6shl+bmVI+678He46jgBlw== dependencies: - browserslist "^4.21.0" - semver "7.0.0" - -core-js-pure@^3.0.1: - version "3.23.3" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.23.3.tgz#bcd02d3d8ec68ad871ef50d5ccbb248ddb54f401" - integrity sha512-XpoouuqIj4P+GWtdyV8ZO3/u4KftkeDVMfvp+308eGMhCrA3lVDSmAxO0c6GGOcmgVlaKDrgWVMo49h2ab/TDA== + browserslist "^4.21.3" core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== +corser@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" + integrity sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ== + cosmiconfig@7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" @@ -3337,30 +3497,30 @@ data-uri-to-buffer@3: resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: +data-uri-to-buffer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz#b5db46aea50f6176428ac05b73be39a57701a64b" + integrity sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA== + +debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: - ms "2.1.2" + ms "^2.1.1" decamelize@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== - decompress-response@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" @@ -3400,14 +3560,6 @@ defer-to-connect@^2.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== -deferred-leveldown@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz#27a997ad95408b61161aa69bd489b86c71b78058" - integrity sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw== - dependencies: - abstract-leveldown "~6.2.1" - inherits "^2.0.3" - define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" @@ -3492,15 +3644,23 @@ dot-prop@^6.0.1: dependencies: is-obj "^2.0.0" +dts-bundle-generator@^6.12.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/dts-bundle-generator/-/dts-bundle-generator-6.13.0.tgz#c24df75632917d70168a04b103ee94672e01c4c9" + integrity sha512-v4mXZ08dnKO4RKUW2x4DNrb1cJyvtmxAzreV/zF1CZIXMKfe8GrQg6JDmTcikrK05/LMkdMuUrDe8N6w+6krsw== + dependencies: + typescript ">=3.0.1" + yargs "^17.2.1" + eastasianwidth@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -electron-to-chromium@^1.4.172: - version "1.4.174" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.174.tgz#ffdf57f26dd4558c5aabdb4b190c47af1c4e443b" - integrity sha512-JER+w+9MV2MBVFOXxP036bLlNOnzbYAWrWU8sNUwoOO69T3w4564WhM5H5atd8VVS8U4vpi0i0kdoYzm1NPQgQ== +electron-to-chromium@^1.4.202: + version "1.4.251" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.251.tgz#8b62448f3c591f0d32488df09454dda72dec96d5" + integrity sha512-k4o4cFrWPv4SoJGGAydd07GmlRVzmeDIJ6MaEChTUjk4Dmomn189tCicSzil2oyvbPoGgg2suwPDNWq4gWRhoQ== elliptic@6.5.4, elliptic@^6.5.2, elliptic@^6.5.4: version "6.5.4" @@ -3538,16 +3698,6 @@ enc-utils@^3.0.0: is-typedarray "1.0.0" typedarray-to-buffer "3.1.5" -encoding-down@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-6.3.0.tgz#b1c4eb0e1728c146ecaef8e32963c549e76d082b" - integrity sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw== - dependencies: - abstract-leveldown "^6.2.1" - inherits "^2.0.3" - level-codec "^9.0.0" - level-errors "^2.0.0" - end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -3567,13 +3717,6 @@ env-paths@^2.2.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== -errno@~0.1.1: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" - error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -3582,15 +3725,15 @@ error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.5: - version "1.20.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" - integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== + version "1.20.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.2.tgz#8495a07bc56d342a3b8ea3ab01bd986700c2ccb3" + integrity sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" function.prototype.name "^1.1.5" - get-intrinsic "^1.1.1" + get-intrinsic "^1.1.2" get-symbol-description "^1.0.0" has "^1.0.3" has-property-descriptors "^1.0.0" @@ -3602,9 +3745,9 @@ es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.5: is-shared-array-buffer "^1.0.2" is-string "^1.0.7" is-weakref "^1.0.2" - object-inspect "^1.12.0" + object-inspect "^1.12.2" object-keys "^1.1.1" - object.assign "^4.1.2" + object.assign "^4.1.4" regexp.prototype.flags "^1.4.3" string.prototype.trimend "^1.0.5" string.prototype.trimstart "^1.0.5" @@ -3726,12 +3869,14 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.13.0: - version "8.18.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.18.0.tgz#78d565d16c993d0b73968c523c0446b13da784fd" - integrity sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA== - dependencies: - "@eslint/eslintrc" "^1.3.0" - "@humanwhocodes/config-array" "^0.9.2" + version "8.23.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.1.tgz#cfd7b3f7fdd07db8d16b4ac0516a29c8d8dca5dc" + integrity sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg== + dependencies: + "@eslint/eslintrc" "^1.3.2" + "@humanwhocodes/config-array" "^0.10.4" + "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" + "@humanwhocodes/module-importer" "^1.0.1" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -3741,18 +3886,21 @@ eslint@^8.13.0: eslint-scope "^7.1.1" eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" - espree "^9.3.2" + espree "^9.4.0" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" + find-up "^5.0.0" glob-parent "^6.0.1" globals "^13.15.0" + globby "^11.1.0" + grapheme-splitter "^1.0.4" ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" + js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" @@ -3764,14 +3912,13 @@ eslint@^8.13.0: strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" - v8-compile-cache "^2.0.3" -espree@^9.3.2: - version "9.3.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596" - integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== +espree@^9.4.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" + integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== dependencies: - acorn "^8.7.1" + acorn "^8.8.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.3.0" @@ -3819,7 +3966,7 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -ethereum-cryptography@^0.1.2, ethereum-cryptography@^0.1.3: +ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== @@ -3840,6 +3987,16 @@ ethereum-cryptography@^0.1.2, ethereum-cryptography@^0.1.3: secp256k1 "^4.0.1" setimmediate "^1.0.5" +ethereum-cryptography@^1.0.3: + version "1.1.2" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz#74f2ac0f0f5fe79f012c889b3b8446a9a6264e6d" + integrity sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ== + dependencies: + "@noble/hashes" "1.1.2" + "@noble/secp256k1" "1.6.3" + "@scure/bip32" "1.1.0" + "@scure/bip39" "1.1.0" + ethereumjs-abi@^0.6.8: version "0.6.8" resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae" @@ -3861,66 +4018,41 @@ ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: ethjs-util "0.1.6" rlp "^2.2.3" -ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: - version "7.1.5" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" - 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" - -ethereumjs-wallet@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz#2c000504b4c71e8f3782dabe1113d192522e99b6" - integrity sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA== - dependencies: - aes-js "^3.1.2" - bs58check "^2.1.2" - ethereum-cryptography "^0.1.3" - ethereumjs-util "^7.1.2" - randombytes "^2.1.0" - scrypt-js "^3.0.1" - utf8 "^3.0.0" - uuid "^8.3.2" - ethers@^5.6.9: - version "5.6.9" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.6.9.tgz#4e12f8dfcb67b88ae7a78a9519b384c23c576a4d" - integrity sha512-lMGC2zv9HC5EC+8r429WaWu3uWJUCgUCt8xxKCFqkrFuBDZXDYIdzDUECxzjf2BMF8IVBByY1EBoGSL3RTm8RA== - dependencies: - "@ethersproject/abi" "5.6.4" - "@ethersproject/abstract-provider" "5.6.1" - "@ethersproject/abstract-signer" "5.6.2" - "@ethersproject/address" "5.6.1" - "@ethersproject/base64" "5.6.1" - "@ethersproject/basex" "5.6.1" - "@ethersproject/bignumber" "5.6.2" - "@ethersproject/bytes" "5.6.1" - "@ethersproject/constants" "5.6.1" - "@ethersproject/contracts" "5.6.2" - "@ethersproject/hash" "5.6.1" - "@ethersproject/hdnode" "5.6.2" - "@ethersproject/json-wallets" "5.6.1" - "@ethersproject/keccak256" "5.6.1" - "@ethersproject/logger" "5.6.0" - "@ethersproject/networks" "5.6.4" - "@ethersproject/pbkdf2" "5.6.1" - "@ethersproject/properties" "5.6.0" - "@ethersproject/providers" "5.6.8" - "@ethersproject/random" "5.6.1" - "@ethersproject/rlp" "5.6.1" - "@ethersproject/sha2" "5.6.1" - "@ethersproject/signing-key" "5.6.2" - "@ethersproject/solidity" "5.6.1" - "@ethersproject/strings" "5.6.1" - "@ethersproject/transactions" "5.6.2" - "@ethersproject/units" "5.6.1" - "@ethersproject/wallet" "5.6.2" - "@ethersproject/web" "5.6.1" - "@ethersproject/wordlists" "5.6.1" + version "5.7.1" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.1.tgz#48c83a44900b5f006eb2f65d3ba6277047fd4f33" + integrity sha512-5krze4dRLITX7FpU8J4WscXqADiKmyeNlylmmDLbS95DaZpBhDe2YSwRQwKXWNyXcox7a3gBgm/MkGXV1O1S/Q== + 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.1" + "@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" ethjs-util@0.1.6, ethjs-util@^0.1.6: version "0.1.6" @@ -3935,6 +4067,11 @@ event-target-shim@^5.0.0: resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" @@ -3978,16 +4115,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.1.tgz#ca6fff65f6517cf7220c2e805a49c19aea30b420" - integrity sha512-/AANEwGL0tWBwzLNOvO0yUdy2D52jVdNXppOqswC49sxMN2cPWsGCQdzuIf9tj6hHoBQzNvx75JUYuQAckPo3w== +expect@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec" + integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== dependencies: - "@jest/expect-utils" "^28.1.1" + "@jest/expect-utils" "^28.1.3" jest-get-type "^28.0.2" - jest-matcher-utils "^28.1.1" - jest-message-util "^28.1.1" - jest-util "^28.1.1" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" external-editor@^3.0.3: version "3.1.0" @@ -4009,9 +4146,9 @@ fast-diff@^1.1.2: integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== fast-glob@^3.2.11, fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -4043,6 +4180,14 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + figures@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/figures/-/figures-4.0.1.tgz#27b26609907bc888b3e3b0ef5403643f80aa2518" @@ -4070,11 +4215,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== - find-replace@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" @@ -4119,19 +4259,19 @@ flat@^5.0.2: integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== flatted@^3.1.0: - version "3.2.6" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.6.tgz#022e9218c637f9f3fc9c35ab9c9193f05add60b2" - integrity sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ== + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -follow-redirects@^1.12.1, follow-redirects@^1.14.8: - version "1.15.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" - integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== +follow-redirects@^1.0.0, follow-redirects@^1.12.1, follow-redirects@^1.14.8: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== -form-data-encoder@1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.1.tgz#ac80660e4f87ee0d3d3c3638b7da8278ddb8ec96" - integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== +form-data-encoder@^2.0.1, form-data-encoder@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.2.tgz#5996b7c236e8c418d08316055a2235226c5e4061" + integrity sha512-FCaIOVTRA9E0siY6FeXid7D5yrCqpsErplUkE2a1BEiKj1BE9z6FbKB4ntDTwC4NVLie9p+4E9nX4mWwEOT05A== form-data@4.0.0: version "4.0.0" @@ -4142,6 +4282,13 @@ form-data@4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + fp-ts@1.19.3: version "1.19.3" resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.3.tgz#261a60d1088fbff01f91256f91d21d0caaaaa96f" @@ -4229,7 +4376,7 @@ function.prototype.name@^1.1.5: es-abstract "^1.19.0" functions-have-names "^1.2.2" -functional-red-black-tree@^1.0.1, functional-red-black-tree@~1.0.1: +functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== @@ -4249,10 +4396,10 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" - integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== dependencies: function-bind "^1.1.1" has "^1.0.3" @@ -4295,20 +4442,20 @@ get-uri@3: fs-extra "^8.1.0" ftp "^0.3.10" -git-up@^4.0.0: - version "4.0.5" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.5.tgz#e7bb70981a37ea2fb8fe049669800a1f9a01d759" - integrity sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA== +git-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" + integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== dependencies: - is-ssh "^1.3.0" - parse-url "^6.0.0" + is-ssh "^1.4.0" + parse-url "^8.1.0" -git-url-parse@11.6.0: - version "11.6.0" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.6.0.tgz#c634b8de7faa66498a2b88932df31702c67df605" - integrity sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g== +git-url-parse@13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.0.0.tgz#9a18d0eaec579fb6379c368aecb09f00b544669c" + integrity sha512-X1kozCqKL82dMrCLi4vie9SHDC+QugKskAMs4VUbIkhURKg5yDwxDmf6Ixg73J+/xVgK5TXKhzn8a94nHJHpnA== dependencies: - git-up "^4.0.0" + git-up "^7.0.0" glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" @@ -4348,7 +4495,7 @@ glob@7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -4373,9 +4520,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.15.0: - version "13.15.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" - integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== + version "13.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" + integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== dependencies: type-fest "^0.20.2" @@ -4402,49 +4549,72 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -got@12.1.0, got@^12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/got/-/got-12.1.0.tgz#099f3815305c682be4fd6b0ee0726d8e4c6b0af4" - integrity sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig== +got@12.3.1: + version "12.3.1" + resolved "https://registry.yarnpkg.com/got/-/got-12.3.1.tgz#79d6ebc0cb8358c424165698ddb828be56e74684" + integrity sha512-tS6+JMhBh4iXMSXF6KkIsRxmloPln31QHDlcb6Ec3bzxjjFJFr/8aXdpyuLmVc9I4i2HyBHYw1QU5K1ruUdpkw== dependencies: - "@sindresorhus/is" "^4.6.0" + "@sindresorhus/is" "^5.2.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" + form-data-encoder "^2.0.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" +got@^12.1.0: + version "12.4.1" + resolved "https://registry.yarnpkg.com/got/-/got-12.4.1.tgz#8598311b42591dfd2ed3ca4cdb9a591e2769a0bd" + integrity sha512-Sz1ojLt4zGNkcftIyJKnulZT/yEDvifhUjccHA8QzOuTgPs/+njXYNMFE3jR4/2OODQSSbH8SdnoLCkbh41ieA== + dependencies: + "@sindresorhus/is" "^5.2.0" + "@szmarczak/http-timer" "^5.0.1" + "@types/cacheable-request" "^6.0.2" + cacheable-lookup "^6.0.4" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + form-data-encoder "^2.1.0" + get-stream "^6.0.1" + http2-wrapper "^2.1.10" + lowercase-keys "^3.0.0" + p-cancelable "^3.0.0" + responselike "^3.0.0" + graceful-fs@4.2.10, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== hardhat@^2.9.9: - version "2.9.9" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.9.9.tgz#05c1015eb73e0230309534b00deeb080724aace0" - integrity sha512-Qv7SXnRc0zq1kGXruNnSKpP3eFccXMR5Qv6GVX9hBIJ5efN0PflKPq92aQ5Cv3jrjJeRevLznWZVz7bttXhVfw== - dependencies: - "@ethereumjs/block" "^3.6.2" - "@ethereumjs/blockchain" "^5.5.2" - "@ethereumjs/common" "^2.6.4" - "@ethereumjs/tx" "^3.5.1" - "@ethereumjs/vm" "^5.9.0" + version "2.11.2" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.11.2.tgz#c81388630255823bb1717ec07c4ee651b1fbe97f" + integrity sha512-BdsXC1CFJQDJKmAgCwpmGhFuVU6dcqlgMgT0Kg/xmFAFVugkpYu6NRmh4AaJ3Fah0/BR9DOR4XgQGIbg4eon/Q== + dependencies: "@ethersproject/abi" "^5.1.2" "@metamask/eth-sig-util" "^4.0.0" + "@nomicfoundation/ethereumjs-block" "^4.0.0" + "@nomicfoundation/ethereumjs-blockchain" "^6.0.0" + "@nomicfoundation/ethereumjs-common" "^3.0.0" + "@nomicfoundation/ethereumjs-evm" "^1.0.0" + "@nomicfoundation/ethereumjs-rlp" "^4.0.0" + "@nomicfoundation/ethereumjs-statemanager" "^1.0.0" + "@nomicfoundation/ethereumjs-trie" "^5.0.0" + "@nomicfoundation/ethereumjs-tx" "^4.0.0" + "@nomicfoundation/ethereumjs-util" "^8.0.0" + "@nomicfoundation/ethereumjs-vm" "^6.0.0" + "@nomicfoundation/solidity-analyzer" "^0.0.3" "@sentry/node" "^5.18.1" - "@solidity-parser/parser" "^0.14.1" "@types/bn.js" "^5.1.0" "@types/lru-cache" "^5.1.0" abort-controller "^3.0.0" @@ -4457,29 +4627,26 @@ hardhat@^2.9.9: debug "^4.1.1" enquirer "^2.3.0" env-paths "^2.2.0" - ethereum-cryptography "^0.1.2" + ethereum-cryptography "^1.0.3" ethereumjs-abi "^0.6.8" - ethereumjs-util "^7.1.4" find-up "^2.1.0" fp-ts "1.19.3" fs-extra "^7.0.1" glob "7.2.0" immutable "^4.0.0-rc.12" io-ts "1.10.4" + keccak "^3.0.2" lodash "^4.17.11" - merkle-patricia-tree "^4.2.4" mnemonist "^0.38.0" - mocha "^9.2.0" + mocha "^10.0.0" p-map "^4.0.0" qs "^6.7.0" raw-body "^2.4.1" resolve "1.17.0" semver "^6.3.0" - slash "^3.0.0" solc "0.7.3" source-map-support "^0.5.13" stacktrace-parser "^0.1.10" - "true-case-path" "^2.2.1" tsort "0.0.1" undici "^5.4.0" uuid "^8.3.2" @@ -4548,7 +4715,7 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" -he@1.2.0: +he@1.2.0, he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== @@ -4562,6 +4729,13 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +html-encoding-sniffer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" + integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== + dependencies: + whatwg-encoding "^2.0.0" + html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" @@ -4592,6 +4766,34 @@ http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: agent-base "6" debug "4" +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-server@^14.1.1: + version "14.1.1" + resolved "https://registry.yarnpkg.com/http-server/-/http-server-14.1.1.tgz#d60fbb37d7c2fdff0f0fbff0d0ee6670bd285e2e" + integrity sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A== + dependencies: + basic-auth "^2.0.1" + chalk "^4.1.2" + corser "^2.0.1" + he "^1.2.0" + html-encoding-sniffer "^3.0.0" + http-proxy "^1.18.1" + mime "^1.6.0" + minimist "^1.2.6" + opener "^1.5.1" + portfinder "^1.0.28" + secure-compare "3.0.1" + union "~0.5.0" + url-join "^4.0.1" + http2-wrapper@^2.1.10: version "2.1.11" resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.1.11.tgz#d7c980c7ffb85be3859b6a96c800b2951ae257ef" @@ -4630,7 +4832,14 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -ieee754@^1.1.13, ieee754@^1.2.1: +iconv-lite@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -4640,16 +4849,6 @@ ignore@^5.2.0: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== -immediate@^3.2.3: - version "3.3.0" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" - integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== - -immediate@~3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" - integrity sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg== - immutable@^4.0.0-rc.12: version "4.1.0" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef" @@ -4709,10 +4908,10 @@ ini@^1.3.4, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -inquirer@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.0.0.tgz#8b0cc9f202bfa3edfc7fc93f389f9e57ecc45eed" - integrity sha512-eYTDdTYr/YPwRenOzLZTvaJUDXDW8GQgxvzBppuXLj/kauTRLfV8bCPVbGh2staP7edrqL+rGwjaOa+JVxBWsg== +inquirer@9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.1.0.tgz#446a09abe2e5a18973322bee89b42a6c304f2cd3" + integrity sha512-eukdjrBljg9t55ZnvJjvGi1OyYEzVBFsO/8o5d2MV3mc28u3x4X2kS4eJ/+9U10KiREfPkEBSeCrU/S2G/uRtw== dependencies: ansi-escapes "^5.0.0" chalk "^5.0.1" @@ -4722,9 +4921,9 @@ inquirer@9.0.0: figures "^4.0.1" lodash "^4.17.21" mute-stream "0.0.8" - ora "^6.1.0" + ora "^6.1.2" run-async "^2.4.0" - rxjs "^7.5.5" + rxjs "^7.5.6" string-width "^5.1.2" strip-ansi "^7.0.1" through "^2.3.6" @@ -4756,6 +4955,11 @@ ip@^1.1.5: resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + is-arguments@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" @@ -4791,17 +4995,22 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-buffer@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + is-builtin-module@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.1.0.tgz#6fdb24313b1c03b75f8b9711c0feb8c30b903b00" - integrity sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.0.tgz#bb0310dfe881f144ca83f30100ceb10cf58835e0" + integrity sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw== dependencies: - builtin-modules "^3.0.0" + builtin-modules "^3.3.0" is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + version "1.2.5" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.5.tgz#6123e0b1fef5d7591514b371bb018204892f1a2b" + integrity sha512-ZIWRujF6MvYGkEuHMYtFRkL2wAtFw89EHfKlXrkPkjQZZRWeh9L1q3SV13NIfHnqxugjLvAOkEHx9mb1zcMnEw== is-ci@3.0.1, is-ci@^3.0.1: version "3.0.1" @@ -4811,9 +5020,9 @@ is-ci@3.0.1, is-ci@^3.0.1: ci-info "^3.2.0" is-core-module@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== dependencies: has "^1.0.3" @@ -4953,7 +5162,7 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" -is-ssh@^1.3.0: +is-ssh@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== @@ -4995,9 +5204,9 @@ is-unicode-supported@^0.1.0: integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== is-unicode-supported@^1.1.0, is-unicode-supported@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.2.0.tgz#f4f54f34d8ebc84a46b93559a036763b6d3e1014" - integrity sha512-wH+U77omcRzevfIG8dDhTS0V9zZyweakfD01FULl97+0EHiJTTZtJqxPSkIIo/SDPv/i07k/C9jAPY+jwLLeUQ== + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" + integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== is-weakref@^1.0.2: version "1.0.2" @@ -5068,9 +5277,9 @@ istanbul-lib-source-maps@^4.0.0: source-map "^0.6.1" istanbul-reports@^3.1.3: - version "3.1.4" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" - integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== + version "3.1.5" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -5088,82 +5297,82 @@ iterate-value@^1.0.2: es-get-iterator "^1.0.2" iterate-iterator "^1.0.1" -jest-changed-files@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.0.2.tgz#7d7810660a5bd043af9e9cfbe4d58adb05e91531" - integrity sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA== +jest-changed-files@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.1.3.tgz#d9aeee6792be3686c47cb988a8eaf82ff4238831" + integrity sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA== dependencies: execa "^5.0.0" - throat "^6.0.1" + p-limit "^3.1.0" -jest-circus@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.2.tgz#0d5a5623eccb244efe87d1edc365696e4fcf80ce" - integrity sha512-E2vdPIJG5/69EMpslFhaA46WkcrN74LI5V/cSJ59L7uS8UNoXbzTxmwhpi9XrIL3zqvMt5T0pl5k2l2u2GwBNQ== +jest-circus@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.3.tgz#d14bd11cf8ee1a03d69902dc47b6bd4634ee00e4" + integrity sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow== dependencies: - "@jest/environment" "^28.1.2" - "@jest/expect" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/types" "^28.1.1" + "@jest/environment" "^28.1.3" + "@jest/expect" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^28.1.1" - jest-matcher-utils "^28.1.1" - jest-message-util "^28.1.1" - jest-runtime "^28.1.2" - jest-snapshot "^28.1.2" - jest-util "^28.1.1" - pretty-format "^28.1.1" + jest-each "^28.1.3" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-runtime "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" + p-limit "^3.1.0" + pretty-format "^28.1.3" slash "^3.0.0" stack-utils "^2.0.3" - throat "^6.0.1" -jest-cli@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.2.tgz#b89012e5bad14135e71b1628b85475d3773a1bbc" - integrity sha512-l6eoi5Do/IJUXAFL9qRmDiFpBeEJAnjJb1dcd9i/VWfVWbp3mJhuH50dNtX67Ali4Ecvt4eBkWb4hXhPHkAZTw== +jest-cli@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.3.tgz#558b33c577d06de55087b8448d373b9f654e46b2" + integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== dependencies: - "@jest/core" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/types" "^28.1.1" + "@jest/core" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^28.1.2" - jest-util "^28.1.1" - jest-validate "^28.1.1" + jest-config "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.2.tgz#ba00ad30caf62286c86e7c1099e915218a0ac8c6" - integrity sha512-g6EfeRqddVbjPVBVY4JWpUY4IvQoFRIZcv4V36QkqzE0IGhEC/VkugFeBMAeUE7PRgC8KJF0yvJNDeQRbamEVA== +jest-config@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.3.tgz#e315e1f73df3cac31447eed8b8740a477392ec60" + integrity sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^28.1.1" - "@jest/types" "^28.1.1" - babel-jest "^28.1.2" + "@jest/test-sequencer" "^28.1.3" + "@jest/types" "^28.1.3" + babel-jest "^28.1.3" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^28.1.2" - jest-environment-node "^28.1.2" + jest-circus "^28.1.3" + jest-environment-node "^28.1.3" jest-get-type "^28.0.2" jest-regex-util "^28.0.2" - jest-resolve "^28.1.1" - jest-runner "^28.1.2" - jest-util "^28.1.1" - jest-validate "^28.1.1" + jest-resolve "^28.1.3" + jest-runner "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^28.1.1" + pretty-format "^28.1.3" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -5177,15 +5386,15 @@ jest-diff@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-diff@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.1.tgz#1a3eedfd81ae79810931c63a1d0f201b9120106c" - integrity sha512-/MUUxeR2fHbqHoMMiffe/Afm+U8U4olFRJ0hiVG2lZatPJcnGxx292ustVu7bULhjV65IYMxRdploAKLbcrsyg== +jest-diff@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" + integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== dependencies: chalk "^4.0.0" diff-sequences "^28.1.1" jest-get-type "^28.0.2" - pretty-format "^28.1.1" + pretty-format "^28.1.3" jest-docblock@^28.1.1: version "28.1.1" @@ -5194,28 +5403,28 @@ jest-docblock@^28.1.1: dependencies: detect-newline "^3.0.0" -jest-each@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.1.tgz#ba5238dacf4f31d9fe23ddc2c44c01e7c23885c4" - integrity sha512-A042rqh17ZvEhRceDMi784ppoXR7MWGDEKTXEZXb4svt0eShMZvijGxzKsx+yIjeE8QYmHPrnHiTSQVhN4nqaw== +jest-each@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.3.tgz#bdd1516edbe2b1f3569cfdad9acd543040028f81" + integrity sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" chalk "^4.0.0" jest-get-type "^28.0.2" - jest-util "^28.1.1" - pretty-format "^28.1.1" + jest-util "^28.1.3" + pretty-format "^28.1.3" -jest-environment-node@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.2.tgz#3e2eb47f6d173b0648d5f7c717cb1c26651d5c8a" - integrity sha512-oYsZz9Qw27XKmOgTtnl0jW7VplJkN2oeof+SwAwKFQacq3CLlG9u4kTGuuLWfvu3J7bVutWlrbEQMOCL/jughw== +jest-environment-node@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.3.tgz#7e74fe40eb645b9d56c0c4b70ca4357faa349be5" + integrity sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A== dependencies: - "@jest/environment" "^28.1.2" - "@jest/fake-timers" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/environment" "^28.1.3" + "@jest/fake-timers" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" - jest-mock "^28.1.1" - jest-util "^28.1.1" + jest-mock "^28.1.3" + jest-util "^28.1.3" jest-get-type@^27.5.1: version "27.5.1" @@ -5247,32 +5456,32 @@ jest-haste-map@^27.5.1: optionalDependencies: fsevents "^2.3.2" -jest-haste-map@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.1.tgz#471685f1acd365a9394745bb97c8fc16289adca3" - integrity sha512-ZrRSE2o3Ezh7sb1KmeLEZRZ4mgufbrMwolcFHNRSjKZhpLa8TdooXOOFlSwoUzlbVs1t0l7upVRW2K7RWGHzbQ== +jest-haste-map@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.3.tgz#abd5451129a38d9841049644f34b034308944e2b" + integrity sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^28.0.2" - jest-util "^28.1.1" - jest-worker "^28.1.1" + jest-util "^28.1.3" + jest-worker "^28.1.3" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.1.tgz#537f37afd610a4b3f4cab15e06baf60484548efb" - integrity sha512-4jvs8V8kLbAaotE+wFR7vfUGf603cwYtFf1/PYEsyX2BAjSzj8hQSVTP6OWzseTl0xL6dyHuKs2JAks7Pfubmw== +jest-leak-detector@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz#a6685d9b074be99e3adee816ce84fd30795e654d" + integrity sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA== dependencies: jest-get-type "^28.0.2" - pretty-format "^28.1.1" + pretty-format "^28.1.3" jest-matcher-utils@^27.0.0: version "27.5.1" @@ -5284,37 +5493,37 @@ jest-matcher-utils@^27.0.0: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-matcher-utils@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.1.tgz#a7c4653c2b782ec96796eb3088060720f1e29304" - integrity sha512-NPJPRWrbmR2nAJ+1nmnfcKKzSwgfaciCCrYZzVnNoxVoyusYWIjkBMNvu0RHJe7dNj4hH3uZOPZsQA+xAYWqsw== +jest-matcher-utils@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e" + integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== dependencies: chalk "^4.0.0" - jest-diff "^28.1.1" + jest-diff "^28.1.3" jest-get-type "^28.0.2" - pretty-format "^28.1.1" + pretty-format "^28.1.3" -jest-message-util@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.1.tgz#60aa0b475cfc08c8a9363ed2fb9108514dd9ab89" - integrity sha512-xoDOOT66fLfmTRiqkoLIU7v42mal/SqwDKvfmfiWAdJMSJiU+ozgluO7KbvoAgiwIrrGZsV7viETjc8GNrA/IQ== +jest-message-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" + integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^28.1.1" + pretty-format "^28.1.3" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.1.tgz#37903d269427fa1ef5b2447be874e1c62a39a371" - integrity sha512-bDCb0FjfsmKweAvE09dZT59IMkzgN0fYBH6t5S45NoJfd2DHkS3ySG2K+hucortryhO3fVuXdlxWcbtIuV/Skw== +jest-mock@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.3.tgz#d4e9b1fc838bea595c77ab73672ebf513ab249da" + integrity sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -5332,81 +5541,81 @@ jest-regex-util@^28.0.2: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== -jest-resolve-dependencies@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.2.tgz#ca528858e0c6642d5a1dda8fc7cda10230c275bc" - integrity sha512-OXw4vbOZuyRTBi3tapWBqdyodU+T33ww5cPZORuTWkg+Y8lmsxQlVu3MWtJh6NMlKRTHQetF96yGPv01Ye7Mbg== +jest-resolve-dependencies@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz#8c65d7583460df7275c6ea2791901fa975c1fe66" + integrity sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA== dependencies: jest-regex-util "^28.0.2" - jest-snapshot "^28.1.2" + jest-snapshot "^28.1.3" -jest-resolve@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.1.tgz#bc2eaf384abdcc1aaf3ba7c50d1adf01e59095e5" - integrity sha512-/d1UbyUkf9nvsgdBildLe6LAD4DalgkgZcKd0nZ8XUGPyA/7fsnaQIlKVnDiuUXv/IeZhPEDrRJubVSulxrShA== +jest-resolve@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.3.tgz#cfb36100341ddbb061ec781426b3c31eb51aa0a8" + integrity sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" + jest-haste-map "^28.1.3" jest-pnp-resolver "^1.2.2" - jest-util "^28.1.1" - jest-validate "^28.1.1" + jest-util "^28.1.3" + jest-validate "^28.1.3" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.2.tgz#f293409592a62234285a71237e38499a3554e350" - integrity sha512-6/k3DlAsAEr5VcptCMdhtRhOoYClZQmxnVMZvZ/quvPGRpN7OBQYPIC32tWSgOnbgqLXNs5RAniC+nkdFZpD4A== - dependencies: - "@jest/console" "^28.1.1" - "@jest/environment" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" +jest-runner@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.3.tgz#5eee25febd730b4713a2cdfd76bdd5557840f9a1" + integrity sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA== + dependencies: + "@jest/console" "^28.1.3" + "@jest/environment" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" jest-docblock "^28.1.1" - jest-environment-node "^28.1.2" - jest-haste-map "^28.1.1" - jest-leak-detector "^28.1.1" - jest-message-util "^28.1.1" - jest-resolve "^28.1.1" - jest-runtime "^28.1.2" - jest-util "^28.1.1" - jest-watcher "^28.1.1" - jest-worker "^28.1.1" + jest-environment-node "^28.1.3" + jest-haste-map "^28.1.3" + jest-leak-detector "^28.1.3" + jest-message-util "^28.1.3" + jest-resolve "^28.1.3" + jest-runtime "^28.1.3" + jest-util "^28.1.3" + jest-watcher "^28.1.3" + jest-worker "^28.1.3" + p-limit "^3.1.0" source-map-support "0.5.13" - throat "^6.0.1" -jest-runtime@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.2.tgz#d68f34f814a848555a345ceda23289f14d59a688" - integrity sha512-i4w93OsWzLOeMXSi9epmakb2+3z0AchZtUQVF1hesBmcQQy4vtaql5YdVe9KexdJaVRyPDw8DoBR0j3lYsZVYw== +jest-runtime@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.3.tgz#a57643458235aa53e8ec7821949e728960d0605f" + integrity sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw== dependencies: - "@jest/environment" "^28.1.2" - "@jest/fake-timers" "^28.1.2" - "@jest/globals" "^28.1.2" + "@jest/environment" "^28.1.3" + "@jest/fake-timers" "^28.1.3" + "@jest/globals" "^28.1.3" "@jest/source-map" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" execa "^5.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" - jest-message-util "^28.1.1" - jest-mock "^28.1.1" + jest-haste-map "^28.1.3" + jest-message-util "^28.1.3" + jest-mock "^28.1.3" jest-regex-util "^28.0.2" - jest-resolve "^28.1.1" - jest-snapshot "^28.1.2" - jest-util "^28.1.1" + jest-resolve "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" slash "^3.0.0" strip-bom "^4.0.0" @@ -5418,33 +5627,33 @@ jest-serializer@^27.5.1: "@types/node" "*" graceful-fs "^4.2.9" -jest-snapshot@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.2.tgz#93d31b87b11b384f5946fe0767541496135f8d52" - integrity sha512-wzrieFttZYfLvrCVRJxX+jwML2YTArOUqFpCoSVy1QUapx+LlV9uLbV/mMEhYj4t7aMeE9aSQFHSvV/oNoDAMA== +jest-snapshot@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.3.tgz#17467b3ab8ddb81e2f605db05583d69388fc0668" + integrity sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/expect-utils" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^28.1.1" + expect "^28.1.3" graceful-fs "^4.2.9" - jest-diff "^28.1.1" + jest-diff "^28.1.3" jest-get-type "^28.0.2" - jest-haste-map "^28.1.1" - jest-matcher-utils "^28.1.1" - jest-message-util "^28.1.1" - jest-util "^28.1.1" + jest-haste-map "^28.1.3" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" natural-compare "^1.4.0" - pretty-format "^28.1.1" + pretty-format "^28.1.3" semver "^7.3.5" jest-util@^27.5.1: @@ -5459,42 +5668,42 @@ jest-util@^27.5.1: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-util@^28.0.0, jest-util@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.1.tgz#ff39e436a1aca397c0ab998db5a51ae2b7080d05" - integrity sha512-FktOu7ca1DZSyhPAxgxB6hfh2+9zMoJ7aEQA759Z6p45NuO8mWcqujH+UdHlCm/V6JTWwDztM2ITCzU1ijJAfw== +jest-util@^28.0.0, jest-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" + integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.1.tgz#59b7b339b3c85b5144bd0c06ad3600f503a4acc8" - integrity sha512-Kpf6gcClqFCIZ4ti5++XemYJWUPCFUW+N2gknn+KgnDf549iLul3cBuKVe1YcWRlaF8tZV8eJCap0eECOEE3Ug== +jest-validate@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.3.tgz#e322267fd5e7c64cea4629612c357bbda96229df" + integrity sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^28.0.2" leven "^3.1.0" - pretty-format "^28.1.1" + pretty-format "^28.1.3" -jest-watcher@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.1.tgz#533597fb3bfefd52b5cd115cd916cffd237fb60c" - integrity sha512-RQIpeZ8EIJMxbQrXpJQYIIlubBnB9imEHsxxE41f54ZwcqWLysL/A0ZcdMirf+XsMn3xfphVQVV4EW0/p7i7Ug== +jest-watcher@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" + integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== dependencies: - "@jest/test-result" "^28.1.1" - "@jest/types" "^28.1.1" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^28.1.1" + jest-util "^28.1.3" string-length "^4.0.1" jest-worker@^26.2.1: @@ -5515,24 +5724,29 @@ jest-worker@^27.5.1: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.1.tgz#3480c73247171dfd01eda77200f0063ab6a3bf28" - integrity sha512-Au7slXB08C6h+xbJPp7VIb6U0XX5Kc9uel/WFc6/rcTzGiaVCBRngBExSYuXSLFPULPSYU3cJ3ybS988lNFQhQ== +jest-worker@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" + integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^28.1.1: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.2.tgz#451ff24081ce31ca00b07b60c61add13aa96f8eb" - integrity sha512-Tuf05DwLeCh2cfWCQbcz9UxldoDyiR1E9Igaei5khjonKncYdc6LDfynKCEWozK0oLE3GD+xKAo2u8x/0s6GOg== + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.3.tgz#e9c6a7eecdebe3548ca2b18894a50f45b36dfc6b" + integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA== dependencies: - "@jest/core" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/core" "^28.1.3" + "@jest/types" "^28.1.3" import-local "^3.0.2" - jest-cli "^28.1.2" + jest-cli "^28.1.3" + +js-sdsl@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.4.tgz#78793c90f80e8430b7d8dc94515b6c77d98a26a6" + integrity sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw== js-sha3@0.8.0, js-sha3@^0.8.0: version "0.8.0" @@ -5569,7 +5783,7 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== -json-buffer@3.0.1, json-buffer@~3.0.1: +json-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== @@ -5594,6 +5808,11 @@ json5@^2.2.1: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== +jsonc-parser@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== + jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" @@ -5617,7 +5836,7 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -keccak@^3.0.0: +keccak@^3.0.0, keccak@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== @@ -5627,11 +5846,10 @@ keccak@^3.0.0: readable-stream "^3.6.0" keyv@^4.0.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.3.2.tgz#e839df676a0c7ee594c8835e7c1c83742558e5c2" - integrity sha512-kn8WmodVBe12lmHpA6W8OY7SNh6wVR+Z+wZESF4iF5FCazaVXGWOtnbnvX0tMQ1bO+/TmOD9LziuYMvrIIs0xw== + version "4.5.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.0.tgz#dbce9ade79610b6e641a9a65f2f6499ba06b9bc6" + integrity sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA== dependencies: - compress-brotli "^1.3.8" json-buffer "3.0.1" klaw@^1.0.0: @@ -5653,76 +5871,26 @@ latest-version@^7.0.0: dependencies: package-json "^8.1.0" -level-codec@^9.0.0: - version "9.0.2" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.2.tgz#fd60df8c64786a80d44e63423096ffead63d8cbc" - integrity sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ== - dependencies: - buffer "^5.6.0" - -level-concat-iterator@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz#1d1009cf108340252cb38c51f9727311193e6263" - integrity sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw== - -level-errors@^2.0.0, level-errors@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-2.0.1.tgz#2132a677bf4e679ce029f517c2f17432800c05c8" - integrity sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw== - dependencies: - errno "~0.1.1" - -level-iterator-stream@~4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz#7ceba69b713b0d7e22fcc0d1f128ccdc8a24f79c" - integrity sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q== - dependencies: - inherits "^2.0.4" - readable-stream "^3.4.0" - xtend "^4.0.2" - -level-mem@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/level-mem/-/level-mem-5.0.1.tgz#c345126b74f5b8aa376dc77d36813a177ef8251d" - integrity sha512-qd+qUJHXsGSFoHTziptAKXoLX87QjR7v2KMbqncDXPxQuCdsQlzmyX+gwrEHhlzn08vkf8TyipYyMmiC6Gobzg== - dependencies: - level-packager "^5.0.3" - memdown "^5.0.0" - -level-packager@^5.0.3: - version "5.1.1" - resolved "https://registry.yarnpkg.com/level-packager/-/level-packager-5.1.1.tgz#323ec842d6babe7336f70299c14df2e329c18939" - integrity sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ== - dependencies: - encoding-down "^6.3.0" - levelup "^4.3.2" +level-supports@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" + integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA== -level-supports@~1.0.0: +level-transcoder@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-1.0.1.tgz#2f530a596834c7301622521988e2c36bb77d122d" - integrity sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg== - dependencies: - xtend "^4.0.2" - -level-ws@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-2.0.0.tgz#207a07bcd0164a0ec5d62c304b4615c54436d339" - integrity sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA== + resolved "https://registry.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c" + integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w== dependencies: - inherits "^2.0.3" - readable-stream "^3.1.0" - xtend "^4.0.1" + buffer "^6.0.3" + module-error "^1.0.1" -levelup@^4.3.2: - version "4.4.0" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-4.4.0.tgz#f89da3a228c38deb49c48f88a70fb71f01cafed6" - integrity sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ== +level@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/level/-/level-8.0.0.tgz#41b4c515dabe28212a3e881b61c161ffead14394" + integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== dependencies: - deferred-leveldown "~5.3.0" - level-errors "~2.0.0" - level-iterator-stream "~4.0.0" - level-supports "~1.0.0" - xtend "~4.0.0" + browser-level "^1.0.1" + classic-level "^1.2.0" leven@^3.1.0: version "3.1.0" @@ -5890,10 +6058,10 @@ lru_map@^0.3.3: resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== -ltgt@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" - integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA== +lunr@^2.3.9: + version "2.3.9" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== macos-release@^3.0.1: version "3.1.0" @@ -5907,6 +6075,13 @@ magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" +magic-string@^0.26.1: + version "0.26.3" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.3.tgz#25840b875140f7b4785ab06bddc384270b7dd452" + integrity sha512-u1Po0NDyFcwdg2nzHT88wSK0+Rih0N1M+Ph1Sp08k8yvFFU3KR72wryS7e1qMPJypt99WB7fIFVCA92mQrMjrg== + dependencies: + sourcemap-codec "^1.4.8" + make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -5934,6 +6109,11 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" +marked@^4.0.19: + version "4.1.0" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.1.0.tgz#3fc6e7485f21c1ca5d6ec4a39de820e146954796" + integrity sha512-+Z6KDjSPa6/723PQYyc1axYZpYYpDnECDaU6hkaf5gqBieBkMKYReL5hteF2QizhlMbgbo8umXl/clZ67+GlsA== + mcl-wasm@^0.7.1: version "0.7.9" resolved "https://registry.yarnpkg.com/mcl-wasm/-/mcl-wasm-0.7.9.tgz#c1588ce90042a8700c3b60e40efb339fc07ab87f" @@ -5948,17 +6128,14 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -memdown@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-5.1.0.tgz#608e91a9f10f37f5b5fe767667a8674129a833cb" - integrity sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw== +memory-level@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692" + integrity sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og== dependencies: - abstract-leveldown "~6.2.1" - functional-red-black-tree "~1.0.1" - immediate "~3.2.3" - inherits "~2.0.1" - ltgt "~2.2.0" - safe-buffer "~5.2.0" + abstract-level "^1.0.0" + functional-red-black-tree "^1.0.1" + module-error "^1.0.1" memorystream@^0.3.1: version "0.3.1" @@ -5975,18 +6152,6 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -merkle-patricia-tree@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz#ff988d045e2bf3dfa2239f7fabe2d59618d57413" - integrity sha512-eHbf/BG6eGNsqqfbLED9rIqbsF4+sykEaBn6OLNs71tjclbMcMOk1tEPmJKcNcNCLkvbpY/lwyOlizWsqPNo8w== - dependencies: - "@types/levelup" "^4.3.0" - ethereumjs-util "^7.1.4" - level-mem "^5.0.1" - level-ws "^2.0.0" - readable-stream "^3.6.0" - semaphore-async-await "^1.5.1" - micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -5995,14 +6160,6 @@ micromatch@^4.0.4, micromatch@^4.0.5: braces "^3.0.2" picomatch "^2.3.1" -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" @@ -6015,6 +6172,11 @@ mime-types@2.1.35, mime-types@^2.1.12: dependencies: mime-db "1.52.0" +mime@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -6045,12 +6207,12 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" - integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== dependencies: - brace-expansion "^1.1.7" + brace-expansion "^2.0.1" minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" @@ -6059,11 +6221,25 @@ minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0: +minimatch@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== +mkdirp@^0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" @@ -6076,42 +6252,45 @@ mnemonist@^0.38.0: dependencies: obliterator "^2.0.0" -mocha@^9.2.0: - version "9.2.2" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.2.2.tgz#d70db46bdb93ca57402c809333e5a84977a88fb9" - integrity sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g== +mocha@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.0.0.tgz#205447d8993ec755335c4b13deba3d3a13c4def9" + integrity sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA== dependencies: "@ungap/promise-all-settled" "1.1.2" ansi-colors "4.1.1" browser-stdout "1.3.1" chokidar "3.5.3" - debug "4.3.3" + debug "4.3.4" diff "5.0.0" escape-string-regexp "4.0.0" find-up "5.0.0" glob "7.2.0" - growl "1.10.5" he "1.2.0" js-yaml "4.1.0" log-symbols "4.1.0" - minimatch "4.2.1" + minimatch "5.0.1" ms "2.1.3" - nanoid "3.3.1" + nanoid "3.3.3" serialize-javascript "6.0.0" strip-json-comments "3.1.1" supports-color "8.1.1" - which "2.0.2" - workerpool "6.2.0" + workerpool "6.2.1" yargs "16.2.0" yargs-parser "20.2.4" yargs-unparser "2.0.0" +module-error@^1.0.1, module-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" + integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3: +ms@2.1.3, ms@^2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -6121,10 +6300,15 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nanoid@3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" - integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== +nanoid@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" + integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== + +napi-macros@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" + integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== natural-compare@^1.4.0: version "1.4.0" @@ -6148,6 +6332,20 @@ node-addon-api@^2.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-fetch@3.2.10: + version "3.2.10" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.10.tgz#e8347f94b54ae18b57c9c049ef641cef398a85c8" + integrity sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -6155,27 +6353,27 @@ node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" -node-gyp-build@^4.2.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.4.0.tgz#42e99687ce87ddeaf3a10b99dc06abc11021f3f4" - integrity sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ== +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" + integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" - integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== +node-releases@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" + integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^6.0.1, normalize-url@^6.1.0: +normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== @@ -6194,7 +6392,7 @@ npm-run-path@^5.1.0: dependencies: path-key "^4.0.0" -object-inspect@^1.12.0, object-inspect@^1.12.2, object-inspect@^1.9.0: +object-inspect@^1.12.2, object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== @@ -6204,14 +6402,14 @@ object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== +object.assign@^4.1.0, object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" object-keys "^1.1.1" obliterator@^2.0.0: @@ -6249,6 +6447,11 @@ open@8.4.0: is-docker "^2.1.1" is-wsl "^2.2.0" +opener@^1.5.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -6273,7 +6476,7 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -ora@6.1.2, ora@^6.1.0: +ora@6.1.2, ora@^6.1.2: version "6.1.2" resolved "https://registry.yarnpkg.com/ora/-/ora-6.1.2.tgz#7b3c1356b42fd90fb1dad043d5dbe649388a0bf5" integrity sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw== @@ -6320,7 +6523,7 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.2: +p-limit@^3.0.2, p-limit@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -6416,25 +6619,19 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-path@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.4.tgz#4bf424e6b743fb080831f03b536af9fc43f0ffea" - integrity sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw== +parse-path@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" + integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== dependencies: - is-ssh "^1.3.0" - protocols "^1.4.0" - qs "^6.9.4" - query-string "^6.13.8" + protocols "^2.0.0" -parse-url@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-6.0.2.tgz#4a30b057bfc452af64512dfb1a7755c103db3ea1" - integrity sha512-uCSjOvD3T+6B/sPWhR+QowAZcU/o4bjPrVBQBGFxcDF6J6FraCGIaDBsdoQawiaaAVdHvtqBe3w3vKlfBKySOQ== +parse-url@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" + integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== dependencies: - is-ssh "^1.3.0" - normalize-url "^6.1.0" - parse-path "^4.0.4" - protocols "^1.4.0" + parse-path "^7.0.0" path-exists@^3.0.0: version "3.0.0" @@ -6514,6 +6711,15 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +portfinder@^1.0.28: + version "1.0.32" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" + integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== + dependencies: + async "^2.6.4" + debug "^3.2.7" + mkdirp "^0.5.6" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -6531,7 +6737,7 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.3.1: +prettier@2.7.1, prettier@^2.3.1: version "2.7.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== @@ -6545,12 +6751,12 @@ pretty-format@^27.0.0, pretty-format@^27.5.1: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.1.tgz#f731530394e0f7fcd95aba6b43c50e02d86b95cb" - integrity sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw== +pretty-format@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" + integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== dependencies: - "@jest/schemas" "^28.0.2" + "@jest/schemas" "^28.1.3" ansi-regex "^5.0.1" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -6580,12 +6786,7 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== -protocols@^1.4.0: - version "1.4.8" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" - integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== - -protocols@^2.0.1: +protocols@^2.0.0, protocols@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== @@ -6609,11 +6810,6 @@ proxy-from-env@^1.0.0: resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -6634,24 +6830,14 @@ pupa@^3.1.0: dependencies: escape-goat "^4.0.0" -qs@^6.7.0, qs@^6.9.4: +qs@^6.4.0, qs@^6.7.0: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" -query-string@^6.13.8: - version "6.14.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" - integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== - dependencies: - decode-uri-component "^0.2.0" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - -queue-microtask@^1.2.2: +queue-microtask@^1.2.2, queue-microtask@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== @@ -6708,7 +6894,7 @@ readable-stream@1.1.x: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^3.1.0, readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -6736,10 +6922,10 @@ reduce-flatten@^2.0.0: resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== -regenerate-unicode-properties@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" - integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== +regenerate-unicode-properties@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" + integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== dependencies: regenerate "^1.4.2" @@ -6775,14 +6961,14 @@ regexpp@^3.2.0: integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== regexpu-core@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" - integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== + version "5.2.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.1.tgz#a69c26f324c1e962e9ffd0b88b055caba8089139" + integrity sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ== dependencies: regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" + regenerate-unicode-properties "^10.1.0" + regjsgen "^0.7.1" + regjsparser "^0.9.1" unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.0.0" @@ -6800,38 +6986,39 @@ registry-url@^6.0.0: dependencies: rc "1.2.8" -regjsgen@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" - integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== +regjsgen@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.7.1.tgz#ee5ef30e18d3f09b7c369b76e7c2373ed25546f6" + integrity sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA== -regjsparser@^0.8.2: - version "0.8.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" - integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== dependencies: jsesc "~0.5.0" release-it@^15.0.0: - version "15.1.1" - resolved "https://registry.yarnpkg.com/release-it/-/release-it-15.1.1.tgz#27303e69f4300a9fb799bb9f2d9676adc4996f09" - integrity sha512-c+9G8Vy1LsRIaHbV+cd8o5pEo6dkPlrOr/E7cNeWdglEbdeRJiygCyaf2F3gzNAtH8v52ntHAInG6ZevwH0KEA== + version "15.4.1" + resolved "https://registry.yarnpkg.com/release-it/-/release-it-15.4.1.tgz#bf9302124405e57401bd10bd635d9458b30faf15" + integrity sha512-w6adXfE+bN/fdcG1KehgS7gYcTfZLYIPml4jPOUEtYQ6NJyaiCtCF/ks032w1jf6EUgvGgWruRP+2TyyyDDBgA== dependencies: "@iarna/toml" "2.2.5" - "@octokit/rest" "18.12.0" + "@octokit/rest" "19.0.4" async-retry "1.3.3" chalk "5.0.1" cosmiconfig "7.0.1" execa "6.1.0" form-data "4.0.0" - git-url-parse "11.6.0" + git-url-parse "13.0.0" globby "13.1.2" - got "12.1.0" - inquirer "9.0.0" + got "12.3.1" + inquirer "9.1.0" is-ci "3.0.1" lodash "4.17.21" mime-types "2.1.35" new-github-release-url "2.0.0" + node-fetch "3.2.10" open "8.4.0" ora "6.1.2" os-name "5.0.1" @@ -6842,7 +7029,7 @@ release-it@^15.0.0: update-notifier "6.0.2" url-join "5.0.0" wildcard-match "5.1.2" - yargs-parser "21.0.1" + yargs-parser "21.1.1" require-directory@^2.1.1: version "2.1.1" @@ -6854,6 +7041,11 @@ require-from-string@^2.0.0: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + resolve-alpn@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" @@ -6898,12 +7090,19 @@ resolve@^1.1.6, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20 supports-preserve-symlinks-flag "^1.0.0" responselike@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" - integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== dependencies: lowercase-keys "^2.0.0" +responselike@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== + dependencies: + lowercase-keys "^3.0.0" + restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -6957,17 +7156,26 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rlp@^2.2.3, rlp@^2.2.4: +rlp@^2.2.3: version "2.2.7" resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== dependencies: bn.js "^5.2.0" +rollup-plugin-dts@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-4.2.2.tgz#82876b8784213af29b02cf260b45e404ff835ce1" + integrity sha512-A3g6Rogyko/PXeKoUlkjxkP++8UDVpgA7C+Tdl77Xj4fgEaIjPSnxRmR53EzvoYy97VMVwLAOcWJudaVAuxneQ== + dependencies: + magic-string "^0.26.1" + optionalDependencies: + "@babel/code-frame" "^7.16.7" + rollup-plugin-node-externals@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-node-externals/-/rollup-plugin-node-externals-4.1.0.tgz#f28fd27c533a6497f599c6f15b32edc4fe735acb" - integrity sha512-29ATx4vJ9NsSNSwqdG8HO2nWBfnTZkidkcvUhwNK8RlXflgaaC3ZYiTGz4512Nv7kJIg8Bq4H3QiQ5sJF9x9Tw== + version "4.1.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-node-externals/-/rollup-plugin-node-externals-4.1.1.tgz#81d90eea6f99831a90206df1f0531fdcfc360d7c" + integrity sha512-hiGCMTKHVoueaTmtcUv1KR0/dlNBuI9GYzHUlSHQbMd7T7yomYdXCFnBisoBqdZYy61EGAIfz8AvJaWWBho3Pg== dependencies: find-up "^5.0.0" @@ -6982,9 +7190,9 @@ rollup-plugin-terser@^7.0.2: terser "^5.0.0" rollup@^2.71.1: - version "2.75.7" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.75.7.tgz#221ff11887ae271e37dcc649ba32ce1590aaa0b9" - integrity sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ== + version "2.79.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.0.tgz#9177992c9f09eb58c5e56cbfa641607a12b57ce2" + integrity sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA== optionalDependencies: fsevents "~2.3.2" @@ -6993,6 +7201,13 @@ run-async@^2.4.0: resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== +run-parallel-limit@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba" + integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== + dependencies: + queue-microtask "^1.2.2" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -7005,29 +7220,29 @@ rustbn.js@~0.2.0: resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== -rxjs@^7.5.5: - version "7.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" - integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== +rxjs@^7.5.5, rxjs@^7.5.6: + version "7.5.6" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" + integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== dependencies: tslib "^2.1.0" +safe-buffer@5.1.2, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -"safer-buffer@>= 2.1.2 < 3": +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: +scrypt-js@3.0.1, scrypt-js@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== @@ -7041,10 +7256,10 @@ secp256k1@^4.0.1: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -semaphore-async-await@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz#857bef5e3644601ca4b9570b87e9df5ca12974fa" - integrity sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg== +secure-compare@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3" + integrity sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw== semver-diff@^4.0.0: version "4.0.0" @@ -7053,11 +7268,6 @@ semver-diff@^4.0.0: dependencies: semver "^7.3.5" -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - semver@7.3.7, semver@7.x, semver@^7.3.5, semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" @@ -7128,6 +7338,15 @@ shelljs@0.8.5: interpret "^1.0.0" rechoir "^0.6.2" +shiki@^0.11.1: + version "0.11.1" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.11.1.tgz#df0f719e7ab592c484d8b73ec10e215a503ab8cc" + integrity sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA== + dependencies: + jsonc-parser "^3.0.0" + vscode-oniguruma "^1.6.1" + vscode-textmate "^6.0.0" + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -7203,11 +7422,11 @@ socks-proxy-agent@5, socks-proxy-agent@^5.0.0: socks "^2.3.3" socks@^2.3.3: - version "2.6.2" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" - integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== + version "2.7.0" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.0.tgz#f9225acdb841e874dca25f870e9130990f3913d0" + integrity sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA== dependencies: - ip "^1.1.5" + ip "^2.0.0" smart-buffer "^4.2.0" solc@0.7.3: @@ -7251,11 +7470,6 @@ sourcemap-codec@^1.4.8: resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -7280,11 +7494,6 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== - string-argv@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" @@ -7424,9 +7633,9 @@ supports-color@^7.0.0, supports-color@^7.1.0: has-flag "^4.0.0" supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== dependencies: has-flag "^4.0.0" supports-color "^7.0.0" @@ -7455,9 +7664,9 @@ terminal-link@^2.0.0: supports-hyperlinks "^2.0.0" terser@^5.0.0: - version "5.14.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10" - integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA== + version "5.15.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.0.tgz#e16967894eeba6e1091509ec83f0c60e179f2425" + integrity sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA== dependencies: "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" @@ -7478,11 +7687,6 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== -throat@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" - integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== - through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -7522,11 +7726,6 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -"true-case-path@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-2.2.1.tgz#c5bf04a5bbec3fd118be4084461b3a27c4d796bf" - integrity sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q== - ts-command-line-args@^2.2.0: version "2.3.1" resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.3.1.tgz#b6188e42efc6cf7a8898e438a873fbb15505ddd6" @@ -7543,9 +7742,9 @@ ts-essentials@^7.0.1: integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== ts-jest@^28.0.5: - version "28.0.5" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-28.0.5.tgz#31776f768fba6dfc8c061d488840ed0c8eeac8b9" - integrity sha512-Sx9FyP9pCY7pUzQpy4FgRZf2bhHY3za576HMKJFs+OnQ9jS96Du5vNsDKkyedQkik+sEabbKAnCliv9BEsHZgQ== + version "28.0.8" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-28.0.8.tgz#cd204b8e7a2f78da32cf6c95c9a6165c5b99cc73" + integrity sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" @@ -7633,9 +7832,9 @@ type-fest@^1.0.1, type-fest@^1.0.2: integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== type-fest@^2.13.0, type-fest@^2.5.1: - version "2.14.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.14.0.tgz#f990e19169517d689c98e16d128b231022b27e12" - integrity sha512-hQnTQkFjL5ik6HF2fTAM8ycbr94UbQXK364wF930VHb0dfBJ5JBP8qwrR8TaK9zwUEk7meruo2JAUDMwvuxd/w== + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== typechain@^8.1.0: version "8.1.0" @@ -7660,10 +7859,20 @@ typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^4.6.3: - version "4.7.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" - integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== +typedoc@^0.23.10: + version "0.23.14" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.23.14.tgz#d3af50b38fe98210ac39e112b5892f9d88546c93" + integrity sha512-s2I+ZKBET38EctZvbXp2GooHrNaKjWZkrwGEK/sttnOGiKJqU0vHrsdcwLgKZGuo2aedNL3RRPj1LnAAeYscig== + dependencies: + lunr "^2.3.9" + marked "^4.0.19" + minimatch "^5.1.0" + shiki "^0.11.1" + +typescript@>=3.0.1, typescript@^4.6.3: + version "4.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88" + integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig== typical@^4.0.0: version "4.0.0" @@ -7686,9 +7895,9 @@ unbox-primitive@^1.0.2: which-boxed-primitive "^1.0.2" undici@^5.4.0: - version "5.8.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.8.0.tgz#dec9a8ccd90e5a1d81d43c0eab6503146d649a4f" - integrity sha512-1F7Vtcez5w/LwH2G2tGnFIihuWUlc58YidwLiCv+jR2Z50x0tNXpRRw7eOIJ+GvqCqIkg9SB7NWAJ/T9TLfv8Q== + version "5.10.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.10.0.tgz#dd9391087a90ccfbd007568db458674232ebf014" + integrity sha512-c8HsD3IbwmjjbLvoZuRI26TZic+TSEe8FPMLLOkN1AfYRhdjnKBU6yL+IwcSCbdZiX4e5t0lfMDLDCqj4Sq70g== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" @@ -7709,9 +7918,16 @@ unicode-match-property-value-ecmascript@^2.0.0: integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +union@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/union/-/union-0.5.0.tgz#b2c11be84f60538537b846edb9ba266ba0090075" + integrity sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA== + dependencies: + qs "^6.4.0" unique-string@^3.0.0: version "3.0.0" @@ -7740,10 +7956,10 @@ unpipe@1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -update-browserslist-db@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz#dbfc5a789caa26b1db8990796c2c8ebbce304824" - integrity sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA== +update-browserslist-db@^1.0.5: + version "1.0.9" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz#2924d3927367a38d5c555413a7ce138fc95fcb18" + integrity sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -7780,10 +7996,10 @@ url-join@5.0.0: resolved "https://registry.yarnpkg.com/url-join/-/url-join-5.0.0.tgz#c2f1e5cbd95fa91082a93b58a1f42fecb4bdbcf1" integrity sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA== -utf8@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" - integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== +url-join@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" + integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== util-deprecate@^1.0.1: version "1.0.2" @@ -7795,11 +8011,6 @@ uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - v8-to-istanbul@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4" @@ -7810,13 +8021,23 @@ v8-to-istanbul@^9.0.1: convert-source-map "^1.6.0" vm2@^3.9.8: - version "3.9.9" - resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.9.tgz#c0507bc5fbb99388fad837d228badaaeb499ddc5" - integrity sha512-xwTm7NLh/uOjARRBs8/95H0e8fT3Ukw5D/JJWhxMbhKzNh1Nu981jQKvkep9iKYNxzlVrdzD0mlBGkDKZWprlw== + version "3.9.11" + resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.11.tgz#a880f510a606481719ec3f9803b940c5805a06fe" + integrity sha512-PFG8iJRSjvvBdisowQ7iVF580DXb1uCIiGaXgm7tynMR1uTBlv7UJlB1zdv5KJ+Tmq1f0Upnj3fayoEOPpCBKg== dependencies: acorn "^8.7.0" acorn-walk "^8.2.0" +vscode-oniguruma@^1.6.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz#aeb9771a2f1dbfc9083c8a7fdd9cccaa3f386607" + integrity sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA== + +vscode-textmate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-6.0.0.tgz#a3777197235036814ac9a92451492f2748589210" + integrity sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ== + walker@^1.0.7, walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" @@ -7831,11 +8052,23 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +web-streams-polyfill@^3.0.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" + integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== +whatwg-encoding@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" + integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== + dependencies: + iconv-lite "0.6.3" + whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" @@ -7855,7 +8088,7 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which@2.0.2, which@^2.0.1: +which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== @@ -7894,10 +8127,10 @@ wordwrapjs@^4.0.0: reduce-flatten "^2.0.0" typical "^5.2.0" -workerpool@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.0.tgz#827d93c9ba23ee2019c3ffaff5c27fccea289e8b" - integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A== +workerpool@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== wrap-ansi@^6.2.0: version "6.2.0" @@ -7942,9 +8175,9 @@ write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: typedarray-to-buffer "^3.1.5" write-file-atomic@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" - integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== dependencies: imurmurhash "^0.1.4" signal-exit "^3.0.7" @@ -7955,9 +8188,9 @@ ws@7.4.6: integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== ws@^7.4.6: - version "7.5.8" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.8.tgz#ac2729881ab9e7cbaf8787fe3469a48c5c7f636a" - integrity sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw== + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: version "5.1.0" @@ -7969,11 +8202,6 @@ xregexp@2.0.0: resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" integrity sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA== -xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" @@ -8004,10 +8232,10 @@ yargs-parser@20.2.4: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== -yargs-parser@21.0.1, yargs-parser@^21.0.0, yargs-parser@^21.0.1: - version "21.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== +yargs-parser@21.1.1, yargs-parser@^21.0.0, yargs-parser@^21.0.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs-parser@^20.2.2: version "20.2.9" @@ -8037,7 +8265,7 @@ yargs@16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.3.1: +yargs@^17.2.1, yargs@^17.3.1: version "17.5.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==