From 1dacb4136128755db948cfea107bd466b0615ab8 Mon Sep 17 00:00:00 2001 From: Maximilian Schneider Date: Wed, 5 May 2021 15:02:16 +0300 Subject: [PATCH] [wip] add anchor & ido-pool program --- @types/types.tsx | 1 + hooks/useWallet.tsx | 9 +- idls/ido_pool.json | 392 ++++++++++++++++++++++++++++++++++++++ next.config.js | 3 + package.json | 1 + stores/useWalletStore.tsx | 35 +++- utils/tokens.tsx | 2 +- yarn.lock | 142 +++++++++++++- 8 files changed, 573 insertions(+), 12 deletions(-) create mode 100644 idls/ido_pool.json diff --git a/@types/types.tsx b/@types/types.tsx index 04f0885..60234af 100644 --- a/@types/types.tsx +++ b/@types/types.tsx @@ -19,6 +19,7 @@ export interface EndpointInfo { name: string url: string websocket: string + programId: string } export interface WalletContextValues { diff --git a/hooks/useWallet.tsx b/hooks/useWallet.tsx index 6948ffb..dab925f 100644 --- a/hooks/useWallet.tsx +++ b/hooks/useWallet.tsx @@ -102,8 +102,9 @@ export default function useWallet() { '...' + wallet.publicKey.toString().substr(-5), }) - await actions.fetchWalletTokenAccounts() - await actions.fetchWalletMints() + //await actions.fetchWalletTokenAccounts() + //await actions.fetchWalletMints() + await actions.fetchPool() }) wallet.on('disconnect', () => { setWalletStore((state) => { @@ -127,8 +128,8 @@ export default function useWallet() { }, [wallet, setWalletStore]) useInterval(async () => { - await actions.fetchWalletTokenAccounts() - await actions.fetchWalletMints() + //await actions.fetchWalletTokenAccounts() + //await actions.fetchWalletMints() }, 20 * SECONDS) return { connected, wallet } diff --git a/idls/ido_pool.json b/idls/ido_pool.json new file mode 100644 index 0000000..ce35c87 --- /dev/null +++ b/idls/ido_pool.json @@ -0,0 +1,392 @@ +{ + "version": "0.0.0", + "name": "ido_pool", + "instructions": [ + { + "name": "initializePool", + "accounts": [ + { + "name": "poolAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "poolSigner", + "isMut": false, + "isSigner": false + }, + { + "name": "redeemableMint", + "isMut": false, + "isSigner": false + }, + { + "name": "usdcMint", + "isMut": false, + "isSigner": false + }, + { + "name": "poolWatermelon", + "isMut": true, + "isSigner": false + }, + { + "name": "poolUsdc", + "isMut": false, + "isSigner": false + }, + { + "name": "distributionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "creatorWatermelon", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "numIdoTokens", + "type": "u64" + }, + { + "name": "nonce", + "type": "u8" + }, + { + "name": "startIdoTs", + "type": "i64" + }, + { + "name": "endDepositsTs", + "type": "i64" + }, + { + "name": "endIdoTs", + "type": "i64" + } + ] + }, + { + "name": "exchangeUsdcForRedeemable", + "accounts": [ + { + "name": "poolAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "poolSigner", + "isMut": false, + "isSigner": false + }, + { + "name": "redeemableMint", + "isMut": true, + "isSigner": false + }, + { + "name": "poolUsdc", + "isMut": true, + "isSigner": false + }, + { + "name": "userAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "userUsdc", + "isMut": true, + "isSigner": false + }, + { + "name": "userRedeemable", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "exchangeRedeemableForUsdc", + "accounts": [ + { + "name": "poolAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "poolSigner", + "isMut": false, + "isSigner": false + }, + { + "name": "redeemableMint", + "isMut": true, + "isSigner": false + }, + { + "name": "poolUsdc", + "isMut": true, + "isSigner": false + }, + { + "name": "userAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "userUsdc", + "isMut": true, + "isSigner": false + }, + { + "name": "userRedeemable", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "exchangeRedeemableForWatermelon", + "accounts": [ + { + "name": "poolAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "poolSigner", + "isMut": false, + "isSigner": false + }, + { + "name": "redeemableMint", + "isMut": true, + "isSigner": false + }, + { + "name": "poolWatermelon", + "isMut": true, + "isSigner": false + }, + { + "name": "userAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "userWatermelon", + "isMut": true, + "isSigner": false + }, + { + "name": "userRedeemable", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "withdrawPoolUsdc", + "accounts": [ + { + "name": "poolAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "poolSigner", + "isMut": false, + "isSigner": false + }, + { + "name": "poolUsdc", + "isMut": true, + "isSigner": false + }, + { + "name": "distributionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "creatorUsdc", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [] + } + ], + "accounts": [ + { + "name": "PoolAccount", + "type": { + "kind": "struct", + "fields": [ + { + "name": "redeemableMint", + "type": "publicKey" + }, + { + "name": "poolWatermelon", + "type": "publicKey" + }, + { + "name": "watermelonMint", + "type": "publicKey" + }, + { + "name": "poolUsdc", + "type": "publicKey" + }, + { + "name": "distributionAuthority", + "type": "publicKey" + }, + { + "name": "nonce", + "type": "u8" + }, + { + "name": "numIdoTokens", + "type": "u64" + }, + { + "name": "startIdoTs", + "type": "i64" + }, + { + "name": "endDepositsTs", + "type": "i64" + }, + { + "name": "endIdoTs", + "type": "i64" + } + ] + } + } + ], + "errors": [ + { + "code": 100, + "name": "InitTime", + "msg": "IDO times are non-sequential" + }, + { + "code": 101, + "name": "StartIdoTime", + "msg": "IDO has not started" + }, + { + "code": 102, + "name": "EndDepositsTime", + "msg": "Deposits period has ended" + }, + { + "code": 103, + "name": "EndIdoTime", + "msg": "IDO has ended" + }, + { + "code": 104, + "name": "IdoNotOver", + "msg": "IDO has not finished yet" + }, + { + "code": 105, + "name": "LowUsdc", + "msg": "Insufficient USDC" + }, + { + "code": 106, + "name": "LowRedeemable", + "msg": "Insufficient redeemable tokens" + }, + { + "code": 107, + "name": "UsdcNotEqRedeem", + "msg": "USDC total and redeemable total don't match" + }, + { + "code": 108, + "name": "InvalidNonce", + "msg": "Given nonce is invalid" + } + ], + "metadata": { + "address": "4vZP5tE6sjKrSSuFwSxvmx76kc99BCVUeDo1dYT5tXAF" + } +} \ No newline at end of file diff --git a/next.config.js b/next.config.js index faceb0f..78478f8 100644 --- a/next.config.js +++ b/next.config.js @@ -5,6 +5,9 @@ module.exports = { test: /\.svg$/, use: ['@svgr/webpack'], }) + config.node = { + fs: 'empty', + } return config }, diff --git a/package.json b/package.json index 8749b5d..f6fc364 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "@emotion/styled": "^11.3.0", "@headlessui/react": "^1.0.0", "@heroicons/react": "^1.0.1", + "@project-serum/anchor": "^0.4.5", "@project-serum/sol-wallet-adapter": "^0.2.0", "@solana/spl-token": "^0.1.3", "@solana/web3.js": "^1.5.0", diff --git a/stores/useWalletStore.tsx b/stores/useWalletStore.tsx index 107c85d..d5ee063 100644 --- a/stores/useWalletStore.tsx +++ b/stores/useWalletStore.tsx @@ -1,8 +1,13 @@ import create, { State } from 'zustand' import produce from 'immer' -import { Connection } from '@solana/web3.js' +import { Connection, PublicKey } from '@solana/web3.js' +import * as anchor from '@project-serum/anchor' import { EndpointInfo, WalletAdapter } from '../@types/types' + +// @ts-ignore +import poolIdl from '../idls/ido_pool' + import { getOwnedTokenAccounts, getMint, @@ -14,20 +19,23 @@ import { export const ENDPOINTS: EndpointInfo[] = [ { name: 'mainnet-beta', - url: 'https://solana-api.projectserum.com/', + url: 'https://api.mainnet-beta.solana.com/', websocket: 'https://api.mainnet-beta.solana.com/', + programId: '', }, { name: 'devnet', url: 'https://devnet.solana.com', websocket: 'https://devnet.solana.com', + programId: 'E5s3D6B3PJinuB9kb3dicxfi3qUNLUGX6hoPawhbqagt', }, ] -const CLUSTER = 'mainnet-beta' +const CLUSTER = 'devnet' const ENDPOINT = ENDPOINTS.find((e) => e.name === CLUSTER) const DEFAULT_CONNECTION = new Connection(ENDPOINT.url, 'recent') const WEBSOCKET_CONNECTION = new Connection(ENDPOINT.websocket, 'recent') +const PROGRAM_ID = new PublicKey(ENDPOINT.programId) interface WalletStore extends State { connected: boolean @@ -36,11 +44,13 @@ interface WalletStore extends State { current: Connection websocket: Connection endpoint: string + programId: PublicKey } current: WalletAdapter | undefined providerUrl: string tokenAccounts: ProgramAccount[] mints: { [pubkey: string]: MintAccount } + pool: anchor.web3.Account | undefined set: (x: any) => void actions: any } @@ -52,11 +62,13 @@ const useWalletStore = create((set, get) => ({ current: DEFAULT_CONNECTION, websocket: WEBSOCKET_CONNECTION, endpoint: ENDPOINT.url, + programId: PROGRAM_ID, }, current: null, providerUrl: null, tokenAccounts: [], mints: {}, + pool: null, actions: { async fetchWalletTokenAccounts() { const connection = get().connection.current @@ -106,6 +118,23 @@ const useWalletStore = create((set, get) => ({ }) } }, + async fetchPool() { + const connection = get().connection.current + const connected = get().connected + const wallet = get().current + const programId = get().connection.programId + + console.log('fetchPool', connected, poolIdl) + if (connection && connected) { + const provider = new anchor.Provider( + connection, + wallet, + anchor.Provider.defaultOptions() + ) + const program = new anchor.Program(poolIdl, programId, provider) + console.log(program) + } + }, }, set: (fn) => set(produce(fn)), })) diff --git a/utils/tokens.tsx b/utils/tokens.tsx index ab40271..3abd98a 100644 --- a/utils/tokens.tsx +++ b/utils/tokens.tsx @@ -57,7 +57,7 @@ function parseTokenAccountData(account: PublicKey, data: Buffer): TokenAccount { if (accountInfo.delegateOption === 0) { accountInfo.delegate = null - accountInfo.delegatedAmount = new u64() + accountInfo.delegatedAmount = new u64(0) } else { accountInfo.delegate = new PublicKey(accountInfo.delegate) accountInfo.delegatedAmount = u64.fromBuffer(accountInfo.delegatedAmount) diff --git a/yarn.lock b/yarn.lock index 1583c43..d8d4759 100644 --- a/yarn.lock +++ b/yarn.lock @@ -704,6 +704,37 @@ version "0.14.0" resolved "https://registry.yarnpkg.com/@opentelemetry/context-base/-/context-base-0.14.0.tgz#c67fc20a4d891447ca1a855d7d70fa79a3533001" +"@project-serum/anchor@^0.4.5": + version "0.4.5" + resolved "https://registry.yarnpkg.com/@project-serum/anchor/-/anchor-0.4.5.tgz#6c52b5722a3133d5f1df793bfbc1af5c07b0316d" + integrity sha512-LxcV8yZae/sOBPZULDlVGqsIyFkjhmJKi2kx1id9EybECX5QqYQTMS69ozdH2e+5VEDjw0dCfRqBCMJ97ylmmQ== + dependencies: + "@project-serum/borsh" "^0.1.1" + "@solana/web3.js" "^1.2.0" + "@types/bn.js" "^4.11.6" + "@types/bs58" "^4.0.1" + "@types/crypto-hash" "^1.1.2" + "@types/pako" "^1.0.1" + base64-js "^1.5.1" + bn.js "^5.1.2" + bs58 "^4.0.1" + buffer-layout "^1.2.0" + camelcase "^5.3.1" + crypto-hash "^1.3.0" + eventemitter3 "^4.0.7" + find "^0.3.0" + js-sha256 "^0.9.0" + pako "^2.0.3" + snake-case "^3.0.4" + +"@project-serum/borsh@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@project-serum/borsh/-/borsh-0.1.1.tgz#a810aad74e4b458fbd1ab63188f175bee765a8af" + integrity sha512-bzCea8KTyc7CNkcMn0V2HW/FdU9pnJUcVRrwLqvJkYeo+mhkXE4AxxWErN3q+UxhEm8ypGIX1OYTKJaTJvj5cQ== + dependencies: + bn.js "^5.1.2" + buffer-layout "^1.2.0" + "@project-serum/sol-wallet-adapter@^0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@project-serum/sol-wallet-adapter/-/sol-wallet-adapter-0.2.0.tgz#e1fa5508bf13110429bf26e10b818182015f2161" @@ -734,6 +765,25 @@ buffer-layout "^1.2.0" dotenv "8.2.0" +"@solana/web3.js@^1.2.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.9.0.tgz#1676215a2e89e2cb6e4694c5970c3c7c8ac12a19" + integrity sha512-wal/itYezfH7ePMoBL6mtSa+J2jTkd7bOwlaen2jeJA+aHmQaLfP+XpI27Y+hPmSRChmHggVgl+/ayX4LX8sZg== + dependencies: + "@babel/runtime" "^7.12.5" + bn.js "^5.0.0" + bs58 "^4.0.1" + buffer "6.0.1" + buffer-layout "^1.2.0" + crypto-hash "^1.2.2" + jayson "^3.4.4" + js-sha3 "^0.8.0" + node-fetch "^2.6.1" + rpc-websockets "^7.4.2" + secp256k1 "^4.0.2" + superstruct "^0.14.2" + tweetnacl "^1.0.0" + "@solana/web3.js@^1.2.2", "@solana/web3.js@^1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.5.0.tgz#4819ecad0408ec55f3d47a227627856002a7358b" @@ -805,12 +855,33 @@ dependencies: "@babel/types" "^7.3.0" +"@types/bn.js@^4.11.6": + version "4.11.6" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" + integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== + dependencies: + "@types/node" "*" + +"@types/bs58@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/bs58/-/bs58-4.0.1.tgz#3d51222aab067786d3bc3740a84a7f5a0effaa37" + integrity sha512-yfAgiWgVLjFCmRv8zAcOIHywYATEwiTVccTLnRp6UxTNavT55M9d/uhK3T03St/+8/z/wW+CRjGKUNmEqoHHCA== + dependencies: + base-x "^3.0.6" + "@types/connect@^3.4.33": version "3.4.34" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.34.tgz#170a40223a6d666006d93ca128af2beb1d9b1901" dependencies: "@types/node" "*" +"@types/crypto-hash@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@types/crypto-hash/-/crypto-hash-1.1.2.tgz#5a993deb0e6ba7c42f86eaa65d9bf563378f4569" + integrity sha512-sOmi+4Go2XKodLV4+lfP+5QMQ+6ZYqRJhK8D/n6xsxIUvlerEulmU9S4Lo02pXCH3qPBeJXEy+g8ZERktDJLSg== + dependencies: + crypto-hash "*" + "@types/express-serve-static-core@^4.17.9": version "4.17.19" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz#00acfc1632e729acac4f1530e9e16f6dd1508a1d" @@ -868,6 +939,11 @@ version "2.4.0" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" +"@types/pako@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/pako/-/pako-1.0.1.tgz#33b237f3c9aff44d0f82fe63acffa4a365ef4a61" + integrity sha512-GdZbRSJ3Cv5fiwT6I0SQ3ckeN2PWNqxd26W9Z2fCK1tGrrasGy4puvNFtnddqH9UJFMQYXxEuuB7B8UK+LLwSg== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -1323,13 +1399,13 @@ balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" -base-x@^3.0.2: +base-x@^3.0.2, base-x@^3.0.6: version "3.0.8" resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d" dependencies: safe-buffer "^5.0.1" -base64-js@^1.0.2, base64-js@^1.3.1: +base64-js@^1.0.2, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" @@ -1363,7 +1439,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" -bn.js@^5.0.0, bn.js@^5.1.0, bn.js@^5.1.1: +bn.js@^5.0.0, bn.js@^5.1.0, bn.js@^5.1.1, bn.js@^5.1.2: version "5.2.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" @@ -1900,7 +1976,7 @@ crypto-browserify@3.12.0, crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -crypto-hash@^1.2.2: +crypto-hash@*, crypto-hash@^1.2.2, crypto-hash@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" @@ -2151,6 +2227,14 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" +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" + dotenv@8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" @@ -2611,6 +2695,13 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/find/-/find-0.3.0.tgz#4082e8fc8d8320f1a382b5e4f521b9bc50775cb8" + integrity sha512-iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw== + dependencies: + traverse-chain "~0.1.0" + flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -3725,6 +3816,11 @@ jest@^26.6.3: import-local "^3.0.2" jest-cli "^26.6.3" +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-sha3@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" @@ -4012,6 +4108,13 @@ loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" +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" @@ -4236,6 +4339,14 @@ nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" +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-addon-api@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" @@ -4511,6 +4622,11 @@ p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" +pako@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.3.tgz#cdf475e31b678565251406de9e759196a0ea7a43" + integrity sha512-WjR1hOeg+kki3ZIOjaf4b5WVcay1jaliKSYiEaB1XzwhMQZJxRdQRv0V31EKBYlxb4T7SK3hjfc/jxyU64BoSw== + pako@~1.0.5: version "1.0.11" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" @@ -5592,6 +5708,14 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +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" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -6081,6 +6205,11 @@ tr46@^2.0.2: dependencies: punycode "^2.1.1" +traverse-chain@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/traverse-chain/-/traverse-chain-0.1.0.tgz#61dbc2d53b69ff6091a12a168fd7d433107e40f1" + integrity sha1-YdvC1Ttp/2CRoSoWj9fUMxB+QPE= + ts-pnp@^1.1.6: version "1.2.0" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" @@ -6089,6 +6218,11 @@ tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" +tslib@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" + integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== + tsutils@^3.17.1: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"