[wip] add anchor & ido-pool program

This commit is contained in:
Maximilian Schneider 2021-05-05 15:02:16 +03:00
parent a72c04ae60
commit 1dacb41361
8 changed files with 573 additions and 12 deletions

View File

@ -19,6 +19,7 @@ export interface EndpointInfo {
name: string
url: string
websocket: string
programId: string
}
export interface WalletContextValues {

View File

@ -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 }

392
idls/ido_pool.json Normal file
View File

@ -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"
}
}

View File

@ -5,6 +5,9 @@ module.exports = {
test: /\.svg$/,
use: ['@svgr/webpack'],
})
config.node = {
fs: 'empty',
}
return config
},

View File

@ -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",

View File

@ -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<TokenAccount>[]
mints: { [pubkey: string]: MintAccount }
pool: anchor.web3.Account | undefined
set: (x: any) => void
actions: any
}
@ -52,11 +62,13 @@ const useWalletStore = create<WalletStore>((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<WalletStore>((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)),
}))

View File

@ -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)

142
yarn.lock
View File

@ -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"