From 689c63593309e44b2b2c1fdbf742f03c101f7704 Mon Sep 17 00:00:00 2001 From: Noel Hawat Date: Wed, 17 Apr 2024 14:21:55 -0700 Subject: [PATCH] fix(sdk-coin-sol): update `split` with latest SOL library TICKET: WP-0000 --- modules/account-lib/package.json | 2 +- modules/sdk-coin-sol/package.json | 4 +- modules/sdk-coin-sol/src/lib/constants.ts | 1 + .../src/lib/solInstructionFactory.ts | 15 +- .../src/lib/stakingDeactivateBuilder.ts | 5 +- .../unit/instructionParamsFactory.staking.ts | 139 +++++++----- package.json | 1 + yarn.lock | 203 +++++++++++++----- 8 files changed, 245 insertions(+), 125 deletions(-) diff --git a/modules/account-lib/package.json b/modules/account-lib/package.json index f2d2247aac..d1286bc5c9 100644 --- a/modules/account-lib/package.json +++ b/modules/account-lib/package.json @@ -68,7 +68,7 @@ "bs58": "^4.0.1" }, "devDependencies": { - "@solana/web3.js": "1.91.3", + "@solana/web3.js": "1.91.6", "@types/bs58": "^4.0.1", "keccak": "3.0.3", "paillier-bigint": "3.3.0", diff --git a/modules/sdk-coin-sol/package.json b/modules/sdk-coin-sol/package.json index 79209c1b82..02e095cb62 100644 --- a/modules/sdk-coin-sol/package.json +++ b/modules/sdk-coin-sol/package.json @@ -43,8 +43,8 @@ "@bitgo/sdk-core": "^26.7.0", "@bitgo/sdk-lib-mpc": "^9.2.0", "@bitgo/statics": "^48.6.0", - "@solana/spl-token": "0.3.1", - "@solana/web3.js": "1.91.3", + "@solana/spl-token": "0.4.3", + "@solana/web3.js": "1.91.6", "bignumber.js": "^9.0.0", "bs58": "^4.0.1", "lodash": "^4.17.14", diff --git a/modules/sdk-coin-sol/src/lib/constants.ts b/modules/sdk-coin-sol/src/lib/constants.ts index 65056bdec7..9ced0f7e92 100644 --- a/modules/sdk-coin-sol/src/lib/constants.ts +++ b/modules/sdk-coin-sol/src/lib/constants.ts @@ -5,6 +5,7 @@ export const MEMO_PROGRAM_PK = 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr'; export const SEED_LENGTH = 32; export const MAX_MEMO_LENGTH = 100; +export const STAKE_ACCOUNT_RENT_EXEMPT_AMOUNT = 2282880; export const UNAVAILABLE_TEXT = 'UNAVAILABLE'; diff --git a/modules/sdk-coin-sol/src/lib/solInstructionFactory.ts b/modules/sdk-coin-sol/src/lib/solInstructionFactory.ts index 31ab7d0166..0cbfdf84d1 100644 --- a/modules/sdk-coin-sol/src/lib/solInstructionFactory.ts +++ b/modules/sdk-coin-sol/src/lib/solInstructionFactory.ts @@ -241,12 +241,15 @@ function stakingDeactivateInstruction(data: StakingDeactivate): TransactionInstr }); tx.add(assignAccount); - const splitStake = StakeProgram.split({ - stakePubkey: new PublicKey(stakingAddress), - authorizedPubkey: new PublicKey(fromAddress), - splitStakePubkey: unstakingAddress, - lamports: new BigNumber(data.params.amount).toNumber(), - }); + const splitStake = StakeProgram.split( + { + stakePubkey: new PublicKey(stakingAddress), + authorizedPubkey: new PublicKey(fromAddress), + splitStakePubkey: unstakingAddress, + lamports: new BigNumber(data.params.amount).toNumber(), + }, + 0 + ); tx.add(splitStake.instructions[1]); const deactivateStaking = StakeProgram.deactivate({ diff --git a/modules/sdk-coin-sol/src/lib/stakingDeactivateBuilder.ts b/modules/sdk-coin-sol/src/lib/stakingDeactivateBuilder.ts index c2ab5aef55..2d937776d7 100644 --- a/modules/sdk-coin-sol/src/lib/stakingDeactivateBuilder.ts +++ b/modules/sdk-coin-sol/src/lib/stakingDeactivateBuilder.ts @@ -2,7 +2,7 @@ import { BaseCoin as CoinConfig } from '@bitgo/statics'; import assert from 'assert'; import { BuildTransactionError, TransactionType } from '@bitgo/sdk-core'; -import { InstructionBuilderTypes } from './constants'; +import { InstructionBuilderTypes, STAKE_ACCOUNT_RENT_EXEMPT_AMOUNT } from './constants'; import { StakingDeactivate, Transfer } from './iface'; import { Transaction } from './transaction'; import { TransactionBuilder } from './transactionBuilder'; @@ -12,7 +12,6 @@ export class StakingDeactivateBuilder extends TransactionBuilder { protected _stakingAddress: string; protected _stakingAddresses: string[]; protected _amount?: string; - protected _fundUnstakeAddress = 2282880; protected _unstakingAddress: string; constructor(_coinConfig: Readonly) { @@ -146,7 +145,7 @@ export class StakingDeactivateBuilder extends TransactionBuilder { type: InstructionBuilderTypes.Transfer, params: { fromAddress: this._sender, - amount: this._fundUnstakeAddress.toString(), + amount: STAKE_ACCOUNT_RENT_EXEMPT_AMOUNT.toString(), toAddress: this._unstakingAddress, }, }; diff --git a/modules/sdk-coin-sol/test/unit/instructionParamsFactory.staking.ts b/modules/sdk-coin-sol/test/unit/instructionParamsFactory.staking.ts index 434bd37eed..6d821eb762 100644 --- a/modules/sdk-coin-sol/test/unit/instructionParamsFactory.staking.ts +++ b/modules/sdk-coin-sol/test/unit/instructionParamsFactory.staking.ts @@ -3,7 +3,7 @@ import * as testData from '../resources/sol'; import { instructionParamsFactory } from '../../src/lib/instructionParamsFactory'; import { TransactionType } from '@bitgo/sdk-core'; import { InstructionParams, Nonce, StakingActivate, StakingDeactivate, StakingWithdraw } from '../../src/lib/iface'; -import { InstructionBuilderTypes, MEMO_PROGRAM_PK } from '../../src/lib/constants'; +import { InstructionBuilderTypes, MEMO_PROGRAM_PK, STAKE_ACCOUNT_RENT_EXEMPT_AMOUNT } from '../../src/lib/constants'; import { Keypair as SolKeypair, Lockup, @@ -484,12 +484,15 @@ describe('Instruction Parser Staking Tests: ', function () { programId: StakeProgram.programId, }); - const splitInstructions = StakeProgram.split({ - stakePubkey: stakingAccount, - authorizedPubkey: fromAccount, - splitStakePubkey: splitStakeAccount, - lamports: 100000, - }).instructions; + const splitInstructions = StakeProgram.split( + { + stakePubkey: stakingAccount, + authorizedPubkey: fromAccount, + splitStakePubkey: splitStakeAccount, + lamports: 100000, + }, + 0 + ).instructions; const stakingDeactivateInstructions = StakeProgram.deactivate({ authorizedPubkey: fromAccount, @@ -532,12 +535,15 @@ describe('Instruction Parser Staking Tests: ', function () { space: StakeProgram.space, }); - const splitInstructions = StakeProgram.split({ - stakePubkey: stakingAccount, - authorizedPubkey: fromAccount, - splitStakePubkey: splitStakeAccount, - lamports: 100000, - }).instructions; + const splitInstructions = StakeProgram.split( + { + stakePubkey: stakingAccount, + authorizedPubkey: fromAccount, + splitStakePubkey: splitStakeAccount, + lamports: 100000, + }, + 0 + ).instructions; const stakingDeactivateInstructions = StakeProgram.deactivate({ authorizedPubkey: fromAccount, @@ -624,12 +630,15 @@ describe('Instruction Parser Staking Tests: ', function () { space: StakeProgram.space, }); - const splitInstructions = StakeProgram.split({ - stakePubkey: stakingAccount, - authorizedPubkey: fromAccount, - splitStakePubkey: splitStakeAccount, - lamports: 100000, - }).instructions; + const splitInstructions = StakeProgram.split( + { + stakePubkey: stakingAccount, + authorizedPubkey: fromAccount, + splitStakePubkey: splitStakeAccount, + lamports: 100000, + }, + 0 + ).instructions; const assignInstruction = SystemProgram.assign({ accountPubkey: splitStakeAccount, @@ -683,12 +692,15 @@ describe('Instruction Parser Staking Tests: ', function () { programId: StakeProgram.programId, }); - const splitInstructions = StakeProgram.split({ - stakePubkey: stakingAccount, - authorizedPubkey: fromAccount, - splitStakePubkey: splitStakeAccount, - lamports: 100000, - }).instructions; + const splitInstructions = StakeProgram.split( + { + stakePubkey: stakingAccount, + authorizedPubkey: fromAccount, + splitStakePubkey: splitStakeAccount, + lamports: 100000, + }, + 0 + ).instructions; const stakingDeactivateInstructions = StakeProgram.deactivate({ authorizedPubkey: fromAccount, @@ -738,12 +750,15 @@ describe('Instruction Parser Staking Tests: ', function () { programId: StakeProgram.programId, }); - const splitInstructions = StakeProgram.split({ - stakePubkey: stakingAccount, - authorizedPubkey: fromAccount, - splitStakePubkey: splitStakeAccount, - lamports: 100000, - }).instructions; + const splitInstructions = StakeProgram.split( + { + stakePubkey: stakingAccount, + authorizedPubkey: fromAccount, + splitStakePubkey: splitStakeAccount, + lamports: 100000, + }, + 0 + ).instructions; const stakingDeactivateInstructions = StakeProgram.deactivate({ authorizedPubkey: fromAccount, @@ -793,12 +808,15 @@ describe('Instruction Parser Staking Tests: ', function () { programId: SystemProgram.programId, }); - const splitInstructions = StakeProgram.split({ - stakePubkey: stakingAccount, - authorizedPubkey: fromAccount, - splitStakePubkey: splitStakeAccount, - lamports: 100000, - }).instructions; + const splitInstructions = StakeProgram.split( + { + stakePubkey: stakingAccount, + authorizedPubkey: fromAccount, + splitStakePubkey: splitStakeAccount, + lamports: 100000, + }, + 0 + ).instructions; const stakingDeactivateInstructions = StakeProgram.deactivate({ authorizedPubkey: fromAccount, @@ -848,12 +866,15 @@ describe('Instruction Parser Staking Tests: ', function () { programId: StakeProgram.programId, }); - const splitInstructions = StakeProgram.split({ - stakePubkey: stakingAccount, - authorizedPubkey: fromAccount, - splitStakePubkey: stakingAccount, - lamports: 100000, - }).instructions; + const splitInstructions = StakeProgram.split( + { + stakePubkey: stakingAccount, + authorizedPubkey: fromAccount, + splitStakePubkey: stakingAccount, + lamports: 100000, + }, + 0 + ).instructions; const stakingDeactivateInstructions = StakeProgram.deactivate({ authorizedPubkey: fromAccount, @@ -902,12 +923,15 @@ describe('Instruction Parser Staking Tests: ', function () { programId: StakeProgram.programId, }); - const splitInstructions = StakeProgram.split({ - stakePubkey: stakingAccount, - authorizedPubkey: fromAccount, - splitStakePubkey: stakingAccount, - lamports: 100000, - }).instructions; + const splitInstructions = StakeProgram.split( + { + stakePubkey: stakingAccount, + authorizedPubkey: fromAccount, + splitStakePubkey: stakingAccount, + lamports: 100000, + }, + 0 + ).instructions; const stakingDeactivateInstructions = StakeProgram.deactivate({ authorizedPubkey: fromAccount, @@ -951,7 +975,7 @@ describe('Instruction Parser Staking Tests: ', function () { const transferInstruction = SystemProgram.transfer({ fromPubkey: new PublicKey(fromAccount), toPubkey: new PublicKey(splitStakeAccount), - lamports: parseInt((2282880).toString(), 10), + lamports: parseInt(STAKE_ACCOUNT_RENT_EXEMPT_AMOUNT.toString(), 10), }); const allocateInstruction = SystemProgram.allocate({ @@ -964,12 +988,15 @@ describe('Instruction Parser Staking Tests: ', function () { programId: StakeProgram.programId, }); - const splitInstructions = StakeProgram.split({ - stakePubkey: stakingAccount, - authorizedPubkey: fromAccount, - splitStakePubkey: splitStakeAccount, - lamports: 100000, - }).instructions; + const splitInstructions = StakeProgram.split( + { + stakePubkey: stakingAccount, + authorizedPubkey: fromAccount, + splitStakePubkey: splitStakeAccount, + lamports: 100000, + }, + 0 + ).instructions; const stakingDeactivateInstructions = StakeProgram.deactivate({ authorizedPubkey: fromAccount, diff --git a/package.json b/package.json index dfe7fd80b9..139ea236a1 100644 --- a/package.json +++ b/package.json @@ -75,6 +75,7 @@ "@polkadot/x-global": "12.3.2", "@polkadot/x-randomvalues": "12.3.2", "@polkadot/x-ws": "12.3.2", + "@solana/web3.js": "1.91.6", "@substrate/txwrapper-core": "7.0.1", "@substrate/txwrapper-polkadot": "7.0.1", "buffer": "^6.0.3", diff --git a/yarn.lock b/yarn.lock index a5d8178d5e..52cd197b50 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3408,17 +3408,12 @@ dependencies: "@noble/hashes" "1.4.0" -"@noble/ed25519@^1.7.0": - version "1.7.3" - resolved "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz" - integrity sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ== - "@noble/hashes@1.2.0", "@noble/hashes@~1.2.0": version "1.2.0" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz" integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== -"@noble/hashes@1.3.0", "@noble/hashes@^1", "@noble/hashes@^1.0.0", "@noble/hashes@^1.1.2", "@noble/hashes@^1.2.0", "@noble/hashes@~1.3.0": +"@noble/hashes@1.3.0", "@noble/hashes@^1", "@noble/hashes@^1.0.0", "@noble/hashes@^1.2.0", "@noble/hashes@~1.3.0": version "1.3.0" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz" integrity sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg== @@ -3438,7 +3433,7 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== -"@noble/secp256k1@1.6.3", "@noble/secp256k1@1.7.1", "@noble/secp256k1@2.0.0", "@noble/secp256k1@^1.6.3", "@noble/secp256k1@~1.7.0": +"@noble/secp256k1@1.6.3", "@noble/secp256k1@1.7.1", "@noble/secp256k1@2.0.0", "@noble/secp256k1@~1.7.0": version "1.6.3" resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz" integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== @@ -4465,19 +4460,144 @@ dependencies: buffer "~6.0.3" -"@solana/spl-token@0.3.1": - version "0.3.1" - resolved "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.1.tgz" - integrity sha512-26/0XlW5Lyeu3CUlBGt+0o3l4H6AJtRtMMtsxhcKj+DwfGg+QMnPl/exTmZLEsymsn03PFhogd97v5fJXhYeow== +"@solana/codecs-core@2.0.0-experimental.8618508": + version "2.0.0-experimental.8618508" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.0.0-experimental.8618508.tgz#4f6709dd50e671267f3bea7d09209bc6471b7ad0" + integrity sha512-JCz7mKjVKtfZxkuDtwMAUgA7YvJcA2BwpZaA1NOLcted4OMC4Prwa3DUe3f3181ixPYaRyptbF0Ikq2MbDkYEA== + +"@solana/codecs-core@2.0.0-preview.2": + version "2.0.0-preview.2" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.0.0-preview.2.tgz#689784d032fbc1fedbde40bb25d76cdcecf6553b" + integrity sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg== + dependencies: + "@solana/errors" "2.0.0-preview.2" + +"@solana/codecs-data-structures@2.0.0-experimental.8618508": + version "2.0.0-experimental.8618508" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-2.0.0-experimental.8618508.tgz#c16a704ac0f743a2e0bf73ada42d830b3402d848" + integrity sha512-sLpjL9sqzaDdkloBPV61Rht1tgaKq98BCtIKRuyscIrmVPu3wu0Bavk2n/QekmUzaTsj7K1pVSniM0YqCdnEBw== + dependencies: + "@solana/codecs-core" "2.0.0-experimental.8618508" + "@solana/codecs-numbers" "2.0.0-experimental.8618508" + +"@solana/codecs-data-structures@2.0.0-preview.2": + version "2.0.0-preview.2" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-2.0.0-preview.2.tgz#e82cb1b6d154fa636cd5c8953ff3f32959cc0370" + integrity sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg== + dependencies: + "@solana/codecs-core" "2.0.0-preview.2" + "@solana/codecs-numbers" "2.0.0-preview.2" + "@solana/errors" "2.0.0-preview.2" + +"@solana/codecs-numbers@2.0.0-experimental.8618508": + version "2.0.0-experimental.8618508" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.0.0-experimental.8618508.tgz#d84f9ed0521b22e19125eefc7d51e217fcaeb3e4" + integrity sha512-EXQKfzFr3CkKKNzKSZPOOOzchXsFe90TVONWsSnVkonO9z+nGKALE0/L9uBmIFGgdzhhU9QQVFvxBMclIDJo2Q== + dependencies: + "@solana/codecs-core" "2.0.0-experimental.8618508" + +"@solana/codecs-numbers@2.0.0-preview.2": + version "2.0.0-preview.2" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.0.0-preview.2.tgz#56995c27396cd8ee3bae8bd055363891b630bbd0" + integrity sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw== + dependencies: + "@solana/codecs-core" "2.0.0-preview.2" + "@solana/errors" "2.0.0-preview.2" + +"@solana/codecs-strings@2.0.0-experimental.8618508": + version "2.0.0-experimental.8618508" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-2.0.0-experimental.8618508.tgz#72457b884d9be80b59b263bcce73892b081e9402" + integrity sha512-b2yhinr1+oe+JDmnnsV0641KQqqDG8AQ16Z/x7GVWO+AWHMpRlHWVXOq8U1yhPMA4VXxl7i+D+C6ql0VGFp0GA== + dependencies: + "@solana/codecs-core" "2.0.0-experimental.8618508" + "@solana/codecs-numbers" "2.0.0-experimental.8618508" + +"@solana/codecs-strings@2.0.0-preview.2": + version "2.0.0-preview.2" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-2.0.0-preview.2.tgz#8bd01a4e48614d5289d72d743c3e81305d445c46" + integrity sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g== + dependencies: + "@solana/codecs-core" "2.0.0-preview.2" + "@solana/codecs-numbers" "2.0.0-preview.2" + "@solana/errors" "2.0.0-preview.2" + +"@solana/codecs@2.0.0-preview.2": + version "2.0.0-preview.2" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-2.0.0-preview.2.tgz#d6615fec98f423166fb89409f9a4ad5b74c10935" + integrity sha512-4HHzCD5+pOSmSB71X6w9ptweV48Zj1Vqhe732+pcAQ2cMNnN0gMPMdDq7j3YwaZDZ7yrILVV/3+HTnfT77t2yA== + dependencies: + "@solana/codecs-core" "2.0.0-preview.2" + "@solana/codecs-data-structures" "2.0.0-preview.2" + "@solana/codecs-numbers" "2.0.0-preview.2" + "@solana/codecs-strings" "2.0.0-preview.2" + "@solana/options" "2.0.0-preview.2" + +"@solana/errors@2.0.0-preview.2": + version "2.0.0-preview.2" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.0.0-preview.2.tgz#e0ea8b008c5c02528d5855bc1903e5e9bbec322e" + integrity sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA== + dependencies: + chalk "^5.3.0" + commander "^12.0.0" + +"@solana/options@2.0.0-experimental.8618508": + version "2.0.0-experimental.8618508" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-2.0.0-experimental.8618508.tgz#95385340e85f9e8a81b2bfba089404a61c8e9520" + integrity sha512-fy/nIRAMC3QHvnKi63KEd86Xr/zFBVxNW4nEpVEU2OT0gCEKwHY4Z55YHf7XujhyuM3PNpiBKg/YYw5QlRU4vg== + dependencies: + "@solana/codecs-core" "2.0.0-experimental.8618508" + "@solana/codecs-numbers" "2.0.0-experimental.8618508" + +"@solana/options@2.0.0-preview.2": + version "2.0.0-preview.2" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-2.0.0-preview.2.tgz#13ff008bf43a5056ef9a091dc7bb3f39321e867e" + integrity sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w== + dependencies: + "@solana/codecs-core" "2.0.0-preview.2" + "@solana/codecs-numbers" "2.0.0-preview.2" + +"@solana/spl-token-group@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@solana/spl-token-group/-/spl-token-group-0.0.2.tgz#23f754fd535a4df5e2b80293a03aabd58bd99167" + integrity sha512-vLePrFvT9+PfK2KZaddPebTWtRykXUR+060gqomFUcBk/2UPpZtsJGW+xshI9z9Ryrx7FieprZEUCApw34BwrQ== + dependencies: + "@solana/codecs" "2.0.0-preview.2" + "@solana/spl-type-length-value" "0.1.0" + +"@solana/spl-token-metadata@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@solana/spl-token-metadata/-/spl-token-metadata-0.1.2.tgz#876e13432bd2960bd3cac16b9b0af63e69e37719" + integrity sha512-hJYnAJNkDrtkE2Q41YZhCpeOGU/0JgRFXbtrtOuGGeKc3pkEUHB9DDoxZAxx+XRno13GozUleyBi0qypz4c3bw== + dependencies: + "@solana/codecs-core" "2.0.0-experimental.8618508" + "@solana/codecs-data-structures" "2.0.0-experimental.8618508" + "@solana/codecs-numbers" "2.0.0-experimental.8618508" + "@solana/codecs-strings" "2.0.0-experimental.8618508" + "@solana/options" "2.0.0-experimental.8618508" + "@solana/spl-type-length-value" "0.1.0" + +"@solana/spl-token@0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.4.3.tgz#cb923184fcba3f875f5914a440a68d7f537d0bac" + integrity sha512-mRjJJE9CIBejsg9WAmDp369pWeObm42K2fwsZ4dkJAMCt1KBPb5Eb1vzM5+AYfV/BUTy3QP2oFx8kV+8Doa1xQ== dependencies: "@solana/buffer-layout" "^4.0.0" "@solana/buffer-layout-utils" "^0.2.0" - "@solana/web3.js" "^1.41.0" + "@solana/spl-token-group" "^0.0.2" + "@solana/spl-token-metadata" "^0.1.2" + buffer "^6.0.3" + +"@solana/spl-type-length-value@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@solana/spl-type-length-value/-/spl-type-length-value-0.1.0.tgz#b5930cf6c6d8f50c7ff2a70463728a4637a2f26b" + integrity sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA== + dependencies: + buffer "^6.0.3" -"@solana/web3.js@1.91.3": - version "1.91.3" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.91.3.tgz#25b8b9dfd88bfa6441c0c02bbdb67abd32bfa0f4" - integrity sha512-Z6FZyW8SWm7RXW5ZSyr1kmpR+eH/F4DhgxV4WPaq5AbAAMnCiiGm36Jb7ACHFXtWzq1a24hBkJ1wnVANjsmdPA== +"@solana/web3.js@1.91.6", "@solana/web3.js@^1.32.0": + version "1.91.6" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.91.6.tgz#c090661c344cbc61e6cdeb0da67d3ea80d5848e1" + integrity sha512-dm20nN6HQvXToo+kM51nxHdtaa2wMSRdeK37p+WIWESfeiVHqV8XbV4XnWupq6ngt5vIckhGFG7ZnTBxUgLzDA== dependencies: "@babel/runtime" "^7.23.4" "@noble/curves" "^1.2.0" @@ -4495,28 +4615,6 @@ rpc-websockets "^7.5.1" superstruct "^0.14.2" -"@solana/web3.js@^1.32.0", "@solana/web3.js@^1.41.0": - version "1.75.0" - resolved "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.75.0.tgz" - integrity sha512-rHQgdo1EWfb+nPUpHe4O7i8qJPELHKNR5PAZRK+a7XxiykqOfbaAlPt5boDWAGPnYbSv0ziWZv5mq9DlFaQCxg== - 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" - agentkeepalive "^4.2.1" - bigint-buffer "^1.1.5" - bn.js "^5.0.0" - borsh "^0.7.0" - bs58 "^4.0.1" - buffer "6.0.3" - fast-stable-stringify "^1.0.0" - jayson "^3.4.4" - node-fetch "^2.6.7" - rpc-websockets "^7.5.1" - superstruct "^0.14.2" - "@stablelib/binary@^1.0.1": version "1.0.1" resolved "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz" @@ -7647,6 +7745,11 @@ chalk@^2.0.0, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + chardet@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" @@ -7928,6 +8031,11 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +commander@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.0.0.tgz#b929db6df8546080adfd004ab215ed48cf6f2592" + integrity sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA== + commander@^2.20.0, commander@^2.20.3: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" @@ -12661,25 +12769,6 @@ jasmine-core@^3.6.0: resolved "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.99.1.tgz" integrity sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg== -jayson@^3.4.4: - version "3.7.0" - resolved "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz" - 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" - jayson@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz"