diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 876233462c..fbbff5c2bf 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,5 +1,5 @@ name: Bug report -title: "[Bug]: " +title: '[Bug]: ' description: Report incorrect or unexpected behavior labels: [bug] body: @@ -11,7 +11,6 @@ body: - auction-house - candy-machine - fixed-price-sale - - gumdrop - hydra - nft-packs - token-entangler @@ -25,14 +24,14 @@ body: - Rust Contract - JS SDK validations: - required: true + required: true - type: textarea id: description attributes: label: Issue description description: | Describe the issue in as much detail as possible. - + If this is for a JS SDK, please inclide your package json and any other build systems or package manager information. Tip: You can attach images or log files by clicking this area to highlight it and then dragging files into it. @@ -47,7 +46,9 @@ body: id: logs attributes: label: Relevant log output - description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. + description: + Please copy and paste any relevant log output. This will be automatically formatted into + code, so no need for backticks. render: shell validations: required: false @@ -55,7 +56,9 @@ body: id: priority attributes: label: Priority this issue should have - description: Please be realistic. If you need to elaborate on your reasoning, please use the Issue description field above. + description: + Please be realistic. If you need to elaborate on your reasoning, please use the Issue + description field above. options: - Low (slightly annoying) - Medium (should be fixed soon) diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 6537a6216e..9a74de8910 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,6 +1,6 @@ name: Feature request description: Request a new feature -title: "[Feature]: " +title: '[Feature]: ' labels: [enhancement] body: - type: dropdown @@ -13,7 +13,6 @@ body: - candy-machine - core - fixed-price-sale - - gumdrop - hydra - nft-packs - token-entangler @@ -23,7 +22,9 @@ body: id: description attributes: label: Feature - description: A clear and concise description of what the problem is, or what feature you want to be implemented. + description: + A clear and concise description of what the problem is, or what feature you want to be + implemented. placeholder: I'm always frustrated when..., A good addition would be... validations: required: true @@ -32,8 +33,8 @@ body: attributes: label: Standard Change? options: - - "No" - - "Yes" + - 'No' + - 'Yes' description: Does this feature change the Metaplex token standard in a fundamental way? validations: required: true @@ -48,9 +49,13 @@ body: id: alternatives attributes: label: Alternative solutions or implementations - description: A clear and concise description of any alternative solutions or features you have considered. + description: + A clear and concise description of any alternative solutions or features you have + considered. - type: textarea id: additional-context attributes: label: Other context - description: Any other context, screenshots, or file uploads that help us understand your feature request. + description: + Any other context, screenshots, or file uploads that help us understand your feature + request. diff --git a/.github/workflows/program.yml b/.github/workflows/program.yml index d0102a2132..326e96a42b 100644 --- a/.github/workflows/program.yml +++ b/.github/workflows/program.yml @@ -2,9 +2,9 @@ name: Program Tests on: push: - branches: [ master ] + branches: [master] pull_request: - branches: [ master ] + branches: [master] workflow_dispatch: inputs: @@ -19,18 +19,17 @@ on: jobs: program-tests: - name: "Program: ${{ matrix.node.name }}" + name: 'Program: ${{ matrix.node.name }}' strategy: fail-fast: false matrix: node: - - name: "auctioneer" - - name: "candy-machine" - - name: "auction-house" - - name: "fixed-price-sale" - - name: "gumdrop" - - name: "hydra" - - name: "token-entangler" + - name: 'auctioneer' + - name: 'candy-machine' + - name: 'auction-house' + - name: 'fixed-price-sale' + - name: 'hydra' + - name: 'token-entangler' uses: ./.github/workflows/program-reusable.yml with: diff --git a/.github/workflows/sdk.yml b/.github/workflows/sdk.yml index d190fa43af..d5578dde7f 100644 --- a/.github/workflows/sdk.yml +++ b/.github/workflows/sdk.yml @@ -2,9 +2,9 @@ name: SDK Tests on: push: - branches: [ master ] + branches: [master] pull_request: - branches: [ master ] + branches: [master] workflow_dispatch: inputs: @@ -19,21 +19,18 @@ on: jobs: sdk-tests: - name: "SDK: ${{ matrix.node.name }}" + name: 'SDK: ${{ matrix.node.name }}' strategy: fail-fast: false matrix: node: - - name: "auction-house" - - name: "candy-machine" - - name: "fixed-price-sale" + - name: 'auction-house' + - name: 'candy-machine' + - name: 'fixed-price-sale' skip_test: true - - name: "gumdrop" - # - name: "hydra" - # skip_test: true - - name: "nft-packs" + - name: 'nft-packs' skip_test: true - - name: "token-entangler" + - name: 'token-entangler' uses: ./.github/workflows/sdk-reusable.yml with: diff --git a/Anchor.toml b/Anchor.toml index 914e78fcab..afd6926810 100644 --- a/Anchor.toml +++ b/Anchor.toml @@ -9,8 +9,8 @@ cluster = "localnet" wallet = "~/.config/solana/id.json" [programs.localnet] -auction_house="hausS13jsjafwWwGqZTUQRmWyvyxn9EQpqMwV1PBBmk" -bubblegum="BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY" +auction_house = "hausS13jsjafwWwGqZTUQRmWyvyxn9EQpqMwV1PBBmk" +bubblegum = "BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY" [[test.genesis]] address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s" @@ -28,19 +28,15 @@ program = "target/deploy/mpl_token_entangler.so" address = "SaLeTjyUa5wXHnGuewUSyJ5JWZaHwz3TxqUntCE9czo" program = "target/deploy/mpl_fixed_price_sale.so" -[[test.genesis]] -address = "gdrpGjVffourzkdDRrQmySw4aTHr8a3xmQzzxSwFD1a" -program = "target/deploy/mpl_gumdrop.so" - [[test.genesis]] address = "hyDQ4Nz1eYyegS6JfenyKwKzYxRsCWCriYSAjtzP4Vg" program = "target/deploy/mpl_hydra.so" [workspace] members = [ - "token-entangler/program", "auction-house/program", + "bubblegum/program", "fixed-price-sale/program", "hydra/program", - "bubblegum/program", + "token-entangler/program", ] diff --git a/build.sh b/build.sh index 3cfd4c2876..333c23940a 100755 --- a/build.sh +++ b/build.sh @@ -9,7 +9,7 @@ function exists_in_list() { input=$1 -programs="auction-house auctioneer candy-machine fixed-price-sale gumdrop hydra token-entangler" +programs="auction-house auctioneer candy-machine fixed-price-sale hydra token-entangler" mkdir -p test-programs diff --git a/gumdrop/README.md b/gumdrop/README.md new file mode 100644 index 0000000000..67b0f6209f --- /dev/null +++ b/gumdrop/README.md @@ -0,0 +1,9 @@ +# Metaplex Gumdrop + +The Gumdrop program is now part of a separate `mpl-gumdrop` repository which contains all programs and clients related to Gumdrop. + +Here are some useful links for you to find what you came here for: + +- Repository: [📂 MPL Gumdrop](https://github.com/metaplex-foundation/mpl-gumdrop) +- Program documentation: [📄 Readme](https://github.com/metaplex-foundation/mpl-gumdrop/tree/main/programs/mpl-gumdrop) +- Umi SDK: [📦 NPM](https://github.com/metaplex-foundation/mpl-gumdrop/tree/main/clients/js) diff --git a/gumdrop/js/.eslintignore b/gumdrop/js/.eslintignore deleted file mode 100644 index 6edbcddb73..0000000000 --- a/gumdrop/js/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -dist/ -coverage/ diff --git a/gumdrop/js/.eslintrc.js b/gumdrop/js/.eslintrc.js deleted file mode 100644 index 9733c11162..0000000000 --- a/gumdrop/js/.eslintrc.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - parser: '@typescript-eslint/parser', - parserOptions: { - ecmaFeatures: { - ecmaVersion: 2020, - sourceType: 'module', - }, - }, - extends: ['plugin:@typescript-eslint/recommended', 'prettier', 'plugin:prettier/recommended'], - rules: { - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-empty-function': 'off', - '@typescript-eslint/ban-types': ['error', { extendDefaults: true, types: { '{}': false } }], - '@typescript-eslint/ban-ts-comment': 'off', - }, -}; diff --git a/gumdrop/js/.prettierignore b/gumdrop/js/.prettierignore deleted file mode 100644 index de4d1f007d..0000000000 --- a/gumdrop/js/.prettierignore +++ /dev/null @@ -1,2 +0,0 @@ -dist -node_modules diff --git a/gumdrop/js/.prettierrc.js b/gumdrop/js/.prettierrc.js deleted file mode 100644 index 7c553141f1..0000000000 --- a/gumdrop/js/.prettierrc.js +++ /dev/null @@ -1,2 +0,0 @@ -module.exports = require('../../.prettierrc'); - diff --git a/gumdrop/js/LICENSE b/gumdrop/js/LICENSE deleted file mode 100644 index b223be5019..0000000000 --- a/gumdrop/js/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - limitations under the License. diff --git a/gumdrop/js/README.md b/gumdrop/js/README.md deleted file mode 100644 index f90a9016f7..0000000000 --- a/gumdrop/js/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# mpl-gumdrop - -This package contains the gumdrop contract SDK code. - -## Developing - -In order to update the generated SDK when the rust contract was updated please run: - -``` -yarn gen:api -``` - -NOTE: at this point this only generates the IDL json file but later will generate TypeScript -definitions and SDK code as well, derived from that IDL. - -## LICENSE - -Apache v2.0 diff --git a/gumdrop/js/package.json b/gumdrop/js/package.json deleted file mode 100644 index 81bb0644b1..0000000000 --- a/gumdrop/js/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "@metaplex-foundation/mpl-gumdrop", - "version": "0.0.0", - "description": "Metaplex Gumdrop SDK", - "main": "dist/src/mpl-gumdrop.js", - "types": "dist/src/mpl-gumdrop.d.ts", - "scripts": { - "check:publish-ready": "yarn build && yarn test", - "preversion": "yarn check:publish-ready", - "postversion": "git add package.json && git commit -m \"chore: update $npm_package_name to v$npm_package_version\" && git tag $npm_package_name@$npm_package_version", - "prepublishOnly": "yarn check:publish-ready", - "postpublish": "git push origin && git push origin --tags", - "build:docs": "typedoc", - "build": "rimraf dist && tsc -p tsconfig.json", - "test": "tape dist/test/*.js", - "api:gen": "node scripts/api-gen-ts.js && prettier --write ./src/**/*.ts", - "lint": "eslint \"{src,test}/**/*.ts\" --format stylish", - "fix:lint": "yarn lint --fix", - "prettier": "prettier \"{src,test}/**/*.ts\" --check", - "fix:prettier": "prettier --write src/", - "fix": "yarn fix:lint && yarn fix:prettier" - }, - "files": [ - "/dist" - ], - "publishConfig": { - "access": "public", - "registry": "https://registry.npmjs.org" - }, - "keywords": [ - "nft", - "metaplex", - "solana", - "blockchain" - ], - "homepage": "https://metaplex.com", - "repository": "https://github.com/metaplex-foundation/metaplex-program-library.git", - "author": "Metaplex Maintainers ", - "license": "Apache-2.0", - "dependencies": { - "@metaplex-foundation/beet": "^0.1.0", - "@metaplex-foundation/beet-solana": "^0.1.1", - "@metaplex-foundation/cusper": "^0.0.2", - "@solana/spl-token": "^0.3.5", - "@solana/web3.js": "^1.35.1" - }, - "devDependencies": { - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-prettier": "^4.0.0", - "@metaplex-foundation/solita": "^0.2.0", - "@types/tape": "^4.13.2", - "@typescript-eslint/eslint-plugin": "^5.4.0", - "@typescript-eslint/parser": "^5.4.0", - "eslint": "^8.3.0", - "rimraf": "^3.0.2", - "spok": "^1.4.3", - "tape": "^5.5.2", - "typescript": "^4.6.2" - } -} \ No newline at end of file diff --git a/gumdrop/js/scripts/api-gen-ts.js b/gumdrop/js/scripts/api-gen-ts.js deleted file mode 100644 index bf542116d6..0000000000 --- a/gumdrop/js/scripts/api-gen-ts.js +++ /dev/null @@ -1,51 +0,0 @@ -// @ts-check -'use strict'; - -// NOTE: ideally we'd rename the anchor program to gumdrop -const PROGRAM_NAME = 'merkle_distributor'; -const PROGRAM_ID = 'gdrpGjVffourzkdDRrQmySw4aTHr8a3xmQzzxSwFD1a'; - -const path = require('path'); -const programDir = path.join(__dirname, '..', '..', 'program'); -const generatedIdlDir = path.join(__dirname, '..', 'idl'); -const generatedSDKDir = path.join(__dirname, '..', 'src', 'generated'); -const { spawn } = require('child_process'); -// NOTE: Solita has to be yarn linked at the moment until it is published and installed here -const { Solita } = require('@metaplex-foundation/solita'); -const { writeFile } = require('fs/promises'); - -const anchor = spawn('anchor', ['build', '--idl', generatedIdlDir], { cwd: programDir }) - .on('error', (err) => { - console.error(err); - // @ts-ignore this err does have a code - if (err.code === 'ENOENT') { - console.error( - 'Ensure that `anchor` is installed and in your path, see:\n https://project-serum.github.io/anchor/getting-started/installation.html#install-anchor\n', - ); - } - process.exit(1); - }) - .on('exit', () => { - console.log('IDL written to: %s', path.join(generatedIdlDir, `${PROGRAM_NAME}.json`)); - generateTypeScriptSDK(); - }); - -anchor.stdout.on('data', (buf) => console.log(buf.toString('utf8'))); -anchor.stderr.on('data', (buf) => console.error(buf.toString('utf8'))); - -async function generateTypeScriptSDK() { - console.error('Generating TypeScript SDK to %s', generatedSDKDir); - const generatedIdlPath = path.join(generatedIdlDir, `${PROGRAM_NAME}.json`); - - const idl = require(generatedIdlPath); - if (idl.metadata?.address == null) { - idl.metadata = { ...idl.metadata, address: PROGRAM_ID }; - await writeFile(generatedIdlPath, JSON.stringify(idl, null, 2)); - } - const gen = new Solita(idl, { formatCode: true }); - await gen.renderAndWriteTo(generatedSDKDir); - - console.error('Success!'); - - process.exit(0); -} diff --git a/gumdrop/js/src/errors.ts b/gumdrop/js/src/errors.ts deleted file mode 100644 index 563937f43e..0000000000 --- a/gumdrop/js/src/errors.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { initCusper } from '@metaplex-foundation/cusper'; -import { errorFromCode } from './generated'; - -export const cusper = initCusper(errorFromCode); diff --git a/gumdrop/js/src/generated/accounts/CandyMachine.ts b/gumdrop/js/src/generated/accounts/CandyMachine.ts deleted file mode 100644 index 9eaefaebee..0000000000 --- a/gumdrop/js/src/generated/accounts/CandyMachine.ts +++ /dev/null @@ -1,179 +0,0 @@ -/** - * This code was GENERATED using the solita package. - * Please DO NOT EDIT THIS FILE, instead rerun solita to update it or write a wrapper to add functionality. - * - * See: https://github.com/metaplex-foundation/solita - */ - -import * as web3 from '@solana/web3.js'; -import * as beet from '@metaplex-foundation/beet'; -import * as beetSolana from '@metaplex-foundation/beet-solana'; -import { CandyMachineData, candyMachineDataBeet } from '../types/CandyMachineData'; - -/** - * Arguments used to create {@link CandyMachine} - * @category Accounts - * @category generated - */ -export type CandyMachineArgs = { - authority: web3.PublicKey; - wallet: web3.PublicKey; - tokenMint: beet.COption; - config: web3.PublicKey; - data: CandyMachineData; - itemsRedeemed: beet.bignum; - bump: number; -}; - -const candyMachineDiscriminator = [51, 173, 177, 113, 25, 241, 109, 189]; -/** - * Holds the data for the {@link CandyMachine} Account and provides de/serialization - * functionality for that data - * - * @category Accounts - * @category generated - */ -export class CandyMachine implements CandyMachineArgs { - private constructor( - readonly authority: web3.PublicKey, - readonly wallet: web3.PublicKey, - readonly tokenMint: beet.COption, - readonly config: web3.PublicKey, - readonly data: CandyMachineData, - readonly itemsRedeemed: beet.bignum, - readonly bump: number, - ) {} - - /** - * Creates a {@link CandyMachine} instance from the provided args. - */ - static fromArgs(args: CandyMachineArgs) { - return new CandyMachine( - args.authority, - args.wallet, - args.tokenMint, - args.config, - args.data, - args.itemsRedeemed, - args.bump, - ); - } - - /** - * Deserializes the {@link CandyMachine} from the data of the provided {@link web3.AccountInfo}. - * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. - */ - static fromAccountInfo( - accountInfo: web3.AccountInfo, - offset = 0, - ): [CandyMachine, number] { - return CandyMachine.deserialize(accountInfo.data, offset); - } - - /** - * Retrieves the account info from the provided address and deserializes - * the {@link CandyMachine} from its data. - * - * @throws Error if no account info is found at the address or if deserialization fails - */ - static async fromAccountAddress( - connection: web3.Connection, - address: web3.PublicKey, - ): Promise { - const accountInfo = await connection.getAccountInfo(address); - if (accountInfo == null) { - throw new Error(`Unable to find CandyMachine account at ${address}`); - } - return CandyMachine.fromAccountInfo(accountInfo, 0)[0]; - } - - /** - * Deserializes the {@link CandyMachine} from the provided data Buffer. - * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. - */ - static deserialize(buf: Buffer, offset = 0): [CandyMachine, number] { - return candyMachineBeet.deserialize(buf, offset); - } - - /** - * Serializes the {@link CandyMachine} into a Buffer. - * @returns a tuple of the created Buffer and the offset up to which the buffer was written to store it. - */ - serialize(): [Buffer, number] { - return candyMachineBeet.serialize({ - accountDiscriminator: candyMachineDiscriminator, - ...this, - }); - } - - /** - * Returns the byteSize of a {@link Buffer} holding the serialized data of - * {@link CandyMachine} for the provided args. - * - * @param args need to be provided since the byte size for this account - * depends on them - */ - static byteSize(args: CandyMachineArgs) { - const instance = CandyMachine.fromArgs(args); - return candyMachineBeet.toFixedFromValue({ - accountDiscriminator: candyMachineDiscriminator, - ...instance, - }).byteSize; - } - - /** - * Fetches the minimum balance needed to exempt an account holding - * {@link CandyMachine} data from rent - * - * @param args need to be provided since the byte size for this account - * depends on them - * @param connection used to retrieve the rent exemption information - */ - static async getMinimumBalanceForRentExemption( - args: CandyMachineArgs, - connection: web3.Connection, - commitment?: web3.Commitment, - ): Promise { - return connection.getMinimumBalanceForRentExemption(CandyMachine.byteSize(args), commitment); - } - - /** - * Returns a readable version of {@link CandyMachine} properties - * and can be used to convert to JSON and/or logging - */ - pretty() { - return { - authority: this.authority.toBase58(), - wallet: this.wallet.toBase58(), - tokenMint: this.tokenMint, - config: this.config.toBase58(), - data: this.data, - itemsRedeemed: this.itemsRedeemed, - bump: this.bump, - }; - } -} - -/** - * @category Accounts - * @category generated - */ -export const candyMachineBeet = new beet.FixableBeetStruct< - CandyMachine, - CandyMachineArgs & { - accountDiscriminator: number[] /* size: 8 */; - } ->( - [ - ['accountDiscriminator', beet.uniformFixedSizeArray(beet.u8, 8)], - ['authority', beetSolana.publicKey], - ['wallet', beetSolana.publicKey], - ['tokenMint', beet.coption(beetSolana.publicKey)], - ['config', beetSolana.publicKey], - ['data', candyMachineDataBeet], - ['itemsRedeemed', beet.u64], - ['bump', beet.u8], - ], - CandyMachine.fromArgs, - 'CandyMachine', -); diff --git a/gumdrop/js/src/generated/accounts/ClaimCount.ts b/gumdrop/js/src/generated/accounts/ClaimCount.ts deleted file mode 100644 index 82502ef3ba..0000000000 --- a/gumdrop/js/src/generated/accounts/ClaimCount.ts +++ /dev/null @@ -1,142 +0,0 @@ -/** - * This code was GENERATED using the solita package. - * Please DO NOT EDIT THIS FILE, instead rerun solita to update it or write a wrapper to add functionality. - * - * See: https://github.com/metaplex-foundation/solita - */ - -import * as beet from '@metaplex-foundation/beet'; -import * as web3 from '@solana/web3.js'; -import * as beetSolana from '@metaplex-foundation/beet-solana'; - -/** - * Arguments used to create {@link ClaimCount} - * @category Accounts - * @category generated - */ -export type ClaimCountArgs = { - count: beet.bignum; - claimant: web3.PublicKey; -}; - -const claimCountDiscriminator = [78, 134, 220, 213, 34, 152, 102, 167]; -/** - * Holds the data for the {@link ClaimCount} Account and provides de/serialization - * functionality for that data - * - * @category Accounts - * @category generated - */ -export class ClaimCount implements ClaimCountArgs { - private constructor(readonly count: beet.bignum, readonly claimant: web3.PublicKey) {} - - /** - * Creates a {@link ClaimCount} instance from the provided args. - */ - static fromArgs(args: ClaimCountArgs) { - return new ClaimCount(args.count, args.claimant); - } - - /** - * Deserializes the {@link ClaimCount} from the data of the provided {@link web3.AccountInfo}. - * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. - */ - static fromAccountInfo(accountInfo: web3.AccountInfo, offset = 0): [ClaimCount, number] { - return ClaimCount.deserialize(accountInfo.data, offset); - } - - /** - * Retrieves the account info from the provided address and deserializes - * the {@link ClaimCount} from its data. - * - * @throws Error if no account info is found at the address or if deserialization fails - */ - static async fromAccountAddress( - connection: web3.Connection, - address: web3.PublicKey, - ): Promise { - const accountInfo = await connection.getAccountInfo(address); - if (accountInfo == null) { - throw new Error(`Unable to find ClaimCount account at ${address}`); - } - return ClaimCount.fromAccountInfo(accountInfo, 0)[0]; - } - - /** - * Deserializes the {@link ClaimCount} from the provided data Buffer. - * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. - */ - static deserialize(buf: Buffer, offset = 0): [ClaimCount, number] { - return claimCountBeet.deserialize(buf, offset); - } - - /** - * Serializes the {@link ClaimCount} into a Buffer. - * @returns a tuple of the created Buffer and the offset up to which the buffer was written to store it. - */ - serialize(): [Buffer, number] { - return claimCountBeet.serialize({ - accountDiscriminator: claimCountDiscriminator, - ...this, - }); - } - - /** - * Returns the byteSize of a {@link Buffer} holding the serialized data of - * {@link ClaimCount} - */ - static get byteSize() { - return claimCountBeet.byteSize; - } - - /** - * Fetches the minimum balance needed to exempt an account holding - * {@link ClaimCount} data from rent - * - * @param connection used to retrieve the rent exemption information - */ - static async getMinimumBalanceForRentExemption( - connection: web3.Connection, - commitment?: web3.Commitment, - ): Promise { - return connection.getMinimumBalanceForRentExemption(ClaimCount.byteSize, commitment); - } - - /** - * Determines if the provided {@link Buffer} has the correct byte size to - * hold {@link ClaimCount} data. - */ - static hasCorrectByteSize(buf: Buffer, offset = 0) { - return buf.byteLength - offset === ClaimCount.byteSize; - } - - /** - * Returns a readable version of {@link ClaimCount} properties - * and can be used to convert to JSON and/or logging - */ - pretty() { - return { - count: this.count, - claimant: this.claimant.toBase58(), - }; - } -} - -/** - * @category Accounts - * @category generated - */ -export const claimCountBeet = new beet.BeetStruct< - ClaimCount, - ClaimCountArgs & { - accountDiscriminator: number[] /* size: 8 */; - } ->( - [ - ['accountDiscriminator', beet.uniformFixedSizeArray(beet.u8, 8)], - ['count', beet.u64], - ['claimant', beetSolana.publicKey], - ], - ClaimCount.fromArgs, - 'ClaimCount', -); diff --git a/gumdrop/js/src/generated/accounts/ClaimStatus.ts b/gumdrop/js/src/generated/accounts/ClaimStatus.ts deleted file mode 100644 index 807a87a729..0000000000 --- a/gumdrop/js/src/generated/accounts/ClaimStatus.ts +++ /dev/null @@ -1,153 +0,0 @@ -/** - * This code was GENERATED using the solita package. - * Please DO NOT EDIT THIS FILE, instead rerun solita to update it or write a wrapper to add functionality. - * - * See: https://github.com/metaplex-foundation/solita - */ - -import * as web3 from '@solana/web3.js'; -import * as beet from '@metaplex-foundation/beet'; -import * as beetSolana from '@metaplex-foundation/beet-solana'; - -/** - * Arguments used to create {@link ClaimStatus} - * @category Accounts - * @category generated - */ -export type ClaimStatusArgs = { - isClaimed: boolean; - claimant: web3.PublicKey; - claimedAt: beet.bignum; - amount: beet.bignum; -}; - -const claimStatusDiscriminator = [22, 183, 249, 157, 247, 95, 150, 96]; -/** - * Holds the data for the {@link ClaimStatus} Account and provides de/serialization - * functionality for that data - * - * @category Accounts - * @category generated - */ -export class ClaimStatus implements ClaimStatusArgs { - private constructor( - readonly isClaimed: boolean, - readonly claimant: web3.PublicKey, - readonly claimedAt: beet.bignum, - readonly amount: beet.bignum, - ) {} - - /** - * Creates a {@link ClaimStatus} instance from the provided args. - */ - static fromArgs(args: ClaimStatusArgs) { - return new ClaimStatus(args.isClaimed, args.claimant, args.claimedAt, args.amount); - } - - /** - * Deserializes the {@link ClaimStatus} from the data of the provided {@link web3.AccountInfo}. - * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. - */ - static fromAccountInfo(accountInfo: web3.AccountInfo, offset = 0): [ClaimStatus, number] { - return ClaimStatus.deserialize(accountInfo.data, offset); - } - - /** - * Retrieves the account info from the provided address and deserializes - * the {@link ClaimStatus} from its data. - * - * @throws Error if no account info is found at the address or if deserialization fails - */ - static async fromAccountAddress( - connection: web3.Connection, - address: web3.PublicKey, - ): Promise { - const accountInfo = await connection.getAccountInfo(address); - if (accountInfo == null) { - throw new Error(`Unable to find ClaimStatus account at ${address}`); - } - return ClaimStatus.fromAccountInfo(accountInfo, 0)[0]; - } - - /** - * Deserializes the {@link ClaimStatus} from the provided data Buffer. - * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. - */ - static deserialize(buf: Buffer, offset = 0): [ClaimStatus, number] { - return claimStatusBeet.deserialize(buf, offset); - } - - /** - * Serializes the {@link ClaimStatus} into a Buffer. - * @returns a tuple of the created Buffer and the offset up to which the buffer was written to store it. - */ - serialize(): [Buffer, number] { - return claimStatusBeet.serialize({ - accountDiscriminator: claimStatusDiscriminator, - ...this, - }); - } - - /** - * Returns the byteSize of a {@link Buffer} holding the serialized data of - * {@link ClaimStatus} - */ - static get byteSize() { - return claimStatusBeet.byteSize; - } - - /** - * Fetches the minimum balance needed to exempt an account holding - * {@link ClaimStatus} data from rent - * - * @param connection used to retrieve the rent exemption information - */ - static async getMinimumBalanceForRentExemption( - connection: web3.Connection, - commitment?: web3.Commitment, - ): Promise { - return connection.getMinimumBalanceForRentExemption(ClaimStatus.byteSize, commitment); - } - - /** - * Determines if the provided {@link Buffer} has the correct byte size to - * hold {@link ClaimStatus} data. - */ - static hasCorrectByteSize(buf: Buffer, offset = 0) { - return buf.byteLength - offset === ClaimStatus.byteSize; - } - - /** - * Returns a readable version of {@link ClaimStatus} properties - * and can be used to convert to JSON and/or logging - */ - pretty() { - return { - isClaimed: this.isClaimed, - claimant: this.claimant.toBase58(), - claimedAt: this.claimedAt, - amount: this.amount, - }; - } -} - -/** - * @category Accounts - * @category generated - */ -export const claimStatusBeet = new beet.BeetStruct< - ClaimStatus, - ClaimStatusArgs & { - accountDiscriminator: number[] /* size: 8 */; - } ->( - [ - ['accountDiscriminator', beet.uniformFixedSizeArray(beet.u8, 8)], - ['isClaimed', beet.bool], - ['claimant', beetSolana.publicKey], - ['claimedAt', beet.i64], - ['amount', beet.u64], - ], - ClaimStatus.fromArgs, - 'ClaimStatus', -); diff --git a/gumdrop/js/src/generated/accounts/MerkleDistributor.ts b/gumdrop/js/src/generated/accounts/MerkleDistributor.ts deleted file mode 100644 index d6bbf0d290..0000000000 --- a/gumdrop/js/src/generated/accounts/MerkleDistributor.ts +++ /dev/null @@ -1,156 +0,0 @@ -/** - * This code was GENERATED using the solita package. - * Please DO NOT EDIT THIS FILE, instead rerun solita to update it or write a wrapper to add functionality. - * - * See: https://github.com/metaplex-foundation/solita - */ - -import * as web3 from '@solana/web3.js'; -import * as beetSolana from '@metaplex-foundation/beet-solana'; -import * as beet from '@metaplex-foundation/beet'; - -/** - * Arguments used to create {@link MerkleDistributor} - * @category Accounts - * @category generated - */ -export type MerkleDistributorArgs = { - base: web3.PublicKey; - bump: number; - root: number[] /* size: 32 */; - temporal: web3.PublicKey; -}; - -const merkleDistributorDiscriminator = [77, 119, 139, 70, 84, 247, 12, 26]; -/** - * Holds the data for the {@link MerkleDistributor} Account and provides de/serialization - * functionality for that data - * - * @category Accounts - * @category generated - */ -export class MerkleDistributor implements MerkleDistributorArgs { - private constructor( - readonly base: web3.PublicKey, - readonly bump: number, - readonly root: number[] /* size: 32 */, - readonly temporal: web3.PublicKey, - ) {} - - /** - * Creates a {@link MerkleDistributor} instance from the provided args. - */ - static fromArgs(args: MerkleDistributorArgs) { - return new MerkleDistributor(args.base, args.bump, args.root, args.temporal); - } - - /** - * Deserializes the {@link MerkleDistributor} from the data of the provided {@link web3.AccountInfo}. - * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. - */ - static fromAccountInfo( - accountInfo: web3.AccountInfo, - offset = 0, - ): [MerkleDistributor, number] { - return MerkleDistributor.deserialize(accountInfo.data, offset); - } - - /** - * Retrieves the account info from the provided address and deserializes - * the {@link MerkleDistributor} from its data. - * - * @throws Error if no account info is found at the address or if deserialization fails - */ - static async fromAccountAddress( - connection: web3.Connection, - address: web3.PublicKey, - ): Promise { - const accountInfo = await connection.getAccountInfo(address); - if (accountInfo == null) { - throw new Error(`Unable to find MerkleDistributor account at ${address}`); - } - return MerkleDistributor.fromAccountInfo(accountInfo, 0)[0]; - } - - /** - * Deserializes the {@link MerkleDistributor} from the provided data Buffer. - * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. - */ - static deserialize(buf: Buffer, offset = 0): [MerkleDistributor, number] { - return merkleDistributorBeet.deserialize(buf, offset); - } - - /** - * Serializes the {@link MerkleDistributor} into a Buffer. - * @returns a tuple of the created Buffer and the offset up to which the buffer was written to store it. - */ - serialize(): [Buffer, number] { - return merkleDistributorBeet.serialize({ - accountDiscriminator: merkleDistributorDiscriminator, - ...this, - }); - } - - /** - * Returns the byteSize of a {@link Buffer} holding the serialized data of - * {@link MerkleDistributor} - */ - static get byteSize() { - return merkleDistributorBeet.byteSize; - } - - /** - * Fetches the minimum balance needed to exempt an account holding - * {@link MerkleDistributor} data from rent - * - * @param connection used to retrieve the rent exemption information - */ - static async getMinimumBalanceForRentExemption( - connection: web3.Connection, - commitment?: web3.Commitment, - ): Promise { - return connection.getMinimumBalanceForRentExemption(MerkleDistributor.byteSize, commitment); - } - - /** - * Determines if the provided {@link Buffer} has the correct byte size to - * hold {@link MerkleDistributor} data. - */ - static hasCorrectByteSize(buf: Buffer, offset = 0) { - return buf.byteLength - offset === MerkleDistributor.byteSize; - } - - /** - * Returns a readable version of {@link MerkleDistributor} properties - * and can be used to convert to JSON and/or logging - */ - pretty() { - return { - base: this.base.toBase58(), - bump: this.bump, - root: this.root, - temporal: this.temporal.toBase58(), - }; - } -} - -/** - * @category Accounts - * @category generated - */ -export const merkleDistributorBeet = new beet.BeetStruct< - MerkleDistributor, - MerkleDistributorArgs & { - accountDiscriminator: number[] /* size: 8 */; - } ->( - [ - ['accountDiscriminator', beet.uniformFixedSizeArray(beet.u8, 8)], - ['base', beetSolana.publicKey], - ['bump', beet.u8], - ['root', beet.uniformFixedSizeArray(beet.u8, 32)], - ['temporal', beetSolana.publicKey], - ], - MerkleDistributor.fromArgs, - 'MerkleDistributor', -); diff --git a/gumdrop/js/src/generated/accounts/index.ts b/gumdrop/js/src/generated/accounts/index.ts deleted file mode 100644 index b3af922bce..0000000000 --- a/gumdrop/js/src/generated/accounts/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './CandyMachine'; -export * from './ClaimCount'; -export * from './ClaimStatus'; -export * from './MerkleDistributor'; diff --git a/gumdrop/js/src/generated/errors/index.ts b/gumdrop/js/src/generated/errors/index.ts deleted file mode 100644 index b5edfe1532..0000000000 --- a/gumdrop/js/src/generated/errors/index.ts +++ /dev/null @@ -1,132 +0,0 @@ -/** - * This code was GENERATED using the solita package. - * Please DO NOT EDIT THIS FILE, instead rerun solita to update it or write a wrapper to add functionality. - * - * See: https://github.com/metaplex-foundation/solita - */ - -type ErrorWithCode = Error & { code: number }; -type MaybeErrorWithCode = ErrorWithCode | null | undefined; - -const createErrorFromCodeLookup: Map ErrorWithCode> = new Map(); -const createErrorFromNameLookup: Map ErrorWithCode> = new Map(); - -/** - * InvalidProof: 'Invalid Merkle proof.' - * - * @category Errors - * @category generated - */ -export class InvalidProofError extends Error { - readonly code: number = 0x1770; - readonly name: string = 'InvalidProof'; - constructor() { - super('Invalid Merkle proof.'); - if (typeof Error.captureStackTrace === 'function') { - Error.captureStackTrace(this, InvalidProofError); - } - } -} - -createErrorFromCodeLookup.set(0x1770, () => new InvalidProofError()); -createErrorFromNameLookup.set('InvalidProof', () => new InvalidProofError()); - -/** - * DropAlreadyClaimed: 'Drop already claimed.' - * - * @category Errors - * @category generated - */ -export class DropAlreadyClaimedError extends Error { - readonly code: number = 0x1771; - readonly name: string = 'DropAlreadyClaimed'; - constructor() { - super('Drop already claimed.'); - if (typeof Error.captureStackTrace === 'function') { - Error.captureStackTrace(this, DropAlreadyClaimedError); - } - } -} - -createErrorFromCodeLookup.set(0x1771, () => new DropAlreadyClaimedError()); -createErrorFromNameLookup.set('DropAlreadyClaimed', () => new DropAlreadyClaimedError()); - -/** - * Unauthorized: 'Account is not authorized to execute this instruction' - * - * @category Errors - * @category generated - */ -export class UnauthorizedError extends Error { - readonly code: number = 0x1772; - readonly name: string = 'Unauthorized'; - constructor() { - super('Account is not authorized to execute this instruction'); - if (typeof Error.captureStackTrace === 'function') { - Error.captureStackTrace(this, UnauthorizedError); - } - } -} - -createErrorFromCodeLookup.set(0x1772, () => new UnauthorizedError()); -createErrorFromNameLookup.set('Unauthorized', () => new UnauthorizedError()); - -/** - * OwnerMismatch: 'Token account owner did not match intended owner' - * - * @category Errors - * @category generated - */ -export class OwnerMismatchError extends Error { - readonly code: number = 0x1773; - readonly name: string = 'OwnerMismatch'; - constructor() { - super('Token account owner did not match intended owner'); - if (typeof Error.captureStackTrace === 'function') { - Error.captureStackTrace(this, OwnerMismatchError); - } - } -} - -createErrorFromCodeLookup.set(0x1773, () => new OwnerMismatchError()); -createErrorFromNameLookup.set('OwnerMismatch', () => new OwnerMismatchError()); - -/** - * TemporalMismatch: 'Temporal signer did not match distributor' - * - * @category Errors - * @category generated - */ -export class TemporalMismatchError extends Error { - readonly code: number = 0x1774; - readonly name: string = 'TemporalMismatch'; - constructor() { - super('Temporal signer did not match distributor'); - if (typeof Error.captureStackTrace === 'function') { - Error.captureStackTrace(this, TemporalMismatchError); - } - } -} - -createErrorFromCodeLookup.set(0x1774, () => new TemporalMismatchError()); -createErrorFromNameLookup.set('TemporalMismatch', () => new TemporalMismatchError()); - -/** - * Attempts to resolve a custom program error from the provided error code. - * @category Errors - * @category generated - */ -export function errorFromCode(code: number): MaybeErrorWithCode { - const createError = createErrorFromCodeLookup.get(code); - return createError != null ? createError() : null; -} - -/** - * Attempts to resolve a custom program error from the provided error name, i.e. 'Unauthorized'. - * @category Errors - * @category generated - */ -export function errorFromName(name: string): MaybeErrorWithCode { - const createError = createErrorFromNameLookup.get(name); - return createError != null ? createError() : null; -} diff --git a/gumdrop/js/src/generated/index.ts b/gumdrop/js/src/generated/index.ts deleted file mode 100644 index 42a892d8f9..0000000000 --- a/gumdrop/js/src/generated/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { PublicKey } from '@solana/web3.js'; -export * from './accounts'; -export * from './errors'; -export * from './instructions'; -export * from './types'; - -/** - * Program address - * - * @category constants - * @category generated - */ -export const PROGRAM_ADDRESS = 'gdrpGjVffourzkdDRrQmySw4aTHr8a3xmQzzxSwFD1a'; - -/** - * Program publick key - * - * @category constants - * @category generated - */ -export const PROGRAM_ID = new PublicKey(PROGRAM_ADDRESS); diff --git a/gumdrop/js/src/generated/instructions/claim.ts b/gumdrop/js/src/generated/instructions/claim.ts deleted file mode 100644 index d79737acb5..0000000000 --- a/gumdrop/js/src/generated/instructions/claim.ts +++ /dev/null @@ -1,131 +0,0 @@ -/** - * This code was GENERATED using the solita package. - * Please DO NOT EDIT THIS FILE, instead rerun solita to update it or write a wrapper to add functionality. - * - * See: https://github.com/metaplex-foundation/solita - */ - -import * as splToken from '@solana/spl-token'; -import * as beet from '@metaplex-foundation/beet'; -import * as web3 from '@solana/web3.js'; -import * as beetSolana from '@metaplex-foundation/beet-solana'; - -/** - * @category Instructions - * @category Claim - * @category generated - */ -export type ClaimInstructionArgs = { - bump: number; - index: beet.bignum; - amount: beet.bignum; - claimantSecret: web3.PublicKey; - proof: number[] /* size: 32 */[]; -}; -/** - * @category Instructions - * @category Claim - * @category generated - */ -const claimStruct = new beet.FixableBeetArgsStruct< - ClaimInstructionArgs & { - instructionDiscriminator: number[] /* size: 8 */; - } ->( - [ - ['instructionDiscriminator', beet.uniformFixedSizeArray(beet.u8, 8)], - ['bump', beet.u8], - ['index', beet.u64], - ['amount', beet.u64], - ['claimantSecret', beetSolana.publicKey], - ['proof', beet.array(beet.uniformFixedSizeArray(beet.u8, 32))], - ], - 'ClaimInstructionArgs', -); -/** - * Accounts required by the _claim_ instruction - * @category Instructions - * @category Claim - * @category generated - */ -export type ClaimInstructionAccounts = { - distributor: web3.PublicKey; - claimStatus: web3.PublicKey; - from: web3.PublicKey; - to: web3.PublicKey; - temporal: web3.PublicKey; - payer: web3.PublicKey; -}; - -const claimInstructionDiscriminator = [62, 198, 214, 193, 213, 159, 108, 210]; - -/** - * Creates a _Claim_ instruction. - * - * @param accounts that will be accessed while the instruction is processed - * @param args to provide as instruction data to the program - * - * @category Instructions - * @category Claim - * @category generated - */ -export function createClaimInstruction( - accounts: ClaimInstructionAccounts, - args: ClaimInstructionArgs, -) { - const { distributor, claimStatus, from, to, temporal, payer } = accounts; - - const [data] = claimStruct.serialize({ - instructionDiscriminator: claimInstructionDiscriminator, - ...args, - }); - const keys: web3.AccountMeta[] = [ - { - pubkey: distributor, - isWritable: true, - isSigner: false, - }, - { - pubkey: claimStatus, - isWritable: true, - isSigner: false, - }, - { - pubkey: from, - isWritable: true, - isSigner: false, - }, - { - pubkey: to, - isWritable: true, - isSigner: false, - }, - { - pubkey: temporal, - isWritable: false, - isSigner: true, - }, - { - pubkey: payer, - isWritable: false, - isSigner: true, - }, - { - pubkey: web3.SystemProgram.programId, - isWritable: false, - isSigner: false, - }, - { - pubkey: splToken.TOKEN_PROGRAM_ID, - isWritable: false, - isSigner: false, - }, - ]; - - const ix = new web3.TransactionInstruction({ - programId: new web3.PublicKey('gdrpGjVffourzkdDRrQmySw4aTHr8a3xmQzzxSwFD1a'), - keys, - data, - }); - return ix; -} diff --git a/gumdrop/js/src/generated/instructions/claimCandy.ts b/gumdrop/js/src/generated/instructions/claimCandy.ts deleted file mode 100644 index a05cfeed48..0000000000 --- a/gumdrop/js/src/generated/instructions/claimCandy.ts +++ /dev/null @@ -1,201 +0,0 @@ -/** - * This code was GENERATED using the solita package. - * Please DO NOT EDIT THIS FILE, instead rerun solita to update it or write a wrapper to add functionality. - * - * See: https://github.com/metaplex-foundation/solita - */ - -import * as splToken from '@solana/spl-token'; -import * as beet from '@metaplex-foundation/beet'; -import * as web3 from '@solana/web3.js'; -import * as beetSolana from '@metaplex-foundation/beet-solana'; - -/** - * @category Instructions - * @category ClaimCandy - * @category generated - */ -export type ClaimCandyInstructionArgs = { - walletBump: number; - claimBump: number; - index: beet.bignum; - amount: beet.bignum; - claimantSecret: web3.PublicKey; - proof: number[] /* size: 32 */[]; -}; -/** - * @category Instructions - * @category ClaimCandy - * @category generated - */ -const claimCandyStruct = new beet.FixableBeetArgsStruct< - ClaimCandyInstructionArgs & { - instructionDiscriminator: number[] /* size: 8 */; - } ->( - [ - ['instructionDiscriminator', beet.uniformFixedSizeArray(beet.u8, 8)], - ['walletBump', beet.u8], - ['claimBump', beet.u8], - ['index', beet.u64], - ['amount', beet.u64], - ['claimantSecret', beetSolana.publicKey], - ['proof', beet.array(beet.uniformFixedSizeArray(beet.u8, 32))], - ], - 'ClaimCandyInstructionArgs', -); -/** - * Accounts required by the _claimCandy_ instruction - * @category Instructions - * @category ClaimCandy - * @category generated - */ -export type ClaimCandyInstructionAccounts = { - distributor: web3.PublicKey; - distributorWallet: web3.PublicKey; - claimCount: web3.PublicKey; - temporal: web3.PublicKey; - payer: web3.PublicKey; - candyMachineConfig: web3.PublicKey; - candyMachine: web3.PublicKey; - candyMachineWallet: web3.PublicKey; - candyMachineMint: web3.PublicKey; - candyMachineMetadata: web3.PublicKey; - candyMachineMasterEdition: web3.PublicKey; - tokenMetadataProgram: web3.PublicKey; - candyMachineProgram: web3.PublicKey; - clock: web3.PublicKey; -}; - -const claimCandyInstructionDiscriminator = [87, 176, 177, 90, 136, 95, 83, 242]; - -/** - * Creates a _ClaimCandy_ instruction. - * - * @param accounts that will be accessed while the instruction is processed - * @param args to provide as instruction data to the program - * - * @category Instructions - * @category ClaimCandy - * @category generated - */ -export function createClaimCandyInstruction( - accounts: ClaimCandyInstructionAccounts, - args: ClaimCandyInstructionArgs, -) { - const { - distributor, - distributorWallet, - claimCount, - temporal, - payer, - candyMachineConfig, - candyMachine, - candyMachineWallet, - candyMachineMint, - candyMachineMetadata, - candyMachineMasterEdition, - tokenMetadataProgram, - candyMachineProgram, - clock, - } = accounts; - - const [data] = claimCandyStruct.serialize({ - instructionDiscriminator: claimCandyInstructionDiscriminator, - ...args, - }); - const keys: web3.AccountMeta[] = [ - { - pubkey: distributor, - isWritable: true, - isSigner: false, - }, - { - pubkey: distributorWallet, - isWritable: true, - isSigner: false, - }, - { - pubkey: claimCount, - isWritable: true, - isSigner: false, - }, - { - pubkey: temporal, - isWritable: false, - isSigner: true, - }, - { - pubkey: payer, - isWritable: false, - isSigner: true, - }, - { - pubkey: candyMachineConfig, - isWritable: false, - isSigner: false, - }, - { - pubkey: candyMachine, - isWritable: true, - isSigner: false, - }, - { - pubkey: candyMachineWallet, - isWritable: true, - isSigner: false, - }, - { - pubkey: candyMachineMint, - isWritable: true, - isSigner: false, - }, - { - pubkey: candyMachineMetadata, - isWritable: true, - isSigner: false, - }, - { - pubkey: candyMachineMasterEdition, - isWritable: true, - isSigner: false, - }, - { - pubkey: web3.SystemProgram.programId, - isWritable: false, - isSigner: false, - }, - { - pubkey: splToken.TOKEN_PROGRAM_ID, - isWritable: false, - isSigner: false, - }, - { - pubkey: tokenMetadataProgram, - isWritable: false, - isSigner: false, - }, - { - pubkey: candyMachineProgram, - isWritable: false, - isSigner: false, - }, - { - pubkey: web3.SYSVAR_RENT_PUBKEY, - isWritable: false, - isSigner: false, - }, - { - pubkey: clock, - isWritable: false, - isSigner: false, - }, - ]; - - const ix = new web3.TransactionInstruction({ - programId: new web3.PublicKey('gdrpGjVffourzkdDRrQmySw4aTHr8a3xmQzzxSwFD1a'), - keys, - data, - }); - return ix; -} diff --git a/gumdrop/js/src/generated/instructions/claimEdition.ts b/gumdrop/js/src/generated/instructions/claimEdition.ts deleted file mode 100644 index 16dced5d1d..0000000000 --- a/gumdrop/js/src/generated/instructions/claimEdition.ts +++ /dev/null @@ -1,208 +0,0 @@ -/** - * This code was GENERATED using the solita package. - * Please DO NOT EDIT THIS FILE, instead rerun solita to update it or write a wrapper to add functionality. - * - * See: https://github.com/metaplex-foundation/solita - */ - -import * as splToken from '@solana/spl-token'; -import * as beet from '@metaplex-foundation/beet'; -import * as web3 from '@solana/web3.js'; -import * as beetSolana from '@metaplex-foundation/beet-solana'; - -/** - * @category Instructions - * @category ClaimEdition - * @category generated - */ -export type ClaimEditionInstructionArgs = { - claimBump: number; - index: beet.bignum; - amount: beet.bignum; - edition: beet.bignum; - claimantSecret: web3.PublicKey; - proof: number[] /* size: 32 */[]; -}; -/** - * @category Instructions - * @category ClaimEdition - * @category generated - */ -const claimEditionStruct = new beet.FixableBeetArgsStruct< - ClaimEditionInstructionArgs & { - instructionDiscriminator: number[] /* size: 8 */; - } ->( - [ - ['instructionDiscriminator', beet.uniformFixedSizeArray(beet.u8, 8)], - ['claimBump', beet.u8], - ['index', beet.u64], - ['amount', beet.u64], - ['edition', beet.u64], - ['claimantSecret', beetSolana.publicKey], - ['proof', beet.array(beet.uniformFixedSizeArray(beet.u8, 32))], - ], - 'ClaimEditionInstructionArgs', -); -/** - * Accounts required by the _claimEdition_ instruction - * @category Instructions - * @category ClaimEdition - * @category generated - */ -export type ClaimEditionInstructionAccounts = { - distributor: web3.PublicKey; - claimCount: web3.PublicKey; - temporal: web3.PublicKey; - payer: web3.PublicKey; - metadataNewMetadata: web3.PublicKey; - metadataNewEdition: web3.PublicKey; - metadataMasterEdition: web3.PublicKey; - metadataNewMint: web3.PublicKey; - metadataEditionMarkPda: web3.PublicKey; - metadataNewMintAuthority: web3.PublicKey; - metadataMasterTokenAccount: web3.PublicKey; - metadataNewUpdateAuthority: web3.PublicKey; - metadataMasterMetadata: web3.PublicKey; - metadataMasterMint: web3.PublicKey; - tokenMetadataProgram: web3.PublicKey; -}; - -const claimEditionInstructionDiscriminator = [150, 83, 124, 180, 53, 35, 144, 248]; - -/** - * Creates a _ClaimEdition_ instruction. - * - * @param accounts that will be accessed while the instruction is processed - * @param args to provide as instruction data to the program - * - * @category Instructions - * @category ClaimEdition - * @category generated - */ -export function createClaimEditionInstruction( - accounts: ClaimEditionInstructionAccounts, - args: ClaimEditionInstructionArgs, -) { - const { - distributor, - claimCount, - temporal, - payer, - metadataNewMetadata, - metadataNewEdition, - metadataMasterEdition, - metadataNewMint, - metadataEditionMarkPda, - metadataNewMintAuthority, - metadataMasterTokenAccount, - metadataNewUpdateAuthority, - metadataMasterMetadata, - metadataMasterMint, - tokenMetadataProgram, - } = accounts; - - const [data] = claimEditionStruct.serialize({ - instructionDiscriminator: claimEditionInstructionDiscriminator, - ...args, - }); - const keys: web3.AccountMeta[] = [ - { - pubkey: distributor, - isWritable: true, - isSigner: false, - }, - { - pubkey: claimCount, - isWritable: true, - isSigner: false, - }, - { - pubkey: temporal, - isWritable: false, - isSigner: true, - }, - { - pubkey: payer, - isWritable: false, - isSigner: true, - }, - { - pubkey: metadataNewMetadata, - isWritable: true, - isSigner: false, - }, - { - pubkey: metadataNewEdition, - isWritable: true, - isSigner: false, - }, - { - pubkey: metadataMasterEdition, - isWritable: true, - isSigner: false, - }, - { - pubkey: metadataNewMint, - isWritable: true, - isSigner: false, - }, - { - pubkey: metadataEditionMarkPda, - isWritable: true, - isSigner: false, - }, - { - pubkey: metadataNewMintAuthority, - isWritable: false, - isSigner: true, - }, - { - pubkey: metadataMasterTokenAccount, - isWritable: false, - isSigner: false, - }, - { - pubkey: metadataNewUpdateAuthority, - isWritable: false, - isSigner: false, - }, - { - pubkey: metadataMasterMetadata, - isWritable: false, - isSigner: false, - }, - { - pubkey: metadataMasterMint, - isWritable: false, - isSigner: false, - }, - { - pubkey: web3.SystemProgram.programId, - isWritable: false, - isSigner: false, - }, - { - pubkey: splToken.TOKEN_PROGRAM_ID, - isWritable: false, - isSigner: false, - }, - { - pubkey: tokenMetadataProgram, - isWritable: false, - isSigner: false, - }, - { - pubkey: web3.SYSVAR_RENT_PUBKEY, - isWritable: false, - isSigner: false, - }, - ]; - - const ix = new web3.TransactionInstruction({ - programId: new web3.PublicKey('gdrpGjVffourzkdDRrQmySw4aTHr8a3xmQzzxSwFD1a'), - keys, - data, - }); - return ix; -} diff --git a/gumdrop/js/src/generated/instructions/closeDistributor.ts b/gumdrop/js/src/generated/instructions/closeDistributor.ts deleted file mode 100644 index e3e9f26af1..0000000000 --- a/gumdrop/js/src/generated/instructions/closeDistributor.ts +++ /dev/null @@ -1,112 +0,0 @@ -/** - * This code was GENERATED using the solita package. - * Please DO NOT EDIT THIS FILE, instead rerun solita to update it or write a wrapper to add functionality. - * - * See: https://github.com/metaplex-foundation/solita - */ - -import * as splToken from '@solana/spl-token'; -import * as beet from '@metaplex-foundation/beet'; -import * as web3 from '@solana/web3.js'; - -/** - * @category Instructions - * @category CloseDistributor - * @category generated - */ -export type CloseDistributorInstructionArgs = { - bump: number; - walletBump: number; -}; -/** - * @category Instructions - * @category CloseDistributor - * @category generated - */ -const closeDistributorStruct = new beet.BeetArgsStruct< - CloseDistributorInstructionArgs & { - instructionDiscriminator: number[] /* size: 8 */; - } ->( - [ - ['instructionDiscriminator', beet.uniformFixedSizeArray(beet.u8, 8)], - ['bump', beet.u8], - ['walletBump', beet.u8], - ], - 'CloseDistributorInstructionArgs', -); -/** - * Accounts required by the _closeDistributor_ instruction - * @category Instructions - * @category CloseDistributor - * @category generated - */ -export type CloseDistributorInstructionAccounts = { - base: web3.PublicKey; - distributor: web3.PublicKey; - distributorWallet: web3.PublicKey; - receiver: web3.PublicKey; -}; - -const closeDistributorInstructionDiscriminator = [202, 56, 180, 143, 46, 104, 106, 112]; - -/** - * Creates a _CloseDistributor_ instruction. - * - * @param accounts that will be accessed while the instruction is processed - * @param args to provide as instruction data to the program - * - * @category Instructions - * @category CloseDistributor - * @category generated - */ -export function createCloseDistributorInstruction( - accounts: CloseDistributorInstructionAccounts, - args: CloseDistributorInstructionArgs, -) { - const { base, distributor, distributorWallet, receiver } = accounts; - - const [data] = closeDistributorStruct.serialize({ - instructionDiscriminator: closeDistributorInstructionDiscriminator, - ...args, - }); - const keys: web3.AccountMeta[] = [ - { - pubkey: base, - isWritable: false, - isSigner: true, - }, - { - pubkey: distributor, - isWritable: true, - isSigner: false, - }, - { - pubkey: distributorWallet, - isWritable: true, - isSigner: false, - }, - { - pubkey: receiver, - isWritable: false, - isSigner: false, - }, - { - pubkey: web3.SystemProgram.programId, - isWritable: false, - isSigner: false, - }, - { - pubkey: splToken.TOKEN_PROGRAM_ID, - isWritable: false, - isSigner: false, - }, - ]; - - const ix = new web3.TransactionInstruction({ - programId: new web3.PublicKey('gdrpGjVffourzkdDRrQmySw4aTHr8a3xmQzzxSwFD1a'), - keys, - data, - }); - return ix; -} diff --git a/gumdrop/js/src/generated/instructions/closeDistributorTokenAccount.ts b/gumdrop/js/src/generated/instructions/closeDistributorTokenAccount.ts deleted file mode 100644 index f446980e99..0000000000 --- a/gumdrop/js/src/generated/instructions/closeDistributorTokenAccount.ts +++ /dev/null @@ -1,118 +0,0 @@ -/** - * This code was GENERATED using the solita package. - * Please DO NOT EDIT THIS FILE, instead rerun solita to update it or write a wrapper to add functionality. - * - * See: https://github.com/metaplex-foundation/solita - */ - -import * as splToken from '@solana/spl-token'; -import * as beet from '@metaplex-foundation/beet'; -import * as web3 from '@solana/web3.js'; - -/** - * @category Instructions - * @category CloseDistributorTokenAccount - * @category generated - */ -export type CloseDistributorTokenAccountInstructionArgs = { - bump: number; -}; -/** - * @category Instructions - * @category CloseDistributorTokenAccount - * @category generated - */ -const closeDistributorTokenAccountStruct = new beet.BeetArgsStruct< - CloseDistributorTokenAccountInstructionArgs & { - instructionDiscriminator: number[] /* size: 8 */; - } ->( - [ - ['instructionDiscriminator', beet.uniformFixedSizeArray(beet.u8, 8)], - ['bump', beet.u8], - ], - 'CloseDistributorTokenAccountInstructionArgs', -); -/** - * Accounts required by the _closeDistributorTokenAccount_ instruction - * @category Instructions - * @category CloseDistributorTokenAccount - * @category generated - */ -export type CloseDistributorTokenAccountInstructionAccounts = { - base: web3.PublicKey; - distributor: web3.PublicKey; - from: web3.PublicKey; - to: web3.PublicKey; - receiver: web3.PublicKey; -}; - -const closeDistributorTokenAccountInstructionDiscriminator = [ - 156, 174, 153, 120, 102, 150, 134, 142, -]; - -/** - * Creates a _CloseDistributorTokenAccount_ instruction. - * - * @param accounts that will be accessed while the instruction is processed - * @param args to provide as instruction data to the program - * - * @category Instructions - * @category CloseDistributorTokenAccount - * @category generated - */ -export function createCloseDistributorTokenAccountInstruction( - accounts: CloseDistributorTokenAccountInstructionAccounts, - args: CloseDistributorTokenAccountInstructionArgs, -) { - const { base, distributor, from, to, receiver } = accounts; - - const [data] = closeDistributorTokenAccountStruct.serialize({ - instructionDiscriminator: closeDistributorTokenAccountInstructionDiscriminator, - ...args, - }); - const keys: web3.AccountMeta[] = [ - { - pubkey: base, - isWritable: false, - isSigner: true, - }, - { - pubkey: distributor, - isWritable: false, - isSigner: false, - }, - { - pubkey: from, - isWritable: true, - isSigner: false, - }, - { - pubkey: to, - isWritable: true, - isSigner: false, - }, - { - pubkey: receiver, - isWritable: true, - isSigner: false, - }, - { - pubkey: web3.SystemProgram.programId, - isWritable: false, - isSigner: false, - }, - { - pubkey: splToken.TOKEN_PROGRAM_ID, - isWritable: false, - isSigner: false, - }, - ]; - - const ix = new web3.TransactionInstruction({ - programId: new web3.PublicKey('gdrpGjVffourzkdDRrQmySw4aTHr8a3xmQzzxSwFD1a'), - keys, - data, - }); - return ix; -} diff --git a/gumdrop/js/src/generated/instructions/index.ts b/gumdrop/js/src/generated/instructions/index.ts deleted file mode 100644 index d81dd10f3b..0000000000 --- a/gumdrop/js/src/generated/instructions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from './claim'; -export * from './claimCandy'; -export * from './claimEdition'; -export * from './closeDistributor'; -export * from './closeDistributorTokenAccount'; -export * from './newDistributor'; diff --git a/gumdrop/js/src/generated/instructions/newDistributor.ts b/gumdrop/js/src/generated/instructions/newDistributor.ts deleted file mode 100644 index 3de9fe9909..0000000000 --- a/gumdrop/js/src/generated/instructions/newDistributor.ts +++ /dev/null @@ -1,103 +0,0 @@ -/** - * This code was GENERATED using the solita package. - * Please DO NOT EDIT THIS FILE, instead rerun solita to update it or write a wrapper to add functionality. - * - * See: https://github.com/metaplex-foundation/solita - */ - -import * as web3 from '@solana/web3.js'; -import * as beet from '@metaplex-foundation/beet'; -import * as beetSolana from '@metaplex-foundation/beet-solana'; - -/** - * @category Instructions - * @category NewDistributor - * @category generated - */ -export type NewDistributorInstructionArgs = { - bump: number; - root: number[] /* size: 32 */; - temporal: web3.PublicKey; -}; -/** - * @category Instructions - * @category NewDistributor - * @category generated - */ -const newDistributorStruct = new beet.BeetArgsStruct< - NewDistributorInstructionArgs & { - instructionDiscriminator: number[] /* size: 8 */; - } ->( - [ - ['instructionDiscriminator', beet.uniformFixedSizeArray(beet.u8, 8)], - ['bump', beet.u8], - ['root', beet.uniformFixedSizeArray(beet.u8, 32)], - ['temporal', beetSolana.publicKey], - ], - 'NewDistributorInstructionArgs', -); -/** - * Accounts required by the _newDistributor_ instruction - * @category Instructions - * @category NewDistributor - * @category generated - */ -export type NewDistributorInstructionAccounts = { - base: web3.PublicKey; - distributor: web3.PublicKey; - payer: web3.PublicKey; -}; - -const newDistributorInstructionDiscriminator = [32, 139, 112, 171, 0, 2, 225, 155]; - -/** - * Creates a _NewDistributor_ instruction. - * - * @param accounts that will be accessed while the instruction is processed - * @param args to provide as instruction data to the program - * - * @category Instructions - * @category NewDistributor - * @category generated - */ -export function createNewDistributorInstruction( - accounts: NewDistributorInstructionAccounts, - args: NewDistributorInstructionArgs, -) { - const { base, distributor, payer } = accounts; - - const [data] = newDistributorStruct.serialize({ - instructionDiscriminator: newDistributorInstructionDiscriminator, - ...args, - }); - const keys: web3.AccountMeta[] = [ - { - pubkey: base, - isWritable: false, - isSigner: true, - }, - { - pubkey: distributor, - isWritable: true, - isSigner: false, - }, - { - pubkey: payer, - isWritable: false, - isSigner: true, - }, - { - pubkey: web3.SystemProgram.programId, - isWritable: false, - isSigner: false, - }, - ]; - - const ix = new web3.TransactionInstruction({ - programId: new web3.PublicKey('gdrpGjVffourzkdDRrQmySw4aTHr8a3xmQzzxSwFD1a'), - keys, - data, - }); - return ix; -} diff --git a/gumdrop/js/src/generated/types/CandyMachineData.ts b/gumdrop/js/src/generated/types/CandyMachineData.ts deleted file mode 100644 index 5b24b1e418..0000000000 --- a/gumdrop/js/src/generated/types/CandyMachineData.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * This code was GENERATED using the solita package. - * Please DO NOT EDIT THIS FILE, instead rerun solita to update it or write a wrapper to add functionality. - * - * See: https://github.com/metaplex-foundation/solita - */ - -import * as beet from '@metaplex-foundation/beet'; -export type CandyMachineData = { - uuid: string; - price: beet.bignum; - itemsAvailable: beet.bignum; - goLiveDate: beet.COption; -}; - -/** - * @category userTypes - * @category generated - */ -export const candyMachineDataBeet = new beet.FixableBeetArgsStruct( - [ - ['uuid', beet.utf8String], - ['price', beet.u64], - ['itemsAvailable', beet.u64], - ['goLiveDate', beet.coption(beet.i64)], - ], - 'CandyMachineData', -); diff --git a/gumdrop/js/src/generated/types/index.ts b/gumdrop/js/src/generated/types/index.ts deleted file mode 100644 index ab94d42f0f..0000000000 --- a/gumdrop/js/src/generated/types/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './CandyMachineData'; diff --git a/gumdrop/js/src/mpl-gumdrop.ts b/gumdrop/js/src/mpl-gumdrop.ts deleted file mode 100644 index 3d180b3468..0000000000 --- a/gumdrop/js/src/mpl-gumdrop.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './errors'; -export * from './generated'; diff --git a/gumdrop/js/test/gumdrop.ts b/gumdrop/js/test/gumdrop.ts deleted file mode 100644 index 6b9ae7ce3a..0000000000 --- a/gumdrop/js/test/gumdrop.ts +++ /dev/null @@ -1,6 +0,0 @@ -import test from 'tape'; - -test('gumdrop test place holder', (t) => { - t.comment('TODO: add gumdrop tests'); - t.end(); -}); diff --git a/gumdrop/js/tsconfig.build.json b/gumdrop/js/tsconfig.build.json deleted file mode 100644 index f6d2d1783f..0000000000 --- a/gumdrop/js/tsconfig.build.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../tsconfig.build.json", - "compilerOptions": { - "outDir": "./dist", - "baseUrl": "." - }, - "include": ["./src"], - "exclude": ["node_modules", "dist", "build", "lib"] -} diff --git a/gumdrop/js/tsconfig.json b/gumdrop/js/tsconfig.json deleted file mode 100644 index b070394b14..0000000000 --- a/gumdrop/js/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "./tsconfig.build.json", - "compilerOptions": { - "rootDir": "." - }, - "include": ["./src", "test"] -} diff --git a/gumdrop/js/typedoc.json b/gumdrop/js/typedoc.json deleted file mode 100644 index e3f8e23c60..0000000000 --- a/gumdrop/js/typedoc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "entryPoints": ["src/mpl-gumdrop.ts"], - "excludeInternal": true, - "excludePrivate": true, - "out": "./docs" -} diff --git a/gumdrop/js/yarn.lock b/gumdrop/js/yarn.lock deleted file mode 100644 index 0092d0a2f4..0000000000 --- a/gumdrop/js/yarn.lock +++ /dev/null @@ -1,1877 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2": - 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" - -"@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.4.0" - globals "^13.15.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@humanwhocodes/config-array@^0.10.5": - version "0.10.7" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.7.tgz#6d53769fd0c222767e6452e8ebda825c22e9f0dc" - integrity sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w== - 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" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@metaplex-foundation/beet-solana@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@metaplex-foundation/beet-solana/-/beet-solana-0.1.1.tgz#85deec5d3354ee1da868bd6bb0de5ae1ea92d209" - integrity sha512-QV2DbxjaJWLkMvn12OC09g+r7a6R0uNwf8msYuOUSw4cG7amXzvFb7s0bh4IxY3Rk8/0ma0PfKi/FEdC7Hi4Pg== - dependencies: - "@metaplex-foundation/beet" ">=0.1.0" - "@solana/web3.js" "^1.31.0" - -"@metaplex-foundation/beet@>=0.1.0": - version "0.7.1" - resolved "https://registry.yarnpkg.com/@metaplex-foundation/beet/-/beet-0.7.1.tgz#0975314211643f87b5f6f3e584fa31abcf4c612c" - integrity sha512-hNCEnS2WyCiYyko82rwuISsBY3KYpe828ubsd2ckeqZr7tl0WVLivGkoyA/qdiaaHEBGdGl71OpfWa2rqL3DiA== - dependencies: - ansicolors "^0.3.2" - bn.js "^5.2.0" - debug "^4.3.3" - -"@metaplex-foundation/beet@^0.1.0": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@metaplex-foundation/beet/-/beet-0.1.4.tgz#888dfd68fbbb027c045a4b6649bfc85b04610e26" - integrity sha512-gUlgl4h9XzSvSx7lUDvYQuy1eMxu4UXbt5MSR9K/dYIHHd3gcCxm8/6vn0VnUXMvpwVHS8tezxlsaKu+TIu6zQ== - dependencies: - ansicolors "^0.3.2" - bn.js "^5.2.0" - debug "^4.3.3" - -"@metaplex-foundation/cusper@^0.0.2": - version "0.0.2" - resolved "https://registry.yarnpkg.com/@metaplex-foundation/cusper/-/cusper-0.0.2.tgz#dc2032a452d6c269e25f016aa4dd63600e2af975" - integrity sha512-S9RulC2fFCFOQraz61bij+5YCHhSO9llJegK8c8Y6731fSi6snUSQJdCUqYS8AIgR0TKbQvdvgSyIIdbDFZbBA== - -"@metaplex-foundation/solita@^0.2.0": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@metaplex-foundation/solita/-/solita-0.2.1.tgz#21fb22f98c7d989d37985c48722dc31a5722261f" - integrity sha512-dEC5g2/9MK9io+sglYmItjmmERkw/yKqQNEPHac5aW/QFQRdzRySggulE0UbCiuVegqwIKMEPxqOKf4/w7n86A== - dependencies: - "@metaplex-foundation/beet" "^0.1.0" - "@metaplex-foundation/beet-solana" "^0.1.1" - "@solana/web3.js" "^1.36.0" - camelcase "^6.2.1" - debug "^4.3.3" - js-sha256 "^0.9.0" - prettier "^2.5.1" - snake-case "^3.0.4" - spok "^1.4.3" - -"@noble/ed25519@^1.7.0": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.1.tgz#6899660f6fbb97798a6fbd227227c4589a454724" - integrity sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw== - -"@noble/hashes@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.3.tgz#360afc77610e0a61f3417e497dcf36862e4f8111" - integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A== - -"@noble/secp256k1@^1.6.3": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.0.tgz#d15357f7c227e751d90aa06b05a0e5cf993ba8c1" - integrity sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw== - -"@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" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@solana/buffer-layout-utils@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz#b45a6cab3293a2eb7597cceb474f229889d875ca" - integrity sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g== - dependencies: - "@solana/buffer-layout" "^4.0.0" - "@solana/web3.js" "^1.32.0" - bigint-buffer "^1.1.5" - bignumber.js "^9.0.1" - -"@solana/buffer-layout@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz#75b1b11adc487234821c81dfae3119b73a5fd734" - integrity sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ== - dependencies: - buffer "~6.0.3" - -"@solana/spl-token@^0.3.5": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.3.5.tgz#cabf9f92d755589420b46e457b9b10a879e755aa" - integrity sha512-0bGC6n415lGjKu02gkLOIpP1wzndSP0SHwN9PefJ+wKAhmfU1rl3AV1Pa41uap2kzSCD6F9642ngNO8KXPvh/g== - dependencies: - "@solana/buffer-layout" "^4.0.0" - "@solana/buffer-layout-utils" "^0.2.0" - buffer "^6.0.3" - -"@solana/web3.js@^1.31.0", "@solana/web3.js@^1.32.0", "@solana/web3.js@^1.35.1", "@solana/web3.js@^1.36.0": - version "1.63.1" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.63.1.tgz#88a19a17f5f4aada73ad70a94044c1067cab2b4d" - integrity sha512-wgEdGVK5FTS2zENxbcGSvKpGZ0jDS6BUdGu8Gn6ns0CzgJkK83u4ip3THSnBPEQ5i/jrqukg998BwV1H67+qiQ== - dependencies: - "@babel/runtime" "^7.12.5" - "@noble/ed25519" "^1.7.0" - "@noble/hashes" "^1.1.2" - "@noble/secp256k1" "^1.6.3" - "@solana/buffer-layout" "^4.0.0" - bigint-buffer "^1.1.5" - bn.js "^5.0.0" - borsh "^0.7.0" - bs58 "^4.0.1" - buffer "6.0.1" - fast-stable-stringify "^1.0.0" - jayson "^3.4.4" - node-fetch "2" - rpc-websockets "^7.5.0" - superstruct "^0.14.2" - -"@types/connect@^3.4.33": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== - dependencies: - "@types/node" "*" - -"@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" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@types/node@*": - version "18.8.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.8.3.tgz#ce750ab4017effa51aed6a7230651778d54e327c" - integrity sha512-0os9vz6BpGwxGe9LOhgP/ncvYN5Tx1fNcd2TM3rD/aCGBkysb+ZWpXEocG24h6ZzOi13+VB8HndAQFezsSOw1w== - -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/tape@^4.13.2": - version "4.13.2" - resolved "https://registry.yarnpkg.com/@types/tape/-/tape-4.13.2.tgz#77215c065b1c7840da3ca5e061337bb4c7258122" - integrity sha512-V1ez/RtYRGN9cNYApw5xf27DpMkTB0033X6a2i3KUmKhSojBfbWN0i3EgZxboUG96WJLHLdOyZ01aiZwVW5aSA== - dependencies: - "@types/node" "*" - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@typescript-eslint/eslint-plugin@^5.4.0": - version "5.39.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.39.0.tgz#778b2d9e7f293502c7feeea6c74dca8eb3e67511" - integrity sha512-xVfKOkBm5iWMNGKQ2fwX5GVgBuHmZBO1tCRwXmY5oAIsPscfwm2UADDuNB8ZVYCtpQvJK4xpjrK7jEhcJ0zY9A== - dependencies: - "@typescript-eslint/scope-manager" "5.39.0" - "@typescript-eslint/type-utils" "5.39.0" - "@typescript-eslint/utils" "5.39.0" - debug "^4.3.4" - ignore "^5.2.0" - regexpp "^3.2.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@^5.4.0": - version "5.39.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.39.0.tgz#93fa0bc980a3a501e081824f6097f7ca30aaa22b" - integrity sha512-PhxLjrZnHShe431sBAGHaNe6BDdxAASDySgsBCGxcBecVCi8NQWxQZMcizNA4g0pN51bBAn/FUfkWG3SDVcGlA== - dependencies: - "@typescript-eslint/scope-manager" "5.39.0" - "@typescript-eslint/types" "5.39.0" - "@typescript-eslint/typescript-estree" "5.39.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.39.0": - version "5.39.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.39.0.tgz#873e1465afa3d6c78d8ed2da68aed266a08008d0" - integrity sha512-/I13vAqmG3dyqMVSZPjsbuNQlYS082Y7OMkwhCfLXYsmlI0ca4nkL7wJ/4gjX70LD4P8Hnw1JywUVVAwepURBw== - dependencies: - "@typescript-eslint/types" "5.39.0" - "@typescript-eslint/visitor-keys" "5.39.0" - -"@typescript-eslint/type-utils@5.39.0": - version "5.39.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.39.0.tgz#0a8c00f95dce4335832ad2dc6bc431c14e32a0a6" - integrity sha512-KJHJkOothljQWzR3t/GunL0TPKY+fGJtnpl+pX+sJ0YiKTz3q2Zr87SGTmFqsCMFrLt5E0+o+S6eQY0FAXj9uA== - dependencies: - "@typescript-eslint/typescript-estree" "5.39.0" - "@typescript-eslint/utils" "5.39.0" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.39.0": - version "5.39.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.39.0.tgz#f4e9f207ebb4579fd854b25c0bf64433bb5ed78d" - integrity sha512-gQMZrnfEBFXK38hYqt8Lkwt8f4U6yq+2H5VDSgP/qiTzC8Nw8JO3OuSUOQ2qW37S/dlwdkHDntkZM6SQhKyPhw== - -"@typescript-eslint/typescript-estree@5.39.0": - version "5.39.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.39.0.tgz#c0316aa04a1a1f4f7f9498e3c13ef1d3dc4cf88b" - integrity sha512-qLFQP0f398sdnogJoLtd43pUgB18Q50QSA+BTE5h3sUxySzbWDpTSdgt4UyxNSozY/oDK2ta6HVAzvGgq8JYnA== - dependencies: - "@typescript-eslint/types" "5.39.0" - "@typescript-eslint/visitor-keys" "5.39.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.39.0": - version "5.39.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.39.0.tgz#b7063cca1dcf08d1d21b0d91db491161ad0be110" - integrity sha512-+DnY5jkpOpgj+EBtYPyHRjXampJfC0yUZZzfzLuUWVZvCuKqSdJVC8UhdWipIw7VKNTfwfAPiOWzYkAwuIhiAg== - dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.39.0" - "@typescript-eslint/types" "5.39.0" - "@typescript-eslint/typescript-estree" "5.39.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/visitor-keys@5.39.0": - version "5.39.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.39.0.tgz#8f41f7d241b47257b081ddba5d3ce80deaae61e2" - integrity sha512-yyE3RPwOG+XJBLrhvsxAidUgybJVQ/hG8BhiJo0k8JSAYfk/CshVcxf0HwP4Jt7WZZ6vLmxdo1p6EyN3tzFTkg== - dependencies: - "@typescript-eslint/types" "5.39.0" - eslint-visitor-keys "^3.3.0" - -JSONStream@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -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== - -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansicolors@^0.3.2, ansicolors@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" - integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.every@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/array.prototype.every/-/array.prototype.every-1.1.3.tgz#31f01b48e1160bc4b49ecab246bf7f765c6686f9" - integrity sha512-vWnriJI//SOMOWtXbU/VXhJ/InfnNHPF6BLKn5WfY8xXy+NWql0fUy20GO3sdqBhCAO+qw8S/E5nJiZX+QFdCA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - is-string "^1.0.7" - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.2: - version "3.0.9" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" - integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== - dependencies: - safe-buffer "^5.0.1" - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bigint-buffer@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442" - integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== - dependencies: - bindings "^1.3.0" - -bignumber.js@^9.0.1: - version "9.1.0" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62" - integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A== - -bindings@^1.3.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bn.js@^5.0.0, bn.js@^5.2.0: - 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== - -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -buffer@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.1.tgz#3cbea8c1463e5a0779e30b66d4c88c6ffa182ac2" - integrity sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bufferutil@^4.0.1: - version "4.0.6" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.6.tgz#ebd6c67c7922a0e902f053e5d8be5ec850e48433" - integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw== - dependencies: - node-gyp-build "^4.3.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^6.2.1: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@^4.1.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" - -deep-equal@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.0.5.tgz#55cd2fe326d83f9cbf7261ef0e060b3f724c5cb9" - integrity sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw== - dependencies: - call-bind "^1.0.0" - es-get-iterator "^1.1.1" - get-intrinsic "^1.0.1" - is-arguments "^1.0.4" - is-date-object "^1.0.2" - is-regex "^1.1.1" - isarray "^2.0.5" - object-is "^1.1.4" - object-keys "^1.1.1" - object.assign "^4.1.2" - regexp.prototype.flags "^1.3.0" - side-channel "^1.0.3" - which-boxed-primitive "^1.0.1" - which-collection "^1.0.1" - which-typed-array "^1.1.2" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -define-properties@^1.1.3, define-properties@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ== - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -dotignore@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" - integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== - dependencies: - minimatch "^3.0.4" - -es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.0: - version "1.20.4" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" - integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== - 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.3" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-weakref "^1.0.2" - object-inspect "^1.12.2" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - safe-regex-test "^1.0.0" - string.prototype.trimend "^1.0.5" - string.prototype.trimstart "^1.0.5" - unbox-primitive "^1.0.2" - -es-get-iterator@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7" - integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.0" - has-symbols "^1.0.1" - is-arguments "^1.1.0" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.5" - isarray "^2.0.5" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -eslint@^8.3.0: - version "8.24.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.24.0.tgz#489516c927a5da11b3979dbfb2679394523383c8" - integrity sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ== - dependencies: - "@eslint/eslintrc" "^1.3.2" - "@humanwhocodes/config-array" "^0.10.5" - "@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" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.4.0" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.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" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.1" - regexpp "^3.2.0" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - -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.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.2.9: - 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" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - dependencies: - reusify "^1.0.4" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functions-have-names@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -get-intrinsic@^1.0.1, get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: - 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" - has-symbols "^1.0.3" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^7.1.3, glob@^7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^13.15.0: - 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" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -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== - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-dynamic-import@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz#9bca87846aa264f2ad224fcd014946f5e5182f52" - integrity sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -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== - -ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -is-arguments@^1.0.4, is-arguments@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.9.0: - 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" - -is-date-object@^1.0.1, is-date-object@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-map@^2.0.1, is-map@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" - integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-regex@^1.1.1, is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-set@^2.0.1, is-set@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" - integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.9.tgz#246d77d2871e7d9f5aeb1d54b9f52c71329ece67" - integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.20.0" - for-each "^0.3.3" - has-tostringtag "^1.0.0" - -is-weakmap@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" - integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-weakset@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" - integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -jayson@^3.4.4: - version "3.7.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.7.0.tgz#b735b12d06d348639ae8230d7a1e2916cb078f25" - integrity sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - JSONStream "^1.3.5" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - lodash "^4.17.20" - uuid "^8.3.2" - ws "^7.4.5" - -js-sdsl@^4.1.4: - version "4.1.5" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.5.tgz#1ff1645e6b4d1b028cd3f862db88c9d887f26e2a" - integrity sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q== - -js-sha256@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" - integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash@^4.17.20: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -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== - -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== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -node-fetch@2: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.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== - -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== - -object-is@^1.1.4, object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -object-keys@^1.1.1: - version "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.2, 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.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier@^2.5.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -regenerator-runtime@^0.13.4: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - -regexp.prototype.flags@^1.3.0, regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve@^2.0.0-next.3: - version "2.0.0-next.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" - integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resumer@^0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" - integrity sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w== - dependencies: - through "~2.3.4" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rpc-websockets@^7.5.0: - version "7.5.0" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.5.0.tgz#bbeb87572e66703ff151e50af1658f98098e2748" - integrity sha512-9tIRi1uZGy7YmDjErf1Ax3wtqdSSLIlnmL5OtOzgd5eqPKbsPpwDP5whUDO2LQay3Xp0CcHlcNSGzacNRluBaQ== - dependencies: - "@babel/runtime" "^7.17.2" - eventemitter3 "^4.0.7" - uuid "^8.3.2" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^5.0.2" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -safe-buffer@^5.0.1: - 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-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - -semver@^7.3.7: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.3, side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -snake-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" - integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -spok@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/spok/-/spok-1.4.3.tgz#8516234e6bd8caf0e10567bd675e15fd03b5ceb8" - integrity sha512-5wFGctwrk638aDs+44u99kohxFNByUq2wo0uShQ9yqxSmsxqx7zKbMo1Busy4s7stZQXU+PhJ/BlVf2XWFEGIw== - dependencies: - ansicolors "~0.3.2" - -string.prototype.trim@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.6.tgz#824960787db37a9e24711802ed0c1d1c0254f83e" - integrity sha512-8lMR2m+U0VJTPp6JjvJTtGyc4FIGq9CdRt7O9p6T0e6K4vjU+OP+SQJpbe/SBmRcCUIvNUnjsbmY6lnMp8MhsQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string.prototype.trimend@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" - integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string.prototype.trimstart@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" - integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -superstruct@^0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b" - integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -tape@^5.5.2: - version "5.6.1" - resolved "https://registry.yarnpkg.com/tape/-/tape-5.6.1.tgz#bbc1420e5e13003cbd7e2cf0efaa091bfb5c970a" - integrity sha512-reNzS3rzsJtKk0f+zJx2XlzIsjJXlIcOIrIxk5shHAG/DzW3BKyMg8UfN79oluYlcWo4lIt56ahLqwgpRT4idg== - dependencies: - array.prototype.every "^1.1.3" - call-bind "^1.0.2" - deep-equal "^2.0.5" - defined "^1.0.0" - dotignore "^0.1.2" - for-each "^0.3.3" - get-package-type "^0.1.0" - glob "^7.2.3" - has "^1.0.3" - has-dynamic-import "^2.0.1" - inherits "^2.0.4" - is-regex "^1.1.4" - minimist "^1.2.6" - object-inspect "^1.12.2" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.4" - resolve "^2.0.0-next.3" - resumer "^0.0.0" - string.prototype.trim "^1.2.6" - through "^2.3.8" - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -"through@>=2.2.7 <3", through@^2.3.8, through@~2.3.4: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.3: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -typescript@^4.6.2: - version "4.8.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" - integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -utf-8-validate@^5.0.2: - version "5.0.9" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.9.tgz#ba16a822fbeedff1a58918f2a6a6b36387493ea3" - integrity sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q== - dependencies: - node-gyp-build "^4.3.0" - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -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-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-collection@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" - integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== - dependencies: - is-map "^2.0.1" - is-set "^2.0.1" - is-weakmap "^2.0.1" - is-weakset "^2.0.1" - -which-typed-array@^1.1.2: - version "1.1.8" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" - integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.20.0" - for-each "^0.3.3" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.9" - -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== - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@^7.4.5: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -ws@^8.5.0: - version "8.9.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.9.0.tgz#2a994bb67144be1b53fe2d23c53c028adeb7f45e" - integrity sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/gumdrop/program/Cargo.lock b/gumdrop/program/Cargo.lock deleted file mode 100644 index def91d9a8e..0000000000 --- a/gumdrop/program/Cargo.lock +++ /dev/null @@ -1,2220 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "aead" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" -dependencies = [ - "generic-array", -] - -[[package]] -name = "aes" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" -dependencies = [ - "cfg-if", - "cipher 0.3.0", - "cpufeatures", - "opaque-debug", -] - -[[package]] -name = "aes-gcm-siv" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589c637f0e68c877bbd59a4599bbe849cac8e5f3e4b5a3ebae8f528cd218dcdc" -dependencies = [ - "aead", - "aes", - "cipher 0.3.0", - "ctr", - "polyval", - "subtle", - "zeroize", -] - -[[package]] -name = "ahash" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" -dependencies = [ - "getrandom 0.2.6", - "once_cell", - "version_check", -] - -[[package]] -name = "aho-corasick" -version = "0.7.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" -dependencies = [ - "memchr", -] - -[[package]] -name = "anchor-attribute-access-control" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf7d535e1381be3de2c0716c0a1c1e32ad9df1042cddcf7bc18d743569e53319" -dependencies = [ - "anchor-syn", - "anyhow", - "proc-macro2", - "quote", - "regex", - "syn", -] - -[[package]] -name = "anchor-attribute-account" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3bcd731f21048a032be27c7791701120e44f3f6371358fc4261a7f716283d29" -dependencies = [ - "anchor-syn", - "anyhow", - "bs58 0.4.0", - "proc-macro2", - "quote", - "rustversion", - "syn", -] - -[[package]] -name = "anchor-attribute-constant" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1be64a48e395fe00b8217287f226078be2cf32dae42fdf8a885b997945c3d28" -dependencies = [ - "anchor-syn", - "proc-macro2", - "syn", -] - -[[package]] -name = "anchor-attribute-error" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ea6713d1938c0da03656ff8a693b17dc0396da66d1ba320557f07e86eca0d4" -dependencies = [ - "anchor-syn", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "anchor-attribute-event" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d401f11efb3644285685f8339829a9786d43ed7490bb1699f33c478d04d5a582" -dependencies = [ - "anchor-syn", - "anyhow", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "anchor-attribute-interface" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6700a6f5c888a9c33fe8afc0c64fd8575fa28d05446037306d0f96102ae4480" -dependencies = [ - "anchor-syn", - "anyhow", - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "anchor-attribute-program" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ad769993b5266714e8939e47fbdede90e5c030333c7522d99a4d4748cf26712" -dependencies = [ - "anchor-syn", - "anyhow", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "anchor-attribute-state" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e677fae4a016a554acdd0e3b7f178d3acafaa7e7ffac6b8690cf4e171f1c116" -dependencies = [ - "anchor-syn", - "anyhow", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "anchor-derive-accounts" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "340beef6809d1c3fcc7ae219153d981e95a8a277ff31985bd7050e32645dc9a8" -dependencies = [ - "anchor-syn", - "anyhow", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "anchor-lang" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "662ceafe667448ee4199a4be2ee83b6bb76da28566eee5cea05f96ab38255af8" -dependencies = [ - "anchor-attribute-access-control", - "anchor-attribute-account", - "anchor-attribute-constant", - "anchor-attribute-error", - "anchor-attribute-event", - "anchor-attribute-interface", - "anchor-attribute-program", - "anchor-attribute-state", - "anchor-derive-accounts", - "arrayref", - "base64 0.13.0", - "bincode", - "borsh", - "bytemuck", - "solana-program", - "thiserror", -] - -[[package]] -name = "anchor-spl" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f32390ce8356f54c0f0245ea156f8190717e37285b8bf4f406a613dc4b954cde" -dependencies = [ - "anchor-lang", - "solana-program", - "spl-associated-token-account", - "spl-token", -] - -[[package]] -name = "anchor-syn" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0418bcb5daac3b8cb1b60d8fdb1d468ca36f5509f31fb51179326fae1028fdcc" -dependencies = [ - "anyhow", - "bs58 0.3.1", - "heck", - "proc-macro2", - "proc-macro2-diagnostics", - "quote", - "serde", - "serde_json", - "sha2 0.9.9", - "syn", - "thiserror", -] - -[[package]] -name = "anyhow" -version = "1.0.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc" - -[[package]] -name = "arrayref" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" - -[[package]] -name = "arrayvec" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" - -[[package]] -name = "assert_matches" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "base64" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" - -[[package]] -name = "base64" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitmaps" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" -dependencies = [ - "typenum", -] - -[[package]] -name = "blake3" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", - "digest 0.10.6", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "block-padding", - "generic-array", -] - -[[package]] -name = "block-buffer" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block-padding" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" - -[[package]] -name = "borsh" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" -dependencies = [ - "borsh-derive", - "hashbrown 0.11.2", -] - -[[package]] -name = "borsh-derive" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" -dependencies = [ - "borsh-derive-internal", - "borsh-schema-derive-internal", - "proc-macro-crate 0.1.5", - "proc-macro2", - "syn", -] - -[[package]] -name = "borsh-derive-internal" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "borsh-schema-derive-internal" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "bs58" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb" - -[[package]] -name = "bs58" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" - -[[package]] -name = "bumpalo" -version = "3.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" - -[[package]] -name = "bv" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340" -dependencies = [ - "feature-probe", - "serde", -] - -[[package]] -name = "bytemuck" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c041d3eab048880cb0b86b256447da3f18859a163c3b8d8893f4e6368abe6393" -dependencies = [ - "bytemuck_derive", -] - -[[package]] -name = "bytemuck_derive" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aca418a974d83d40a0c1f0c5cba6ff4bc28d8df099109ca459a2118d40b6322" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "cc" -version = "1.0.73" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" -dependencies = [ - "jobserver", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" -dependencies = [ - "num-integer", - "num-traits", -] - -[[package]] -name = "cipher" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" -dependencies = [ - "generic-array", -] - -[[package]] -name = "cipher" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" -dependencies = [ - "crypto-common", - "inout", -] - -[[package]] -name = "console_error_panic_hook" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" -dependencies = [ - "cfg-if", - "wasm-bindgen", -] - -[[package]] -name = "console_log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501a375961cef1a0d44767200e66e4a559283097e91d0730b1d75dfb2f8a1494" -dependencies = [ - "log", - "web-sys", -] - -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "cpufeatures" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" -dependencies = [ - "libc", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" -dependencies = [ - "cfg-if", - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" -dependencies = [ - "autocfg", - "cfg-if", - "crossbeam-utils", - "memoffset 0.7.1", - "scopeguard", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-common" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "crypto-mac" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" -dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "ctr" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" -dependencies = [ - "cipher 0.3.0", -] - -[[package]] -name = "curve25519-dalek" -version = "3.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f9d052967f590a76e62eb387bd0bbb1b000182c3cefe5364db6b7211651bc0" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.5.1", - "serde", - "subtle", - "zeroize", -] - -[[package]] -name = "derivation-path" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" -dependencies = [ - "block-buffer 0.10.2", - "crypto-common", - "subtle", -] - -[[package]] -name = "ed25519" -version = "1.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" -dependencies = [ - "signature", -] - -[[package]] -name = "ed25519-dalek" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" -dependencies = [ - "curve25519-dalek", - "ed25519", - "rand", - "serde", - "sha2 0.9.9", - "zeroize", -] - -[[package]] -name = "ed25519-dalek-bip32" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d2be62a4061b872c8c0873ee4fc6f101ce7b889d039f019c5fa2af471a59908" -dependencies = [ - "derivation-path", - "ed25519-dalek", - "hmac 0.12.1", - "sha2 0.10.6", -] - -[[package]] -name = "either" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" - -[[package]] -name = "env_logger" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", -] - -[[package]] -name = "feature-probe" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "generic-array" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" -dependencies = [ - "serde", - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "getrandom" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.10.2+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash", -] - -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] - -[[package]] -name = "hmac" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" -dependencies = [ - "crypto-mac", - "digest 0.9.0", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.6", -] - -[[package]] -name = "hmac-drbg" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" -dependencies = [ - "digest 0.9.0", - "generic-array", - "hmac 0.8.1", -] - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "im" -version = "15.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" -dependencies = [ - "bitmaps", - "rand_core 0.6.4", - "rand_xoshiro", - "rayon", - "serde", - "sized-chunks", - "typenum", - "version_check", -] - -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "generic-array", -] - -[[package]] -name = "itertools" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" - -[[package]] -name = "jobserver" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" -dependencies = [ - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "keccak" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.139" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" - -[[package]] -name = "libsecp256k1" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73" -dependencies = [ - "arrayref", - "base64 0.12.3", - "digest 0.9.0", - "hmac-drbg", - "libsecp256k1-core", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", - "rand", - "serde", - "sha2 0.9.9", - "typenum", -] - -[[package]] -name = "libsecp256k1-core" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80" -dependencies = [ - "crunchy", - "digest 0.9.0", - "subtle", -] - -[[package]] -name = "libsecp256k1-gen-ecmult" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "libsecp256k1-gen-genmult" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "lock_api" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "memchr" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" - -[[package]] -name = "memmap2" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057a3db23999c867821a7a59feb06a578fcb03685e983dff90daf9e7d24ac08f" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - -[[package]] -name = "merlin" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" -dependencies = [ - "byteorder", - "keccak", - "rand_core 0.6.4", - "zeroize", -] - -[[package]] -name = "mpl-token-auth-rules" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a14e1ac5350734fd07f17d7eab733d27b7b45ca963642c565ec34ab015d9ceda" -dependencies = [ - "borsh", - "mpl-token-metadata-context-derive", - "num-derive", - "num-traits", - "rmp-serde", - "serde", - "shank", - "solana-program", - "solana-zk-token-sdk", - "thiserror", -] - -[[package]] -name = "mpl-token-metadata" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5accdfde5c18465c65bd664169845a185f8a00d973d5c15396fef858dd2e52d9" -dependencies = [ - "arrayref", - "borsh", - "mpl-token-auth-rules", - "mpl-token-metadata-context-derive", - "mpl-utils", - "num-derive", - "num-traits", - "shank", - "solana-program", - "spl-associated-token-account", - "spl-token", - "thiserror", -] - -[[package]] -name = "mpl-token-metadata-context-derive" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12989bc45715b0ee91944855130131479f9c772e198a910c3eb0ea327d5bffc3" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "mpl-utils" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6195ce98b92f1d0ea06d0cc9b2392d81673e02b8fb063589926fa73ee6b071a" -dependencies = [ - "arrayref", - "borsh", - "solana-program", - "spl-token", -] - -[[package]] -name = "mpl_gumdrop" -version = "0.1.1" -dependencies = [ - "anchor-lang", - "anchor-spl", - "mpl-token-metadata", - "solana-program", - "spl-associated-token-account", - "spl-token", -] - -[[package]] -name = "num-derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" -dependencies = [ - "hermit-abi 0.2.6", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" -dependencies = [ - "proc-macro-crate 1.1.3", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "once_cell" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" - -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-sys", -] - -[[package]] -name = "paste" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba" - -[[package]] -name = "pbkdf2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" -dependencies = [ - "crypto-mac", -] - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.6", -] - -[[package]] -name = "percent-encoding" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" - -[[package]] -name = "polyval" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" -dependencies = [ - "cfg-if", - "cpufeatures", - "opaque-debug", - "universal-hash", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" - -[[package]] -name = "proc-macro-crate" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" -dependencies = [ - "toml", -] - -[[package]] -name = "proc-macro-crate" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" -dependencies = [ - "thiserror", - "toml", -] - -[[package]] -name = "proc-macro2" -version = "1.0.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "proc-macro2-diagnostics" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bf29726d67464d49fa6224a1d07936a8c08bb3fba727c7493f6cf1616fdaada" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "version_check", - "yansi", -] - -[[package]] -name = "qstring" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d464fae65fff2680baf48019211ce37aaec0c78e9264c84a3e484717f965104e" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "quote" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha", - "rand_core 0.5.1", - "rand_hc", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.6", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_xoshiro" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" -dependencies = [ - "rand_core 0.6.4", -] - -[[package]] -name = "rayon" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils", - "num_cpus", -] - -[[package]] -name = "redox_syscall" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" -dependencies = [ - "bitflags", -] - -[[package]] -name = "regex" -version = "1.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.6.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" - -[[package]] -name = "rmp" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" -dependencies = [ - "byteorder", - "num-traits", - "paste", -] - -[[package]] -name = "rmp-serde" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b13be192e0220b8afb7222aa5813cb62cc269ebb5cac346ca6487681d2913e" -dependencies = [ - "byteorder", - "rmp", - "serde", -] - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver", -] - -[[package]] -name = "rustversion" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" - -[[package]] -name = "ryu" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "semver" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d65bd28f48be7196d222d95b9243287f48d27aca604e08497513019ff0502cc4" - -[[package]] -name = "serde" -version = "1.0.152" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_bytes" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16ae07dd2f88a366f15bd0632ba725227018c69a1c8550a927324f8eb8368bb9" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.152" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.6", -] - -[[package]] -name = "sha3" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" -dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", - "keccak", - "opaque-debug", -] - -[[package]] -name = "sha3" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" -dependencies = [ - "digest 0.10.6", - "keccak", -] - -[[package]] -name = "shank" -version = "0.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b63e565b5e95ad88ab38f312e89444c749360641c509ef2de0093b49f55974a5" -dependencies = [ - "shank_macro", -] - -[[package]] -name = "shank_macro" -version = "0.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63927d22a1e8b74bda98cc6e151fcdf178b7abb0dc6c4f81e0bbf5ffe2fc4ec8" -dependencies = [ - "proc-macro2", - "quote", - "shank_macro_impl", - "syn", -] - -[[package]] -name = "shank_macro_impl" -version = "0.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ce03403df682f80f4dc1efafa87a4d0cb89b03726d0565e6364bdca5b9a441" -dependencies = [ - "anyhow", - "proc-macro2", - "quote", - "serde", - "syn", -] - -[[package]] -name = "signature" -version = "1.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" - -[[package]] -name = "sized-chunks" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" -dependencies = [ - "bitmaps", - "typenum", -] - -[[package]] -name = "smallvec" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" - -[[package]] -name = "solana-frozen-abi" -version = "1.14.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f44a019070a6cec4d3ad8605c5caa65bdaa13f00b5f1849340f44ffea63b625b" -dependencies = [ - "ahash", - "blake3", - "block-buffer 0.9.0", - "bs58 0.4.0", - "bv", - "byteorder", - "cc", - "either", - "generic-array", - "getrandom 0.1.16", - "hashbrown 0.12.3", - "im", - "lazy_static", - "log", - "memmap2", - "once_cell", - "rand_core 0.6.4", - "rustc_version", - "serde", - "serde_bytes", - "serde_derive", - "serde_json", - "sha2 0.10.6", - "solana-frozen-abi-macro", - "subtle", - "thiserror", -] - -[[package]] -name = "solana-frozen-abi-macro" -version = "1.14.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be23cc7a382f54dfe1348edb94610e5cc146b8eb21563cdd04062a403c75ba62" -dependencies = [ - "proc-macro2", - "quote", - "rustc_version", - "syn", -] - -[[package]] -name = "solana-logger" -version = "1.14.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447d16a70a1b5383736ef44801050c0e1affd022303b22ed899352f958c2de4b" -dependencies = [ - "env_logger", - "lazy_static", - "log", -] - -[[package]] -name = "solana-program" -version = "1.14.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0937481f080f5dd495fae456c94718a7bacf30fb5fdabb02dcb8a9622e446d5" -dependencies = [ - "base64 0.13.0", - "bincode", - "bitflags", - "blake3", - "borsh", - "borsh-derive", - "bs58 0.4.0", - "bv", - "bytemuck", - "cc", - "console_error_panic_hook", - "console_log", - "curve25519-dalek", - "getrandom 0.2.6", - "itertools", - "js-sys", - "lazy_static", - "libc", - "libsecp256k1", - "log", - "memoffset 0.6.5", - "num-derive", - "num-traits", - "parking_lot", - "rand", - "rand_chacha", - "rustc_version", - "rustversion", - "serde", - "serde_bytes", - "serde_derive", - "serde_json", - "sha2 0.10.6", - "sha3 0.10.6", - "solana-frozen-abi", - "solana-frozen-abi-macro", - "solana-sdk-macro", - "thiserror", - "tiny-bip39", - "wasm-bindgen", - "zeroize", -] - -[[package]] -name = "solana-sdk" -version = "1.14.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390e7481c56dda2ceab2652beeda30a533e9667b34861a2eb4eec92fa1d826d7" -dependencies = [ - "assert_matches", - "base64 0.13.0", - "bincode", - "bitflags", - "borsh", - "bs58 0.4.0", - "bytemuck", - "byteorder", - "chrono", - "derivation-path", - "digest 0.10.6", - "ed25519-dalek", - "ed25519-dalek-bip32", - "generic-array", - "hmac 0.12.1", - "itertools", - "js-sys", - "lazy_static", - "libsecp256k1", - "log", - "memmap2", - "num-derive", - "num-traits", - "pbkdf2 0.11.0", - "qstring", - "rand", - "rand_chacha", - "rustc_version", - "rustversion", - "serde", - "serde_bytes", - "serde_derive", - "serde_json", - "sha2 0.10.6", - "sha3 0.10.6", - "solana-frozen-abi", - "solana-frozen-abi-macro", - "solana-logger", - "solana-program", - "solana-sdk-macro", - "thiserror", - "uriparse", - "wasm-bindgen", -] - -[[package]] -name = "solana-sdk-macro" -version = "1.14.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d0acbad862093ea123f3a27364336dcb0c8373522cd6810496a34e932c56c1" -dependencies = [ - "bs58 0.4.0", - "proc-macro2", - "quote", - "rustversion", - "syn", -] - -[[package]] -name = "solana-zk-token-sdk" -version = "1.14.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cebca4083e982ae01583d1a590c4d679e6f648a4761364ddfb43026d2c433142" -dependencies = [ - "aes-gcm-siv", - "arrayref", - "base64 0.13.0", - "bincode", - "bytemuck", - "byteorder", - "cipher 0.4.3", - "curve25519-dalek", - "getrandom 0.1.16", - "itertools", - "lazy_static", - "merlin", - "num-derive", - "num-traits", - "rand", - "serde", - "serde_json", - "sha3 0.9.1", - "solana-program", - "solana-sdk", - "subtle", - "thiserror", - "zeroize", -] - -[[package]] -name = "spl-associated-token-account" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc000f0fdf1f12f99d77d398137c1751345b18c88258ce0f99b7872cf6c9bd6" -dependencies = [ - "assert_matches", - "borsh", - "num-derive", - "num-traits", - "solana-program", - "spl-token", - "spl-token-2022", - "thiserror", -] - -[[package]] -name = "spl-memo" -version = "3.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0dc6f70db6bacea7ff25870b016a65ba1d1b6013536f08e4fd79a8f9005325" -dependencies = [ - "solana-program", -] - -[[package]] -name = "spl-token" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e85e168a785e82564160dcb87b2a8e04cee9bfd1f4d488c729d53d6a4bd300d" -dependencies = [ - "arrayref", - "bytemuck", - "num-derive", - "num-traits", - "num_enum", - "solana-program", - "thiserror", -] - -[[package]] -name = "spl-token-2022" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0edb869dbe159b018f17fb9bfa67118c30f232d7f54a73742bc96794dff77ed8" -dependencies = [ - "arrayref", - "bytemuck", - "num-derive", - "num-traits", - "num_enum", - "solana-program", - "solana-zk-token-sdk", - "spl-memo", - "spl-token", - "thiserror", -] - -[[package]] -name = "subtle" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" - -[[package]] -name = "syn" -version = "1.0.107" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "unicode-xid", -] - -[[package]] -name = "termcolor" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "thiserror" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tiny-bip39" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" -dependencies = [ - "anyhow", - "hmac 0.8.1", - "once_cell", - "pbkdf2 0.4.0", - "rand", - "rustc-hash", - "sha2 0.9.9", - "thiserror", - "unicode-normalization", - "wasm-bindgen", - "zeroize", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" - -[[package]] -name = "toml" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" -dependencies = [ - "serde", -] - -[[package]] -name = "typenum" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" - -[[package]] -name = "unicode-ident" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" - -[[package]] -name = "unicode-xid" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" - -[[package]] -name = "universal-hash" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" -dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "uriparse" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0200d0fc04d809396c2ad43f3c95da3582a2556eba8d453c1087f4120ee352ff" -dependencies = [ - "fnv", - "lazy_static", -] - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" - -[[package]] -name = "wasm-bindgen" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" - -[[package]] -name = "web-sys" -version = "0.3.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" - -[[package]] -name = "yansi" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" - -[[package]] -name = "zeroize" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] diff --git a/gumdrop/program/Cargo.toml b/gumdrop/program/Cargo.toml deleted file mode 100644 index 51cc04e687..0000000000 --- a/gumdrop/program/Cargo.toml +++ /dev/null @@ -1,30 +0,0 @@ -[workspace] -[package] -name = "mpl_gumdrop" -version = "0.1.1" -authors = ["Metaplex Developers "] -repository = "https://github.com/metaplex-foundation/metaplex-program-library" -license-file = "../../LICENSE" -edition = "2021" -keywords = ["solana", "merkle", "distributor"] - -[lib] -crate-type = ["cdylib", "lib"] -name = "mpl_gumdrop" - -[features] -no-entrypoint = [] -no-idl = [] -cpi = ["no-entrypoint"] -default = [] - -[dependencies] -anchor-lang = "0.26.0" -anchor-spl = "0.26.0" -solana-program = "1.14.13" -spl-token = "3.5.0" -spl-associated-token-account = { version = "1.1.1", features = [ "no-entrypoint" ] } -mpl-token-metadata = { version="=1.7.0", features = [ "no-entrypoint" ] } - -[profile.release] -overflow-checks = true # Enable integer overflow checks. diff --git a/gumdrop/program/Xargo.toml b/gumdrop/program/Xargo.toml deleted file mode 100644 index 475fb71ed1..0000000000 --- a/gumdrop/program/Xargo.toml +++ /dev/null @@ -1,2 +0,0 @@ -[target.bpfel-unknown-unknown.dependencies.std] -features = [] diff --git a/gumdrop/program/src/lib.rs b/gumdrop/program/src/lib.rs deleted file mode 100644 index 25b7fec802..0000000000 --- a/gumdrop/program/src/lib.rs +++ /dev/null @@ -1,1490 +0,0 @@ -#![allow(clippy::result_large_err)] - -//! Program for distributing tokens efficiently via uploading a Merkle root. -use anchor_lang::{ - prelude::*, - solana_program::{ - instruction::{AccountMeta, Instruction}, - program::{invoke, invoke_signed}, - system_instruction, sysvar, - }, -}; -use anchor_spl::token::{self, Token, TokenAccount}; -use std::io::Write; - -pub mod merkle_proof; - -declare_id!("gdrpGjVffourzkdDRrQmySw4aTHr8a3xmQzzxSwFD1a"); -pub const CANDY_MACHINE_V1_PROGRAM_ID: Pubkey = Pubkey::new_from_array([ - 0x09, 0x2a, 0xee, 0x40, 0xbb, 0xdd, 0x63, 0x1e, 0xef, 0xfb, 0x7c, 0x96, 0xf6, 0x15, 0x65, 0x76, - 0x84, 0x65, 0xf3, 0xc1, 0x9c, 0xf9, 0x90, 0xcd, 0x7f, 0x74, 0x8c, 0x8d, 0x79, 0x95, 0x08, 0x20, -]); - -pub const CANDY_MACHINE_V2_PROGRAM_ID: Pubkey = Pubkey::new_from_array([ - 0x09, 0x2a, 0xee, 0x3d, 0xfc, 0x2d, 0x0e, 0x55, 0x78, 0x23, 0x13, 0x83, 0x79, 0x69, 0xea, 0xf5, - 0x21, 0x51, 0xc0, 0x96, 0xc0, 0x6b, 0x5c, 0x2a, 0x82, 0xf0, 0x86, 0xa5, 0x03, 0xe8, 0x2c, 0x34, -]); - -fn verify_candy(candy_machine_program_account: &Pubkey) -> Result<()> { - if candy_machine_program_account != &CANDY_MACHINE_V1_PROGRAM_ID - && candy_machine_program_account != &CANDY_MACHINE_V2_PROGRAM_ID - { - return Err(GumdropError::MustUseOfficialCandyMachine.into()); - } - Ok(()) -} - -const CLAIM_COUNT: &[u8] = b"ClaimCount"; -const CLAIM_STATUS: &[u8] = b"ClaimStatus"; - -fn verify_temporal<'a>( - distributor: &Account<'a, MerkleDistributor>, - temporal: &Signer<'a>, - claimant_secret: Pubkey, -) -> Result<()> { - require!( - // got the OTP auth from the signer specified by the creator - temporal.key() == distributor.temporal - // the secret used in the hash was a Pubkey (wallet) so proof-of-ownership is achieved by - // signing for this transaction - || temporal.key() == claimant_secret - // the creator decided not to use a temporal signer - || distributor.temporal == Pubkey::default(), - GumdropError::TemporalMismatch - ); - - Ok(()) -} - -fn verify_claim_bump<'a>( - claim_account: &AccountInfo<'a>, - claim_prefix: &[u8], - claim_bump: u8, - index: u64, - distributor: &Account<'a, MerkleDistributor>, -) -> Result<()> { - require!( - claim_prefix == CLAIM_COUNT || claim_prefix == CLAIM_STATUS, - GumdropError::InvalidClaimBump, - ); - - let (claim_account_key, claim_account_bump) = Pubkey::find_program_address( - &[ - claim_prefix, - &index.to_le_bytes(), - &distributor.key().to_bytes(), - ], - &ID, - ); - require!( - claim_account_key == *claim_account.key && claim_account_bump == claim_bump, - GumdropError::InvalidClaimBump, - ); - - Ok(()) -} - -fn get_or_create_claim_count<'a>( - distributor: &Account<'a, MerkleDistributor>, - claim_count: &AccountInfo<'a>, - temporal: &Signer<'a>, - payer: &Signer<'a>, - system_program: &Program<'a, System>, - claim_bump: u8, - index: u64, - claimant_secret: Pubkey, -) -> Result> { - let rent = &Rent::get()?; - let space = 8 + ClaimCount::default().try_to_vec().unwrap().len(); - - verify_claim_bump(claim_count, CLAIM_COUNT, claim_bump, index, distributor)?; - - let create_claim_state = claim_count.lamports() == 0; // TODO: support initial lamports? - if create_claim_state { - let lamports = rent.minimum_balance(space); - let claim_count_seeds = [ - CLAIM_COUNT, - &index.to_le_bytes(), - &distributor.key().to_bytes(), - &[claim_bump], - ]; - - invoke_signed( - &system_instruction::create_account( - &payer.key(), - claim_count.key, - lamports, - space as u64, - &ID, - ), - &[ - payer.to_account_info().clone(), - claim_count.clone(), - system_program.to_account_info().clone(), - ], - &[&claim_count_seeds], - )?; - - let mut data = claim_count.try_borrow_mut_data()?; - let dst: &mut [u8] = &mut data; - let mut cursor = std::io::Cursor::new(dst); - cursor - .write_all(&::discriminator()) - .unwrap(); - } - - // anchor_lang::Account::try_from(&claim_count)?; - let mut pa: Account = Account::try_from(claim_count)?; - - if create_claim_state { - verify_temporal(distributor, temporal, claimant_secret)?; - pa.claimant = payer.key(); - } else { - require!(pa.claimant == payer.key(), GumdropError::OwnerMismatch); - } - - Ok(pa) -} - -/// The [gumdrop] program. -#[program] -pub mod gumdrop { - use super::*; - - /// Creates a new [MerkleDistributor]. - /// After creating this [MerkleDistributor], the account should be seeded with tokens via - /// delegates - pub fn new_distributor( - ctx: Context, - _bump: u8, - root: [u8; 32], - temporal: Pubkey, - ) -> Result<()> { - let distributor = &mut ctx.accounts.distributor; - - distributor.base = ctx.accounts.base.key(); - distributor.bump = *ctx - .bumps - .get("distributor") - .ok_or(GumdropError::BumpSeedNotInHashMap)?; - - distributor.root = root; - distributor.temporal = temporal; - - Ok(()) - } - - /// Closes distributor-owned token accounts. Normal tokens should just use a delegate but we - /// need to transfer ownership for edition minting ATM. - pub fn close_distributor_token_account( - ctx: Context, - _bump: u8, - ) -> Result<()> { - let distributor = &ctx.accounts.distributor; - - // should be implicit in the PDA - require!( - distributor.base == ctx.accounts.base.key(), - GumdropError::Unauthorized - ); - - let seeds = [ - b"MerkleDistributor".as_ref(), - &distributor.base.to_bytes(), - &[ctx.accounts.distributor.bump], - ]; - - token::transfer( - CpiContext::new( - ctx.accounts.token_program.to_account_info(), - token::Transfer { - from: ctx.accounts.from.to_account_info(), - to: ctx.accounts.to.to_account_info(), - authority: ctx.accounts.distributor.to_account_info(), - }, - ) - .with_signer(&[&seeds[..]]), - ctx.accounts.from.amount, - )?; - - token::close_account( - CpiContext::new( - ctx.accounts.token_program.to_account_info(), - token::CloseAccount { - account: ctx.accounts.from.to_account_info(), - destination: ctx.accounts.receiver.to_account_info(), - authority: ctx.accounts.distributor.to_account_info(), - }, - ) - .with_signer(&[&seeds[..]]), - )?; - - Ok(()) - } - - /// Closes an existing [MerkleDistributor]. - /// Moves all tokens from the [MerkleDistributor] to the specified account and closes - /// distributor accounts. - /// Must `close_distributor_token_account` first - pub fn close_distributor<'info>( - ctx: Context<'_, '_, '_, 'info, CloseDistributor<'info>>, - _bump: u8, - _wallet_bump: u8, - ) -> Result<()> { - let distributor = &ctx.accounts.distributor; - - // should be implicit in the PDA - require!( - distributor.base == ctx.accounts.base.key(), - GumdropError::Unauthorized - ); - - let wallet_seeds = [ - b"Wallet".as_ref(), - &distributor.key().to_bytes(), - &[_wallet_bump], - ]; - - if !ctx.remaining_accounts.is_empty() { - // transfer authority out - let candy_machine_info = &ctx.remaining_accounts[0]; - let candy_machine_program_info = &ctx.remaining_accounts[1]; - verify_candy(candy_machine_program_info.key)?; - // TODO. global::update_authority instruction... - let mut data = vec![0x20, 0x2e, 0x40, 0x1c, 0x95, 0x4b, 0xf3, 0x58]; - - data.push(0x01); - data.extend_from_slice(&ctx.accounts.receiver.key.to_bytes()); - - invoke_signed( - &Instruction { - program_id: *candy_machine_program_info.key, - accounts: vec![ - AccountMeta::new(*candy_machine_info.key, false), - AccountMeta::new(*ctx.accounts.distributor_wallet.key, true), - ], - data, - }, - &[ - candy_machine_info.clone(), - ctx.accounts.distributor_wallet.clone(), - ], - &[&wallet_seeds], - )?; - } - - invoke_signed( - &system_instruction::transfer( - ctx.accounts.distributor_wallet.key, - ctx.accounts.receiver.key, - ctx.accounts.distributor_wallet.lamports(), - ), - &[ - ctx.accounts.distributor_wallet.clone(), - ctx.accounts.receiver.clone(), - ctx.accounts.system_program.to_account_info().clone(), - ], - &[&wallet_seeds], - )?; - - Ok(()) - } - - pub fn prove_claim( - ctx: Context, - claim_prefix: Vec, - claim_bump: u8, - index: u64, - amount: u64, - claimant_secret: Pubkey, - resource: Pubkey, - resource_nonce: Vec, - proof: Vec<[u8; 32]>, - ) -> Result<()> { - // The logic here is that we will allow the proof to be whichever prefix matches the claim - // type. The ClaimProof will live at the same place as V1 ClaimCount and V1 ClaimStatus so - // that users can't claim with both endpoints but also maintain some backwards - // compatibility. The account is created wherever this prefix points to and since the - // resource is unique per gumdrop, if this is messed up, they shouldn't be able to claim - // extra resources. - require!( - claim_prefix.as_slice() == CLAIM_COUNT || claim_prefix.as_slice() == CLAIM_STATUS, - GumdropError::InvalidProof, - ); - - let claim_proof = &mut ctx.accounts.claim_proof; - let distributor = &ctx.accounts.distributor; - - verify_claim_bump( - &claim_proof.to_account_info(), - claim_prefix.as_slice(), - claim_bump, - index, - distributor, - )?; - - // Verify the merkle proof. - let node = if resource_nonce.is_empty() { - solana_program::keccak::hashv(&[ - &[0x00], - &index.to_le_bytes(), - &claimant_secret.to_bytes(), - &resource.to_bytes(), - &amount.to_le_bytes(), - ]) - } else { - solana_program::keccak::hashv(&[ - &[0x00], - &index.to_le_bytes(), - &claimant_secret.to_bytes(), - &resource.to_bytes(), - &amount.to_le_bytes(), - resource_nonce.as_slice(), - ]) - }; - require!( - merkle_proof::verify(proof, distributor.root, node.0), - GumdropError::InvalidProof, - ); - - verify_temporal(distributor, &ctx.accounts.temporal, claimant_secret)?; - - claim_proof.amount = amount; - claim_proof.count = 0; - claim_proof.claimant = ctx.accounts.payer.key(); - claim_proof.resource = resource; - claim_proof.resource_nonce = resource_nonce; - - Ok(()) - } - - /// Claims tokens from the [MerkleDistributor]. - pub fn claim( - ctx: Context, - claim_bump: u8, - index: u64, - amount: u64, - claimant_secret: Pubkey, - proof: Vec<[u8; 32]>, - ) -> Result<()> { - let claim_status = &mut ctx.accounts.claim_status; - require!( - *claim_status.to_account_info().owner == ID, - GumdropError::OwnerMismatch - ); - require!( - // This check is redudant, we should not be able to initialize a claim status account at the same key. - !claim_status.is_claimed && claim_status.claimed_at == 0, - GumdropError::DropAlreadyClaimed - ); - - let distributor = &ctx.accounts.distributor; - let mint = ctx.accounts.from.mint; - - verify_claim_bump( - &claim_status.to_account_info(), - CLAIM_STATUS, - claim_bump, - index, - distributor, - )?; - - // Verify the merkle proof. - let node = solana_program::keccak::hashv(&[ - &[0x00], - &index.to_le_bytes(), - &claimant_secret.to_bytes(), - &mint.to_bytes(), - &amount.to_le_bytes(), - ]); - require!( - merkle_proof::verify(proof, distributor.root, node.0), - GumdropError::InvalidProof - ); - - // Mark it claimed and send the tokens. - claim_status.amount = amount; - claim_status.is_claimed = true; - let clock = Clock::get()?; - claim_status.claimed_at = clock.unix_timestamp; - claim_status.claimant = ctx.accounts.payer.key(); - - let seeds = [ - b"MerkleDistributor".as_ref(), - &distributor.base.to_bytes(), - &[ctx.accounts.distributor.bump], - ]; - - verify_temporal(distributor, &ctx.accounts.temporal, claimant_secret)?; - token::transfer( - CpiContext::new( - ctx.accounts.token_program.to_account_info(), - token::Transfer { - from: ctx.accounts.from.to_account_info(), - to: ctx.accounts.to.to_account_info(), - authority: ctx.accounts.distributor.to_account_info(), - }, - ) - .with_signer(&[&seeds[..]]), - amount, - )?; - - emit!(ClaimedEvent { - index, - claimant: ctx.accounts.payer.key(), - amount - }); - Ok(()) - } - - /// Claims NFTs directly from the candy machine through the [MerkleDistributor]. - pub fn claim_candy<'info>( - ctx: Context<'_, '_, '_, 'info, ClaimCandy<'info>>, - wallet_bump: u8, - claim_bump: u8, - index: u64, - amount: u64, - claimant_secret: Pubkey, - proof: Vec<[u8; 32]>, - ) -> Result<()> { - let distributor = &ctx.accounts.distributor; - let mut claim_count = get_or_create_claim_count( - &ctx.accounts.distributor, - &ctx.accounts.claim_count, - &ctx.accounts.temporal, - &ctx.accounts.payer, - &ctx.accounts.system_program, - claim_bump, - index, - claimant_secret, - )?; - require!( - *claim_count.to_account_info().owner == ID, - GumdropError::OwnerMismatch - ); - - // TODO: this is a bit weird but we verify elsewhere that the candy_machine_config is - // actually a config thing and not a mint - // Verify the merkle proof. - let node = solana_program::keccak::hashv(&[ - &[0x00], - &index.to_le_bytes(), - &claimant_secret.to_bytes(), - &ctx.accounts.candy_machine_config.key.to_bytes(), - &amount.to_le_bytes(), - ]); - require!( - merkle_proof::verify(proof, distributor.root, node.0), - GumdropError::InvalidProof - ); - - // This user is whitelisted to mint at most `amount` NFTs from the candy machine - require!(claim_count.count < amount, GumdropError::DropAlreadyClaimed); - - // Mark it claimed - claim_count.count = claim_count - .count - .checked_add(1) - .ok_or(GumdropError::NumericalOverflow)?; - - issue_mint_nft( - distributor, - &ctx.accounts.distributor_wallet, - &ctx.accounts.payer, - &ctx.accounts.candy_machine_config, - &ctx.accounts.candy_machine, - &ctx.accounts.candy_machine_wallet, - &ctx.accounts.candy_machine_mint, - &ctx.accounts.candy_machine_metadata, - &ctx.accounts.candy_machine_master_edition, - &ctx.accounts.system_program, - &ctx.accounts.token_program, - &ctx.accounts.token_metadata_program, - &ctx.accounts.candy_machine_program, - &ctx.accounts.rent, - &ctx.accounts.clock, - ctx.remaining_accounts, - wallet_bump, - )?; - - // reserialize claim_count - { - let mut claim_count_data: &mut [u8] = - &mut ctx.accounts.claim_count.try_borrow_mut_data()?; - claim_count.try_serialize(&mut claim_count_data)?; - } - - Ok(()) - } - - /// Claims NFTs by calling MintNewEditionFromMasterEditionViaToken - pub fn claim_edition( - ctx: Context, - claim_bump: u8, - index: u64, - amount: u64, - edition: u64, - claimant_secret: Pubkey, - proof: Vec<[u8; 32]>, - ) -> Result<()> { - let distributor = &ctx.accounts.distributor; - let mut claim_count = get_or_create_claim_count( - &ctx.accounts.distributor, - &ctx.accounts.claim_count, - &ctx.accounts.temporal, - &ctx.accounts.payer, - &ctx.accounts.system_program, - claim_bump, - index, - claimant_secret, - )?; - require!( - *claim_count.to_account_info().owner == ID, - GumdropError::OwnerMismatch - ); - - // TODO: master_edition or something else? should we has the edition here also? - let node = solana_program::keccak::hashv(&[ - &[0x00], - &index.to_le_bytes(), - &claimant_secret.to_bytes(), - &ctx.accounts.metadata_master_mint.key.to_bytes(), - &amount.to_le_bytes(), - &edition.to_le_bytes(), - ]); - require!( - merkle_proof::verify(proof, distributor.root, node.0), - GumdropError::InvalidProof - ); - - // This user is whitelisted to mint at most `amount` NFTs from the candy machine - require!(claim_count.count < amount, GumdropError::DropAlreadyClaimed); - - // Mark it claimed - claim_count.count = claim_count - .count - .checked_add(1) - .ok_or(GumdropError::NumericalOverflow)?; - - let seeds = [ - b"MerkleDistributor".as_ref(), - &distributor.base.to_bytes(), - &[ctx.accounts.distributor.bump], - ]; - - let metadata_infos = [ - ctx.accounts.token_metadata_program.clone(), - ctx.accounts.metadata_new_metadata.clone(), - ctx.accounts.metadata_new_edition.clone(), - ctx.accounts.metadata_master_edition.clone(), - ctx.accounts.metadata_new_mint.clone(), - ctx.accounts.metadata_edition_mark_pda.clone(), - ctx.accounts - .metadata_new_mint_authority - .to_account_info() - .clone(), - ctx.accounts.payer.to_account_info().clone(), - ctx.accounts.distributor.to_account_info().clone(), - ctx.accounts.metadata_master_token_account.clone(), - ctx.accounts.metadata_new_update_authority.clone(), - ctx.accounts.metadata_master_metadata.clone(), - ctx.accounts.metadata_master_mint.clone(), - ctx.accounts.rent.to_account_info().clone(), - ]; - - invoke_signed( - &mpl_token_metadata::instruction::mint_new_edition_from_master_edition_via_token( - *ctx.accounts.token_metadata_program.key, - *ctx.accounts.metadata_new_metadata.key, - *ctx.accounts.metadata_new_edition.key, - *ctx.accounts.metadata_master_edition.key, - *ctx.accounts.metadata_new_mint.key, - *ctx.accounts.metadata_new_mint_authority.key, - *ctx.accounts.payer.key, - ctx.accounts.distributor.key(), - *ctx.accounts.metadata_master_token_account.key, - *ctx.accounts.metadata_new_update_authority.key, - *ctx.accounts.metadata_master_metadata.key, - *ctx.accounts.metadata_master_mint.key, - edition, - ), - &metadata_infos, - &[&seeds], - )?; - - // reserialize claim_count - { - let mut claim_count_data: &mut [u8] = - &mut ctx.accounts.claim_count.try_borrow_mut_data()?; - claim_count.try_serialize(&mut claim_count_data)?; - } - - Ok(()) - } - - pub fn claim_candy_proven<'info>( - ctx: Context<'_, '_, '_, 'info, ClaimCandyProven<'info>>, - wallet_bump: u8, - _claim_bump: u8, // proof is not created - _index: u64, - ) -> Result<()> { - let claim_proof = &mut ctx.accounts.claim_proof; - let distributor = &ctx.accounts.distributor; - - require!( - claim_proof.claimant == ctx.accounts.payer.key(), - GumdropError::InvalidProof, - ); - - require!( - claim_proof.resource == *ctx.accounts.candy_machine_config.key, - GumdropError::InvalidProof, - ); - - // At least 1 remaining - require!( - claim_proof.count < claim_proof.amount, - GumdropError::DropAlreadyClaimed, - ); - - // Mark it claimed - claim_proof.count = claim_proof - .count - .checked_add(1) - .ok_or(GumdropError::NumericalOverflow)?; - - issue_mint_nft( - distributor, - &ctx.accounts.distributor_wallet, - &ctx.accounts.payer, - &ctx.accounts.candy_machine_config, - &ctx.accounts.candy_machine, - &ctx.accounts.candy_machine_wallet, - &ctx.accounts.candy_machine_mint, - &ctx.accounts.candy_machine_metadata, - &ctx.accounts.candy_machine_master_edition, - &ctx.accounts.system_program, - &ctx.accounts.token_program, - &ctx.accounts.token_metadata_program, - &ctx.accounts.candy_machine_program, - &ctx.accounts.rent, - &ctx.accounts.clock, - ctx.remaining_accounts, - wallet_bump, - )?; - - Ok(()) - } - - pub fn recover_update_authority( - ctx: Context, - _bump: u8, - wallet_bump: u8, - ) -> Result<()> { - let wallet_seeds = [ - b"Wallet".as_ref(), - &ctx.accounts.distributor.key().to_bytes(), - &[wallet_bump], - ]; - - invoke_signed( - &mpl_token_metadata::instruction::update_metadata_accounts_v2( - *ctx.accounts.token_metadata_program.key, - *ctx.accounts.metadata.key, - *ctx.accounts.distributor_wallet.key, - Some(*ctx.accounts.new_update_authority.key), - None, - None, - None, - ), - &[ - ctx.accounts.token_metadata_program.to_account_info(), - ctx.accounts.metadata.to_account_info(), - ctx.accounts.distributor_wallet.to_account_info(), - ], - &[&wallet_seeds], - )?; - - Ok(()) - } -} - -fn issue_mint_nft<'info>( - distributor: &Account<'info, MerkleDistributor>, - distributor_wallet: &AccountInfo<'info>, - payer: &Signer<'info>, - candy_machine_config: &AccountInfo<'info>, - candy_machine: &AccountInfo<'info>, - candy_machine_wallet: &AccountInfo<'info>, - candy_machine_mint: &AccountInfo<'info>, - candy_machine_metadata: &AccountInfo<'info>, - candy_machine_master_edition: &AccountInfo<'info>, - system_program: &Program<'info, System>, - token_program: &Program<'info, Token>, - token_metadata_program: &AccountInfo<'info>, - candy_machine_program: &AccountInfo<'info>, - rent: &Sysvar<'info, Rent>, - clock: &Sysvar<'info, Clock>, - claim_remaining_accounts: &[AccountInfo<'info>], - wallet_bump: u8, -) -> Result<()> { - // Transfer the required SOL from the payer - let required_lamports; - let remaining_accounts; - { - let rent = &Rent::get()?; - let mut candy_machine_data: &[u8] = &candy_machine.try_borrow_data()?; - verify_candy(candy_machine_program.key)?; - let candy_machine = CandyMachine::try_deserialize(&mut candy_machine_data)?; - let required_rent = rent.minimum_balance(mpl_token_metadata::state::MAX_METADATA_LEN) - + rent.minimum_balance(mpl_token_metadata::state::MAX_MASTER_EDITION_LEN); - - if candy_machine.token_mint.is_some() { - required_lamports = required_rent; - - // checked by candy machine - let token_account_info = &claim_remaining_accounts[0]; - let transfer_authority_info = &claim_remaining_accounts[1]; - remaining_accounts = vec![token_account_info.clone(), transfer_authority_info.clone()]; - } else { - required_lamports = candy_machine.data.price + required_rent; - remaining_accounts = vec![]; - } - } - msg!( - "Transferring {} lamports to distributor wallet for candy machine mint", - required_lamports, - ); - invoke( - &system_instruction::transfer(payer.key, distributor_wallet.key, required_lamports), - &[ - payer.to_account_info().clone(), - distributor_wallet.clone(), - system_program.to_account_info().clone(), - ], - )?; - - let wallet_seeds = [ - b"Wallet".as_ref(), - &distributor.key().to_bytes(), - &[wallet_bump], - ]; - let mut account_metas = vec![ - AccountMeta::new_readonly(candy_machine_config.key(), false), - AccountMeta::new(candy_machine.key(), false), - AccountMeta::new(distributor_wallet.key(), true), - AccountMeta::new(candy_machine_wallet.key(), false), - AccountMeta::new(candy_machine_metadata.key(), false), - AccountMeta::new(candy_machine_mint.key(), false), - AccountMeta::new_readonly(payer.key(), true), - AccountMeta::new_readonly(payer.key(), true), - AccountMeta::new(candy_machine_master_edition.key(), false), - AccountMeta::new_readonly(token_metadata_program.key(), false), - AccountMeta::new_readonly(token_program.key(), false), - AccountMeta::new_readonly(system_program.key(), false), - AccountMeta::new_readonly(sysvar::rent::id(), false), - AccountMeta::new_readonly(sysvar::clock::id(), false), - ]; - for a in &remaining_accounts { - account_metas.push(AccountMeta::new(a.key(), false)); - } - let mut candy_machine_infos = vec![ - candy_machine_config.clone(), - candy_machine.to_account_info().clone(), - distributor_wallet.clone(), - candy_machine_wallet.clone(), - candy_machine_metadata.clone(), - candy_machine_mint.clone(), - payer.to_account_info().clone(), - candy_machine_master_edition.clone(), - token_metadata_program.clone(), - token_program.to_account_info().clone(), - system_program.to_account_info().clone(), - rent.to_account_info().clone(), - clock.to_account_info().clone(), - ]; - candy_machine_infos.extend(remaining_accounts); - - invoke_signed( - &Instruction { - program_id: candy_machine_program.key(), - accounts: account_metas, - // TODO. global::mint_nft instruction... - data: vec![0xd3, 0x39, 0x06, 0xa7, 0x0f, 0xdb, 0x23, 0xfb], - }, - &candy_machine_infos, - &[&wallet_seeds], - )?; - - // point back to the gumdrop authority - let mut cm_config_data: &[u8] = &candy_machine_config.try_borrow_data()?; - let cm_config = Config::try_deserialize(&mut cm_config_data)?; - if cm_config.data.retain_authority { - invoke_signed( - &mpl_token_metadata::instruction::update_metadata_accounts_v2( - *token_metadata_program.key, - *candy_machine_metadata.key, - *distributor_wallet.key, - Some(distributor.base), - None, - None, - None, - ), - &[ - token_metadata_program.to_account_info(), - candy_machine_metadata.to_account_info(), - distributor_wallet.to_account_info(), - ], - &[&wallet_seeds], - )?; - } - - Ok(()) -} - -/// Accounts for [gumdrop::new_distributor]. -#[derive(Accounts)] -#[instruction(bump: u8)] -pub struct NewDistributor<'info> { - /// Base key of the distributor. - pub base: Signer<'info>, - - /// [MerkleDistributor]. - #[account( - init, - seeds = [ - b"MerkleDistributor".as_ref(), - base.key().to_bytes().as_ref() - ], - space = 8+97, - bump, - payer = payer - )] - pub distributor: Account<'info, MerkleDistributor>, - - /// Payer to create the distributor. - #[account(mut)] - pub payer: Signer<'info>, - - /// The [System] program. - pub system_program: Program<'info, System>, -} - -/// [gumdrop::close_distributor_token_acconut] accounts. -#[derive(Accounts)] -#[instruction(_bump: u8)] -pub struct CloseDistributorTokenAccount<'info> { - /// Base key of the distributor. - pub base: Signer<'info>, - - /// [MerkleDistributor]. - #[account( - seeds = [ - b"MerkleDistributor".as_ref(), - base.key().to_bytes().as_ref() - ], - bump = _bump, - )] - pub distributor: Account<'info, MerkleDistributor>, - - /// Distributor containing the tokens to distribute. - #[account(mut)] - pub from: Account<'info, TokenAccount>, - - /// Account to send the claimed tokens to. - #[account(mut)] - pub to: Account<'info, TokenAccount>, - - /// Who is receiving the remaining rent allocation. - #[account(mut)] - /// CHECK: just a destination - pub receiver: AccountInfo<'info>, - - /// The [System] program. - pub system_program: Program<'info, System>, - - /// SPL [Token] program. - pub token_program: Program<'info, Token>, -} - -/// [gumdrop::close_distributor] accounts. -#[derive(Accounts)] -#[instruction(_bump: u8, _wallet_bump: u8)] -pub struct CloseDistributor<'info> { - /// Base key of the distributor. - pub base: Signer<'info>, - - /// [MerkleDistributor]. - #[account( - seeds = [ - b"MerkleDistributor".as_ref(), - base.key().to_bytes().as_ref() - ], - bump = _bump, - mut, - close = receiver, - )] - pub distributor: Account<'info, MerkleDistributor>, - - #[account( - seeds = [ - b"Wallet".as_ref(), - distributor.key().to_bytes().as_ref() - ], - bump = _wallet_bump, - mut, - )] - /// CHECK: PDA Checked - pub distributor_wallet: AccountInfo<'info>, - - /// Who is receiving the remaining tokens and rent allocations. - /// CHECK: just a destination - pub receiver: AccountInfo<'info>, - - /// The [System] program. - pub system_program: Program<'info, System>, - - /// SPL [Token] program. - pub token_program: Program<'info, Token>, -} - -/// [gumdrop::prove_claim] accounts. -#[derive(Accounts)] -#[instruction( -claim_prefix: Vec < u8 >, -claim_bump: u8, -index: u64, -_amount: u64, -_claimant_secret: Pubkey, -_resource: Pubkey, -resource_nonce: Vec < u8 >, -)] -pub struct ProveClaim<'info> { - /// The [MerkleDistributor]. - #[account(mut)] - pub distributor: Account<'info, MerkleDistributor>, - - /// Status of the claim. - #[account( - init, - seeds = [ - claim_prefix.as_slice(), - index.to_le_bytes().as_ref(), - distributor.key().to_bytes().as_ref() - ], - bump, - payer = payer, - space = 8 // discriminator - + 8 // amount - + 8 // count - + 32 // claimant - + 32 // resource - + 4 + resource_nonce.len() // resource_nonce vec - )] - pub claim_proof: Account<'info, ClaimProof>, - - /// Extra signer expected for claims - pub temporal: Signer<'info>, - - /// Payer of the claim. - #[account(mut)] - pub payer: Signer<'info>, - - /// The [System] program. - pub system_program: Program<'info, System>, -} - -/// [gumdrop::claim] accounts. -#[derive(Accounts)] -#[instruction(claim_bump: u8, index: u64)] -pub struct Claim<'info> { - /// The [MerkleDistributor]. - #[account(mut)] - pub distributor: Account<'info, MerkleDistributor>, - - /// Status of the claim. - #[account( - init, - seeds = [ - CLAIM_STATUS, - index.to_le_bytes().as_ref(), - distributor.key().to_bytes().as_ref() - ], - space = 8+49, - bump, - payer = payer - )] - pub claim_status: Account<'info, ClaimStatus>, - - /// Distributor containing the tokens to distribute. - #[account(mut)] - pub from: Account<'info, TokenAccount>, - - /// Account to send the claimed tokens to. - #[account(mut)] - pub to: Account<'info, TokenAccount>, - - /// Extra signer expected for claims - pub temporal: Signer<'info>, - - /// Payer of the claim. - #[account(mut)] - pub payer: Signer<'info>, - - /// The [System] program. - pub system_program: Program<'info, System>, - - /// SPL [Token] program. - pub token_program: Program<'info, Token>, -} - -/// [gumdrop::claim_candy] accounts. -#[derive(Accounts)] -#[instruction(_wallet_bump: u8, claim_bump: u8, index: u64)] -pub struct ClaimCandy<'info> { - /// The [MerkleDistributor]. - #[account(mut)] - pub distributor: Account<'info, MerkleDistributor>, - - /// The [MerkleDistributor] wallet - #[account( - seeds = [ - b"Wallet".as_ref(), - distributor.key().to_bytes().as_ref() - ], - bump = _wallet_bump, - mut - )] - /// CHECK: PDA check enforced - pub distributor_wallet: AccountInfo<'info>, - - /// Status of the claim. Created on first invocation of this function - #[account( - seeds = [ - CLAIM_COUNT, - index.to_le_bytes().as_ref(), - distributor.key().to_bytes().as_ref() - ], - bump = claim_bump, - mut, - )] - /// CHECK: PDA check enforced - pub claim_count: AccountInfo<'info>, - - /// Extra signer expected for claims - pub temporal: Signer<'info>, - - /// Payer of the claim. Should be `mint_authority` for `candy_machine_mint` and will be - /// `update_authority` for `candy_machine_metadata` - pub payer: Signer<'info>, - - /// Candy-machine Config - /// CHECK: PDA check enforced in cpi - pub candy_machine_config: AccountInfo<'info>, - - /// Candy-Machine. Verified through CPI - #[account(mut)] - /// CHECK: PDA check enforced in cpi - pub candy_machine: AccountInfo<'info>, - - /// Candy-Machine-Wallet. Verified through CPI - #[account(mut)] - /// CHECK: PDA check enforced in cpi - pub candy_machine_wallet: AccountInfo<'info>, - - /// Generated mint - #[account(mut)] - /// CHECK: PDA check enforced in cpi - pub candy_machine_mint: AccountInfo<'info>, - - /// PDA of `candy_machine_mint` - #[account(mut)] - /// CHECK: PDA check enforced in cpi - pub candy_machine_metadata: AccountInfo<'info>, - - /// PDA of `candy_machine_mint` - #[account(mut)] - /// CHECK: PDA check enforced in cpi - pub candy_machine_master_edition: AccountInfo<'info>, - - /// The [System] program. - pub system_program: Program<'info, System>, - - /// SPL [Token] program. - pub token_program: Program<'info, Token>, - - /// SPL [TokenMetadata] program. - #[account(address = mpl_token_metadata::id())] - /// CHECK: Address Checked - pub token_metadata_program: AccountInfo<'info>, - - /// SPL [CandyMachine] program. - /// CHECK: account checked in handler - pub candy_machine_program: AccountInfo<'info>, - - rent: Sysvar<'info, Rent>, - clock: Sysvar<'info, Clock>, -} - -/// [gumdrop::claim_edition] accounts. Wrapper around -/// MintNewEditionFromMasterEditionViaToken -#[derive(Accounts)] -#[instruction(claim_bump: u8, index: u64)] -pub struct ClaimEdition<'info> { - /// Given a token account containing the master edition token to prove authority, and a brand new non-metadata-ed mint with one token - /// make a new Metadata + Edition that is a child of the master edition denoted by this authority token. - /// 4. `[writable]` Edition pda to mark creation - will be checked for pre-existence. (pda of ['metadata', program id, master metadata mint id, 'edition', edition_number]) - /// where edition_number is NOT the edition number you pass in args but actually edition_number = floor(edition/EDITION_MARKER_BIT_SIZE). - /// 8. `[]` token account containing token from master metadata mint - - /// The [MerkleDistributor]. - #[account(mut)] - pub distributor: Account<'info, MerkleDistributor>, - - /// Status of the claim. Created on first invocation of this function - #[account( - seeds = [ - CLAIM_COUNT, - index.to_le_bytes().as_ref(), - distributor.key().to_bytes().as_ref() - ], - bump = claim_bump, - mut, - )] - /// CHECK: PDA Check enforced, and hashcheck - pub claim_count: AccountInfo<'info>, - - /// Extra signer expected for claims - pub temporal: Signer<'info>, - - /// Payer of the claim. Should be `mint_authority` for `candy_machine_mint` and will be - /// `update_authority` for `candy_machine_metadata` - pub payer: Signer<'info>, - - /// PDA of `metadata_new_mint` - #[account(mut)] - /// CHECK: Checked via CPI - pub metadata_new_metadata: AccountInfo<'info>, - - /// PDA of `metadata_new_mint` - #[account(mut)] - /// CHECK: Checked via CPI - pub metadata_new_edition: AccountInfo<'info>, - - /// PDA of `metadata_master_mint` - #[account(mut)] - /// CHECK: Checked via CPI - pub metadata_master_edition: AccountInfo<'info>, - - /// Generated mint - #[account(mut)] - /// CHECK: Checked via CPI - pub metadata_new_mint: AccountInfo<'info>, - - /// PDA of `metadata_master_mint` and edition number - #[account(mut)] - /// CHECK: Checked via CPI - pub metadata_edition_mark_pda: AccountInfo<'info>, - - /// Mint authority for `metadata_new_mint` - pub metadata_new_mint_authority: Signer<'info>, - - /// Owner of token account containing master token (#8) - /// distributor - - /// Token account - /// CHECK: Checked via CPI - pub metadata_master_token_account: AccountInfo<'info>, - - /// Update authority for new metadata - /// CHECK: Checked via CPI - pub metadata_new_update_authority: AccountInfo<'info>, - - /// Master record metadata account - /// CHECK: Checked via CPI - pub metadata_master_metadata: AccountInfo<'info>, - - /// Master metadata mint account - /// CHECK: Checked via CPI - pub metadata_master_mint: AccountInfo<'info>, - - /// The [System] program. - pub system_program: Program<'info, System>, - - /// SPL [Token] program. - pub token_program: Program<'info, Token>, - - /// SPL [TokenMetadata] program. - #[account(address = mpl_token_metadata::id())] - /// CHECK: Address Check - pub token_metadata_program: AccountInfo<'info>, - - rent: Sysvar<'info, Rent>, -} - -/// [gumdrop::claim_candy_proven] accounts. -#[derive(Accounts)] -#[instruction(wallet_bump: u8, claim_bump: u8, index: u64)] -pub struct ClaimCandyProven<'info> { - /// The [MerkleDistributor]. - #[account(mut)] - pub distributor: Account<'info, MerkleDistributor>, - - /// The [MerkleDistributor] wallet - #[account( - seeds = [ - b"Wallet".as_ref(), - distributor.key().to_bytes().as_ref() - ], - bump = wallet_bump, - mut - )] - /// CHECK: PDA checked - pub distributor_wallet: AccountInfo<'info>, - - /// Status of the claim. Created with prove_claim - #[account( - seeds = [ - CLAIM_COUNT, - index.to_le_bytes().as_ref(), - distributor.key().to_bytes().as_ref() - ], - bump = claim_bump, - mut, - )] - pub claim_proof: Account<'info, ClaimProof>, - - /// Payer of the claim. Should be `mint_authority` for `candy_machine_mint` and will be - /// `update_authority` for `candy_machine_metadata` - pub payer: Signer<'info>, - - /// Candy-machine Config - /// CHECK: Checked via CPI - pub candy_machine_config: AccountInfo<'info>, - - /// Candy-Machine. Verified through CPI - #[account(mut)] - /// CHECK: Checked via CPI - pub candy_machine: AccountInfo<'info>, - - /// Candy-Machine-Wallet. Verified through CPI - #[account(mut)] - /// CHECK: Checked via CPI - pub candy_machine_wallet: AccountInfo<'info>, - - /// Generated mint - #[account(mut)] - /// CHECK: Checked via CPI - pub candy_machine_mint: AccountInfo<'info>, - - /// PDA of `candy_machine_mint` - #[account(mut)] - /// CHECK: Checked via CPI - pub candy_machine_metadata: AccountInfo<'info>, - - /// PDA of `candy_machine_mint` - #[account(mut)] - /// CHECK: Checked via CPI - pub candy_machine_master_edition: AccountInfo<'info>, - - /// The [System] program. - pub system_program: Program<'info, System>, - - /// SPL [Token] program. - pub token_program: Program<'info, Token>, - - /// SPL [TokenMetadata] program. - #[account(address = mpl_token_metadata::id())] - /// CHECK: - pub token_metadata_program: AccountInfo<'info>, - - /// SPL [CandyMachine] program. - /// CHECK: account checked in handler - pub candy_machine_program: AccountInfo<'info>, - - rent: Sysvar<'info, Rent>, - clock: Sysvar<'info, Clock>, -} - -/// [gumdrop::recover_update_authority] accounts. -#[derive(Accounts)] -#[instruction(_bump: u8, wallet_bump: u8)] -pub struct RecoverUpdateAuthority<'info> { - /// Base key of the distributor. - pub base: Signer<'info>, - - /// [MerkleDistributor]. - #[account( - seeds = [ - b"MerkleDistributor".as_ref(), - base.key().to_bytes().as_ref() - ], - bump = _bump, - )] - pub distributor: Account<'info, MerkleDistributor>, - - /// The [MerkleDistributor] wallet - #[account( - seeds = [ - b"Wallet".as_ref(), - distributor.key().to_bytes().as_ref() - ], - bump = wallet_bump, - )] - /// CHECK: Checked via PDA seed and base sign - pub distributor_wallet: AccountInfo<'info>, - - /// New update authority - /// CHECK: No need to check this is input - pub new_update_authority: AccountInfo<'info>, - - /// Metadata account to update authority for - #[account(mut)] - /// CHECK: Checked via CPI - pub metadata: AccountInfo<'info>, - - /// The [System] program. - pub system_program: Program<'info, System>, - - /// SPL [TokenMetadata] program. - #[account(address = mpl_token_metadata::id())] - /// CHECK: Address Checked - pub token_metadata_program: AccountInfo<'info>, -} - -/// State for the account which distributes tokens. -#[account] -#[derive(Default)] -pub struct MerkleDistributor { - /// Base key used to generate the PDA. - pub base: Pubkey, - /// Bump seed. - pub bump: u8, - - /// The 256-bit merkle root. - pub root: [u8; 32], - - /// Third-party signer expected on claims. Verified by OTP with off-chain distribution method - pub temporal: Pubkey, -} - -#[account] -#[derive(Default)] -pub struct ClaimStatus { - /// If true, the tokens have been claimed. - pub is_claimed: bool, - /// Authority that claimed the tokens. - pub claimant: Pubkey, - /// When the tokens were claimed. - pub claimed_at: i64, - /// Amount of tokens claimed. - pub amount: u64, -} - -#[account] -#[derive(Default)] -pub struct ClaimCount { - /// Number of NFTs claimed. Compared versus `amount` in merkle tree data / proof - pub count: u64, - /// Authority that claimed the tokens. - pub claimant: Pubkey, -} - -/// Allows for proof and candy minting in separate transactions to avoid transaction-size limit. -/// -/// Used for all resources (tokens, candy claims, and edition mints) -#[account] -#[derive(Default)] -pub struct ClaimProof { - /// Total number of NFTs that can be claimed - pub amount: u64, - /// Number of NFTs claimed. Compared versus `amount` in merkle tree data / proof - pub count: u64, - /// Authority that claimed the tokens. - pub claimant: Pubkey, - /// Resource allocated for this gumdrop. There should only be 1 per gumdrop - pub resource: Pubkey, - pub resource_nonce: Vec, -} - -/// Emitted when tokens are claimed. -#[event] -pub struct ClaimedEvent { - /// Index of the claim. - pub index: u64, - /// User that claimed. - pub claimant: Pubkey, - /// Amount of tokens to distribute. - pub amount: u64, -} - -#[error_code] -pub enum GumdropError { - #[msg("Invalid Merkle proof.")] - InvalidProof, - #[msg("Drop already claimed.")] - DropAlreadyClaimed, - #[msg("Account is not authorized to execute this instruction")] - Unauthorized, - #[msg("Token account owner did not match intended owner")] - OwnerMismatch, - #[msg("Temporal signer did not match distributor")] - TemporalMismatch, - #[msg("Numerical Overflow")] - NumericalOverflow, - #[msg("Invalid Claim Bump")] - InvalidClaimBump, - #[msg("Gumdrop only supports the official Metaplex Candy machine contracts")] - MustUseOfficialCandyMachine, - #[msg("Bump seed not in hash map")] - BumpSeedNotInHashMap, -} - -#[account] -#[derive(Default)] -pub struct CandyMachine { - pub authority: Pubkey, - pub wallet: Pubkey, - pub token_mint: Option, - pub config: Pubkey, - pub data: CandyMachineData, - pub items_redeemed: u64, - pub bump: u8, -} - -#[account] -#[derive(Default)] -pub struct Config { - pub authority: Pubkey, - pub data: ConfigData, -} - -#[derive(AnchorSerialize, AnchorDeserialize, Clone, Default)] -pub struct ConfigData { - pub uuid: String, - /// The symbol for the asset - pub symbol: String, - /// Royalty basis points that goes to creators in secondary sales (0-10000) - pub seller_fee_basis_points: u16, - pub creators: Vec, - pub max_supply: u64, - pub is_mutable: bool, - pub retain_authority: bool, - pub max_number_of_lines: u32, -} - -#[derive(AnchorSerialize, AnchorDeserialize, Clone)] -pub struct Creator { - pub address: Pubkey, - pub verified: bool, - // In percentages, NOT basis points ;) Watch out! - pub share: u8, -} - -#[derive(AnchorSerialize, AnchorDeserialize, Clone, Default)] -pub struct CandyMachineData { - pub uuid: String, - pub price: u64, - pub items_available: u64, - pub go_live_date: Option, -} diff --git a/gumdrop/program/src/merkle_proof.rs b/gumdrop/program/src/merkle_proof.rs deleted file mode 100644 index e857711c2e..0000000000 --- a/gumdrop/program/src/merkle_proof.rs +++ /dev/null @@ -1,23 +0,0 @@ -//! These functions deal with verification of Merkle trees (hash trees). -//! Direct port of https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.4.0/contracts/cryptography/MerkleProof.sol - -/// Returns true if a `leaf` can be proved to be a part of a Merkle tree -/// defined by `root`. For this, a `proof` must be provided, containing -/// sibling hashes on the branch from the leaf to the root of the tree. Each -/// pair of leaves and each pair of pre-images are assumed to be sorted. -pub fn verify(proof: Vec<[u8; 32]>, root: [u8; 32], leaf: [u8; 32]) -> bool { - let mut computed_hash = leaf; - for proof_element in proof.into_iter() { - if computed_hash <= proof_element { - // Hash(current computed hash + current element of the proof) - computed_hash = - solana_program::keccak::hashv(&[&[0x01], &computed_hash, &proof_element]).0; - } else { - // Hash(current element of the proof + current computed hash) - computed_hash = - solana_program::keccak::hashv(&[&[0x01], &proof_element, &computed_hash]).0; - } - } - // Check if the computed hash (root) is equal to the provided root - computed_hash == root -} diff --git a/test.sh b/test.sh index 67c847ba67..fb90d7580e 100755 --- a/test.sh +++ b/test.sh @@ -9,7 +9,7 @@ function exists_in_list() { input=$1 -programs="auction-house auctioneer candy-machine fixed-price-sale gumdrop hydra token-entangler" +programs="auction-house auctioneer candy-machine fixed-price-sale hydra token-entangler" mkdir -p test-programs